At some point in our careers, we become complacent to our industry and start to rely on the number of years we’ve been playing the game to market ourselves.
When I was hiring for my team, I never liked to use years as the main basis for consideration. While it may work out well in other sectors, having five years of coding experience doesn’t necessary mean that you’ll be an effective programmer.
There’s more to code than just churning out the lines.
Last year, the company I’ve spent over five years with died due to unsustainable losses. While others on the team quickly moved on and found new jobs, I decided to do something a little different. I spent the ensuing six months in a state of confusion. Then in January, I decided to take a Depth Year.
The Need for Depth
However, programming is much more complex than a person’s ability to copy and paste code from Stack Overflow and watch tutorials. It’s a communication tool and a language that’s often written without much depth or understanding — resulting in sketchy code that turn into horror stories.
Code philosophies, paradigms and modes of thinking are not something that many developers explore once they’ve got a working program. Optimization of code becomes secondary and only touched on when there’s an issue. But it is these things that help make a codebase clean, robust and cohesive.
Personally, I am guilty of the above, despite telling myself every time that I should know better. But coding is also a series of habits, which sometimes need to be unraveled before trying to move forward.
Lessons From Warren Buffett
Once upon a time, Warren Buffett had a life changing conversation with his personal pilot. It went along the lines of the billionaire asking what his employee wanted out of life and ended up with a list of 25 things.
The billionaire then asked for the employee’s game plan, and the man told his boss that he’ll work on the top priorities and fit in the others when he can.
This led the billionaire to shake his head and he told the man that he’s got it all wrong — that he should be working on his top five and ignore the rest.
While the narrative of the above tale may have been edited and condensed for storytelling purposes, the point of the story is that you’re not going to achieve anything in particular, if you don’t have a clear vision of what you want to achieve.
When working in tech, you’re put on one project and then moved to another. You don’t really get time to work on the things you want to do, partly because you’re getting paid to make something for someone else. There’s nothing wrong with that either. You’ve got to pay the rent or the mortgage somehow.
But being a code monkey doesn’t really make you a better developer in the long run.
Over the years at my old company, I felt more and more like a code monkey that never had time to sharpen its tools. It felt like I was constantly hacking away at trees with a blunt ax and I hated it.
After extensive thinking about the Warren Buffett story, I decided to write down my list of 25, and marked my top five. It just so happened that becoming a better developer made it onto the priority list.
The Task of Becoming a Better Developer
When you work at a particular company for a certain number of years, you become the big fish in the small pond. After my contract ended, I took the opportunity to decide where I wanted to go as a developer.
Rather than finding myself another job, and doing the same thing all over again, I started to chase professional growth instead.
In the last few years, I didn’t really focus on my growth as a developer when I failed to protect my time. It was a lesson I learned the hard way that led me into a state of burnout and mental stagnation.
From a career perspective, the natural progression upwards is a management role — but after a few interviews and potential job offers, I decided that I didn’t want to be a manager.
I still wanted to make things, to code, to think — the architecture, to step back and see the moving parts work together. That’s the one part of me that’s always been consistent.
I’m a creator by nature and I wanted to be better at it.
Maslow’s Hierarchy of Needs
As developers, we often forget that we have human needs too. Or maybe it’s just me and I learned it the hard way.
After the end of my job, I experienced an existential crisis. It’s quite a dramatic event in life when your entire work portfolio disappears overnight.
I stayed with the company through thick and thin, through mergers, through system meltdowns, DOS attacks from Russia, midnight deployments, 3am wake ups, and I even made the decision to cut short my maternity leave to get back into the office. Then suddenly, it was all gone.
The magic of social media eventually led me to Maslow’s hierarchy of needs and it got me thinking. While my basic needs were met, the needs of the upper tiers weren’t anywhere near where they needed to be.
When the new year came around, I decided to take a personal Depth Year — a conscious effort to increase my personal understanding of myself, explore my interests and grow my knowledge and understanding of programming as a language.
In a way, taking a Depth Year is my take on the pursuit of happiness.
Giving Back for Growth and Feedback
The Japanese have a thing called kaizen — the act of continuous improvement.
Mathematically, if you were to improve 1% daily, you’d be 100% better in approximately 70 days due to the power of compounding.
Progress also becomes visible when it is tracked.
Personally, I’m a words person. I like to think and I like to talk about thinking. There’s something about writing that helps me clarify my thoughts and untangle the enmeshed ideas inside my brain. I’d like to think that over the past six months I’ve gotten better at it.
Writing about code also helped me to see the gaps in my knowledge in a structured manner.
- I’ve written controversial pieces that resulted in personal attacks and abuse in the form of private messages on Twitter and LinkedIn — a unique experience that’s helped me grow as a human.
- I’ve also written coding tutorials to help others and lessen the struggles I experienced in order to find the answers.
- I’ve written guides I wished I had when I was starting out, and made it into a personal checklist of the things I still need to address.
But most importantly, I’ve achieved my personal desire to give back to the community that’s helped me become the developer I am today. There are gaps in the tech learning space where I feel I can pitch in and contribute, and I’m currently doing so through writing here on Medium, with plans to expand onto other platforms and medias in the future.
We often get lost and sidetracked by life — until life decides to pull the rug from under your feet. However, you don’t need to wait for that moment to happen. Before my own journey, I often contemplated the idea of taking a Depth Year but I lacked the courage.
In a way, life forced the Depth Year onto me because I didn’t like the alternative — to continue living and coding with a sense of never knowing quite enough and constantly feeling like a code monkey, rather than an actual developer.
While there is no end to the learning journey, there’s a difference between the conscious act of choosing a self-guided path to learning, and learning on the job.
Anyone can take a Depth Year to develop facets of their life and find direction, rather than be complacent to the current situation. It is a proactive approach that prevents us from settling for less.