Write clean code and avoid the distractions of emerging technology
Ben Halpern Jan 14 Updated on Feb 07, 2018
I see a lot of newer and intermediate software developers proclaiming a big interest in an array of emerging fields. AI, ML, you have it. For better or worse, it is hard to know when the right time to "catch a wave" on trends is, but I believe our "fear of missing out bias" leads us to make a lot of bad choices and generally learn at a slower pace. As exciting as certain trends are, I also believe a lot of companies prey on newer developers for the purpose of building hype and ultimately selling something.
If you're listening for every signal, you are going to fry your brain and learn very few things at all. It takes a long time to be a highly-effective software developer and chasing too many trends can stunt your growth.
"Stable" technologies are a great place to get your hours in writing clean code. I won't define what is "stable" and what is not, but it's a shorthand for "years of reference material and plenty of established use cases". These technologies are often declared "dead or dying" only to live long after their presumed replacement fades away.
Paradigm shifts are not nearly as severe as they seem. I notice a lot of developers are worried about spending too much time writing object-oriented code when they might be missing the boat on functional, due to its (well-deserved) resurgence. But this is missing the point in many cases. That is not to say that trendy domains are inherently not stable. Functional programming itself is plenty stable and not a trend at all, just don't go chasing shiny objects. The principles of OOP are very much worth your time to learn.
The coding hours you put in with more stable tech mean better verification of correctness due to the great amount of literature and experts in these areas and more chances to master the act of writing code for the consumption of other humans. Practical software development has always borrowed from multiple paradigms and you will find it possible to move between them when natural glide paths arise. Forcing this out of fear of being left behind is not helpful.
Any fool can write code that a computer can understand. Good programmers write code that humans can understand.
— Martin Fowler
I too am very excited about all the fascinating new technology in our field coming out every day, but the most impactful skill I can continue to learn is writing better code. If I learn to recognize good code in a stable environment, I can apply these skills when the parameters are less defined.
Please, stay excited by the trends, but be impassioned by the small improvements you can make in the quality of your work. This will enhance your ability to contribute and evolve. If you nurture your fundamental skills, your radar for trends worth paying attention to will become stronger and when you do choose to jump in on something that piques your interest, you can do so with more confidence.