I went on from writing spaghetti code to writing great quality code and from feeling frustrated when writing code that wasn’t always compiling to feeling accomplished and fulfilled as a Senior Software Engineer. All thanks to people I have met on my career path — my mentors.
In this article I want to share with you the impact that my mentors had on my skills, my perspective on coding, and my career. I also explain how you can find a mentor.
“Mentoring is a brain to pick, an ear to listen, and a push in the right direction.” — John Crosby
This is to my mentors: Gosia, Michał, and Pavel. Without you, your smart brains, listening ears, and valuable advice I wouldn’t be where I am today. I will be forever grateful.
My Programming Mentors
Today I am confident in my programming skills, however, this wasn’t always the case. Had we met 10 years ago I would’ve told you that I hate programming and for the most part I just don’t understand the concepts behind it.
This one time I can clearly remember that I got incredibly frustrated because I forgot a semicolon in my for loop written in C++ and the code just wouldn’t compile. If it wasn’t for my roommate at the time, Gosia, I would’ve cried my eyes out and failed my coding assignment. She noticed my despair and offered to look into my code, while I went outside for a walk to get some fresh air and let negative emotions dissipate a little. She found the missing semicolon and saved the day! I felt grateful for her help; still feeling like an idiot though. I was just starting my adventure with programming and this was the first year on my 5 year journey through Wroclaw University of Technology. My roommate was already at the end of her journey and about to graduate and go to work. Because she’s been through some similar struggles she gave me incredible mentorship and spent hours patiently explaining the concepts behind the code that I just couldn’t grasp. If it wasn’t for her I would have had to change my major, because programming was just too taxing for me.
Few years later when it came time for me to have my first programming job I was incredibly fortunate. The company that hired me invested in people that work for them from the very start, which I know is not standard in the programming industry. First of all, I was required to go through an on-boarding course on Clean Code and second of all, I was extremely lucky as I got assigned to a team of pros, where folks had 3–5 years of programming experience already.
Don’t get me wrong, I kinda knew how to write code that would compile and I learned how to write tests, but for the most part I felt like a fifth wheel since I had to always ask questions. My goal was to stay open minded about the feedback I received and always seek more; everyday I would ask my teammates to tell me what I was doing wrong and how I could improve. I was like a sponge that would absorb all experiential knowledge that my colleagues were willing to share. In the 10 months that I worked there I watched my skills and confidence grow tremendously.
Working on that team also helped me change my perspective on what’s important in coding. One day at work I came across some generic templates in C++. At first, I thought I was a dummy for not understanding what was going on, but then Michał helped me realize that that particular piece of code was poorly written, due to the fact that it was overly complex for the task that had to be accomplished — it was just one developer showing off their programming skills.
That’s when I started to like programming because finally someone showed me and taught me what programming really is about — writing maintainable code.
Few jobs later, at the point where I was already confident in my skills, I wanted to get promoted to a Senior Software Engineer. I would not have landed that promotion if it wasn’t for yet another mentor: my technical Team Lead Pavel.
I would keep asking him for constructive feedback and I clearly shared that my goal was getting promoted. Because I was open minded and constantly asking for ways I could do better, he didn’t hold back in providing “tough love”-style advice.
I used to get compliments about how fast I could deliver and troubleshoot, but every now and then I would provide a buggy solution or one that was not well thought out and didn’t take into account future problems. And I thought it was OK, since my priority number one was to be fast.
However, the greatest advice Pavel gave me, that stuck with me forever, was: “Dagna. Fast is great. But reliable is so much better.” That advice changed completely how I wrote code: I slowed down, started putting more thought in the solutions that I worked on, and I also got that promotion to a Senior Engineer! All because I started creating reliable code as a result of following my mentor’s advice.
People in your corner change the game
I would have never imagined myself in a programming career while I was studying, simply because programming was difficult for me at the very beginning — Gosia helped me understand it.
When I did end up picking programming as a career and got assigned to an experienced team in my first job, my attitude towards programming completely shifted — Michał showed me how to fall in love with programming. He explained to me the importance of maintainability and how great code looks like. That knowledge laid the cornerstone for my confidence.
The final pivot in my perspective on coding came from Pavel, who taught me that while the speed of delivery is important, there is something of greater importance: reliability.
If it wasn’t for my mentors I would have not progressed from spaghetti code to code that is clean and easy to maintain; from feeling anxiety and frustration when facing programming challenges to accomplishment and fulfillment that programming gives me today.
All thanks to my career path crossing with the path of my mentors — my personal game changers.
Without them and their mentorship I would’ve been stuck where I was for much longer. Thanks to their time, support, and advice I advanced to the next level. This is why I strongly believe that anyone in their programming career needs a mentor.
Here’s what great mentors will do for you:
- Share their knowledge and experience
- Validate your skills, which in turn will contribute to increasing confidence
- Provide constructive feedback (“Fast is good. But reliable is so much better”)
- Increase your visibility across the company you work for
- You’ll be able to get recognition based on your mentor’s opinion of you
It’s important to mention that your mentor will get a lot of benefits from that mentorship relationship as well; I can tell you from my own experience, becoming a mentor is a great confidence boost. All of a sudden there’s someone who looks up to you professionally — it feels very empowering. And since it’s such a rewarding experience to teach someone and see their success, your mentor will try their best to give you their best knowledge so you can succeed and they can be proud.
How to find a great mentor
Before you start looking, let’s dive into who matches a description of a great mentor; ideally someone who worked in your company longer than you have and understands how the business works. Someone who has technical knowledge on coding but also has a grasp on how people work. Great mentor can deliver constructive criticism, but also appreciates feedback and doesn’t take things personally. It’s someone who you could be vulnerable to, ask questions, share your honest thoughts with. Someone who you admire and respect. Someone who is supportive and wants to see you succeed. Someone who has your back.
Be an apprentice of a mentor you would want to become one day. And hey, here’s a valuable hint: you can have more than one mentor.
Once you’ve spotted a great person to become your mentor, here’s what you need to do in order to make mentorship work: (1) Be prepared — the person you’re soliciting advice from, most likely is a busy person and has a lot of stuff on their plate. Wasting their time by trying to hang out and grab coffee some day is just that — a waste of time. So whenever you figure out what it is you need help with, formulate your questions and… (2) ask. Ask for feedback, ask for constructive criticism. Explain that you’re looking to improve your skills. Ask every time you’re in doubt. If possible work with them on the same project and have them review your code.
Let the mentor know why they are the ones that you are asking advice from; let them know what it is that you value them for. Even though it might feel intimidating to ask, fear not; anyone who has characteristics of a great mentor would agree to your request and provide feedback.
Once you’ve established mentorship relationship, and you’ve opened your mind to receiving feedback, there’s just two more things to do: pay attention to the advice and follow-through.
In my programming career I was on an accelerated track, because of the right people in my corner who taught me what was important in coding — my mentors.
If you want to advance in your career and move on from feeling anxiety every now and then when writing code, you need a mentor as well. Someone who will teach you, guide you, support you, cheer for you and provide “tough love” when it’s needed.