We have been lucky enough to start working with two brilliant organisations at Shazam recently; My Kinda Future and Your Life, who both work to help inspire young people in their career choices.
Earlier this month we hosted a workshop for two schools from across London to give the students a chance to hear from some of our team about their roles, and also to have the chance to work on building their own apps.
Two of our brilliant engineering team took part in this workshop; Atena Saadati and Silviu Lipovan, and it is actually Silviu who inspired this specific post. He gave the students the top 5 Developer tips he’d give to anyone seeking a career in software development.
As I listened to his talk, I realised his tips are applicable for all areas of life, so I thought I would share them with all of you. Here goes:
Number 1. The one question you should be asking all of the time is: “How does this work?”
Ask questions of everything. Everything. Break things down and build them up again. Then work out how everything fits together.
A Developer’s brain should be instinctively curious, because the very nature of the work you will do will be to figure things out and work out how to solve problems. Creativity is at the heart of most development work in its purest form.
But why limit this curiosity to Software Developers only? Should we not all be looking at the world in this way, with our eyes wide open, as ‘Developers’ of whatever we are choosing to develop?
Let’s celebrate and engage that further, and keep asking questions when things puzzle us. One of the worst things we can do is to be afraid to ask questions when we don’t understand something. Asking questions is beautiful and you should never be afraid of doing so, people won’t think less of you – normally the opposite.
Let us also apply this more liberally, and use it as a tool for introspection. How do we work? What is going on inside us? How do we all fit together? Knowledge is power. The more we learn, whatever the subject matter, the greater we will ultimately be.
Number 2. There is ALWAYS a way to implement a feature.
Where there is a will there is a way. Our teams thrive on having problems posed to them and having to solve them. This is true of people working at all levels. Some of the coolest new features you have seen us launch in the past few months are as likely to have come from one of our brilliant interns as from a more experienced member of our team. The new iMessage integration is a prime example of this.
So let’s look at this more broadly from a life standpoint also. The truth is: anything is possible. Change is always available to us all at any time. We just have to choose it. So whatever the thing is that you think you need to ‘implement’ next on your very own ‘product road map’, it’s all to play for.
Start small and make constant iterations. I change a ton of little things all of the time; tiny things that are hardly noticeable. It’s only when I look back at the six months behind me, that I realise that those little changes have become big ones.
So my advice would be to keep it simple. Don’t try to do too many things at once. The bigger you make things, the harder they seem to be able to achieve and the less likely you will be to tackle them.
Number 3. Always choose being safe to being fast; don’t jump in; think things through.
This is a huge lesson for all of us. Take the time to stop, sit and breathe. Give yourself the space to think things through. So often we completely miss this part, and forget to give ourselves the space for reflection.
Developers know all too well the cost of acting in haste, much as it can be tempting. The fact is though, if you go with the first thing you think of, often you are missing out on considering a ton of other options; ones you might not have thought about.
This is where collaboration is also huge. Whether personal or professional, there are many people out there who may have approached a similar scenario. In development work, often we are looking at things that haven’t been done before, but that doesn’t make other people’s opinions any less valid. It’s always worth consulting with others, and seeing what they might have chosen to do, before making a call about what is right for you in the scenario you are facing.
Number 4. Problems and errors are actually opportunities.
Whilst it can often feel like the opposite, it’s worthwhile re-training your brain to see problems as opportunities. Take a moment to look back on the most challenging times of your life. It’s pretty safe to say you will have learnt something through living through the experience. In most cases my bet is that you came out stronger.
In development terms problems and errors offer the opportunity for creative thinking. A chance to learn what not to do in future. But also a chance to push yourself, and the technologies you are using, to try to do things in a cleverer way.
When applying this rule to life, it becomes my favourite of all (and one I’ve written about many times).
Newsflash: no one is perfect. We are a collection of creatures trying things out and seeing what works for us. That’s all. Trying. So if we get things a little wrong along the way, it’s really no real hardship. I’ve worked hard to re-frame my challenges as opportunities for learning. Of course, I still have that moment of horror when a challenge hits, but I quickly move past that into an okay, let’s minimise impact and deal with this as cleanly as possible.
What’s your own reaction to challenge right now?
Number 5. Tests are your best friends.
Silviu is of course talking about development work here, testing the software we have created to see if it works. In an environment like ours, you have to be prepared to have your work tested all the time and you need to be able to detach yourself from the results, rather than getting defensive.
It’s an incredibly natural human reaction to get defensive when challenged, and I’m not suggesting that feeling ever really goes away. But with awareness of those kinds of reactions, we are able to call them out when they occur, and hopefully choose a slightly different response.
Testing is a means of working out if something works. We shouldn’t be afraid of that. We should be spending our lives testing things out. The key is to embrace something wholeheartedly when it works though, but walk away when it doesn’t. This is a skill I am getting much better at, haha.
So you see; Silviu’s tips really were spot on. It pays for all of us to start thinking a little more like a Developer; whatever the ‘product’ or ‘feature’ is that we are trying to develop.