4 biggest tips to improve as a developer
"The best programmers are not marginally better than merely good ones. They are an order-of-magnitude better, measured by whatever standard: conceptual creativity, speed, ingenuity of design, or problem-solving ability."
Randall E. Stross
Everyone aims to improve in their skills, and be the best they are capable of being. But how? The Software industry is obsessed with the idea of the 10x engineers. The engineers who are 10x better at their job than their peers. But how?
Here are 4 actionable steps I have used myself, or seen others to succeed in their technical mastery.
If you are very new to programming, start by reading this
Teaching and writing
“What many people underestimate is that being a good writer, whether that is through emails or through documents, allows you to be more impactful. I see many engineers ignore that skill. You might be proud about your code. You should also be equally proud of the craft of writing… Writing is a highly underestimated skill for engineers.”
Urs Hölzle (Google’s first VP of Engineering)
You are the only one responsible for your skills and development. Being a better developer is your responsibility to practice and hone your craft. Being a better developer is an ongoing process that never stops, and writing helps you learn more.
By writing you force the boundaries of your comfort zone, to learn a new topic to talk about, and "put yourself out there". You start a discourse where when you're wrong, people are very happy to correct you, and offer feedback.
The best way to become a 10x engineer is to teach 10 people what you know, and empower them in their development skills.
Put your expertise online and open source what you know. Your technical writing acts as portable capital as you move job to job, to show the depth and breadth of your knowledge. Writing not only showcases it, but develops it too.
"The man who does not read good books has no advantage over the man who can't read them."
Reading is easily the most powerful tool, I would put this at number 1. Read a big well documented open source codebase, read technical books, read your colleagues code and read technical documentation.
Find the brightest minds on Twitter, Googlers and engineers alike and be a fly on the wall for their conversations.
As a starting challenge, change your watch preferences on a codebase you are most familiar with and review and read every change (or as many as you're comfortable with) that goes in.
If there is syntax or code you don't understand or can't work out. Ask the person who did it. Learn from everyone. It will help the coder clarify what the code is doing (if you can't work it out, it mustn't be very clear!) and will help you have more context on the changes for the ecosystem you work in.
Passion projects/ OSS
"We are what we repeatedly do. Excellence, then, is not an act, but a habit."
One of the largest jumps in my skills and confidence was when I made my first major program that visualised path finding algorithms . I started with Djikstra and did A* too.
It forced me to plan something out start to end. It forced me to give estimates, and hold myself accountable. I worked on new API's I was unfamiliar with and planned out my own architecture and clean design patterns.
If you haven't got a personal website, start there!
Even just publishing my pet project was an amazing educational experience in itself. You end up learning the entire SDLC start to end, and fill in your gaps. For me it was deployments and CI builds (I use Netlify). How do you want to test your project? You begin to self educate in an intensely practical way, as you have an end goal in sight, of getting the thing online!
Everyone's passion projects look different though. Plough away on some open source project for a few months, and see how much you grow. When you begin to interact, with people from different countries, with their own formed opinions, that don't know you, you can't help but learn from your mistakes. You get the added benefit too, where if you identify one smart person you get on well with, then you can glean valuable insight from their years coding and expertise. If this works well for you, specifically having someone to discuss your tech progress, apply for a mentor (for free) here .
The best developers I know always have something going on. Become busy! Having lots to do forces you to adapt to become more efficient and teaches incredibly well.
Exercise and sleep
"It is a shame for a [person] to grow old without seeing the beauty and strength of which [their] body is capable."
Exercise helps your memory and your thinking, directly and indirectly. The direct benefits of exercise allow your body to reduce insulin resistance & inflammation, and stimulate chemicals in your brain to affect the health of brain cells, the growth of new blood vessels in the brain and even the quantity and survival of new brain cells. The indirect benefits can aid with improving mood & sleep, alongside a reduction in stress and anxiety, which research indicates these can impair cognitive function. Studies have also suggested that the prefrontal cortex (clarity of thinking) and the medial temporal cortex (memory) have greater volume in people who exercise versus people who don’t.
Just as much as you look after your mental health, look after your physical health. IQ is noted to drop off as we age, and one theory is that the amount of oxygen our brain receives slowly declines if we get old without staying in good cardiovascular health.
My final bit of advice I have seen work, is to be critical of yourself, and think hard about your weaknesses. Keep a notebook of ways you can grow and what you would have done different when you make mistakes. Be kind to yourself, but dig out exactly what you're uncomfortable with and pursue that, to help your growth.
I tweet my articles here if you would like to keep up to date with my writing.