Some things I have learned over the years from mentoring other developers:
1. Have patience. Lots of it. When you feel yourself running out of it, take a break and a deep breath.
2. Don't focus too much on technologies. Focus on principles. Review the SOLID Object-Oriented Design Principles with your mentees
3. The best way I have found to mentor people on programming is by showing them how to do Test-Driven Development. This incorporates a number of good technical practices: testing, good design, good separation of concerns, incremental development, refactoring, teamwork and collaboration. If you're not familiar with TDD yourself, trying to teach people how to do it is also one of the best ways to learn it.
4. Focus on one thing at a time.
5. Don't be afraid to do the right thing poorly. Proficiency and speed will come in time. Sometimes it takes a long time. Give them a solid foundation in doing things the right way and worry about doing things fast later.
6. Get tips from JavaRanch
1) Pair program
2) See what they need to learn - hold workshops/training
3) Try to find small tasks they can succeed on quickly. (I had a developer write a singleton class in her first week. It wasn't hard but exposed her to our version control system, junit, the IDE, etc)
4) Ask them questions
1. Dont yell at them when they make mistakes. Most graduates will make them. Admonishing them will deplete them of confidence.
2. When they ask questions, think twice before you provide an answer. A question like 'How do I write files into a WAR file at runtime' has a valid answer, but questions like that should be followed up with 'Why do you want to do that ?'
3. Dont forget to review their code
4. Be prepared to be interrupted all the time. They will have 1000 questions to ask you about everything. I suggest that you come up with a process for this one. I usually tell folks to organize their thoughts and ask me a string of questions instead of interrupting me every 5 minutes. That works out for everyone.
1) Give me initial introductory training
2) Tell me what too learn, and from where to learn.
3) Allow me to make mistakes, and correct me where I am wrong.
4) Tell me the exact expectations from my side.
Yes it is very important have good mood and a lots of patience, I have done a list with all your unvaluable tips and I will try to apply them in my day to day routine.
Well honestly I have not a lot of experience, they are graduates and I have a few years commercial experience around 3 years. Have you ever been in a situation in which you don´t know what answer provide to them once they have ask you something?
Could you tell me what way have you managed solve this embarrasing situation?
Angus Ferguson wrote:Could you tell me what way have you managed solve this embarrasing situation?
Unabashed honesty usually works for me. Keeping an open mind and knowing that there's always something you can learn, even from someone with less experience also helps keep you honest. I don't think it hurts to say something like, "Well, you know, I don't really know much about that. Maybe I/we can go and research it a little bit, then get back together and compare notes."