Doing this one thing consistently is the guaranteed path towards developer greatness. It is not a thing that you can sometimes do, or something which you should occasionally do. Inculcate this attitude in every day of your life and you will gradually start feeling the sense of heightened knowledge and confidence.
“My interview went nice, I think I cracked it.” I informed my father. It was campus recruitment season, I was in my final year of engineering. I had just come home after being interviewed for a job at IBM. I must say, I was reasonably satisfied with my performance. Next day, when I went to college, I came to know that I was selected and was given an offer. It was a good offer. I was quite elated.
Many years have passed since and when I look back, declining that offer was one of the really few good decisions I think I have taken. I would never have thought about being a developer, the way I do now, had I taken up that job. Big company jobs are nice, cushiony, filled with perks, bragging rights, but they all have one thing in common. They keep you in your comfort zone and your journey as a developer ends, even before it begins!
The Thing About Engineering
What makes a great developer? I began thinking. What differentiates some developers from the rest of the developers? The answer to this question probably led me to ponder over software engineering, in general. Even for that matter engineering, in general. The distinguishing feature about engineering, is the fact that every engineering project is essentially a fresh endeavour. No matter how many similar projects you may have done in the past, the next project will always throw something unexpected at you. If you are into construction, no matter how many buildings you build, how many bridges you construct, the next project will still be a challenge! Because something or the other will change, maybe the soil conditions, maybe the water table, maybe the wind conditions, maybe availability of material; something will change that will catch you off-guard. If you are a software engineer and are tasked to develop an e-commerce application, no matter how many e-commerce apps you’ve successfully developed in the past, this one is going to be different! The products being sold may be different, the user profiles of customers may be different, the tech-stack or the deployment environment may vary.
Elevated Sense of Understanding
Great developers are people who have developed an elevated sense of understanding in their domain of expertise. Because of which, they can easily adapt to changing requirements and deliver predictably. This higher order of understanding is a combination of two factors in my opinion — (1) greater amount of knowledge and (2) greater level of confidence.
The One Thing — Staying Out Of Your Comfort Zone
Staying in a cushiony job, essentially means, staying in your comfort zone. Which is exactly the opposite of what one should do if one wants to acquire knowledge. The more you put yourself in tough, unfamiliar situations, the more you will learn. More difficulties you conquer, more confident you will become.
Specialist or a Generalist, Path is the Same Towards Greatness
“I have been an iOS developer for 10 years now. I do only iOS development.”, Neeraj, a friend of mine mentioned, I was catching up with him after a long time. In today’s day and age, Ten years on a single tech stack is a really long time! I was stunned. In fact, I still remember doing a quick mental subtraction of 10 to cross-check that his first year fell after 2007, you know, the year when iPhone was launched! “Neeraj must probably be one of the most employable persons I have seen so far..”, another friend of mine, once mentioned to me. It was actually true. He had indeed carved an impeccable niche for himself. In whichever company he joined, he was where the buck stoped, as far as iOS was concerned.
“How did you manage to stay interested in a single tech stack for all your working life so far?” I asked him. “I just made sure that every next project that I worked on, I did something new, something more difficult or unexplored. If the work didn’t allow it, I simply joined a new company!”
Over the span of my career, I have seen some amazing engineers turning into project leads or managers. Ram, a client of mine, was one such person. He had gotten his hands dirty on shitloads of different things throughout his working life. Ranging from writing device drivers to building backends, writing complex Unix server management scripts to designing some sleek mobile app user interfaces. His diverse experience had helped him develop an amazing sense of intuition. So much so that he could lead projects without even knowing much about the tech stack beneath!
“Stay Hungry, Stay Foolish”
Today marks eleven years since the passing away of Steve Jobs. This amazing advice, which Steve Jobs gave to a bunch of students in a commencement speech, is still remembered! What is its essence? Stay hungry, never be satisfied with what you know, always yearn for more. Stay foolish, don’t be afraid to put yourself in situations where you feel foolish, you’ll learn there. Essence is, stay out of your comfort zone! Focus on staying out of your comfort zone today and everyday. Become one with the idea. And then just see your life change.
About the author
Hrushi M is an entrepreneur by profession and software engineer by training. He has the experience of bootstrapping a software consulting company and leading as its CEO for more than a decade. He is currently the developer and maintainer of superflows.dev, a framework for developing cloud-based server-less applications.