An explanation of a series of posts I plan to add explaining programming for the lay-person.
I realize I talk a lot about programming and computer science, and that not all of my audience knows what that means. Computer science is to programming what mathematics is to arithmetic or what poetry is to writing. I may try to explain some of those higher CS ideas as I go, but without the underlying techniques of programming they probably won’t make sense.
Fortunately, the pieces used in programming are not at all difficult concepts. Unfortunately, programming is almost never taught in such a way that you’d know they aren’t difficult. Programming is almost always taught in the context of a particular language, and programming languages are almost always cryptic and confusing. There’s a good reason for languages to be cryptic: they are designed by and for professional programmers who want a concise shorthand jargon. Worse still, programmers re-use various terms and symbols familiar to many people in ways that are subtly different from mainstream usage.
In the following set of posts I will attempt to rectify these problems by presenting the underlying concepts of programming in plain English. I’ll include definitions of the jargon where I can without being confusing, as well as common life examples of where people use the tools of programming without thinking about the fact they are the tools of programming.
By the end of the series I will not have taught you to program because you won’t have learned any particular language and because you won’t have learned the practice of putting the pieces together. But you will know how to read an informally-described algorithm and what things to be looking for in learning a programming language.