It 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.
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.
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.
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! 🙂