2016 has been a hell of a year, both politically and technologically. It feels like we’ve had a continual stream of disappointments, loss and bad decisions, but out of the gloom, there have been some shining lights. This year has seen the growth of initiatives which are making the tech industry a better, more inclusive place to be. Groups such as Codebar, CodeFirstGirls and Coders of Colour, (to name a few out of the many awesome initiatives out there) have been helping more and more people make their journey into tech by providing mentoring and teaching to underrepresented groups. They’re making a real difference, not only to their students’ lives, but to the industry itself.
Being a self-taught developer, I remember how difficult I found it at the start, before I had colleagues or friends in the industry to ask questions of. Much of the time I didn’t know what I needed to ask, let alone who or where. I could spend hours on a problem and still not find its solution. It is the memory of this frustration that initially drove my desire to mentor junior developers, so that they wouldn’t have the terrible time I did, but mentoring has been so much more than just passing on knowledge. I’ve learned so much about myself, my skills, the industry, and life in general just from connecting and interacting with my students.
I thought I’d share some of the lessons that my students have taught me and how they’ve impacted my life as a developer, in the hope that maybe I can encourage more people to give mentoring a try.
You. Can. Teach.
I’ll admit that at first I was reluctant to join in when industry friends mentioned that they were coaching juniors. Imposter syndrome kicked in and I was certain that I’d never be any use to other developers. I’d be the first in line to tell you that I don’t know everything there is to know about front end development, but here’s the thing, no one expects you to know everything. If there is one thing that developers know, it is how to find the answer to a question. You teach what you do know and you and your student can explore together that which you do not. Which leads me nicely on to point two…
There is nothing like teaching to improve your own knowledge
It may be a tired aphorism, but seriously, teaching a subject helps you to get a better grip on that subject yourself. Making a concept accessible to a beginner forces you to consider it from new angles and to explore nuances you may have otherwise ignored. By the time you’ve explained how to use flexbox to five different students – each with their own set of problems, plans and questions – your knowledge will be so encyclopedic that when you next come across a misbehaving child element the answer will be at your fingertips and not at the end of a stack overflow dive.
Easy is subjective
I’ve lost count of the number of times that I’ve attended talks where the speaker uses words like ‘easy’ or ‘obvious’. ‘It’s not that obvious to some of us, why don’t you spell it out?!’ I’ve wanted to scream from the audience, and yet I still have made the mistake of telling my students that ‘CSS is easy’. Luckily, some of them have had the confidence to correct me, ‘It might be easy for you, but I’m still learning this stuff’. Whether you’re teaching, or speaking, or writing, please stop referring to languages, concepts, frameworks or tools as ‘easy’, it brings people down when they can’t instantly grasp that which you feel is easy and it belittles their accomplishments when they do.
At Codebar they advise coaches to assume that their students have zero knowledge and infinite intelligence. That way coaches are encouraged to ask their students about their familiarity with a subject rather than to assume it.
Patience is a virtue!
We are told that impatience is a good thing in a programmer, that the need for instant gratification makes us more efficient and lets us strive to build faster products and tools. It can also, often, make us unpleasant to be around. I know I’ve snapped a sharp retort far too many times during familial tech support calls, and I’m the kind of Londoner who tuts when someone takes too long getting through a barrier at a tube station.
Mentoring has introduced me to a well of patience that I didn’t know I had – I’ve learnt that I have infinite tolerance for someone who is trying to learn. That patience is necessary in order to ensure that your student doesn’t feel pressured to grasp an idea too quickly or too scared to ask you questions. What I couldn’t have predicted is that this newfound patience has had a humanising effect on the rest of my life. I am much slower to anger, and better at dealing with frustration in a positive way. Understanding that frustration is a means to an end has improved the way I approach my own learning, whether it is a new framework, tool or just fixing a bug.
Never stop asking questions
Get to know your audience
One question in particular that sticks in my mind was one that I posed to a student. They were making a website for a charity which helped isolated or lonely women find a friendly, local group of other women to spend time with. The student had created a giant purple button which hovered in the center of the page saying ‘Get me out of here’, and when clicked, landed the user on the YouTube homepage. I asked what on earth that was for, I couldn’t understand why she was so keen to direct her users away from the site. ‘It’s for women in abusive relationships who might want to keep their use of the site secret from their partners. If the partner approaches the screen they can quickly navigate away’. I was gobsmacked, I’d have never thought of this use case and now that I have I can’t stop thinking about how little we know about our users in general.
As developers, it is sometimes easy to think that nothing is more important than building the next feature, or using the most up to date technology. User testing and contextual research can feel like a painful pause in productivity. But finding out who wants your product and how they might use it is much more important than how you make it. By skipping out on getting to know your audience, you could end up building things that they don’t want, or can’t use. If you have access to your users for feedback, use it!
Give it a try
The final thing to say is, that mentoring has given me far more confidence to try new things. The students that I’ve worked with are an absolute inspiration, many of them are learning while holding down jobs, or are still in education. They bring a positivity to their studies that is infectious, they’re eager to learn and try new things. They view the world of development without the jaded cynicism that you often hear from developers who have seen too many new frameworks come and go. We could all do with a little more positivity and excitement, especially when encouraging junior developers! My students have taught me that there is so much to gain from trying new things and very little to lose. Their passion for constant improvement helps to drown out the voice of imposter syndrome. Since I started teaching I’ve given talks, run events and written blog posts – none of which I would have tried before for fear of failing.
There is a hebrew word ‘Firgun’ which describes genuine delight or pride in the accomplishments of another person, and that is the best description that I have been able to find for the joy that mentoring can bring. Whether it has been school kids, people at the beginning or middle of their careers or even my one 75 year old student, watching them have that ‘aha!’ moment, when something clicks is one of the most rewarding things I have ever done, and I can’t recommend it enough. As an antidote to 2016, if you’re looking for a New Year’s resolution, make it mentoring. You won’t regret it.