The Tides of the Programming Industry

Tides of ProgrammingIt is hard to believe that in a few more short years I will be approaching my 20th anniversary as a programmer. During my career I have tried the best I can to stay on top of the trends, see what others are doing, work for companies who are perhaps a bit lost in the legacy realm and push those companies into the current waves of innovation. One thing I have noticed over this time is that the industry is very much an ebb and flow like waves crashing on the beach. I guess you could say the same for any industry really. For those interested in the software industry, knowing how to sail safely through these waves will help make sure you have a long life doing what you love.

Knowing the Programming Currents

If you were to go to a site like DZone or Hacker News you might be bombarded with articles talking about fringe platforms and technologies like Node.js, Guice, Angular.js, Maven, NoSQL factions etc. It can get pretty daunting to say the least. But as I have seen over the years some of these platforms and technologies make it, some do not. Which are you to follow and how do you get a foot hold in the industry so that you can stay tethered to what works while not being afraid to venture out and explore these new shores? The last thing you want to have happen is you go down the path of Angular.js only to find yourself stranded on the rocks throwing up an S.O.S.

The currents I speak of are the underlying languages that many of these platforms use. The time tested languages that have served us well through the years and continue to serve as the foundation of software today. I argue that if you learn a few key programming languages, and learn them well, you should find the oceans of programming will be your oyster. These key programming languages are the currents of the ocean and every sailor should try their best to use them.

  • C/C++ – The long time workhorse of the computing world, this utility language really has all you need to get down to hardware up to much higher levels of abstraction. It can be cryptic at times due to all the legacy it supports, but if you can get your mind around this language you will certainly be a sailor of the seven seas.
  • Java – Java has a huge following and is often the first language most of us were exposed to (except me, I was exposed to C/C++ but I digress) and is continuing to be a staple of mobile platforms like Android. If you can work with C/C++ you will certainly want to pick up a bit of Java too and build a career with it.
  • A .NET Language – Whether we like it or not, Windows runs much of the worlds computers. Many of those platforms use .NET languages for their development. So I suggest you try to learn at least one of these languages. My preference would be C# but VB.NET will work also.
  • Web server-side language – This could be PHP, it could be ASP.NET or even something like Ruby/Python. Know one of these and you pick up a great tool for the web.
  • JavaScript – Normally I wouldn’t have put this in the list but it has really boomed in recent years and has been around for ages. It continues to be at the forefront of developing some great tech and won’t be going anywhere anytime soon. Invest in this language along with your server-side knowledge and you will have skills that will conquer the web.

Know Thy Currents And You Will Never Be Alone

Many of the new platforms you are seeing come out now have their roots in one or more of these languages I mentioned above. Even if you don’t exactly know the workings of these new technologies, you can often read their code and know what is going on. Platforms will come and go. However, you will often see that they continue to use the same languages that have been mainstream for years and years. If you start seeing a hot new language that is not one of the ones I mentioned above, keep an eye on it and see if it proves itself. For example, Google is really pushing the “Go” programming language which might seem interesting, but there are not a ton of Go developers out there breaking down markets with it yet. You will know if suddenly a ton of job postings spring up asking for Go programmers.

Like Waves, the Programming Industry is Cyclical

One day all the programmers are going to functional programming, the next they are reaffirming themselves in OOP and the day after that they go back to functional programming. Again one day they are saying NoSQL is the future, the next they are saying relational databases are the way to go only to end the day with their NoSQL books by the bed side. I believe these cycles are due to specific product technologies and influencers in the industry. Google (a big influencer) might come out pushing some AJAX solution for their Gmail platform saying that they see increased productivity, so everyone gets on the band wagon only to see that Facebook (another influencer) has also improved productivity by turning away from their AJAX solution.

Just understand that if you follow tried and true technologies and languages, you can roll with the waves a bit better. You can explore that new great Go programming language because in the end, when push comes to shove, that Java or C/C++ you know will certainly be there to really save you in case Go never pans out. Some of you may not agree, but I am telling you as someone who has been out there and done that. Never stop venturing out to learn new things, just know how to get back out to the open ocean in case of danger.

Thanks again for reading! 🙂

About The Author

Martyr2 is the founder of the Coders Lexicon and author of the new ebooks "The Programmers Idea Book" and "Diagnosing the Problem" . He has been a programmer for over 18 years. He works for a hot application development company in Vancouver Canada which service some of the biggest telecoms in the world. He has won numerous awards for his mentoring in software development and contributes regularly to several communities around the web. He is an expert in numerous languages including .NET, PHP, C/C++, Java and more.