Be an exceptional software developer: learn faster and stay motivated!
Posted Feb 10, 2017 | 7 min. (1296 words)Don’t believe the articles that claim exceptional software developers are born and not made.
There are countless studies proving that grit, determination and the right mindset can help us achieve more than relying solely on talent, and learning how to be an exceptional software developer is in your reach.
Who are the people in your company you ask to review your code?
Usually, they are the ones who care deeply about code quality, who see coding as a craft. The ones who want to elevate the overall skill levels within the company.
If you feel like you’re stuck in a rut, or if you’re discouraged because it feels like it’s taking a while to level up on your coding skills, or even if you just want to improve, here’s five great tips for how to be an exceptional software developer.
1. Define your motivation
Why do you want to be a better software developer? It could be to gain skills so you can contribute to causes you believe in, to have more control over your career or even to earn more cold hard cash.
Once we define the ‘why’, it becomes a powerful motivator to get us to where we want to be. Just like writing down a goal creates a higher chance of achieving it, writing down our motivations will keep you focused on the path towards being an exceptional developer.
2. Deliberate practice
If we stopped learning and kept the skills we gained from university or our first job in tech, we would never get better. If you think how far you’ve come already, it was all down to hard work and continuous learning.
Although there are plenty of professional development tools such as Pluralsight subscriptions, textbooks and events, none of these are deliberate practice. Deliberate practice isn’t just repeating a task, either.
In the Psychological Review article, ‘The Role of Deliberate Practice in the Acquisition of Expert Performance’, deliberate practice is defined as activities that have been found most effective in improving performance.
To distinguish deliberate practice from other activities, the article lists four features:
- The learner should be motivated, exert effort and want to improve
- The task should take into account the pre-existing knowledge, so the task can be understood with just a brief explanation
- Learners need immediate feedback on their performance (for example, does a the programme compile? Are you unit tests passing? How were the quiz results?)
- Learners should repeat the same exercise or a modified version of the task
Although the article was written in 1993, it’s still being referenced today. Developer and author Kathy Sierra’s talk ‘Building the minimum Badass User’, expands the idea of the original article as she describes deliberate practice as “something designed to build a skill within one to three sessions”. If you’re getting discouraged after a practice session, just remember that it takes about three sessions so feel comfortable with the task.
3. Create projects
Working on our own projects outside of work will help us to be an exceptional software developer. Not only do we get to build cool stuff, we also learn new techniques and methods we can use in our career.
4. Cultivate good habits
Opportunities shrink as time goes on. But we have choices on how we spend our time, and it starts with good habits.
Our whole lives are habits strung together: we get up at relatively the same time each day, we know what we like to eat for breakfast, we get to work using the same mode of transport, we start the day looking at emails and support tickets from the night before, we order our morning coffee…
But how many of our habits are actually terrible? If we buy our morning coffee but have a goal to save money, we might be satisfied with the coffee available at work.
Motivation will kick-start your goals, but long-term progress is best paired with good habits to consistently improve and keep your goals.
In Charles Duhigg’s book ‘The Power of Habit: Why We Do What We Do in Life and Business’, he illustrates the habit loop:
One of the key pieces of research behind the loop Duhigg references is a study by MIT on how habits are formed. In this 2005 study, researchers experimented with mice in a T-shaped maze, first with a reward at the end of the maze, and later, without a reward. The maze also included an audible cue at the junction of the T informing the mice which side the reward was.
At the beginning of the experiment, the researchers found that neurons in the part of the brain associated with habit formation and learning – the basal ganglia – were highly active during the whole maze while the mice were learning. As the mice became familiar with the maze, the neurons were only highly active at the beginning (the cue) and end of the maze (the reward). A habit was formed. When the researchers removed the reward, but left the audible cue, the mice eventually stopped running the maze and the habit was broken.
Duhigg explains that to create good habits, we have to replace old ones. The secret is to recognise the cue, still have a reward, but change the routine to something productive.
5. Strengthen relationships
Since we spend around a third of our lives surrounded by work colleagues, it just makes sense that we enjoy our environment and work culture. We may not get to choose who we work with, but having better interactions with our colleagues will help us be an exceptional software developer. A good work culture decreases our stress in and out of the office, makes us want to stay at a company longer, and keeps us healthier.
If you feel your company needs to improve its culture, it all starts with you. Be an exceptional software developer by being someone others want to work with.
Three faculty members of the Harvard Negotiation Project wrote the book ‘Difficult Conversations: How to Discuss What Matters Most’ for everyday people to better deal with conversations that are hard to navigate. There are many strategies to diffuse potentially heated conversations, but the most practical we can use today is to stop assuming other people’s intentions. When it comes to difficult conversations at work, we only know our own intentions and not the other persons. However, we make assumptions all the time during conversations. We react and frame conversations based on our perceived assumptions.
Here’s an example:
A major bug is found in production. The first assumption is someone is to blame. Coming into a conversation assuming there must be someone to blame means you will be defensive. The second assumption is that others might blame you, so you speak in an aggressive, defensive tone. But by being defensive, it sends the message that someone has to take the blame. This situation isn’t constructive and there’s a high chance that you and others will leave the conversation feeling agitated.
Be an exceptional software developer
Be an exceptional software developer by first finding your motivation. It fuels us through difficult days at work or periods of discouragement. After defining our motivation, the next step is deliberate practice. Deliberate practice means we continuously upskill, while retaining what we’ve already learnt. Next, creating and completing projects means putting our deliberate practice to use, where our projects exemplify what we’ve learnt and let us see how far we’ve come. After that, we can look creating good habits so we use our time to consistently improve. Lastly, we strengthen our relationships at work to help add to a good work culture.
Onwards and upwards.
Do you have any tips on how to be an exceptional software developer? We’d love to hear them in the comments below!