What programming language to learn in the next 5 years?

Nikolay Nikonov
P-Society
Published in
4 min readSep 17, 2019

--

I have a confession.

I’m a programming languages junkie.

I love to buy new courses and learn about new technologies. I have more than a hundred courses in my Udemy account.

And I haven’t written anything grandiose besides a few simple mobile apps and a bunch of helpful scripts.

So, maybe my unsolicited opinion isn’t what you need. But hear me out.

Photo by Juan Gomez on Unsplash

The first thing you should do is to ask yourself: “What’s my goal?”

Do you want to find a high-paying job? Any job? Earn some green stuff with freelance gigs?

Complete that side-project you dreamt of for the last few years?

Start a new business?

Or are you just like technology and want to learn as much as possible?

This is important. Your goal matters.

Now, let’s break down the cases listed above:

==========

Finding a job: You can’t go wrong learning Javascript or Python. They are everywhere. And tons of companies looking for Javascript and Python developers.

But it depends. If your goal is to find a high-paying job relatively fast than maybe it’s better to go with the Apple ecosystem. Swift is a pretty pleasant language. If hairs on your neck tingle when you hear about apps and mobile development, this is the best way to go.

Also, not everyone can afford Apple hardware. This is a good thing. Less competition for you.

Having said that, I think that if you learn just one language and learn it well (quirks, internals, common bugs, limitations), you can get a high-paying job no matter what language you choose. But, it takes time and dedication, obviously. Sometimes you have to sacrifice your wishes to keep yourself afloat. I get it.

==========

Freelance gigs: I assume you know the difference between a freelance gig and remote job. Usually, the freelance gig is a short task for a client you’ll never see again. In the best case, this gig will lead to a remote job or more gigs from the same client in the future.

Well, it may sound strange, but the most gigs out where are about managing and fixing PHP-based websites. Wordpress, Joomla, Magento, you name it…

This is not a bad thing. Magento developers can command higher fees, and work is interesting.

The bare minimum, in this case, is knowing HTML, CSS, PHP, Javascript, and SQL. If you know Apache/Nginx it’s a big fat plus.

And here’s another piece of advice based on the experience of my friends.

Never sell yourself short.

I would stay away from freelance sites first (e.g., Upwork, Freelancer).

Why?

Cut-throat competition and chump-change-fees. If you don’t have much experience, fine, you can waste some time to get it. But the best way to go is looking locally and asking everyone you know for referrals. You’ll get more than slaving for $10 per hour on freelance sites. And clients quality will be higher. Mostly, the clients on freelance sites are a greedy bunch that complains a lot, and you end up fixing the same thing again and again for free. Not every client this bad, necessarily. But most of them are.

==========

Side-projects/starting a business: This is the most obvious and straightforward technology/language choice. Just choose what you like.

In our age of cloud computing and endless tools available, you have tons of options.

But, as most of the old-school tech entrepreneurs think, use monolithic infrastructure if your project is relatively simple. Python/Django, Ruby/Ruby on Rails, PHP/Laravel, and so on. If you cringe and shout “microservices!”, remember a story about Groupon, about how they started as a simple Wordpress blog.

This setup is easy to manage, fast to develop, and you can spend your time on marketing rather than fixing bugs and trying to tie it all up (in case you were thinking about microservices).

Now, microservices are great for scaling your project up, but when you are ready to scale you will probably have enough profits to do it painlessly with the help of other people.

==========

Language-lover/Tech early-adopter/Curious: Fine, you’ve probably already tried a bunch of languages, can code something up, and want to widen your horizons.

The first step is to think about what programming abstraction do you like more. Functional programming? Low-level hardware programming? Any fascinating stuff that comes to mind?

I’ll give you an example:

Functional programming. I always wanted to wrap my mind about it, but I can’t do it deeply, because I have no natural talent for math. And functional programming is all about math (understanding of it).

I have a love-hate relationship with FP. I tried to learn Haskell… nope. I can’t understand most concepts. I regularly read Clojure books and read them again and again. I’m getting something every time, but alas I’m far from deep understanding. But I love Clojure. It is concise, and you can do many things faster with it. And, I was able to make a simple API with it.

I want you to join a discussion and tell me about your experiments. Maybe some advice on what to read/watch to understand functional programming better?

==========

I’m stopping right here, thank you for reading. And again, don’t forget what your goal is. In the next few posts, I plan to review a few programming courses I really like, and I think it will make you a better programmer.

--

--

Nikolay Nikonov
P-Society

iOS consultant (frameworks, libraries/frameworks, costs prediction, saving your stalled project), developer, and engineer (Objective-C, Swift)