How to find a mentor and accelerate your learning: a beginner’s guide.
One of my biggest regrets while learning to program was that I isolated myself too much. I tried to do everything myself and didn’t seek out help from others. I would spend hours, sometimes days, beating my head against the keyboard trying to solve a problem that could’ve been explained to me in 10 minutes. I was too shy, oblivious, and stubborn to put in the effort to find help. The amount of time I wasted in those early days still haunts me.
It took me a while to realize that finding a mentor is an important part of the learning process. A mentor can provide crucial feedback when there normally wouldn’t be any. It puts a stress test on your skills and challenges the knowledge areas where you might be weak.
Evidence of the effectiveness of mentors can be seen throughout history. Apprenticeships used to be the primary form of education before the university system took over. Some of the world’s greatest artists and creators studied under someone else.
There are a few ways you can use mentorship to your advantage. It will require some extra effort, but I believe it’s worth it.
In this article, I will explain why mentorship is important and suggest a simple way to find one for yourself.
Feedback is the key
You can’t learn anything if you don’t get feedback. It’s as simple as that. Feedback is a fundamental requirement of the learning process. Imagine trying to improve your free-throws without seeing if your shot went in. It’d be impossible.
There are really only two main ways to receive feedback:
- You can give yourself feedback through self-study
- Someone else can provide it
The self-study method is the most common in the programming world. Usually, when we get stuck or need to learn something new, we go to websites like Stack Overflow or GitHub. The goal is to learn new information so we can reflect on our work and approach the problem from a new angle.
Self-study will always be part of a software developer’s job, because we are constantly running up against new problems. A good developer isn’t someone who has an amazing memory, but rather someone who can efficiently understand their problem and know where to find the solution.
At my first programming job, I was blown away by how fast experienced developers could find answers to my problems. It felt like they knew exactly what to search for and where to find the important information.
The flaws of self-study
Self-study is important, but there are two big problems.
Firstly, it takes time to hone your skills. Searching for relevant information is intuitive for an experienced developer, but feels more like a wild goose chase for someone who is inexperienced. It might seem simple, but it takes a lot of practice to know how to search Google or figure out the best places to look for answers.
When I first started learning programming, I either didn’t know where to look or didn’t know exactly what I was looking for. I often felt lost and overwhelmed.
Secondly, relying too heavily on self-study makes it hard for you to take a step back and understand big picture concepts. It’s easy to find yourself solving individual problems without having a good understanding of how it fits into everything else. You might learn how to do something, but not know why it’s necessary.
It’s also not always clear if you are going down the right learning path. In the beginning, it’s hard to know where to start. People do a little research and pick a path. As time goes on, the path you initially chose might not be the best route for you. You might not correct course until much later down the road. You could be wasting time learning something that doesn’t align with your long term goals.
To avoid these traps, it’s important to supplement self-study feedback with feedback from an outside source. Relying too heavily on self-study can result in wasting time on both the micro and macro level.
Why you need a mentor
There are many advantages to finding a mentor.
They help you develop a firmer understanding of the material and create a stronger foundation of skills. As you are interacting with them, they poke holes in your current understanding and stress test your abilities. They have the experience to help you understand hard concepts and will be able to point you in the right direction when you hit a roadblock.
My first job as a programmer had a great mentoring system. There was always someone to answer my questions. I learned more in my first few months on the job than I did in the previous year teaching myself.
Mentors are also great for helping you get networked in your local tech scene. Chances are they have their own network of friends and developers they can hook you into. This opens up opportunities to expand your own network, which will give you new and interesting perspectives and help you find a job when the time comes.
They also provide encouragement where there might not be any. Learning programming is hard and isolating. Mentors help you get through the tough times. A experienced developer has most likely been up against whatever roadblock you’re facing. When you get stuck or discouraged, it’s helpful to know there’s someone you can reach out to.
How to find a mentor
Finding an experienced mentor is very useful, but it’s easier said than done. There’s no yellow pages for looking up software developers who can mentor you. People going through a traditional 4-year school or a code school have the advantage of asking the teacher questions when they get stuck. Self-taught developers don’t usually have this luxury.
To find a mentor, you will need to be prepared, get out into the world, and meet people.
Meetups and user groups are a great place to start. If you live in a decently sized city, there are most likely a variety of different tech events happening each week. Just go to Meetup.com and look for an event that you find interesting.
Going to a meeting with a bunch of strangers is nerve-racking. At my first Meetup, I remember sitting in my car at the venue for 5-10 minutes before I finally gathered the courage to go inside. But, in the end I’m happy I did. The people I met at that first Meetup ended up helping me land my first software development job down the road.
It’s important that you overcome your fears so you can put yourself in a better position to succeed. At first, if you are too nervous to talk to anyone, then don’t. Sit in the corner, watch the presentation, enjoy the free pizza, and consider it a win. The next time you go to a meeting you will feel more comfortable and be ready to interact with others.
Interacting with experienced developers
Once you start interacting with people, make sure to remove your ego as much as possible. You have nothing to prove to anyone. People have a tendency to overstate their abilities when interacting with people with more skill or experience.
Overstating your abilities can be a tragic move. The point of going to the meetup in the first place is to build connections and find people who might want to help you. Acting like you know more than you do will either make you look stupid or will make people think you have it all figured out.
The key is to be vulnerable and embrace the fact that you are a newbie developer. Don’t be afraid to admit you don’t know something. Let other people know you’ve just started learning and you are open to any advice they can give.
Come prepared with questions. Ask something like, “How would you approach learning if you were in my position?” You’ll be surprised how much people will want to help you. Every developer at that meeting can sympathize with you because they were at some point in the same position as you. There are many valuable insights you can gain just from these conversations alone.
Continue the dialogue
Once you’ve met and talked to a few people, ask for their email addresses just in case you have follow-up questions.
Getting some sort of contact information is crucial. It allows you to stay in touch with the person and it opens up opportunities for future meetings.
After the meeting, reach out to the people you’ve met and ask if you can buy them a cup of coffee. It might feel like you are inconveniencing them, but people generally enjoy helping others (especially other software developers). As long as you are respectful of their time and show them you are grateful for their help, they will most likely be happy to meet with you.
I’ve always enjoyed meeting with beginner developers. It feels good imparting some of my acquired wisdom. It’s a great feeling knowing you are positively contributing to someone’s life. I made a lot of mistakes when I was first learning, and it’s nice helping other people steer away from those traps.
A word of caution before proceeding. It’s important to not abuse the relationships you build. If you email a person 5 times a day and are constantly bugging them, they will stop wanting to help you. It’s ok to ask for help, but it’s not ok to have them do the work for you.
You aren’t going to get all your specific technical questions answered through this network of people. If you do find yourself asking them technical questions, make sure they are well thought out, precise, and short. Give them the opportunity to answer you quickly. Try to avoid questions with lengthy answers unless you feel they are willing to answer them (especially in emails).
Think of an experienced developer as a compass. They won’t physically get you to your destination, but they will make sure you are going in the right direction. This will help you avoid wasting time on things that might not be helpful in your pursuit of a job. At a minimum, they will give you new things to think about and will help you self-analyze your progress.
Remember: the relationship you build is more important than the answers you receive. Answers are finite. Relationships are infinite.
Conclusion
Finding a mentor is just one way to increase your feedback. You might have other ways at your disposal. If you do, great! Use them as much as you can.
If meeting someone in the physical world is out of the question, then move digitally. Look for Facebook groups, online forums, or subreddits where you can interact with experienced developers. There are many articles written about all these different places, so I won’t go into it here.
The key is to understand that finding a mentor (or someone with more experience than you) is a very useful tool in your learning process. It could be the difference between success and failure.
They won’t find you. You will need to go out in the world and seek them out. But make sure you do.
Sign up for the Learn to Code Newsletter to receive non-technical advice on how to become a self-taught developer. http://bit.ly/2JUlD27