Skip to content

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