Skip to content
All resources

Start Here

The first steps, whatever you end up building.

The tools, habits and big-picture maps every track assumes you have. Work through the path once, then pick a track.

83 resourcesSuggest a resource

Learning path

Work through these in order. Each step builds on the last.

Everything in Start Here

Roadmap.sh

Interactive roadmaps for every role and skill, showing what to learn and in what order.

roadmap.sh

Roadmap

CS50x, Harvard's Introduction to Computer Science

The best-known intro to programming and CS. C, Python, SQL and the web, with real problem sets.

cs50.harvard.edu

Course

The Missing Semester of Your CS Education

MIT's short course on the shell, editors, Git, debugging and the other tools classes skip.

missing.csail.mit.edu

Course

Learn Git Branching

A visual, in-browser game that teaches Git branching, merging and rebasing.

learngitbranching.js.org

Practice

Pro Git

The free official Git book, from first commit to internals.

git-scm.com

Book

Learning How to Learn

A popular short course on focus, memory and beating procrastination. Free to audit.

coursera.org

Course

How To Ask Questions The Smart Way

The classic essay on asking technical questions that actually get answered.

catb.org

Article

GitHub Student Developer Pack

Free developer tools for students, with offers from JetBrains, DigitalOcean, Namecheap and many more.

education.github.com

Tool

freeCodeCamp

Free, self-paced curricula with certifications in web development, Python, data and more.

freecodecamp.org

Course

The Odin Project Foundations

A free, project-based introduction to programming, Git, the command line and the web.

theodinproject.com

Course

CS50P, Introduction to Programming with Python

Harvard's beginner Python course with lectures and problem sets, no prior experience needed.

cs50.harvard.edu

Course

Python for Everybody

Dr. Chuck's free beginner Python course and book, aimed at people who have never coded.

py4e.com

Course

Automate the Boring Stuff with Python

A free book that teaches Python by automating everyday tasks with files, spreadsheets and the web.

automatetheboringstuff.com

Book

Think Python

A free, gentle introduction to Python and to thinking like a programmer.

allendowney.github.io

Book

Scratch

MIT's block-based language for learning programming ideas without worrying about syntax.

scratch.mit.edu

Tool

Exercism

Free coding exercises in 70+ languages with optional feedback from human mentors.

exercism.org

Practice

Codewars

Small coding challenges ranked by difficulty, with other people's solutions to learn from.

codewars.com

Practice

CS50 YouTube Channel

Every CS50 lecture and seminar, free to watch.

youtube.com

Video

freeCodeCamp YouTube Channel

Hundreds of free full-length courses on programming, web, data and more.

youtube.com

Video

Fireship

Fast, fun videos explaining tools and technologies, including the famous "in 100 seconds" series.

youtube.com

Video

Teach Yourself Computer Science

An opinionated list of the nine CS subjects worth learning and the best book and lectures for each.

teachyourselfcs.com

Guide

OSSU Computer Science

A free, complete computer science degree path built entirely from online courses.

github.com

Repo

Teach Yourself Programming in Ten Years

Peter Norvig's classic essay on why real skill takes time and how to build it.

norvig.com

Article

The Linux Command Line

William Shotts' free book that takes you from first commands to shell scripting.

linuxcommand.org

Book

OverTheWire Bandit

A game where you learn Linux commands by finding passwords to reach the next level.

overthewire.org

Practice

explainshell

Paste a shell command and see what each part and flag does.

explainshell.com

Tool

tldr pages

Short, example-first help pages for common command-line tools.

tldr.sh

Cheatsheet

Bash Guide for Beginners

A long-standing free guide to Bash commands and shell scripting.

tldp.org

Guide

The Art of Command Line

A one-page tour of the command-line tricks that make you fluent in the terminal.

github.com

Repo

ShellCheck

Paste a shell script and get warnings about bugs and bad habits.

shellcheck.net

Tool

Ubuntu Command Line for Beginners

Ubuntu's official hands-on intro to the terminal.

ubuntu.com

Guide

Install WSL

Run a real Linux environment on Windows, the easiest way to get a terminal on a college laptop.

learn.microsoft.com

Docs

Arch Wiki

The most detailed Linux wiki around, useful whatever distribution you run.

wiki.archlinux.org

Docs

Visual Studio Code Docs

Official guides for the most popular code editor, from setup to debugging.

code.visualstudio.com

Docs

VS Code Tips and Tricks

Keyboard shortcuts and features that make you much faster in VS Code.

code.visualstudio.com

Cheatsheet

Vim Adventures

A game that teaches Vim keyboard movement. The first levels are free.

vim-adventures.com

Practice

OpenVim

An interactive in-browser tutorial for learning Vim basics.

openvim.com

Practice

Neovim

A modern, extensible fork of Vim with a big plugin ecosystem.

neovim.io

Tool

Oh My Git!

An open-source game that visualises what Git does as you play cards.

ohmygit.org

Practice

Git Immersion

A guided tour of Git through a series of hands-on labs.

gitimmersion.com

Guide

Oh Shit, Git!?!

Plain-English fixes for the Git mistakes everyone makes.

ohshitgit.com

Cheatsheet

GitHub Git Cheat Sheet

GitHub's one-page reference of the Git commands you'll use daily.

education.github.com

Cheatsheet

Atlassian Git Tutorials

Clear illustrated tutorials on Git basics, branching and team workflows.

atlassian.com

Guide

Visualizing Git Concepts

Type Git commands and watch the commit graph change.

git-school.github.io

Tool

GitHub Docs Get Started

GitHub's official guides to accounts, repositories and your first workflow.

docs.github.com

Docs

Markdown Guide

A free reference for Markdown, the format used in READMEs, notes and docs.

markdownguide.org

Cheatsheet

Stack Overflow

The biggest Q&A site for programming. Search before you ask, and you'll usually find it.

stackoverflow.com

Community

How to Ask a Good Question

Stack Overflow's short guide to writing questions that get good answers.

stackoverflow.com

Guide

Rubber Duck Debugging

The classic trick of explaining your code out loud, line by line, to find the bug.

rubberduckdebugging.com

Article

The Feynman Technique

Learn anything by trying to explain it simply and filling the gaps you find.

fs.blog

Article

Anki

Free spaced-repetition flashcards for remembering what you study.

apps.ankiweb.net

Tool

Learn in Public

Swyx's well-known essay on learning faster by sharing what you learn as you go.

swyx.io

Article

Harvard CS50 Discord and Communities

Discord, Reddit and other communities where CS50 students help each other.

cs50.harvard.edu

Community

r/learnprogramming

A large, friendly subreddit for beginners, with a FAQ worth reading first.

reddit.com

Community

Khan Academy Computing

Free beginner lessons on programming, algorithms and how the internet works.

khanacademy.org

Course

Harvard CS50 for Everyone

The full list of free CS50 courses, from Python and web to AI and cybersecurity.

pll.harvard.edu

Course

NPTEL

Free courses from the IITs and IISc, with optional certification exams.

nptel.ac.in

Course

MIT OpenCourseWare

Free lecture notes, videos and assignments from thousands of real MIT courses.

ocw.mit.edu

Course

Crash Course Computer Science

A fast, friendly 40-episode video series on how computers actually work.

youtube.com

Video

Code by Charles Petzold

The classic book on how computers work, built up from switches and telegraphs.

charlespetzold.com

Book

How the Internet Works

MDN's short explanation of what happens when you open a web page.

developer.mozilla.org

Article

Replit

Write and run code in the browser, no installs needed.

replit.com

Tool

Google Colab

Free Python notebooks in the browser, with free GPU time.

colab.research.google.com

Tool

JetBrains Free Educational Licenses

Free access to all JetBrains IDEs, like IntelliJ and PyCharm, for students.

jetbrains.com

Tool

Microsoft Azure for Students

Free Azure cloud credits for students, no credit card required.

azure.microsoft.com

Tool

AWS Educate

Free self-paced cloud training and labs from AWS for students.

aws.amazon.com

Course

Google Cloud Skills Boost

Google's hands-on cloud labs, with free credits often offered to students.

cloudskillsboost.google

Practice

Notion for Education

Free Notion Plus for students for notes, planning and project wikis.

notion.com

Tool

Figma for Education

Free professional Figma plans for students and educators.

figma.com

Tool

Free Programming Books

A huge list of free books and courses for almost every language and topic.

github.com

Repo

Build Your Own X

Guides for building your own Git, database, shell, game and more from scratch.

github.com

Repo

Project Based Learning

A curated list of project tutorials sorted by programming language.

github.com

Repo

App Ideas

A big list of project ideas sorted by difficulty, for when you don't know what to build.

github.com

Repo

The Pragmatic Programmer

A classic book of practical habits for becoming a better developer.

pragprog.com

Book

Hacker News

A long-running tech news site with deep discussions in the comments.

news.ycombinator.com

Community

DEV Community

A friendly community where developers share articles and beginner tips.

dev.to

Community

Python Tutor

Visualise your code running step by step to see what each line does. Works with Python, C, Java and JS.

pythontutor.com

Tool

W3Schools

Quick, simple tutorials and references with an in-browser editor for trying code.

w3schools.com

Guide

Codecademy

Interactive beginner lessons in the browser; many intro courses are free.

codecademy.com

Course

Ubuntu Desktop Install Guide

Ubuntu's official step-by-step guide to installing Linux on your laptop.

ubuntu.com

Guide

Kunal Kushwaha

Popular Indian YouTuber with long free courses on DSA in Java, DevOps and open source.

youtube.com

Video

Apna College

Hindi and English programming tutorials popular with Indian engineering students.

youtube.com

Video

CodeWithHarry

Beginner-friendly Hindi tutorials on Python, web development and more.

youtube.com

Video