The Madara Uchiha of Tech World.
Disclaimer: This post is not a hypothesis, neither a guide nor a roadmap. It’s collection of answers and findings, there could be more possible answers that you can have also. You can have your own version of the script of how Madara became the ghost of uchiha (understand the pun here). Remember you are the director of your own life.
From past few months I had a question in my mind “Who’s a great software engineer?”. This question has bugged me for many days, until I started to go every other experienced/tenured folks to show this wanderer some light. The more exact question I asked was : “In your so many years of coding, did it happen ever it you that you worked with someone and you were like dude, that’s a tech might, if someone would ever ask me how does a kickass engineer look like, I’m gonna say it’s them”.
Start Line
Don’t become a Sachin Tendulkar who’s trying to be an expert in singing.
This is not a race but a marathon. But you cannot run a one if you don’t know which one is for you. This is where one answer hit me the most. The person started of with “Know yourself first”, well, this statement is pretty generic to all aspects of your life but it’s the most ignored one. Finding yourself is not an easy path to walk one, neither one fixed route, you change with time, your goals too and apparently your likes too. But for every iteration of starting a new job/thing/learning always take time, sit down, and see, is it really who am I?
Timelines, branching, TVA
Having strong computer fundamentals is the most clichéd yet most ignored advice, don’t be the surface guy be the one who has touched the ocean’s bottom. We try to become experts just when we start off with it, this can be the reason for many early “give ups”. Being a expert can be a yet unsolvable math problem, the ones where we have millions of bounty on it, like a very complex graph, neither nor curve. But despite of the fact of it’s complexity, there’s one simple rule: the 1000 hour rule. Play with it until you get a hang of it, spending time getting yourself debugging the errors which are not there on stackoverflow, might give you the edge of getting closer to the tech mights in the same domain.
“When the snows fall and the white winds blow, the lone wolf dies but the pack survives.”
Take breaks, whenever you feel anxious, you feel like things are stuck, you have cold feet for even travelling to the place (might be your office) where once you were excited to go, stop for a moment. You’ll and you are bound to have multiple failures, without these your journey will not be worthy enough of taking. But in the times of downfall, we all need our sensie, or sarthi who can guide us. Don’t hate me for stating Geeta over here (still reading it), but before the great wars we need someone you says : “Give up this weakness of the heart. Stand up and face your problem.”
TIME, dimension that makes everything meaningful
Unfathomable, at the workplace
I’m most certain that of all of you who are reading it have experienced it. Senior folks coming on calls fixing your bug in a second? Code reviews, they come on your ego, trust me, they humble you down and I can’t scale their importance on any metric possible, they are oxygen to your survival here. But these little experiences comes down to you as some major events of self doubts. And this why in the previous paragraph I said everything makes sense when you attach time to it. The 1000 hour rule also makes sense because of it.
Unfathomable, I didn’t knew the meaning of this word, but as I searched for it, it was like someone is writing about me, dot to dot. It shatters you when you see others, but comparison done on wrong parameters can be a good suicide plan. Comparison comes easy as a human, what is not easy is to see the brighter side of it, where you learn your ethics from others and you plan on it. Take the advantage of being a social animal, go to those tech mights at work, ask questions to them, get yourself reviewed multiple times, have those hard to have conversations. You’ll thank yourself for doing this latter in your career.
Patterns, they are everywhere
This is about my POV, feel free to disagree on this. Become problem solver at heart. How to solve the problem is secondary not primary skill.
Tools and technologies come and go, they have their peaks. What stays is fundamentals, the principals which were built around a problem. Probably that’s why SQL is still the top tier database. I don’t want be a language or tech-stack person, that’s how we have T-shaped skill curve. One simple line to describe it is, hey, this my knack but if you give me another challenge I’m all ready like a knight for it, bring it on.
When someone asks why OOPs, people start vomiting data abstraction, data hiding, security, bla bla bla. This is the moment where I take a step back, and I love to say it, OOPs because we are real humans, building application for real world, world having real problems, real problems requiring real solution. Data hiding because that’s a human concern, data abstraction and encapsulation, because its human to do things in organized way.
Don’t eat the elephant, eat ants instead
It looks overwhelming, everything, the big code bases, the achievements, the milestones. Trying to get everything at once will make you burn out. Go for smaller goals, smaller tasks and then complete your puzzle. As you go from one ant to another you see where your elephant lies.
Last line before I wrap this, once again a clichéd statement: be uncomfortable. But being uncomfortable doesn’t come with compromising yourself to an extend that the damage is beyond repair. Draw your lines. Grow but heal also.