One of my biggest regrets during my time teaching myself programming 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 awhile to realize that finding a mentor is an important tool in the learning process. They provide crucial feedback where 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 to find one but I believe it's worth it.
In this article, I will explain why mentorship is important and suggest an simple way to find one for yourself.
Feedback is the key
You can't learn anything if you don't get feedback. It's 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's really only two ways to receive feedback; you can give yourself feedback through self-study or 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 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 apart of a software developers 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 the experienced developers could find the answers to my problems. It felt like they knew exactly what to search and where to find the important information.
Self-study is important but there are two big problems.
First, it takes time to hone the skill. 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.
Second, 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 big picture 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.
How to find 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 skill. 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 an impasse.
Finding an experienced mentor is very useful but it's easier said than done. There's no Yellow Book 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 built up the nerve to go inside. 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 goto a meeting you will feel more comfortable and be ready to interact with others.
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 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.
Once you've met and talked to a few people, ask for their email address 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 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.
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 like casing a check. Relationships are like receiving interest over time.
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 here is to understand receiving feedback as a newbie developer is hard. You will need to actively seek it out. But make sure you do. There is nothing more crucial in the learning process than receiving feedback.
If you've enjoyed this article, sign-up to the Self-Taught Developer Newsletter. You will receive information like this along with other exclusive tips and tricks.