It’s important to realize that the path you are taking (it doesn’t matter what path that is) has more than likely been traveled before, or at the very least where you stand at the beginning of your career is where many have stood before you. There is no need to reinvent the wheel and learn all the ins and outs while trying to determine and travel your career path without guidance. There is an abundance of craftsmen with a career full of information out there, whether it is your boss, a senior team member, or just someone in the field that you look up to. What is important is that you seek them out and develop an open dialog back and forth with them so you can prosper in whatever you decide to do. Ideally you want to find a master craftsman that has walked a good distance along the path and not someone who is only a few steps in front of you. While you should still develop a relationship with the person in front of you, and is the basis of other apprenticeship patterns, it is not as a mentor and not the topic of this post. Your mentor should also be ready and willing to accept the responsibility of taking on an apprentice. It is a very fulfilling and very important relationship to develop in your career and will benefit you greatly to learn from their experience and grow as a developer. Remember though that your mentor does not know everything though and is not infallible. There should be a respectful, open, back and forth communication between both of you. A communication designed not just to receive directions and blindly follow them to build your career, but one where you can ask why they made those choices in their own career or why they are recommending this course of action to you. One that is strong enough not to crumble if you take in your mentor’s advice and in the end still decide not to follow it, but to take a different route that they may not agree with but still respect your choice.