I spend a lot of time on educational forums for technology, specifically programming, and am noticing a trend. People teaching themselves to program have a difficult time choosing a technology to invest their efforts in.
First, let me reassure you that this is completely natural. Even seasoned developers wrestle with this issue frequently. So you can stop worrying that you’re missing something, or that you’re out of your depth. At the end of the day, your time is limited and it’s important that you invest it wisely.
So how do you choose from the hundreds of languages and available frameworks? Your best bet is to step back and take a look at your goals.
Why am I learning to program?
I like to imagine that programming languages and frameworks are like a Mechanic’s tools. Each one does a specific job and part of becoming a good mechanic is knowing the right tool for the job. So your first step is to define the job. You want to learn to program, but what do you want to do with that knowledge?
Let’s say, for argument’s sake, you are learning to program because you want to become a Data Scientist. Data Science has very specific languages and libraries that are used in its industry. So you would do some google searching and probably realize that Python has strong support in the Data Science community. There are tons of languages, libraries, and tools used in Data Science but at a bare minimum you know that investing your time in Python will get you on your way.
Technology Moves Fast
It was only a couple years ago I had to invest a bunch of time into learning and becoming proficient at AngularJS. The industry was so thirsty for Angular developers that it seemed like it would last forever. Fast forward a few years and most people would laugh if you suggested developing an application using Angular.
This type of turnover makes it feel like languages and frameworks are a moving target. That’s because they are. It’s normal to feel overwhelmed when trying to decide which ones to learn. Unfortunately, there’s no secret that I can reveal to you that will help make your decision.
However, I can let you in on an industry secret that is rarely discussed on most programming forums. Developed software doesn’t disappear because silicon valley has moved on to a new framework. Angular might have only been popular for a few years but during those few years a ton of software was developed using it. If you read my origins story you’ll remember me saying that the majority of programming is maintaining, not building. So although Angular is no longer being used frequently, I’m still making money every day maintaining applications that were built in Angular. I don’t have the actual numbers, but I can promise you the return on investment for learning Angular was extremely generous.
Save room for dessert
One last thing I want to mention is investing in technologies that you personally enjoy. Learning Python changed the way I looked at programming. The syntax was so clean and the language was so idiomatic that it felt like an extension of thought. Whenever I want to write code for myself, I always use Python because I enjoy it.
Clients and peers alike will always respect your passion for technology, no matter what that technology is. We tend to naturally excel at something if we enjoy it and people pick up on that. Clients want to know you’re passionate about your trade and spending time learning a language you enjoy will always be a solid investment, even if it doesn’t have immediate market value.
Wrap it up
I hope this helps give some insight into how you should approach choosing technologies to learn. It’s important to remember that just because a technology falls out of the limelight, doesn’t mean that the time you invested is no longer valuable. This is especially true in the software industry.
Thanks for reading and good luck!