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.
Step 1: See the whole map
Get a feel for what's out there before you commit to anything.
Step 2: Get comfortable with your tools
The terminal, your editor and the command line come up everywhere.
Step 3: Learn Git
Every team, internship and open-source project uses it.
Step 4: Learn how to learn
How to study effectively and how to ask for help so people answer.
Step 5: Grab the free stuff
Then pick a track below and keep going.
Everything in Start Here
Roadmap.sh
Interactive roadmaps for every role and skill, showing what to learn and in what order.
roadmap.sh
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
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
Learn Git Branching
A visual, in-browser game that teaches Git branching, merging and rebasing.
learngitbranching.js.org
Pro Git
The free official Git book, from first commit to internals.
git-scm.com
Learning How to Learn
A popular short course on focus, memory and beating procrastination. Free to audit.
coursera.org
How To Ask Questions The Smart Way
The classic essay on asking technical questions that actually get answered.
catb.org
GitHub Student Developer Pack
Free developer tools for students, with offers from JetBrains, DigitalOcean, Namecheap and many more.
education.github.com
freeCodeCamp
Free, self-paced curricula with certifications in web development, Python, data and more.
freecodecamp.org
The Odin Project Foundations
A free, project-based introduction to programming, Git, the command line and the web.
theodinproject.com
CS50P, Introduction to Programming with Python
Harvard's beginner Python course with lectures and problem sets, no prior experience needed.
cs50.harvard.edu
Python for Everybody
Dr. Chuck's free beginner Python course and book, aimed at people who have never coded.
py4e.com
Automate the Boring Stuff with Python
A free book that teaches Python by automating everyday tasks with files, spreadsheets and the web.
automatetheboringstuff.com
Think Python
A free, gentle introduction to Python and to thinking like a programmer.
allendowney.github.io
Scratch
MIT's block-based language for learning programming ideas without worrying about syntax.
scratch.mit.edu
Exercism
Free coding exercises in 70+ languages with optional feedback from human mentors.
exercism.org
Codewars
Small coding challenges ranked by difficulty, with other people's solutions to learn from.
codewars.com
CS50 YouTube Channel
Every CS50 lecture and seminar, free to watch.
youtube.com
freeCodeCamp YouTube Channel
Hundreds of free full-length courses on programming, web, data and more.
youtube.com
Fireship
Fast, fun videos explaining tools and technologies, including the famous "in 100 seconds" series.
youtube.com
Teach Yourself Computer Science
An opinionated list of the nine CS subjects worth learning and the best book and lectures for each.
teachyourselfcs.com
OSSU Computer Science
A free, complete computer science degree path built entirely from online courses.
github.com
Teach Yourself Programming in Ten Years
Peter Norvig's classic essay on why real skill takes time and how to build it.
norvig.com
The Linux Command Line
William Shotts' free book that takes you from first commands to shell scripting.
linuxcommand.org
OverTheWire Bandit
A game where you learn Linux commands by finding passwords to reach the next level.
overthewire.org
explainshell
Paste a shell command and see what each part and flag does.
explainshell.com
tldr pages
Short, example-first help pages for common command-line tools.
tldr.sh
Bash Guide for Beginners
A long-standing free guide to Bash commands and shell scripting.
tldp.org
The Art of Command Line
A one-page tour of the command-line tricks that make you fluent in the terminal.
github.com
ShellCheck
Paste a shell script and get warnings about bugs and bad habits.
shellcheck.net
Ubuntu Command Line for Beginners
Ubuntu's official hands-on intro to the terminal.
ubuntu.com
Install WSL
Run a real Linux environment on Windows, the easiest way to get a terminal on a college laptop.
learn.microsoft.com
Arch Wiki
The most detailed Linux wiki around, useful whatever distribution you run.
wiki.archlinux.org
Visual Studio Code Docs
Official guides for the most popular code editor, from setup to debugging.
code.visualstudio.com
VS Code Tips and Tricks
Keyboard shortcuts and features that make you much faster in VS Code.
code.visualstudio.com
Vim Adventures
A game that teaches Vim keyboard movement. The first levels are free.
vim-adventures.com
OpenVim
An interactive in-browser tutorial for learning Vim basics.
openvim.com
Neovim
A modern, extensible fork of Vim with a big plugin ecosystem.
neovim.io
Oh My Git!
An open-source game that visualises what Git does as you play cards.
ohmygit.org
Git Immersion
A guided tour of Git through a series of hands-on labs.
gitimmersion.com
Oh Shit, Git!?!
Plain-English fixes for the Git mistakes everyone makes.
ohshitgit.com
GitHub Git Cheat Sheet
GitHub's one-page reference of the Git commands you'll use daily.
education.github.com
Atlassian Git Tutorials
Clear illustrated tutorials on Git basics, branching and team workflows.
atlassian.com
Visualizing Git Concepts
Type Git commands and watch the commit graph change.
git-school.github.io
GitHub Docs Get Started
GitHub's official guides to accounts, repositories and your first workflow.
docs.github.com
Markdown Guide
A free reference for Markdown, the format used in READMEs, notes and docs.
markdownguide.org
Stack Overflow
The biggest Q&A site for programming. Search before you ask, and you'll usually find it.
stackoverflow.com
How to Ask a Good Question
Stack Overflow's short guide to writing questions that get good answers.
stackoverflow.com
Rubber Duck Debugging
The classic trick of explaining your code out loud, line by line, to find the bug.
rubberduckdebugging.com
The Feynman Technique
Learn anything by trying to explain it simply and filling the gaps you find.
fs.blog
Anki
Free spaced-repetition flashcards for remembering what you study.
apps.ankiweb.net
Learn in Public
Swyx's well-known essay on learning faster by sharing what you learn as you go.
swyx.io
Harvard CS50 Discord and Communities
Discord, Reddit and other communities where CS50 students help each other.
cs50.harvard.edu
r/learnprogramming
A large, friendly subreddit for beginners, with a FAQ worth reading first.
reddit.com
Khan Academy Computing
Free beginner lessons on programming, algorithms and how the internet works.
khanacademy.org
Harvard CS50 for Everyone
The full list of free CS50 courses, from Python and web to AI and cybersecurity.
pll.harvard.edu
NPTEL
Free courses from the IITs and IISc, with optional certification exams.
nptel.ac.in
MIT OpenCourseWare
Free lecture notes, videos and assignments from thousands of real MIT courses.
ocw.mit.edu
Crash Course Computer Science
A fast, friendly 40-episode video series on how computers actually work.
youtube.com
Code by Charles Petzold
The classic book on how computers work, built up from switches and telegraphs.
charlespetzold.com
How the Internet Works
MDN's short explanation of what happens when you open a web page.
developer.mozilla.org
Replit
Write and run code in the browser, no installs needed.
replit.com
Google Colab
Free Python notebooks in the browser, with free GPU time.
colab.research.google.com
JetBrains Free Educational Licenses
Free access to all JetBrains IDEs, like IntelliJ and PyCharm, for students.
jetbrains.com
Microsoft Azure for Students
Free Azure cloud credits for students, no credit card required.
azure.microsoft.com
AWS Educate
Free self-paced cloud training and labs from AWS for students.
aws.amazon.com
Google Cloud Skills Boost
Google's hands-on cloud labs, with free credits often offered to students.
cloudskillsboost.google
Notion for Education
Free Notion Plus for students for notes, planning and project wikis.
notion.com
Figma for Education
Free professional Figma plans for students and educators.
figma.com
Free Programming Books
A huge list of free books and courses for almost every language and topic.
github.com
Build Your Own X
Guides for building your own Git, database, shell, game and more from scratch.
github.com
Project Based Learning
A curated list of project tutorials sorted by programming language.
github.com
App Ideas
A big list of project ideas sorted by difficulty, for when you don't know what to build.
github.com
The Pragmatic Programmer
A classic book of practical habits for becoming a better developer.
pragprog.com
Hacker News
A long-running tech news site with deep discussions in the comments.
news.ycombinator.com
DEV Community
A friendly community where developers share articles and beginner tips.
dev.to
Python Tutor
Visualise your code running step by step to see what each line does. Works with Python, C, Java and JS.
pythontutor.com
W3Schools
Quick, simple tutorials and references with an in-browser editor for trying code.
w3schools.com
Codecademy
Interactive beginner lessons in the browser; many intro courses are free.
codecademy.com
Ubuntu Desktop Install Guide
Ubuntu's official step-by-step guide to installing Linux on your laptop.
ubuntu.com
Kunal Kushwaha
Popular Indian YouTuber with long free courses on DSA in Java, DevOps and open source.
youtube.com
Apna College
Hindi and English programming tutorials popular with Indian engineering students.
youtube.com
CodeWithHarry
Beginner-friendly Hindi tutorials on Python, web development and more.
youtube.com
Nothing here matches those filters.