Home / Software engineering roadmap
Course Roadmap
Learning Roadmap: Software engineering
Topic: software engineering
Software engineering is the discipline of designing, building, testing, deploying, and maintaining software systems in a reliable, scalable, and collaborative way. Unlike learning just a programming language, learning software engineering means understanding version control, requirements, architecture, testing, debugging, teamwork, agile processes, CI/CD, and how real software evolves over time. The best free courses for this topic are the ones that combine strong conceptual foundations with hands-on projects and are hosted by reputable institutions that keep their materials publicly available. ([edx.org](https://www.edx.org/learn/software-engineering/ibm-software-engineering-basics-for-everyone?campaign=Software+Engineering+Basics+for+Everyone&product_category=course&source=edx&webview=false&utm_source=openai))
The recommendations below were selected because they are genuinely free or offer a free audit path, come from trusted providers like MIT OpenCourseWare, Harvard CS50, Coursera, edX, OpenLearn, and the University of Helsinki, and together cover the most important layers of software engineering: fundamentals, process, construction, web application development, architecture, and testing. I prioritized courses that are currently accessible as of July 9, 2026, with clear curricula and practical relevance for self-learners who want job-ready skills rather than only theory. ([edx.org](https://www.edx.org/about-us/how-it-works?utm_source=openai))
Prerequisites: For the beginner courses, no formal prerequisites are required beyond basic computer literacy. For MIT Software Construction, CS50 Web, and Full Stack Open, you should already know basic programming concepts such as variables, functions, control flow, and data structures; Full Stack Open specifically expects good general programming skills plus some familiarity with web development, databases, and Git.
Estimated time: Approximately 45-55 weeks at a light part-time pace, or about 250-320 total hours depending on how deeply you complete projects and exercises
Suggested learning path
Start with IBM’s Software Engineering Basics for Everyone and OpenLearn’s An Introduction to Software Development to build a broad mental model of what software engineering is and how it differs from just coding. Then take Software Processes and Agile Practices so you understand how teams actually organize software work. After that, move into MIT’s Software Construction to develop disciplined coding habits around testing, abstraction, specifications, and collaboration. Once you have those foundations, choose an application path: CS50’s Web Programming with Python and JavaScript if you want a structured university-style path into web apps, or Full Stack Open if you want a very modern, tooling-heavy route into production-style JavaScript development. Finally, reinforce software quality with Introduction to Software Testing so you finish with stronger engineering rigor around validation and reliability.
Recommended free courses (7)
Software Engineering Basics for Everyone
edX / IBM
A broad beginner-friendly introduction to software engineering tools, terminology, development processes, architecture, design patterns, and career paths. It is ideal for learners who want an overview before choosing a specialization, and edX currently offers an audit track for free access to the course materials.
Topics: software engineering fundamentals, SDLC, software architecture, design patterns, careers
beginner6 weeksFree4.6/5
Go to course →
An Introduction to Software Development
OpenLearn / The Open University
This free Open University course explains the engineering nature of software development, the core challenges of building software, and the practices used to manage complexity. It is well suited to absolute beginners or career changers who want a structured conceptual foundation without needing to pay.
Topics: software development, engineering mindset, development practices, professional reading
beginner24 hoursFree4.7/5
Go to course →
Software Processes and Agile Practices
Coursera / University of Alberta
This course focuses on how software teams organize work, covering process models, Agile, Scrum, and product development planning. It is an excellent next step after the basics because it helps learners understand how real engineering teams deliver software in practice; Coursera lists it as enroll-for-free, with audit-style access commonly available for course content.
Topics: agile, scrum, software process, SDLC, TDD
beginner8 hoursFree4.7/5
Go to course →
6.005: Software Construction
MIT OpenCourseWare
One of the strongest free resources for learning how to write robust, readable, and maintainable software. It covers testing, code review, version control, specifications, debugging, abstraction, concurrency, and team version control, making it especially valuable for learners who already know some programming and want to become disciplined engineers.
Topics: testing, code review, git, specifications, debugging, concurrency
intermediate12 weeksFree4.9/5
Go to course →
CS50’s Web Programming with Python and JavaScript
Harvard CS50 OpenCourseWare
A project-driven course that teaches how to design and build full web applications using Python, Django, JavaScript, SQL, React-adjacent UI concepts, testing, CI/CD, scalability, and security. It is one of the best free applied software engineering courses online because it combines lectures with substantial projects and even offers a free CS50 certificate if you meet the requirements.
Topics: web development, django, javascript, sql, testing, CI/CD, scalability, security
intermediate9 weeksFree4.9/5
Go to course →
Full Stack Open
University of Helsinki
A modern, continuously updated free course focused on real-world full-stack development with React, Node.js, MongoDB, GraphQL, TypeScript, testing, CI/CD, containers, and runtime environments. It is best for learners who already have basic programming experience and want highly practical software engineering experience using tools and workflows common in industry.
Topics: react, node.js, mongodb, typescript, testing, CI/CD, containers
intermediate12-14 weeksFree4.9/5
Go to course →
Introduction to Software Testing
Coursera / University of Minnesota
This course introduces the principles and processes of software testing and asks learners to create test cases and use an automated testing tool. It is a strong supplement to programming-heavy courses because many beginners underinvest in quality assurance, even though testing is central to professional software engineering; Coursera offers enroll-for-free access for the course.
Topics: software testing, test cases, automation, verification, validation
intermediate30 hoursFree4.5/5
Go to course →
Download this roadmap as a PDF
Enter your email and we'll generate your personalized free-course roadmap as a PDF you can keep.
Want a roadmap for a different topic?
Describe any AI topic and our engine will scan the web to build a personalized free course roadmap you can download.
Build my roadmap →