Stage 2 of 6 · 8 lessons · ~4 weeks
Command line and Git
Get comfortable in the terminal and put every piece of code under version control. This is the tooling every team assumes on day one, and it protects your own work from now on.
Start: Navigating files in the shellLessons· one lesson for each topic, in this order
Start with· follow one of these
- CourseFreeThe Missing Semester of Your CS Education
MIT · Beginner
MIT lectures on dev tools; the shell, shell tools and version control lectures are enough
- GitHub repoFreeGitHub Skills: Introduction to GitHub
GitHub · Beginner
Free one-hour exercise: branch, commit, open and merge a pull request
Practise
Keep handy
Also worth your time
Before moving on: Put every program you have written in a GitHub repository with meaningful commit messages, and open, review and merge one pull request from a feature branch.

Learn about a dozen commands well (status, add, diff, commit, log, branch, stash, fetch, pull, push, clone, remote -v) and use them every day; rebase, hooks and submodules can wait. Commit small, with messages that say why, because that history is what a reviewer reads first.