A Developer's Dilemma.

A career in software development is a lifelong commitment. It requires you to be a constant learner since the field evolves quite quickly and might render you ineffective if you lay back. Most devs begin their journey by learning basics such as HTML and CSS then, later on, delve into other programming languages and technologies.

The tech field has numerous sub-fields such as cybersecurity, networking, machine learning, web development, mobile app development, DevOps, embedded systems, blockchain, UX design, and many others all of which complement each other. Whether a college or self-taught programmer isn't what really matters but the ability to use the gained knowledge to build something useful that can solve a problem. Ehc8MNhVoAEABFP.jpg

After having a solid understanding of computer programming and software design concepts such as OOP, functional programming, architecture, testing, and deployment, developers tend to select one or a few sub-fields and tech-stacks to focus on their career journey. Sometimes this is usually a tough decision to make as it is influenced by a couple of factors such as the community involved in the technology, availability of jobs, potential income in the field, personal passion, or maturity of the technology.

This is where the dilemma comes in. Take a scenario where a developer is very good at writing machine learning software and at the same time, s/he can write robust web apps(in Django, React, Vue, phoenix, or whatever) and designs stunning UIs and UXs for his projects. He is also pretty good at blockchain and equally understands the aftermath of the ongoing craze around crypto such as Ethereum, Dogecoin, and Bitcoin which will undoubtedly push the demand for Dapps developers and greatly influence Defi. Making a decision on what to focus on in such a situation can be very daunting and time-consuming. Trying to master all these technologies might not be feasible while choosing to only focus on one might not be the best idea.

At one point in my dev journey, I found myself in this puzzle. Being naturally curious, I occasionally find myself learning about technologies that I possibly won't use in my development work therefore choosing to only focus on one technology would never be an option for me. After thorough research and consulting, I decided to go with the T-approach/model. The T-approach simply means being open-minded and always ready to learn new stuff and at the same time having that always go back to tech stack that you can use effortlessly.

Ewn65LLVcAM5Nu7.jpeg

It might not always be as simple as it sounds given that every developer's journey is different and unique in its own way. When faced with this tough decision, I think the best approach is to do thorough self soul searching to find out what you really love working on in tech and also consult mentors while doing extensive research on the field.

Have you ever found yourself in such a position? How did you work around it?