Photo by Bit Cloud on UnsplashEvery once and a while I am asked some form of the question “What Programming Language should I learn?”It seems like a pretty popular question amongst newcomers to the Tech Industry, as evidenced by countless questions on Quora such as:Between Java and Python, which one is better to learn first and why?Is C# better than Java?All else being equal, which is better to learn today: C, C#/.
Net, C++, or Java?Which are the 5 programming languages most likely to become extinct in the coming years?So many languages my brain hurts.
Given all of the languages that exist, and all of the technologies related to these languages, it’s understandable that the question of what programming language to learn seems overwhelming.
These questions are driven by an anxiety about learning “the wrong” thing.
The fear that efforts will be wasted and that a career in development will be short-lived because of a decision to learn a “the wrong language” or technology that “went extinct”, like the dinosaurs.
If you feel this anxiety, know that you are not alone, and…read on.
Same As It Ever WasSo much churn.
SourceThere is a perception that technology moves so quickly that skills learned 5 years ago are now wasted.
The web space in particular seems to have a high churn rate with numerous frameworks and techniques competing for building modern, client-side web applications.
But, in the grand scheme of things, the web still works the same today as it has since it first began, and building client side apps isn’t that much different from building the old server-side apps.
And all of these frameworks (Angular, Vue, Preact, React, Ember, etc) all accomplish the same things in similar ways.
Changes in technology are a lot like the waves in the ocean — There is a lot of activity (churn) at the surface, but underneath the changes are much slower and steady, in some cases virtually unchanging.
For example, our computers today work exactly as described by John Von Neumann in 1945.
Here are 3 other quick examples:The underlying OS on Mac devices is based on Operating System designs that are close to 50 years old: If you are using a Mac/iPhone, even a fancy Apple Watch, you are using the OSX/iOS operating system inspired by the Unix Operating System from the 1970s, adopted by Apple via FreeBSD through NeXT in the 1990s for XNU, the basis of all Apple devices.
If you’re using a Mac Product right now, Your OS evolved from an OS that was first designed 50 years ago.
Each have found various niches and advantages within the our current technology ecosystem of web/mobile/desktop — and the emerging IoT and AR/VR/MR spaces.
All are inspired by previous languages such as C/SmallTalk/Lisp which are 40–50 years old, and are still around today.
43% of banking systems are built on COBOL.
80% of in-person transactions use COBOL.
95% of ATM swipes rely on COBOL.
220 billion lines of COBOL are in use today: The classic example of how persistent old technology is COBOL.
At 60 years old, it is still widely used through the world and is not going away anytime soon, because once technology becomes deeply embedded into a system, it is really hard to change.
The costs of replacing systems and the risk in doing so is massive, especially in the financial industry, so it stays, and continues to do the job it was built to do decades ago.
Technology just doesn’t change as quickly as people imagine, and even when it does, it is evolutionary, which means that any skills you learned at one point can be brought forward into the next level of evolution.
Just because a language/technology you recently learned falls out of favour doesn’t mean you need to die off with it.
You can remember the good times and move forward into the future.
If you take a wide-angle view of technology, you will see that everything you learn fits into the bigger picture, and strengthens your technological understanding.
It is all transferable and connected.
Anxiety about learning the wrong technology is misplaced, and really, things are the same as it ever was.
Learn One Language, and Learn it WellWhich one will it be…?What should you do if you are starting down the path of being a developer?Pick a language and spend some time learning that one language.
But here is the secret: It doesn’t matter which language you pick.
Just get started.
All you really need to do is learn how to program and the underlying paradigms used in programming, the language you use is not that important.
The first language you learn will teach you that skill, and from there you can build on your foundation with other languages/technologies.
There might be harder or easier languages to learn, or more popular/less popular languages to learn.
But, everything you learn will move you forward.
And what is even more important than learning a single language is understanding the technology ecosystem and how all the pieces come together, for example in web or mobile.
A particular language is only one aspect of the ecosystem.
But still you say, which language should I pick?.Here are some suggestions:Roll the dice.
Leave it to chance and whatever number you roll, that’s your language.
Learn what your friends are learning.
If you know some people who are learning a language or already know a language, team up and learn with/from them.
Learning is always more fun with others.
Pick one with the name that sounds cool or with the coolest logo.
This is like the wine strategy: If you know very little about wine, you can always go by the marketing.
Which name/branding appeals to you?.I think Python is pretty cool, kind of badass and edgy…Let the Universe decide.
Does a programming language keep showing up in your day-to-day life like that cute barista you keep seeing around?.Trust your inner self — that’s the Universe trying to get through to you.
Just go for it.
Ask yourself some Career Questions.
What company do I really want to work for?.And/or what industry/domain do I find exciting?.If you know the answers to these questions, then you should learn the language(s) most popular in the company/industry that you are drawn to.
For example, if you really want to build iOS apps, you’ll have to learn Swift; for Android, Java.
3 birds, 1 stone.
If you truly want to take a rational approach, then research the companies/industries that interest you, and you will find your answer.
Learn whatever a specific job requires.
Are you currently being offered a job, or applying for a job that requires a language you don’t know?.You should probably learn that.
Bonus SecretHere’s a bonus secret for free: If you get bored with a language, you can always learn another one.
It’s not that hard once you get the hang of it.
Just because you learned a language this year, doesn’t mean you couldn’t learn another one next year if you really wanted.
It really doesn’t take that long to learn a language — you can become fluent within a few weeks, competent within a few months, strong in a year or two.
Learning a language today doesn’t mean you’re married to it.
Unless you are in love with it, then letting go is going to be difficult.
????.Read this story later in Journal.
????.Wake up every Sunday morning to the week’s most noteworthy Tech stories, opinions, and news waiting in your inbox: Get the noteworthy newsletter >.