Technology
How to Become a Software Engineer
Build the programming, software design, and engineering skills needed to develop modern applications.
What does a Software Engineer do?
Software engineers design, develop, test, deploy, and maintain software systems.
Skills you'll need
Programming
Understand programming fundamentals and solve problems with code.
Why it matters: Programming is the fundamental skill required to build software.
Data Structures & Algorithms
Understand common data structures and algorithms used in software development.
Why it matters: Data structures and algorithms help engineers write efficient and maintainable software.
Git
Track code changes and collaborate using version control.
Why it matters: Version control is fundamental to modern software development workflows.
Databases
Design, query, and work with systems that store application data.
Why it matters: Most production applications need to persist and retrieve data efficiently.
APIs
Design and consume interfaces that allow software systems to communicate.
Why it matters: APIs allow software systems to communicate and are fundamental to modern applications.
Typical learning path
Programming Foundations
~70 hoursLearn programming fundamentals and develop problem-solving ability.
Skills
Milestone: Build several small programs independently.
Software Engineering Fundamentals
~70 hoursLearn version control, data structures, testing, and software design.
Skills
Milestone: Build and test a structured multi-file application using Git.
Application Development
~70 hoursLearn databases and APIs and combine them into a working application.
Skills
Milestone: Build and deploy a full-stack application.
Ready to build your roadmap?
See which skills you already have, what you should learn next, and how much time it could take based on your situation.
Build My Personalized Roadmap →