Originally posted at https://raulmonteroc.com
There is a lot of definitions for a mentor, but the general idea is someone with vast experience in an area willing to teach/transmit that knowledge to someone else. Essentially, someone who takes the time to help you grow in a specific area.
When I started developing software I had no clear path to what I wanted to do so I would pick up anything that seems interesting, no matter how unrelated it was from my tech stack or what would be the benefit of doing it. I was a drifting boat until I started meeting people sharing my interest but were a little bit ahead on the journey. They provided me with insight, experience and opened my eyes to new opportunities and ways to improve myself. This is what a mentor does.
The main reason to have one is to avoid tunnel vision about your future and your ideas
The main reason to have one is to avoid tunnel vision about your future and your ideas, show you new things and find ways to continuously improve yourself in a given area through his/her example, experience and knowledge.
In short, a mentor shows you their path and their experience so you can improve and move faster on your own journey.
Chances are you already have one. A mentoring relationship does not necessarily go on explicitly, it often evolves naturally. An old teacher you often talk to, an approachable boss or a senior coworker/student are some examples.
If for some reason you don't have any of those, don't worry, you can also find a lot of people interested in helping you. But how do you find them? There are a few options that come to mind:
Work on an open source project. The open source community is full of people wanting to help out. Select a project that matches your skill level and interests and start pushing some code. Start small and ask for help from any of the regular contributors. You will find one or two regularly reaching out. That's the starting point.
Work on interesting projects with interesting people. You can find a mentor next to you at work or university. When someone is working on a project, offer help. Help is always appreciated, no matter how much or how little.
Go to developer's reunions. One of the best ways to find people like-minded is the local development community. Like the other cases, reach out, talk with others and stay in touch. You will find more than one in the same path you are and a couple a few steps further.
A mentor's job is to be a guide, your's is to have an idea to where you want to go or what your goal is for the next year or two and be aware of the reason why you spent time learning those languages and platforms. Do you want to become a front-end dev? a back-end? a mobile? What is your main tech stack? Why do you spend time learning those things in the first place? What do you want to achieve?
Those questions are yours to answer, they mark the journey you will take moving forward. You don't need to have all the answers but you do need to have a general idea. Once you do that, then you can ask for your mentor for guidance.
Remember, a mentor is simply a guide, the path is yours to take
After all, that, how much you improve and how fast is entirely up to you. In the end, you will be the one putting up the hours to get better but they will be much better invested when knowing what to learn and how from people that came before you.