







Educational resources for self-learners
Kristiana - Software Design Tutor
Experienced software development professional and mentor specializing in software design and algorithms, suitable for beginners.
Adam K. - Software Developer & Refactoring Mentor
Experienced software developer and refactoring mentor, specializing in software design, refactoring, design patterns, and Java/Python programming. Beginner-friendly, offers online sessions with trial lessons.
r/learnprogramming Community
A large and active Reddit community for beginner programmers to learn, discuss, and get feedback on code, including topics like refactoring, design patterns, and code smells.
FreeCodeCamp Discord Community
An active online community for programmers of all levels, offering support, resources, and peer learning opportunities, particularly strong for beginners in topics like refactoring and design patterns.
Group Project: Refactor a Small Legacy Codebase to Remove Common Code Smells
A collaborative project for beginner programmers to identify and refactor code smells in a provided codebase, improving clarity and maintainability.
Intro to Code Refactoring 101
Watch this concise video from Sentry to understand what code refactoring is, what 'code smells' are, and why they matter in software development. This is a great starting point to learn how to improve your code and spot common problems.
Refactoring Pt. 1 - Software Engineering Radio
Host Martin Eberhard interviews Martin Lippert in a deep dive that covers the history and fundamentals of refactoring, detailed explanation of code smells, and practical methods for applying refactoring in day-to-day work. It also touches on the ROI of refactoring and challenges in dynamic languages. This is a classic, expert resource on the topics.
Sentry
Sentry's official YouTube channel, featuring content on error monitoring, performance, and best practices in software development.
Refactoring.Guru
A comprehensive website offering beginner-friendly content on refactoring, design patterns, SOLID principles, and how these concepts interrelate, with clear explanations, comic-style illustrations, pseudocode, pros and cons, and code examples.
Design Patterns Certification
This course, part of the Software Design and Architecture Specialization, covers fundamental design patterns, object-oriented design principles, and techniques for identifying and refactoring code smells. You will learn to apply design patterns to create flexible, reusable, and maintainable software, and critique existing codebases for antipatterns. Taught in English by the University of Alberta.
Get AI-Powered Recommendations
Sign up to receive personalized resource recommendations based on your interests and learning goals.
