Initial conditions
There are any number of best places to start coding, which in practice is no help at all.
We’re going to cover a couple of techniques in this adventure, hopefully making it possible for everyone to get at least some sort of a grasp on some of the rudiments of programming. Of course, many weighty tomes on this subject have already been written and cover much more than we can hope to do in a handful of pages. So we won’t be recreating Donald Knuth’s seminal The Art of Computer Programming (TaoCP) or Randal L Schwartz’s era-defining Programming Perl here. But hopefully we’ll inspire some who haven’t heard of those texts to check them (and other coding lore) out.
It’s always rather daunting choosing a ‘first’ programming language. There’s plenty of contradictory articles online imploring you to learn Python, Ruby, JavaScript or PHP. And there’s as many telling you that those languages all have their problems and your time would be better spent learning Rust, Go or Java (or its descendent Kotlin used in Android).
In our opinion, it doesn’t matter where you start. After all, most of us here learned some BASIC during our school years. Contrary to computer scientist Edsger Dijkstra’s oft-quoted criticism, we think we turned out okay: “It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.”
First programming steps
Dijkstra (who also has an algorithm named after him) was talking about Dartmouth BASIC there (a little different from the BBC BASIC or QBasic that LXF writers occasionally still dream of), but his point – that learning the wrong thing first actually does more harm than help – makes the ‘first programming language’ decision even more of a conundrum. Don’t worry too much about any of that indecision. To be brutally honest, you have no influence over the subject matter.
In some UK schools, computing is being taught to children as young as five. “Computing” here might be a little generous, as the syllabus here covers things like flowcharts and deductive reasoning, but frankly anything’s better than the IT courses of yore that they replace. Across the pond, influential humans at tech companies, educational institutions and non-profits have just penned an open letter calling for Computer Science (CS) to be similarly taught in K-12 schools in the US. This effort is being led by Hadi Partovi of https://code.org. This website offers free coding courses and tutorials, as well as connecting students with teachers. You can read the full “CEOs for CS” letter at www.ceosforcs.com.