Day 1. What Programming Language to Learn?

Andrey Esaulov
SmartHouse
Published in
6 min readMay 22, 2017

Practical and Pragmatic approach to your time, money and energy.

The Question

“What programming language should I learn?” — is the most frequent question I get from my students. There are tons of “experts” on the internet — and on YouTube — that are trying to give the ultimate answer.

They either try to analyze the language design, or throw numbers around — like market demand, jobs in this language, Google search trends etc.

They’re all wrong.

Learning Programming is hard. You will be investing a lot of time — and often money — in the process.

So I treat this question from the ROI perspective. What is ROI?

ROI stands for “return on investment” and is used by virtually any serious organization to plan long-term project.

You should apply this principle to your programming career as well. After all — why would you not? Is your time or your money less valuable than those gentlemen on Wall Street? No? Well — then use their tools — to reach your goals!

What follows is the complete plant to calculate ROI while planing your programming career.

Calculating ROI

You must take the following points into consideration, while deciding what programming language you should learn and master.

Learning vs. Building

How fast can you build something useful in this language? It could be an App to track your sleep time, or it may be a website to post pictures of your pet. It doesn’t really matter — it must be a useful product.

The goal of this question is to change your mindset from learning into building. The only reason to learn a programming language in the first place — is to build something with it.

Here is an analogy for you. Take a quick test below.

What is the most efficient way to learn to swim?

  1. Answer A: Study human body anatomy. Then study physics. Then buy a theory course on swimming from olympic sports champion.
  2. Answer B: Go to the pool!

Way too many students are focusing on learning instead of building — and fall into the trap of multitude of online courses out there.

Those courses cover very narrow topics of how to start developing in Language X, or use technology Y — flooding with 60+ hours details — that are absolutely inapplicable in your day-to-day development career.

Change your mindset! And look at the technology from this perspective: how fast can I build something useful with it?

Job Market Analysis vs. Language Momentum

Another trap many fall into is using job market research as a starting point in deciding what language they should learn. It’s only natural to think — “Well, let me see what jobs are available in tech — and learn to do the technologies they mention”.

Why is this a trap?

Because 90% of the job listings refer to the old languages and obsolete technologies. The fast majority of companies who are hiring these days — have their stable businesses running. Those businesses were built some 5, 10 or may be even 20 years ago. Lots of them are running on old and obsolete technologies — like Java or PHP or C++ or MySQL.

Because those businesses are profitable — their owners want them just to stay this way. Any kind of change — is a potential risk. There is an old IT-saying “Never Change a Running System”. Unfortunately for you — if you start working in this environments — you will never learn anything new. All you will ever do — is patch up old, inefficient and terrible code.

Another analogy for you: imagine it’s 1904 and you are looking at the following jobs listings:

What college degree should You get?

  1. Listing A: For our London coachman service we are looking for experienced horse-caretakers and veterinarians with college degrees in order to make our horses even faster!
  2. Listing B: For our first plant in Canada we, Ford Motor Company are looking for engineers with the college degrees in order to build the first automobile in Canada.

What would you choose as your career path? London or Canada?

It’s very important to look into the future, instead of the past. Programming language momentum is much more important than the current job listings. You want to aim for the job market that will come, not for the one that will past.

That is why momentum, or even hype — is so important when you’re deciding what language and what technology your are going to master.

Action Exercises to complete TODAY

Following the guidelines discovered in this chapter, put down in writing:

What is the thing/product/service you want to create yourself?

Is it an iOS App?

Android App?

It is a Website?

Depending on your choice — find the technologies, languages, frameworks that have the most momentum on that platform? Write down the list.

Good way to “feel” the momentum of the programming language is by looking at GitHub repositories created in that language:

Alternatively here are some keywords example you can use to Google it:

iOS Development 2017 frameworks

Android Frameworks 2017

hype web technologies 2017

javascript frameworks 2017

web development trends 2017

iOS programming trends 2017

Frontend development trends 2017

Backend development trends 2017

Study the documentation pages for this technologies. Don’t try to understand — just try to get the feeling — how approachable they are.

Things to watch for:

Is it about building or just learning?

Eloquent JavaScript is an example of Great Practical Book:

Throughout the book, there are five project chapters, which describe larger example programs to give you a taste of real programming. In order of appearance, we will work through building an artificial life simulation, aprogramming language, a platform game, a paint program, and a dynamic website.

Speaking JavaScript is probably not as approachable:

This book has been written for programmers, by a programmer. So, in order to understand it, you should already know object-oriented programming, for example, via a mainstream programming language such as Java, PHP, C++, Python, Ruby, Objective-C, C#, or Perl.

Does the website looks modern?

Would you rather…

Site looks dated. So is the technology behind it.

… or

Site looks modern. Chances are so is the framework.

Are there any new courses on that technologies on Udemy?

Sort your list by the approachability on this technologies. Starting from the most approachable — that typically will show how to build something in 10 minutes on their first page. All the way down to very complicated.

This list will be your study-template for the next days.

Thanks for reading! :) If you enjoyed this article, hit that heart button below ❤ Would mean a lot to me and it helps other people see the story.

--

--

Andrey Esaulov
SmartHouse

Head of Mobile / Speaker / Programming Coach PhD in Languages - Bringing Tech and Real Language Processing together. Strong believer in Voice Interfaces.