Rockford Lhotka

CTO at Magenic, creator of CSLA .NET, author, speaker

What Programming Language Should I Learn to Get a Job in 2020?

25 Dec 2019

The list of widely used languages is pretty well published on the Internet.

I’ll answer this with the assumption you want to get a job easily, and so are willing to work in the business world where most of the jobs are to be found.

Data

Start with SQL. Without knowledge of SQL you aren’t very employable regardless of what other language(s) you know.

Knowing something about NoSQL is also a fine idea, but isn’t required (yet). These sort of databases are becoming more and more common, but businesses still primarily rely on relational databases and SQL for most work.

Server

From there pick one of the big server-side languages and its associated frameworks, libraries, and ecosystem:

  1. Java
  2. C#
  3. Python
  4. JavaScript (node)

Don’t be fooled into thinking server-side is easier because there are less languages to learn as compared to the upcoming list of client-side technologies.

The Java and .NET (C#) server-side frameworks, libraries, and ecosystems are massive and can be extremely complex, and these are the two most likely to get you a job in the business world.

But if you are a server-side developer, don’t get all high-and-mighty either, because those client-side frameworks (Angular, React, and the myriad JavaScript/TypeScript libraries) change so damned fast that by the time you’ve learned how to be productive everything has changed again.

Let’s talk about what it takes to be a client-side developer.

Client

If you also want to do client-side work, then learn all of:

  1. HTML
  2. CSS
  3. JavaScript
  4. TypeScript

And on the client-side you need to learn one of the big UI frameworks and its associated libraries and ecosystem:

  1. Angular
  2. React

As I mentioned earlier, don’t underestimate the amount of knowledge and experience you need to be truly competent with Angular or React. Both have their own ecosystems, plus you need to know HTML, CSS, and TypeScript as perequisites.

I know, there are people that come out of coding boot-camps or whatever they are called, that only know Angular. They don’t know JavaScript/TypeScript, they barely know HTML/CSS, but they “know” Angular. And we can’t hire people like that.

There are other code boot-camps that teach Angular plus HTML/CSS/TypeScript. Those people are the sort we’ll hire at an entry level - assuming they have some of the other important skills listed later.

Full-Stack Nonsense

Personally, I don’t believe in the concept of “mainstream full-stack devs”. Sure, some elite people without a real life can be an expert in server and client tech. But most people are good at one and maybe barely competent at the other.

So someone excellent with Angular and everything around it, and hopefully competent to do some Java on the server. Or someone excellent with C#/.NET on the server and everything around it, and hopefully competent to do some web client development with React.

The good news? Being slightly better than competent at either server or client will get you a long way in the job market.

Truly Important Skills

What is universally true, is that you have the more important skills such as verbal and written communication, professionalism, ability and interest in understanding business problems, agile processes, unit testing, code refactoring, and many more.

These transcend any particular language, platform, or server vs client conversation, and are really what will set you apart in the job market. Coders are useful for what they do, but can’t really solve the problems businesses face. Developers that can do coding, plus understand process, plus can interact with users, stakeholders, and other business folk? They are very useful and have a lot of career growth potential.


comments powered by Disqus