Coding languages: how to choose the right one

So, you’ve decided to learn how to code. The questions is now, where should I begin? What language should I learn? With so many languages and stacks out there, the decision can be pretty daunting. Just a little over a year ago today, I also decided to make the big leap into software development. At the time, most blogs and articles I read told me it doesn’t matter what language you learn, just choose one and the others will come easily; “the important thing is to just start coding.” Though this is great advice in many respects, it’s also not the best. After 12 months of programming, here’s what I’ve learned.

It’s all about demand

When starting out a year ago, I had an interest of going into mobile development, but considering most boot camps in my area did not have mobile development courses (mobile development is still pretty new so finding experienced developers to instruct can be difficult), I decided to learn web development instead. My boot camp offered the MEAN stack (JavaScript software stack using MongoDB, Express.js, AngularJS, and Node.js) or the .NET Stack (Javascript, C#, SQL). I had no idea what to choose. At my boot camp orientation, I asked one of the instructors for his advice and he immediately replied,

“.NET because that has the most jobs in the area. And once you learn one stack, it’s easy to pick up the other ones on your own.”

After hearing all these articles telling me how the MEAN stack was new, exciting an being picked up by start ups, I was also set on going with this lucrative and new stack. But here’s the issue: just because something is shiny and new, doesn’t mean it’s the best option. The most important part of all the hard work and time you will be committing to learning how to code is getting that job. So, hop onto you computer and go job hunting.

What factors to consider

Once you’re on a job engine site, start doing job searches by language. To put my instructors advice to the test, I went home that same day and entered a search for C# and then .NET. I then also did a search with keywords for the MEAN stack. He was right. There were by far more jobs for .NET then there jobs for the MEAN stack in my area. That also made me wonder, then, why would you also teach MEAN if it’s not as in high demand? I researched and noticed that the MEAN stack was more popular in Silicon Valley and with start ups in almost any city. This is because the stack is open-source unlike .NET so there is less cost involved for the business, which is important for start ups.

So now you have to consider some factors. Where will you be applying for jobs? If you are willing to relocate just about anywhere, then you can choose almost any language or stack. You will have more flexibility. If you are looking to narrow your job search to your local area, base your decision off the job market there.

Coding Dojo provides a nice graph of the job market overall, but remember to search your local job market for any variation to this graph.

Here is my list of factors to consider, starting with greatest priority.

  1. What language / stack is most popular for jobs in your area? Do searches for Java, C#, Ruby, Swift, Kotlin, JavaScript. Meet the demand.
  2. What languages and stacks are experiencing the most growth? Growth is key because it insures increased job security for the years ahead. A quick Google search will tell you that most people agree Python, Java, and JavaScript are the top three for growth. Mobile development is becoming much more popular than web development, but both are still in demand and I don’t see web development going away anytime soon. There is an increased demand for mobile development, though. You many also want to consider C# and C++ if you’re interested in AR or gaming development.
  3. Go with your passion. Some people may place this at the top of the list. The reason I placed it as lowest priority is because the most important factor is to get a job so you can acquire experience first. The most important factor is to get your foot in the door and your greatest chance is by meeting the requirements of skills with the highest demand. Once you do have that job, you can easily learn any language or stack on your own and then apply for those jobs later. I am currently a software engineer for a consulting company doing full stack web development with Java and AngularJS. But, as I mentioned before, I have the greatest interest to do mobile development. That’s why I am finally taking the time to learn Swift so I can start getting into mobile development.

Most importantly…

Now, if finding a job is not your most important factor, than maybe you can go with your passion with little regard to the job market. I would take the advice I am giving and suite it to your own needs and what you think is best to help you succeed. Not everyone is the same. But, I think the factors I have listed out will help guide you in making the right decision for yourself. Let me know what you think in the comments! Any other advice? Questions? I’d love to hear from you. Good luck coding!

 

 

 

 

 

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *