So you’ve been programming for a while now and you want to explore what other
languages are there. How do you choose?
Do you choose based on how you think you might get a job?
Or do you choose where all the “excitement” is?
My advice? Find something that will change the way you think about
programming.
Most likely you’ve been writing in some form of object-oriented language. That’s
great. It’s what the vast majority of professional software developers author
in.
Please, don’t choose another OO language. Choose a language that has
fundamentally different ideas about programming. Or choose a language that aims
to solve an entirely different problem space. Choose a functional language.
Choose a systems language. Choose an obscure or esoteric language. Its
impact on you will be far greater.
For example, I’ve been a fronteer my entire professional career. This means my
primary programming language has been JavaScript. Despite it’s warts, I love
JavaScript. Likely for the same reason I love the English language. It’s the way
my brain models the world. Thus, I could choose a related language that I could
easily apply at work such as C# or Ruby. This will feel familiar in how I model
the world, and it’s relatively simple to adjust to. Learning the syntax and the
idioms of the community and I’m off to the races.
The trouble for me is I can’t understand how I become better. Ruby and C# are
too close to my mother tongue.
I choose to learn another language because I want to fundamentally change the
way I think about programming.
Functional programming is fundamentally different than object oriented. Systems
programming is fundamentally different than UI and web programming.
I’m going to learn a functional language. I might even learn a systems language.
You should join me.