Don't blur your programming knowledge

Don't blur your programming knowledge
Photo by insung yoon / Unsplash

There's so much information on the internet, and much to learn and understand. There is a shortcut to learning that I've seen many take, but that I want to warn you against.

Let's consider Python and various beliefs surrounding it:

  1. Python is a simple language to learn.
  2. Python is the most versatile language because it is general purpose. I can create anything in it.
  3. Python is popular because more StackOverflow questions are asked on it, and more GitHub repositories exist for it. Thus, it's the most profitable language to study.
  4. Python makes data analysis and mathematical modelling simple.
  5. Python developers make more money than other engineers.
  6. Ad infinitum...

If you search Google for "why learn Python?" you will find articles that mention the above more or less.  But do you believe those claims blindly? Or do you inspect the evidence for them yourself?

Let's dissect each claim. I'm not expecting you to believe me blindly, but encouraging you to think for yourself.

#1 Python is a simple language to learn

The basics of almost all languages are simple to learn. There are resources out there that would teach you even Java with much simplicity, or even Ruby. Python doesn't necessarily stand-out.

What you're not told is that knowledge of a language is not alone sufficient for good software engineering. You need to understand aspects of software engineering and computer science as a whole.

Focus on solving computational problems, not on the language. Focus on the semantics, not just the syntax.

#2 Python is the most versatile language because it is general purpose

Languages like C/C++, Java, Ruby, LISP, PHP, Erlang, and a lot more are all general purpose. No extra points to Python here.

Many online Python courses have you put your code on GitHub. Basically, it's the same set of code put by different students. This will, of course, lead to more Python repositories on GitHub. But it doesn't necessarily mean more "useful software" is being written in Python alone.

The same thing with StackOverflow questions. A lot of beginner questions being asked by people new to programming.

#4 Python makes data analysis and mathematical modelling simple

It does make it more accessible, because you would otherwise require special software for mathematical modelling, which can be very expensive. In that, Python has made tremendous progress.

But it's not Python's job to make mathematical modelling simple. That you learn by researching mathematical modelling on your own. Python only lets you apply it.

Many people who think they're machine learning engineers or data scientists today can only import libraries in Python and write a few lines of code around it, without fully understanding what's happening underneath.

Beyond a certain point, you'll find tools like Matlab or Mathematica worth exploring.

#5 Python developers make more money than other engineers

I've not found a reliable source for this, and this is very location-dependent. I've found the opposite being true in a few situations.

As you rise in seniority, language becomes less and less of a factor. Your software engineering and reasoning skills count of everything, because then you can pick up any language you desire.

Consider these two candidates:

  1. A person who knows Python very well, but doesn't understand the principles behind building complex web applications. But he thinks he can learn those principles.
  2. A person who knows Java but not Python, but has thorough understanding of principles behind building complex apps. He thinks he can learn Python.

You see, learning a language is the easy part, but principles require time and energy and practice, which many are not willing to put forth. Which of the two candidates above will you hire?


The point here is, don't blindly believe everything you read on the internet. If you "know" something just because you read it somewhere, the lines between what's really true and what's just an opinion will start blurring for you.