A good programmer or software developer should be learning programming concepts and not languages.

Knowing many programming languages is great. However, does this alone really make you a good programmer?

Learning Languages

There are so many programming languages out there from Python to C++ to Rust to Go, and many many more.

Knowing different programming languages and understanding their details and quirks is great. There is absolutely nothing wrong with that. The more you can learn about the tools you use everyday the better.

Over the years I’ve used many different languages ranging from low level languages like C++, to higher level languages like Ruby.

These days, I program a lot in python and javascript, and I love experimenting with new language features and discovering cool new code snippets.

However, I realize that simply knowing these languages doesn’t make me a good programmer and doesn’t say a lot about my skill set.

Learn Concepts Not Languages

The important thing is not just to learn a language itself. We need to remember that programming languages are tools, and many of these tools change, evolve, and sometimes even become irrelevant. The moral of the story is that you shouldn’t become dependent on a certain language.

You should learn how to use a language to solve a problem. And when you do that, you will inveitably pick up new concepts.

Let’s use Python as an example. You don’t want to just "learn python". You want to, for example, learn how to use python to scrape data from a website. And by doing this, you will learn a ton of new and interesting concepts like how to make http requests, how to select html elements from the dom using xpaths and css selectors, among many other concepts.

We want to learn concepts, not just languages.

Here are some other examples:

  • Maybe you want to learn how to use C++ to build a game and learn about the inner workings of computer graphics.
  • Maybe you want to learn how to use SQL to design efficient tables and optomize database queries.
  • Maybe you want to use Javascript with Vue.js or React to learn how to create reactive web pages.
  • Maybe you want to use Django to build a backend application and learn about how webservers handle incoming requests.

What Makes a Developer Valuable

Knowing the languages and frameworks that a company or project uses is certainly a plus.

However, the true value that you’ll bring to any project that you end up working on is your conceptual knowledge. Companies can find any number of applicants that have experience with their stack. But finding developers who have the deep experience and conceptual knowledge needed to use these tools to build well-designed software is much harder.

Good software developers are the people that focus on learning concepts and not just languages. Languages come and go, but the core fundamentals of computer science and programming do not.

I hope you enjoyed this article. If you did, here are some other interesting interesting articles for you to read.