Title: Should I (re)learn Java or Go? Date: 2016-01-26 Author: Michael Category: Dev-Notes Tags: Development, Python, Go, Java Slug: java-or-go Status: published
There are probably thousands of developers struggling with the question: Should I learn X or Y, stick with Z or learn that obscure XyZ? I know my time is probably better spent actually creating rather than writing here, but I felt I needed to get this down on “paper.”
There are also issues related to not being a full-time developer that relies on a knowing a particular set of technologies to “pay the bills.” Since I am not paid to code outside of web development in a free-lance capacity, it can be said; I am free to choose what I want to learn, right? Not really, as I would like to become part of the developer community on a professional level at some point.
I’ve asked myself if I should take a more pragmatic approach to this whole ordeal. The obvious answer is more complicated than just reading and producing data to analyze… or maybe its not. So, I created a small scraping script that gathers job posts on Cyber Coders. I can then analyze the words used in the postings to attempt to gather some intelligence about what employers want.
The truth of the professional development story probably lies somewhere between intuition and hard analysis of the technology proficiency employers want. Therefore, I am not trying to fool myself into believing that I can postulate the best language ecosystem to master by filtering words on job postings. What I do believe is that this method will produce a decent starting point for what employers want today. From there, we can posit some general areas that may be hot in the next few years.
The “analysis” is here.
I am not sure how to proceed in a way that guarantees long term success, and the answers are still questions. The next part comes down to what will keep me engaged long enough to dig in and get somewhere with said language. The best programmers have written that its not about the language, its about the programmer. Considering the pace of technology I have to agree that one should be very nimble and constantly learning. However, I do believe that hitching your horse to a decent wagon seems like a good idea.
The example above is meant to illustrate that “hitching your horse” to a wagon can be incredibly powerful. Obviously, timing and other factors out of one’s direct control can play a significant part. However, we still can’t minimize the role that larger ecosystem plays in programming languages. Platform market share, consumer demand, walled gardens vs. open source, hardware innovation, macro economy effects, and more all play significant roles in the adoption and dissolution of languages and their ecosystems.
So what does this all mean for me choosing to (re)learn Java or learning Go… or maybe even Swift? That much of what makes these languages and ecosystems successful is not in my control. It means that learning for the sake of learning really isn’t going to harm me in any way. Perhaps learning multiple languages is going to make me a better developer overall. If I keep my eyes open, maybe I will be in a position to be the fictional developer we discussed above.