🗺️ Learning roadmap

What should you learn first? 34 roadmaps, by goal

Prodou has 30 categories and 1,496 lessons, and "so which one do I actually start with?" is a fair question. Here are 34 courses organised by goal, arranged so that every one of the 30 categories appears in at least one of them. Choose by the job you want, by the thing you want to build, or by the technology that caught your eye — any of the three works. Then click through the steps of that course in order.

🧭 Choose by the job you want

🎯 Choose by what you want to build

🔬 Choose by the technology you want to explore

🔰 For people who have never programmed at all

For anyone starting from "what even is programming?". You begin with languages that run entirely in the browser and finish with Git, the basic tool of every development job.

HTML/CSS shows you how something ends up on screen, JavaScript adds behaviour, Python gives you a solid grounding in the fundamentals (variables, conditionals, loops), and Git gets you into the habit of keeping a history of your changes. With this base, every course below becomes easier to walk into.

🌐 Heading for web development

front-end, back-end, freelance and more

🎨 Becoming a front-end engineer

Building the part users actually see. You turn designs into code and implement the movement and interaction.

HTML/CSS covers layout and styling; JavaScript covers making the screen respond. Real jobs also use frameworks such as React, but understanding plain JavaScript properly is what everything else is built on.

⚙️ Becoming a back-end engineer

Building the side users never see: processing data and talking to the database. It is the part that keeps the system alive.

PHP, Ruby and Go are all standard back-end languages. PHP has the most work around existing services such as WordPress, Ruby is readable and quick to pick up, and Go is popular for fast, modern services. Whichever you choose, SQL is close to mandatory.

💼 Building websites / going freelance

For taking on site building and web maintenance on your own. You end up able to handle the whole thing — planning, building, and looking after it after launch.

WordPress customisation is a common request, and PHP is what makes that possible. Finishing with Linux commands means you can publish to shared hosting or a VPS and sort out problems yourself, which widens the kind of work you can take on.

🧩 Becoming a full-stack engineer

For handling the screen, the processing behind it and the server operation, all on your own.

Startups and small teams value people who can cover front-end, back-end and the basics of infrastructure. It is a longer road, but getting through these six categories makes you noticeably more employable.

📱 Heading for app development

iOS, Android, games, business systems and more

🍎 Becoming an iOS app engineer

For building iPhone and iPad apps, centred on Swift, Apple's own language.

You can start straight from Swift, but getting comfortable with variables, conditionals and functions in JavaScript first makes it click faster. Objective-C still turns up when maintaining older projects, so it is worth a look once you have room.

🤖 Becoming an Android app engineer

For building apps for Android phones, centred on Kotlin, the language Google recommends.

New Android work is mostly Kotlin now, but large existing projects and job listings still ask for Java. Learning both while watching what they share and where they differ makes each of them clearer.

🎮 Becoming a game developer (Unity)

The fundamentals of game development, centred on C#, the language used in the Unity engine.

C# is used well beyond Unity — it is also a mainstay of Windows application development. Games tend to be built by several people over a long stretch, so getting used to tracking changes in Git early pays off later.

🏢 Becoming an in-house / business systems engineer

For working on a company's internal systems, Excel and Word macros, and the in-house tools that keep the place running.

1SQL 2VB.NET 3C# 4Python

Most business systems run alongside a database, which is why SQL comes first. VB.NET is written much like Excel macros (VBA) and still has steady demand in Japanese companies; C# handles more substantial business applications, and Python is what you reach for to automate the daily repetitive work.

🖥️ Heading for infrastructure and cloud

servers, networking, cloud operations and more

🖥️ Becoming an infrastructure / server engineer

For building and running servers and networks. Before any programming language, you settle the command-line work you will touch every single day.

Linux commands are the shared language of server operations. Once you can handle the basics of network equipment as well, move on to containers with Docker, which modern server operations cannot do without. If you want to go as far as the cloud, see the Cloud / SRE course below.

☁️ Becoming a cloud engineer / SRE

For building and automating infrastructure on cloud platforms such as AWS. You pick up the modern habit of managing infrastructure as code.

Once containers with Docker feel natural, work through AWS's main services (S3, EC2, IAM, Lambda) from the command line, and finish with Terraform, which turns the shape of your infrastructure itself into code. These are the skills the SRE and DevOps roles weigh most heavily.

🧪 Heading for data and systems

data analysis, AI, embedded, research and more

🧠 Becoming a data scientist / AI engineer

For work in data analysis, machine learning and AI: gathering data, analysing it, and drawing conclusions that mean something.

1Python 2SQL 3R 4Julia

Python is the de facto standard of the AI and machine-learning world. SQL gets the data out of the database, R teaches you how statistical thinking works, and where speed matters Julia — built for scientific computing — becomes an option.

🔧 Becoming an embedded / systems engineer

For low-level software work in appliances, in-car systems and close to the operating system. You start near how a computer actually works.

C is the root of many programming languages and the best place to understand memory and the machine underneath. Most embedded devices run on Linux, so Linux commands are part of the job too.

🎓 Fundamentals for computing students and research

For anyone who needs programming for coursework or research. Less about aiming at one job, more about a broad, solid base.

1Python 2C 3SQL 4Git

Python's simple syntax makes it good for learning how programming thinks. C deepens your understanding of the machine, SQL teaches you how to handle data, and Git gets you into the habit of versioning your code and research material.

🏠 Publish my own website or portfolio

Getting one page onto the internet. The result is visible, which makes it a good first goal.

HTML/CSS gives the page its shape and look, JavaScript adds movement. Once you reach Git you can publish for free with something like GitHub Pages, so you end up with something you can actually show people.

📊 Automate my Excel work and make my job easier

For anyone losing hours a month to totals and copy-paste. You start with the Excel already in front of you and widen out to real data processing.

1VBA 2Python 3SQL

VBA ships inside Excel, so you can start automating today with nothing to install. When the data outgrows Excel and it starts to crawl, move to Python; when you want to read the company database directly, move to SQL. The path widens naturally.

🔁 Automate the tedious parts of my day

For handing the repetitive computer work — tidying files, backups, scheduled jobs — over to the machine.

First learn what a single line of Linux can do, then chain those lines together in a shell script. When the conditionals and totals get complicated, moving to Python is the standard next step. On a Mac, all three work in the terminal you already have.

🔍 Collect data and look for patterns

For gathering information from the web or reading trends out of data you already have. This course automates "finding out".

1Python 2SQL 3R

Python collects and cleans the information, SQL pulls what you need back out of what you stored, and R confirms it statistically. If you fetch data from other sites automatically, always check their terms of use and be considerate about the load you put on them.

🤖 Get hands-on with AI and machine learning

For moving from using AI to building with it. This settles the language and the environment underneath.

Almost every AI library is written in Python, and handling training data needs SQL. It usually runs on a Linux server, and Docker is how you carry the whole environment around. None of it is flashy, but with these four you become someone who can actually get things running.

📝 Customise my blog or WordPress site

For anyone already running a site who wants to adjust the theme and add small features themselves.

You can get a surprising distance with HTML/CSS alone. JavaScript adds behaviour, and PHP is what lets you edit the theme files themselves. WordPress is written in PHP, so these three let you read the official documentation and fix things without waiting for anyone.

🎲 Build a small game that runs in the browser

For experiencing "I made something I can play" before taking on proper game development.

The best thing about browser games is that nobody installs anything — you send a URL. Start small with rock-paper-scissors or a guessing game, and when it grows, TypeScript's types stop mistakes and make it far easier to keep track of.

📱 Ship one mobile app

For anyone who cannot decide between iOS and Android. This route starts from the option that reaches both from one codebase.

With Flutter, Dart alone puts you on both iOS and Android, which makes it a good first app. When you eventually want a feature specific to one platform, move on to Swift for iOS or Kotlin for Android. Note that publishing to the stores costs money: Apple charges an annual developer fee, Google a one-off registration fee.

🚀 Launch a service of my own

For taking an idea all the way out into the world by yourself. It is the longest road on this site, and every step connects to the next.

1HTML/CSS 2JavaScript 3Python 4SQL 5Git 6Docker 7AWS

Look, behaviour, processing, storage, change history, a portable environment, somewhere to publish — that is everything a solo project needs, in order. You do not have to do it all at once. Build something that works with steps 1 and 2, and move on when you actually need to; that is the version of this that people finish.

🧮 Build up my core programming fundamentals

For anyone who would rather learn "the thinking that works in any language" than memorise one. It also underpins technical interviews and certification study.

1Python 2C 3C++ 4Skills test

Python for the thinking itself, C for what the machine is actually doing with memory, C++ for object orientation. Every Prodou category includes lessons on the classic algorithms — search, sorting, recursion — and working through those deliberately is what builds the strength.

⚡ Write software that is both fast and safe

For moving past "it works" to code where memory safety and execution speed are part of what you think about.

Managing memory by hand in C once is what makes Rust's ownership system land — you understand why it exists. Taking C++ and object orientation on the way looks like a detour and is actually the shortest path. Rust guarantees safety without a garbage collector, which is why it has been adopted inside operating systems and browsers.

📄 Handle logs and large amounts of text

For anyone whose work is investigating server logs, converting CSVs in bulk or replacing text across many files.

Once grep and sed have taught you the basics of narrowing things down, Perl — which has regular expressions built into the language — is remarkably strong. Perl may look like an old language, but for speed and comfort in text processing it is still working, and it is already installed on most Linux servers. Routine work goes into shell scripts; when it gets complicated, into Python.

📈 Work on platforms that process huge amounts of data

For anyone curious about distributing millions or hundreds of millions of records across machines. This is data engineering territory.

1Java 2Scala 3SQL 4Docker

Apache Spark, the distributed processing platform, is written in Scala, and Scala runs on the same JVM so it can use Java's existing libraries directly. Getting Java down first therefore speeds everything up. SQL is essential for pulling results back out, and Docker is how the whole team ends up on the same runtime.

🖧 Understand how networks work / study for the CCNA

For anyone who wants to know how communication actually arrives, and for people aiming at networking certifications.

Prodou's networking category lets you type Cisco commands into a simulated terminal, so you can practise without any equipment. The way IP addressing and routing work carries straight over into Linux network configuration and into designing virtual networks in the cloud. An infrastructure person who understands networking is valued everywhere.

🍏 Take over an existing iOS or Mac app

Not for new development but for maintaining and improving Apple-platform apps that are already running.

Most iOS and Mac apps built before 2014 are written in Objective-C, and they are still running. Writing new code in Swift while reading the existing parts in Objective-C is a perfectly normal situation. Fewer and fewer people can read it, which makes being able to a real advantage. Git is essential for following changes made by people who are no longer around.

🏛️ Take over and improve the Excel and VB systems left behind

For anyone who has just inherited someone else's macros and ageing internal tools. It is quietly one of the areas with the most demand.

1VBA 2VB.NET 3C# 4SQL

Excel's VBA and business-application VB.NET are written very similarly, so knowing one makes the other quick to pick up. VB.NET and C# run on the same .NET platform, so getting as far as C# widens your options when the time comes to rebuild. Company data almost always lives in a database, which is why SQL is here too.

🔬 Handle data properly in research and statistics

For anyone working with numbers in reports or papers. This course cares about getting the analysis right and being able to reproduce the calculation.

1R 2Python 3Julia 4SQL

R was built by statisticians for statistics, and arrives with tests and plotting already in place. Python is stronger at preparation and automation, and the two are frequently used together. When the computation is heavy enough that R or Python keep you waiting, Julia earns its place — it was designed to be written like Python and run like C.

🛡️ Write code that breaks less, using types

For anyone whose code works but makes them nervous, and falls apart as it grows. Types are the way out of that.

With types, you are told "that is not how this is used" before you ever run the program. If you know JavaScript, TypeScript is the easiest way in; Java shows you a full type system, and Kotlin and Dart teach null safety, the idea that has become the modern default. The more people involved, the more the types themselves do the job of documentation.

📦 Learn how teams actually build things

For settling "how a group builds together" before the language itself. It pays off right before a job change or joining a team.

These four are used on every team, whatever the language. Git shares the history of changes, Linux is where the servers are, Docker prevents "but it works on my machine", and Terraform keeps the shape of the servers themselves as code. Languages change from workplace to workplace; this base travels with you.

🌍 Try several languages and find the one that fits

For anyone who cannot decide. Touch each of them a little and find the one that is enjoyable to write.

These four have distinctly different characters. Python is about readability, JavaScript about running in a browser immediately, Ruby about being pleasant to write, and Go about having so few options that everyone's code comes out looking the same. Run the first five to ten lessons of each and make the one that clicks your main language.

Ad

None of these orders is compulsory. Start with whichever language interests you — treat these as a suggestion for when you are unsure. The full list of categories is under All categories, and you can check where you stand with the skills test.