3
5 Comments

Which Programming Language to Learn: Why it truly Does Not Matter

I originally posted this on a subreddit for learning to code but I won't link that here because I'm not sure if it is against the rules

"Which programming language should I learn" is a question that seems to be top of mind for nearly everyone looking to start learning to program. It's posted to the learn programming subreddit at least a couple times of day and, for each of those posts, the top reply is always the same: "It does not matter". In fact, it's asked so frequently that the topic is one of the first things mentioned at the top of their FAQ which essentially says four things

  1. There is no best language to start with
  2. Your first choice will have next to 0 impact on your career
  3. Almost all of what you learn is transferable to other languages. Once you're comfortable with one, you can pretty much just start using another one no problem (with a bit of googling)
  4. You're (probably) gonna end up using a handful of languages anyway so don't over think it

The purpose of this post is to offer a sense for why these things are true. To get you to believe the FAQ and all the people telling you it doesn't matter by offering an intuitive way to understand these facts.


Given the volume of questions about it, people seem to be skeptical about the "It does not matter" claim. That's understandable. After all, learning to program is a significant investment of your time. It would be a shame to invest all that time and energy and find you've somehow chosen the 'wrong' language.

Fundamentally everyone is trying to get across the idea that these programming languages are so similar and what you learn while learning a programming language is so similar; that it really just does not matter. The trick is, it can be hard to appreciate the similarities between programming languages when you know nothing about programming languages.


The main idea is this: Programming languages are all "made of" the same building blocks. When you're "learning a programming language", you're really learning about these building blocks. If the blocks are shared across all these different languages (they are), you can start to appreciate why choosing a language doesn't matter.


I'll give you an example. If you're learning to program and you decide to "learn python". What that actually entails is learning about the building blocks I'm talking about: variables, if statements, for loops, functions, scope, data types, etc. You'll learn what they are and practice using them. Want to take a guess what you'd be learning if you chose to learn any other language? It's the exact same thing. You're not learning a specific programming language, you're learning how to use an if statement (and a bunch of other things that are language agnostic)

You can think of these "building blocks" I'm referencing as the tools in your tool belt when you're trying to write a program. Imagine you're trying to learn to build things made from wood. You'd need to learn how to use a circular saw, table saw, a sander, a drill, ect... Fussing about which programming language to learn with is like fussing about which brand of tools to use while you learn to build things with wood. At the end of the day a drill is a drill and an if statement is an if statement. Sure you might need to google some extremely small details if you start using another brand but you still know how to use a drill.

Hopefully this helps you trust the internet a little more when it tells you that it doesn't matter which programming language you choose. I'll leave you with this:

I personally have pretty bad posture. I sit a lot and I've been sitting a lot for a very long time. As a result, I have a goal to improve my posture. I've spent tons of hours researching different regimens that are meant to help you improve your posture. I've read blog posts, watched YouTube videos, asked friends for advice. I want to know which stretches and exercises were "Best". You know what I have not done? I have not done any stretching, I have not done any exercises, and I have not improved my posture

It feels better to trick myself into thinking I'm making progress towards my goal by "researching" than to do the uncomfortable work of actually stretching. Make sure you're not doing the same thing to yourself with your goal to learn to program by searching far and wide for the "best" language!

posted to
Learning to Code
on April 29, 2022
  1. 2

    I completely agree with the idea that your first programming language is actually more of a learning experience. You learn the basics, the fundamentals of coding. And almost always this knowledge is transferable to any language. For example I started out with java but am currently focused on Python as a django dev.
    However, if the person asking this question is interested in a specific niche, I'd probably try suggest him some languages that are most popular/useful in that particular niche.
    In the end, you shouldn't really worry that much regarding what's your first programming language. If you choose one of the popular ones, you're doing absolutely fine.

    1. 1

      Absolutely! There's definitely no harm in trying to find a language that lends itself to your particular interests. I just hope learners understand that it ultimately isn't that big a deal so they don't let it get in their way

  2. 1

    I dunno, I think it helps to have a mentor or ask someone knowledgeable when you’re first getting started. While choosing the best language for your use case and being recommended the most helpful learning resources isn’t strictly necessary, I think that type of advice is still valuable.

    There’s also something to be said for language specialization. One piece of advice I read on Indie Hackers a lot is use the tools you already know. So, it’s worth a passing thought and question as to what you start with—you may end up using it a lot more than you expected.

    1. 1

      I'd still contend that the common case is that new learners fret far too much about picking the 'best' language and delay actually getting started. I'd way rather a learner dive into the 'wrong' language and switch later than have them procrastinate by agonizing over which language they want to use

      1. 1

        Sure, but that’s what mentors are for—cutting through the indecision and recommending the best path forward based on their industry knowledge and past experiences. They guide you to the solution in the best and fastest way possible.

Trending on Indie Hackers
I've built a 2300$ a month SaaS out of a simple problem. 22 comments Where can I buy newsletter ad promos? 12 comments How would you monetize my project colorsandfonts? 8 comments How I built my SaaS in 2 weeks using NextJS and Supabase 6 comments Key takeaways growing MRR from $6.5k to $20k for my design studio 6 comments Tips on starting a startup 5 comments