Many times in my career I’ve been at some technical crossroads which demanded a decision on my part:
- stay the course with some primary skillset I’d been developing or
- branch off on some new expertise.
If you think about it, that’s a pretty big gamble. What will hiring managers be looking for two or even five years in the future? What will look better on your résumé, a couple more years of experience in the old skillset or the old skills plus the two years of the new skills? Is it possible that continuing to work with the old skill will now somehow look bad for your career? But then, if you include too many skills does it look like you’re not focused enough on anything to actually have expertise?
I’d suggest that the following trends are appearing in the development playing space.
- Java is no longer trusted: Oracle’s Java was a good idea back in the early ’90s. It allowed coders to write one set of programming which could be compiled and then distributed and run on a variety of platforms. Several security-related issues with Java have forced many to outright ban Java from workstations within organizations. Apple’s Safari browser blocks the plug-in for Java now and Microsoft Internet Explorer in newer versions disables Java by default.
- Objective-C is a pain: Apple probably should have replaced this language when it introduced iOS. Since it only really is used for Mac OS and iOS development, a coder’s skillset in this language limits them to just Macs, iPads, iPhones and the Apple Watch.
- C and even C++ seem dated now: C (circa 1972) and C++ (circa 1979) are wonderful languages and yet they’re over thirty years old and that makes them seem stale to coders today. C# (circa 2000) is now over 15 years old and is beginning to feel the same fate.
- .net is only for Windows: Even though Microsoft had originally intended .net to compete with Java as a multi-platform coding option, you don’t see this in practice since nobody has worked on a UNIX .net platform to allow this to take place. The trend would be that single-platform solutions don’t have enough market share to ultimately survive the test of time.
- Every day there are more coders entering this space: Schools globally have been pushing technical careers over the last three decades. Outsourcing websites and better English training and translation software are allowing people in other countries to compete more effectively with U.S.-based coders.
- It’s not just keyboards and mice anymore: Hand-held devices, touchscreen monitors and see-through goggles may be the norm soon.
- Apps and stores (not programs and major versions): It used to be that a new version of a program was delivered and a major update cost money. An app now usually comes with unlimited updates and yet “in app purchases” still allow a stream of money for the developer. In fact, these updates allow the developer another marketing opportunity to up-sell the customer something else. Apple has made so much money with iTunes that Microsoft has completely re-tooled their own operating system to chase that same business model. Google has done the same with their Android platform.
See the Future
To me, the future of coding will embrace anything that will allow one set of (familiar) code to be compiled to multiple platforms.
- Node.js has enjoyed an amazing degree of implementation throughout the world in its short lifespan. Knowing how to code to this would be in your best interest.
- HTML5 has been used in a fair number of high-profile websites, enough to ensure its popularity for a few more years.
- The github source code repository has over 30 million individual repositories in place and has built-in support in many other systems which can pull code automatically from it. It looks like github will be around for a while.
- Several popular languages will likely be effectively dead soon for a variety of reasons: Java, Objective-C, Visual Basic, C, C++, .net and Swift to name a few.
Be the Future
If you want a job as a coder in the future it’s time to start actively steering in the right direction instead of just passively continuing to use the platforms you’re now on. If you don’t have the skills I’ve listed above then consider taking on a project to learn one or more.
If you’re currently embedded on a team that uses Java, for example, then I’d suggest that it’s going to be increasingly harder to find work elsewhere. Given that it’s becoming harder to find coding work now with all the competition it’s more critical to possess the skills that managers are looking for on a team.