I agonize quite often over new technology. I certainly know why and where that comes from, and any certain senior developer that's been in the game for a while can understand. It's just as an early engineer, you can get trapped in decision paralysis. Am I choosing the right technology/language to learn? Do I dive deeper into node? Dive into infrastructure? Do I learn rust? What about blockchain stuff?
TLDR: Balance between lightly trying new things, master one thing.
Fortunately I'm finally coming to understand the overarching picture. It's about having principles, knowing the end goal. Keeping tabs on trends is enough. Thus my latest writing is my first attempt at sharpening my focus.
Surfing Development Waves Everything below is simply a copy paste from the article.
This post is my recent musing of how software development evolves. It’s a means of coping with the ever-shifting landscape of technology as a young developer — trying to find purpose and goal, ya know?
I recognize three ubiquitous forces that determine the direction of software technology (please don’t quote me). As someone new to anything — certainly myself and software— it pays to understand why, how, and where trends go.
Knowing these trends enables someone to pick the right technologies, the right mental models, and even the right companies to shape their skills. So instead of aimlessness, instead of burnout, I get focus! My three observations
- Product needs
- Ease of development
It’s the basic software development lifecycle.
Product team comes up with some requirements — product need. You as the developer are given the challenge, and determine a feasible game plan — ease of development. The market changes. You and the product team adapt and shake up the old feature, recreating, rewriting —code deletability . How fast and easy we do so is key to our success.
Hmm, I could be totally off the mark, but let’s take a look at ReactJS. It grew successfully as a solution to a problem in web development: it introduced better code modularity, better developer experience, and…yah a host of other things.
Containers — package all your code in a box. Run it. Destroy it.
So what, Dennis? What’s your point again? My point is that developers have to understand what causes trends else they get swept up overlearning and burnout because they’ve spread themselves too thin. I hope to find this some form of this ideology as the underpinning of my engineering ethos. Whether picking a new tech to learn, what to refactor, what to build, I hope to be able to fallback onto a set of guiding principles when I feel myself being torn by hype and trending technologies.
Maybe this is all written too spuriously, maybe I’m too tired, and I’ll be really embarrassed reading this later. But at least I’m doing something to try to save myself from running the proverbial treadmill(s).