Maksim Samasiuk - Fotolia
So how do you stay ahead of the curve when it comes to managing your software development career, while at the same time not getting overwhelmed by the proliferation of new tools and technologies? Is there a particular platform that programmers should be focusing on, or should everyone be trying to live up to the lofty expectations of a full stack developer?
"There's so much going on, and it ebbs and flows so quickly, that you should just pick whatever interests you," said Java Champion and IntelliJ evangelist Trisha Gee at QCon 2016 in New York City. "It's just too hard to be an expert at everything. There's just too much."
Indeed, it would be a lofty goal for even the most talented of developers to be an expert at cloud deployments, container management, microservices architecture, IoT management, Android builds, embedded device development and big data processing, all at the same time. And for that matter, it would be a pretty rare occurrence for any one job to require skills in all of those aforementioned subject matters. There's no shame in focusing on one thing at a time, and not trying to earn entry level merit badges in every new technology that arises.
But becoming an expert in a given field doesn't necessarily mean one needs to stick with a particular topic or technology forever. Gee is a prime example of how to keep your career progressing, not by committing your life to a single subject, but instead by trying something new every few years. In just the past six years, Gee has gone from developing enterprise applications for the financial markets to doing developer advocacy for the popular NoSQL database MongoDB, to where she currently finds herself as a developer advocate for IntelliJ at JetBrains. New opportunities abound in the enterprise computing world, and taking advantage of new opportunities that will allow you to master new technologies is one of the great benefits of being part of the software development space.
What is a full stack developer?
Perhaps in contradiction to Gee's stance is the fact that enterprise organizations are increasingly hunting for professionals who describe themselves as full stack developers, which on the surface would seem to imply that the candidate would in fact need to be an expert in all things, although Gee doesn't quite see it that way. To her, the idea of being a full stack developer is more about being flexible in terms of your job functions and being able to accept new and different challenges, as opposed to being an expert on everything from rebuilding the Linux kernel to configuring the continuous integration server.
Full stack basically means you need to be able to go with whatever we throw at you.
developer advocate for IntelliJ, JetBrains
"Full stack basically means you need to be able to go with whatever we throw at you," Gee said. "You'll have to do some front-end stuff, you'll have to do some back-end stuff, you have to do some DevOps, and possibly even talk to customers."
In many ways, the request for a full stack developer is less about being an expert at all things, and more about being willing to adjust to the needs of the business, as even the most forward thinking organizations have a hard time predicting exactly where the constantly changing landscape is taking them. And in many ways, that's a good thing, because it keeps things fresh, and allows a software developer to gain exposure to new technologies they might, one day, want to become an expert in.
What skills do you think a full stack developer should have? Let us know.