Talking to the computer


Write simple programs that focus on talking to the computer–this is another place to start. If you just want to learn about the core things that a programming language does, a basic introduction to Python that focuses on writing and executing scripts in the Terminal window will get you that Close to the Machine feeling.

Terminal window running Python

Project Python dives right into the basics of how to make the computer start talking back and responding to your instructions. (A lot of the introductions I’ve done in different languages just begin with the same dry intro of “here is the syntax for addition… here is the syntax for subtraction…” This is much better because you’re drawing something in the second lesson.) This one is useful because there are editable code exercises built right into the page.

Think Python: How to Think Like a Computer Scientist is a very widely-used textbook that starts from the ground up in a dry and detailed way. There’s also an “Interactive Edition” of the same book with little blocks inserted allowing you to run the code you’ve just read about. This is more useful as a reference to go and check for more detailed info on how something works.

One of the most popular courses on Coursea is Programming for Everybody (Getting Started with Python). The lessons are also available on a standalone site, https://www.py4e.com/lessons. I’ve started and stopped a couple of Coursea courses over time as well–some on programming, some on education. These are a lot more detailed and well designed than the scrappier recommendations here, but you really have to devote a lot of time to them. They include readings, lesson videos, reflection prompts, quizzes, as well as assignments and projects. They probably won’t feel like a quick and satisfying introduction that lets you get tinkering with something right away. On the other hand, going back and following a free course for a while can help fill in gaps if you get curious after tinkering on yuor own. These resource assume that you’re going to write your programs on your computer and execute them in a terminal.