First 90 days¶
~8 min
In short¶
This is a twelve-week plan for your first term of programming. Each week gives you one goal, six short study days of about 1.5 to 2 hours, one deliverable you can show, and a few questions to check that you understood the week. Start with week 1 and go in order, because each week uses the ideas of the weeks before it.
The plan¶
| Week | Topic | Deliverable |
|---|---|---|
| 1 | Set up Python. Python course Part 1, lessons 1 to 3 | hello.py and about.py run from the terminal |
| 2 | Variables, arithmetic, reading error messages. Finish Part 1 | calculator.py, plus one error you read and explained |
| 3 | Decisions and loops (Part 2) | A guessing game and a printed pattern |
| 4 | Strings, lists, tuples, dictionaries, sets (Part 3) | word_count.py that prints the five most common words |
| 5 | Functions, modules, files, exceptions (Part 4), terminal basics | textstats tool that reads a file you name |
| 6 | Git and GitHub, first project | Expense tracker that passes all eleven checks, in a GitHub repository |
| 7 | How the machine works, binary and data representation | to_binary.py and a short written answer |
| 8 | Algorithms and complexity, first practice problems | Five solved problems with a step count for each |
| 9 | Objects (Part 7) | An Account class with a subclass and tests |
| 10 | SQL and databases with SQLite | An expense database and three queries |
| 11 | Networks and HTTP | A script that fetches a page, and a small local server |
| 12 | Review, GitHub portfolio page, choose a track | A profile README and a written track choice |
How to use this plan¶
Each week has six study days. Day 7 is a rest day. That gives you about 9 to 12 hours of study a week, which fits a normal class schedule. If a day takes longer, finish it the next day. If you miss a whole week, do not restart from week 1. Read the deliverable of the week you missed, do the parts you can in one or two sessions, and then go on to the next week. The plan is built so that you can fall a little behind and still catch up, because later weeks reuse ideas and not whole projects.
Keep one folder for all your work, and put a git repository in it from week 6 onward. Your deliverables are the thing you will look at in week 12, so save them even when they are not perfect.
Each weekly page links to the Python course lessons it uses. The course is the main text for weeks 1 to 5, 7 to 9, and 11. The pages in the other folders of this domain cover the terminal, git, the machine, databases, networks, and the choice of a track. Read those pages when a week tells you to.
Before you start¶
You need a computer you can install software on, an internet connection, and about 1.5 to 2 hours on each of six days. You do not need any prior programming. You will need a few free accounts later: GitHub in week 6, and nothing else for the rest of the plan.
Sources¶
- Python Tutorial, the official tutorial for the language.
- Python downloads, where you install Python 3.
- CS50's Introduction to Programming with Python, a free course from Harvard that you can use alongside this plan.
- The Missing Semester of Your CS Education, a free course on the command line, version control, and tools.