I shared in a previous blog post my ideas on how to become a better software developer.
I stand by all the ideas I shared, but I came to realize I did not mention the factor I feel had the biggest contribution in making me a better software developer and professional: having a mentor.
Everyone should have a mentor. Someone more experienced, with good interpersonal skills that is willing to share some of his knowledge and experience with you. Someone that makes you question your assumptions and think outside of the box. This is invaluable.
The main reason why I think mentoring is so effective is because it is personal. A book is generic and tries to cover all sorts of people and situations, but the advice you get from a mentor is tailored for you and your personal situation.
One other reason why I think a mentorship is so effective is because people feel they do not want to disappoint their mentor. People are good at finding excuses to make them feel better when dropping their goals half way, but when they have to disappoint someone else in the process they do not make such decisions lightly. Having a mentor makes you more committed to your own goals.
I feel I learned more in one year of mentoring than in the total nine years of professional experience I had before. I learned new things every day, I felt much more motivated, I learned a lot about myself and I found areas to improve on.
Look around you. Who is the person you look up to and who's opinion you respect the most? That is your potential mentor. Be humble and seek his advice.