Dominic Fraser, developer at Skyscanner, takes us through his top tips and advice for CodeClan graduates who are starting their first role as developers.
My path to being a developer was unusual, though getting less so as more and more people re-train to enter the tech world. I originally graduated in Film Production in 2010, wandered the world for a while, then in my late 20s, decided to study Professional Software Development at CodeClan and see what that life was all about.
With no CS degree, no work experience, and only a four-month bootcamp to start me off, joining a well established tech company was fairly intimidating. I initially joined as a product manager, then a year later re-interviewed to move over to being a developer, wanting to build things first hand for a while.
Accept it’s impossible to do all the things, all the time
This is a hard one to learn. There are so many interesting things going on, so many things to learn, and so many things that are just a tiny bit broken that it would be satisfying to fix — but it is impossible to do them all. Sure, you can for short periods of time, and sometimes bursts of intensity and putting work first can be rewarding, but it isn’t sustainable or healthy long term. This is hard mainly as the pressure tends to be self imposed — whether through passion, fear, or dedication — which are all hard to step back from and recognise when you are spinning too many plates before you drop one, especially when the easy answer is just to work another extra hour.
Here though, all paths lead to burn out — which achieves the opposite of what you want. So, set your limits early, pace yourself, and prioritise within those limits. Don’t try to be a hero.
Specialise, while developing systems thinking
When narrowing down what to focus on, I’ve learned to value two things — deep specialisation alongside systems thinking.
Paraphrasing Charity Majors (from the panel talk ‘Developing software engineers to catalyze the world’s tech ecosystems’), juniors should go deep in something as ‘once you’ve gone deep in one thing you can go deep in anything, given the time’. The skills learned in the process of mastering one skill, and in managing being the go-to person for something, are transferrable. As you progress it’s easier to ramp up in any new domain you are required to know, while still retaining core value as a domain specialist.
And systems thinking? This is thinking outside of a certain technology or framework — rather when considering work thinking ‘about the problems that it solves and the system around it’ (Scott Hanselman). The first practical step is getting a high level overview of the systems up and downstream of you, and understanding how and why they’re architected in that way. I agree with Kishau Rogers when she says that ‘Systems thinking is more important than coding’, and so starting to develop that skill as early on as possible being the second focus alongside initial specialisation.
Write, write, write
Whether blogs, documentation, or a learning log — write down everything you know. Nothing is too small; someone will always be glad you wrote it.
Writing things down is a great way to test you actually understand something, in a way that also helps others to learn. You’re also doing yourself a favour twice over, deepening your learning now, while helping your future forgetful self by providing personally tailored learning material to refer back to.
Close your laptop, put away your phone
In meetings, at lunch, in any situation when you could be focussing on another person, put away distractions.
No one can really multi-task — you almost may as well not be there. Choose one thing and do it well, rather than do two things poorly.
Actively give yourself space to develop and value relationships with those around you. Outside of work this is common practice, so why is it different here?
In Simon Sinek’s talk on ‘Leadership, Communication and Our Addiction to our Cell Phones’, he points out that by doing things like filling in time at the start of meetings on your device you miss out on all the trivial little interactions with people that by themselves mean nothing, but are the foundations all relationships are built on. It can be hard, after all not only are we all busy but initial small talk with new people can feel awkward, but wouldn’t you prefer to have more connection to the people around you?
Why not look up, say hi, and see what happens?
Find, and give, mentorship
Reasons for finding someone to act as a mentor are fairly self explanatory — though I would recommend reading Ryan Holiday’s thoughts in Ego is the Enemy around what to look for when picking a mentor depending on if you are at a stage of ‘aspiring, succeeding, or failing’. Doing this decisively gives you a greater hand in setting your own direction.
A very recent term I related to strongly was of ‘mentors-of-the-moment’. Among other points this reinforced ‘the value of positive micro-exchanges in the workplace’ and that ‘even relatively brief interactions can lead to increasingly transformative developmental relationships … in aggregate, these momentary interactions bolster self-efficacy, belonging, and excitement regarding career possibilities’.
It is obvious to encourage this sort of mentorship from those in leadership positions, but no matter what your level, or how new you are, you can impact those around you by being a ‘mentor-of-the-moment’ to them.