This is a book about instructing computers. Computers are about as common as screwdrivers today. But they are quite a bit more complex than screwdrivers, and making them do the precise thing you want them to do isn’t always easy.
If the task you have for your computer is a common, well-understood one, such as showing you your email or acting like a calculator, you can open the appropriate application and get to work. But for unique or open ended tasks, there may not be an application.
That is where programming may come in. Programming is the act of constructing a program—a set of precise instructions, that tell a computer what to do. Because computers are dumb, pedantic beasts, programming is fundamentally tedious and frustrating.
Fortunately, if you can get over that, and maybe even enjoy the rigor of thinking in terms that dumb machines can deal with, programming can be very rewarding. It allows you to do things that would take forever by hand in seconds. It is a way to make your computer tool do things that it couldn’t do before. And it provides a wonderful exercise in abstract thinking.
Most programming is done with programming languages. A programming language is an artifcially constructed language used to instruct computers. It is interesting that the most eﬀective way we’ve found to communicate with a computer borrows so heavily from the way we communicate with each other. Like human languages, computer languages allow words and phrases to be combined in new ways, allowing you to express ever new concepts.
The book in numbers