Learn computer science fundamentals in six months

Harvard's legendary intro course to build the foundation, MIT's short crash course to make you fluent with the tools every working programmer takes for granted, and then projects plus a deeper roadmap. About 150 hours over a season or two. This is computer science — how machines and algorithms actually work — not a bootcamp that teaches one framework and calls it a career.

6 months · ~150 hours · understand how computers work and where to go deeper

Months 1–4 · 8–10 hours/week

1.CS50 — Harvard's Introduction to Computer Science

The best entry point in existence, and it's free. David Malan's CS50 takes you from binary and memory through C, data structures, algorithms, SQL, and Python — teaching you to think computationally rather than to memorize syntax. Do every problem set; they're hard on purpose and that difficulty is where the learning lives. Audit it free on edX or take the self-paced CS50x directly from Harvard. Don't skip the C weeks because they're uncomfortable — they're the entire point, the part that makes the rest of computing make sense.

Free to audit; an optional verified certificate runs ~$219 on edX

CS50x →
Month 4 · one to two weeks

2.The Missing Semester of Your CS Education — MIT

CS50 teaches you to program; this fills the gap no course covers — the tools you'll use for the rest of your life. MIT's free lecture series makes you genuinely fluent with the command line, shell scripting, a real editor (Vim), Git version control, debugging, and automation. It's a dozen tight lessons that will save you thousands of hours. Do it right after CS50, while you're hungry to be faster, and actually run every command yourself rather than just watching.

Free

The Missing Semester →
Months 5–6 and beyond · self-directed

3.Build a real project, then follow Teach Yourself CS

Now make something from scratch that you'd actually use — a small web app, a CLI tool, a game — and ship it to a public Git repository. Building forces you to confront everything CS50 only previewed. Then, to go from competent to deeply educated, work through the Teach Yourself CS roadmap: it names the nine core subjects (algorithms, operating systems, networking, databases, and so on) with one canonical book or course each. For an even more thorough degree-equivalent curriculum, OSSU is the maximalist version.

Free (a few of the recommended texts cost money)

Teach Yourself CS →

If this doesn't fit you

If your real goal is to get something working — automate a task, build a website, land a job writing code — and you don't care how a CPU schedules processes, you don't need computer science. You need to learn to code. Follow our Python path instead: it's faster, more practical, and aimed squarely at producing useful software. Come back here when you hit the ceiling where not understanding the fundamentals starts slowing you down — that ceiling is real, but it's later than most beginners think.

Why this path

The bottleneck in self-taught CS is mistaking coding for computer science: people learn one language, build a few apps, and never understand memory, algorithms, or how the system underneath actually behaves — so they plateau and can't reason about anything they haven't seen before. This sequence prevents that. CS50 forces the fundamentals through C before comfort sets in; the Missing Semester makes you fast enough to enjoy building; the project and Teach Yourself CS turn one course into a real education. Free, rigorous, and in the order that actually compounds.