Do I Really Need a Mentor to Become a Good Programmer?

Do I really need a mentor to be good in programming? originally appeared on Quora: the place to gain and share knowledge, empowering people to learn from others and better understand the world.

Answer by Mario Peshev, CEO of DevriX, on Quora:

Do I really need a mentor to be good in programming? If you can find an expert developer with training skills who is willing to mentor you, it would be ideal. In order to be good at programming, having a mentor is not a requirement, but working with someone who can adequately answer your specific questions in detail is beneficial.

I’ve spent over ten thousand hours of my life in training, coaching, consulting and mentoring. Some of my trainees and mentees could have easily handled the scope of their work by themselves since they were self-driven, incredibly organized and had a great work ethic and some background in computer science. Others were a lost cause even if I had spent a full year with them because they had different goals, weren’t putting the time in, or were looking at programming from a completely different perspective.

Working with the wrong mentor is also quite dangerous. Think of studying math at in college from someone who is incompetent or who is giving the wrong explanation of theorems or even axioms. Or training in a sport where your coach doesn’t explain the warm up principles that could lead to an injury.

A great mentor could assess your current experience and identify areas that require improvement. They could point you to the right resources for complementary studying and design a step-by-step program for memorizing new skills by putting them into practice. It’s vivid and custom-tailored for you – which is what makes it so valuable.

Software development is a fairly new field and there isn’t much of a consensus as to what is the best way to learn programming or what are the best resources for beginners, let alone how to start learning and what are the best programming languages and so forth. There are various “camps” that teach different interpretations of programming, which is what makes finding and vetting a mentor so hard in the first place.

On top of that, mentors have different areas of expertise and perspectives. Some develop with business needs in mind, others with innovation and creativity. Some take marketing into account, while others rely purely on design patterns and other best practices established in the software industry.

Freelancers may often lose touch with reality if they don’t spend a lot of time keeping themselves up to speed with the latest changes used in the software development industry. Being an always evolving field, there are plenty of frameworks, libraries, tools and systems that emerge but don’t survive for a long period of time, and recognizing the promising ones requires reading the right forums, blogs, newsletters and social groups; watching the right training videos and courses, attending the right events, all of which can be overwhelming for a freelancer working by the hour.

The good news is that, even without mentorship available, there are other ways to improve your skills and make sure that your work is not subpar. Working with other established engineers is great – especially during peer programming, development contests and competitions, working on open source projects and collaborating together. This is truly the most effective way to identify better programming habits and receive feedback for bad practices.

Mentorship would help with a lot of that and will summarize the expertise of someone to a tailored funnel of tips and strategies for you. Going through the basics is definitely required, too – but finding the right resources can save you years. Ideally you should find a great mentor that can scale your skills, make sure that you’re truly committed and are determined to deliver fantastic results.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s