Oct 1, 2020

Programing Languages for 2021

 Greetings!


It’s been a while since I blogged about a technical topic. I thought that this is the right time to write something useful for a few (class of 2020). What a great day to restart tech blogging on Gandhi’s birthday, October 02.


You are graduated, well done. Now you need a job. There is a digital transformation and there is a pandemic! To get a well paying stable job, obviously, you should know one or two programming languages.


Here is my sample list: (not necessarily complete but to give you an idea to get a job)

#

Language

Platform

Domain

Job

1

C

RHEL/Ubuntu

Systems programming

Networking companies like Cisco, Arista, Palo Alto Networks, etc


Storage companies like Netapp, Nutanix, Cohesity, etc


Plus other tech companies

2

C++

BOOST Library for RHEL/Ubuntu


OR


MFC/Windows

Systems + Applications

Tech companies like Facebook, Google, Ping, and others.


Follow Microsoft applications in banking, telco, healthcare, etc.

3

Java

Oracle JDK and Open JDK

Platforms +

Applications

A wide variety of jobs. Pick your stack carefully and go deep.


If you want to work at tech companies like Google then start from JVM/GC


If you want to work at enterprises like Wells Fargo then get expertise in App Servers such as Tomcat, JBoss, etc


If you want to work for a startup then you get expertise in microservices frameworks like Spring Boot

4

PHP

LAMP stack

Web Applications

If you want to work for tech companies like Slack, Facebook then you need to know the internals of PHP including the latest PHP 8. These companies will mostly use it for front-end


If you want to work for enterprises, they may use this stack for an end to end web apps.

5

Python

Django, Flask

Server-side web application

If you want to work for tech companies like Pinterest, LinkedIn then you need to know the internals as you will be dealing with massive web traffic


If you want to work for enterprises or govt agencies like NASA, need to know the full stack

6

JavaScript

(Front end)

ReactJS, Angular, DOJO, JQuery

Web GUI

The secret to success here is learning browser architecture, AJAX, REST API, and fundamentals of HTTP. Then learn JavaScript language (ECMA 6) and pick a library like ReactJS to go deep into the stack.


Every company is a software company and no matter what they do, they need Web GUI

7

JavaScript (Back end)

Node.js

(Express, Koa, Meteor, Sails)

Server-side web application

You love JavaScript. You love Event Loops. But not GUI. No problem


You can use your JS skills in Node.js and build backend applications.


Many tech companies like Paypal need Node.js programmers. Specifically targeting mobile apps.

8

Swift

Apple's Cocoa and Cocoa Touch frameworks


XCode, LLVM compiler

iOS apps

A wide variety of opportunities from tech companies to enterprises.


The key to success is understanding the full Apple platform and build faster/responsive apps

9

Java/

Android

ART(Android Runtime)/Linux

Android apps

A wide variety of opportunities from tech companies to enterprises.


The key to success is understanding the full Android platform and build faster/responsive apps

10

C#

Visual Studio/.NET/IIS

Business Applications

Business applications. A ton of them.

11

COBOL

IBM/Mainframe

Legacy applications

½ century-old language. If you swipe ATM, most likely a set of COBOL code gets executed. 


High demand in govt agencies and banks. (still)

12

Fortran


CAD/CAE

Like COBOL, Fortran is well alive in the engineering simulation domain but mostly suitable for Mechanical Engineers.


I hope you have read through this list entirely. I want to stress two things for young programmers:

  • Learn the full programming platform

  • Get expertise in a domain


First, you should learn the language in detail. For this, you should read the language specification itself. Then you should learn the entire programming platform. The question is how do you choose one? The answer is CS + X.


Let's say you are an artist (in addition to programmer) and your X can be Web GUI. Your passion for art can naturally make you an excellent GUI programmer. In this case, you have 3 choices and let’s say you start with #8 in the above list: Swift. Learn Swift, then understand it’s predecessor Objective-C and ask yourself why Apple is deprecating Objective-C. Then go ahead and learn the underlying framework: Cocoa and push your boundary of knowledge further to LLVM in the compiler to iOS kernel. Not enough, learn REST API and TLS 1.2 because you need to bring data from the backend in JSON format. This is called a full-stack Swift programmer. Now from Coca-Cola to Tesla may like to hire you!


Let’s say you are a mathematician, and your X can be a Data Scientist. Start with Python and go deep with a framework like Apache Spark.


There are so many opportunities in this digital economy. You just have to find your passion and get deep expertise in “one full programming platform” to get a job. Just knowing the programming language itself is NOT enough. Remember, GitHub is your resume - the more you write code and publish, the better it is to get a high paying job. 


All the very best.

0 Comments:

Post a Comment

<< Home