TL;DR; Stop telling beginner developers which languages they should learn and point them towards the best tools and frameworks instead.
When I first started learning to code all I wanted to do was to build fun and useful things I could share with my friends. Back then, those things were mostly PC games (this was before the time kids had easy access to the internet).
After having learned some BASIC on my Commodore Amiga and then finally getting my first PC, my beginner’s instinct was to excitedly pick a new serious sounding programming language I had heard about from my dad: C++
The only way I could think of how to get started was to try and get my hands on any C++ books and often outdated documentation available in our local library.
In hindsight this approach was obviously doomed from the beginning. Despite being a computer nerd, I was not a particularly smart or practical minded kid.
Beyond Hello World, it turns out learning language features by writing console programs just isn’t super helpful when your goal is to make the next hit PC game. Very quickly my younger self got demotivated by this approach. What’s even worse, I don’t think my friends were too impressed with the console programs I had written.
Luckily for me, my family got an internet connection in the early 00’s and I soon found my way to a popular online community of kids learning to code games called Newgrounds.
“Learning languages is a side-effect of becoming productive.
Armed with a definitely-not-pirated version of Macromedia Flash MX with ActionScript and access to peers and online tutorials, I finally had the tools to really learn, experiment, and build creatively with code. This lead me to also learn web programming to build my own websites and simple server backends to add online functionality to the games I had built. I ended up starting my career in tech using those skills.
Looking back, I would’ve been so much better off early on if someone had told me about the different available frameworks and tools I could’ve used to build something resembling what I wanted to achieve. In my experience, learning a language usually comes as a side-effect of becoming productive rather than being a prerequisite.
Access to great resources, community, and good overall developer experience are the defining factor in getting productive quick. Picking a popular framework or library, be it Django, React, Rails or Unity is in my opinion the best thing a beginner can do to start on a path of learning to code.
For someone getting into any kind of programming today, I would start by asking them what kind of things they wish to build and then help them pick out a framework or library built for that purpose. Starting with a popular framework in the age of YouTube and online lectures, finding great (and free) online courses and tutorials shouldn’t be an issue.
Learning different languages and paradigms, and especially learning about the quirks and features of your language of choice is definitely very useful and can make a huge difference to your productivity, but it’s definitely not among the first things we should consider when helping someone get into programming.