Amongst geeks, invariably, the topic comes up eventually – it’s sort of like mentioning Hitler on the Internet. The best programming language. The best framework.
The best… whatever.
I even caught myself getting into a similar discussion recently about the best programming language to learn with, and being drawn into discussion. It shouldn’t even be a topic. It’s downright silly. The best programming language to start with is your native language – in my case, that’s English, in your case it’s likely English too – after all, this post is written in English.
One of the first things I wrote professionally was about how to start learning to program. It netted me $300 U.S. from CramSession.com, now beyond the most extreme measures of resuscitation. 17 years later, I can lay it out in a paragraph. Fortunately, Cramsession.com can’t ask for their money back.
Everyone that can write and execute a shopping list can program. You know what you need from the store, so you write the list – so the first pass is the list. The second pass would require a mental layout of the store for the most efficient path to walk through and get what you need – so you then prioritize the list based on aisles. Then you can get more finely tuned based on which side of aisle things are. You’re a programmer now. Show us your grocery receipt. Frame it. It’s your certificate.
Of course, over time you learn that the store moves things around, so you now have to maintain whatever you wrote by adapting it to changing circumstances. Welcome to maintenance, the most numerous jobs in software development.
The best solution I ever saw to the Fizzbuzz problem was submitted by a non-programmer who simply drew a flowchart. It demonstrated to me that she – it was a she – understood the underlying concepts and could implement them in any language since she understood the underlying algorithm. Sure, there are a lot of solutions to the Fizzbuzz problem (what a horrible way to measure whether someone can program!) in various languages – from elegant to obfuscated – but programming languages are not the most important tool for tackling a problem. The most important tool is the language the problem comes in. A half-decent programmer, given some time to get their feet under them with a programming language’s syntax, can write a solution in any language.
Therefore, the most important language in programming is your native tongue. Some will argue that it’s English based on demographics, but those demographics have been skewed by economic development and market sizes. If you can’t think clearly, you can’t write clearly – as a programmer, or as a writer. Period.
Now somewhere there’s a geek that is stridently making a case against what I have written, but the beauty of it is that the case they are making is probably in English – the language this is written in. Right now, they are making my point for me.
As AI becomes more relevant, natural language programming will go from a way to create systems that understand natural language to actually programming those systems in your native language. The language of the market dictates.
Suddenly, that Oxford comma may be more important to you than you think.
If you don’t know what an Oxford comma is, now is a great time to use Google to begin your research.