We can all think of great developers and engineers. Either people we work with, people across the Twittersphere or talented developers sharing their knowledge at conferences. As great as those developers are, they weren’t born with all the skill and knowledge they have now. They will have all gone through periods of being junior developers too.
For every 13 jobs in the STEM industry, there is only one person qualified to do that job. This has a number of negatives, namely that companies are struggling to progress at their desired rate and technical innovations will have to happen more slowly. All this because there are not enough people with the know-how. But, there are lots of people that want to have that knowledge and just need the support from people who have the experience.
Imagine a world where we actively support the junior developers we work with, get them to a point where they can go and support other junior developers in their careers and that just continues. It could be a constant cycle of upskilling, where we are making sure the next generation of developers have the best skills to do the job they want.
I’ve worked with some really supportive colleagues while starting out as a developer, so I was happy to share my experiences in this area at Codemotion Berlin 2018. The key things I wanted people to take away was that there are things junior developers can do today to speed up their career development, but the tech leads, mentors and managers can also play an active part in supporting junior developers they know and work with.
Juniors
If you’re a junior developer, think about your specific skill-set and what you need to work on to be considered a mid-level developer. Can you improve the quality of the code you’re writing? When I started learning to code, I would get something working then not look at it again. Good code is a sign of an experienced software engineer. Clean Code by Robert C. Martin is a great book for this and gives advice across languages.
In my talk at Codemotion, I also stressed the importance of stretching yourself, but not stretching yourself too far. This model has helped me to understand the relationship between our comfort, stretch and panic zones. Our comfort zone is important for a sense of calm, but coming out into our stretch zone activates challenge and is the prime area for learning. The panic zone on the other hand is the area of stress and learning just stops happening in this zone. Avoid it!
When I was preparing for this talk I came across Lara Hogan’s Donuts page. This reminded me that celebrating your achievements is just as important as documenting those experiences for future yourself and future employers. I got great feedback about this when preparing for my talk, more experienced developers, especially contractors who really saw the value of this when they were talking to potential employers. Keep track of your achievements, it can be a great confidence boost when you come back to the list a few months later. ? I have an Achievements trello board that I update every few months. Add things related to areas you find important, but you can’t go wrong with some of these: Programming, Communication, Proactiveness, Giving/receiving feedback and Teamwork.
Supporters
If you know or work with junior developers, invest time in their development! Mentor them, pair with them and allow them to feel comfortable asking all sorts of questions. Junior developers are enthusiastic about learning, you are in the best position to give advice. You’ve already been there, you have the experience, don’t forget what it was like and remember what you needed when you were a junior!
During my talk at Codemotion Berlin, I shared my experience with living objectives and a few of the audience members had questions about how it worked. Living objectives were introduced for junior developers where I worked as way to track goals with a faster feedback loop than your annual performance review.
The diagram above shows what mine looked like the first time I did it with my line manager. We picked areas based on the area I worked in and my interests. Then we assigned values to each between 1 and 10 based on my confidence in that area and what my goal was. In each 1:1 (every two weeks) we would review this document and choose an area to focus on until our next meeting. This was great, as my line manager could use this as a way to create opportunities to help me develop. That could mean suggesting an online course or pairing with someone in another area of the business.
It’s a great way to visualise progress and personal development. You can measure this through the confidence of the junior developer, feedback from team members or seeing what courses they complete and apply to later work.
The final thing I talked about was the importance of giving specific and actionable feedback. If, as a supporter, you do nothing else with the junior you work with, give useful and regular feedback. It really helps a new developer know which areas to work on, thus helping them to progress. ?
Finally, to the juniors, you’re currently on your own journey and everyone works at their own pace. Try not to compare yourself to others, because you’re doing great as you are!