What programming language should you learn first?
Quincy Larson

Some thoughtful insights in this article. There is one important issue that is left out, however, IMO: learning discipline and sound programming principles.

Quincy, you wrote, “So you should consider the following factors” and then listed several sound things, but did not mention the importance of learning foundational programming paradigms and concepts — things like information hiding and encapsulation, the importance of type safety, abstraction, etc. A language like Javascript has all the pluses you mention, but it does not provide what I just mentioned.

Also, learning a language for the purpose of future employment might not be wise: there is a-lot of evidence that the days of programming are numbered, and that in the not too distant future more and more programming will be done by AI systems, turning the programming profession into a niche with an uncertain lifetime. Professional programmers should always be learning new languages, but someone just starting out really should not be thinking of it as a career.

There is so much terrible code around today — indeed the Internet Of Things might well be infeasible because of the terrible state of coding — and it is very likely that much of that state of affairs is due to people “coding” instead of “designing”, and learning languages but not learning software engineering basics — and I say this as an Agile advocate, because sound Agile processes include progressive design. To me, coding without knowledge of design basics is “hacking”, in the sense of continuing to “hack” at something (as with a blade or axe), without much precision, thought, or skill — and with predictable results.