What does a software developer look for in a mentor? Does it change over the course of one’s career? Do different people need mentors with different approaches, and are there qualities that a mentor can have that work for every mentee?
These kinds of questions have come up regularly as I moved into the latter part of my career. Since I shifted from independent contracting to working for companies around ten years ago, I’ve been given the privilege of being a mentor to new and experienced software developers in various roles: team lead, instructor at a school, staff developer. The conversations that came out of those questions have opened my eyes to how different people approach acquiring software development expertise, and how different mentors approach guiding their mentees.
Software development is a sea of interrelated technologies. Simply knowing which technologies are relevant to a particular task is beyond the horizon for many who are new to the field. A common thread I’ve seen in successful mentorship relationships is the ability to chart the network of technologies that a developer knows and use that as a tool to navigate their growth.
In my experience, having a way of visualizing or metaphorically representing the knowledge of another developer can be an invaluable tool for helping them engage with new tasks and providing succinct direction. I recall mentorship sessions being exceptionally fulfilling when I employed this technique; I guided someone into unfamiliar waters, but they always knew how far they were from the safety of a technology they were already confident with.
The mental model I like to use when working with another dev looks like a map of islands in an ocean. Every technology that someone has expertise with is a land mass that peeks out above the waterline. The size of each island represents the confidence they have with its technology. Technologies that they see as related are near each other in the ocean, representing how easy it is to navigate from one to another. As related technologies are used and the confidence grows, islands may merge into each other. This represents the point when thinking about those technologies becomes holistic and travelling between them is effortless.
As lucky as I’ve been with this mental model, yours will be different. However you visualize it, learning new tech is always easier when new knowledge can be tied back to something we’re already confident with. So, when you go to mentor another dev, try to develop a mental model of the technologies they have confidence with. It might help to give direction that leaves them feeling empowered to build robust connections between their existing expertise. 🏝