I've been asked to provide some coaching to a junior developer to increase their proficiency in a couple of languages (I am external to the developer's company). While we could just sit down once a fortnight and pair program solutions to tasks they are assigned at work, I'm not convinced that is always going to make the best use of the limited time we have available.<p>Are there any well thought out learning plans for things like this? Or any other resources that would assist?
This is 100% the way to go. (from experience)
Pick a task off the backlog, pair program, rinse and repeat.<p>I recently streamed a session like this @ my company (Trip.com) with one of the junior developers<p>Part1: <a href="https://www.youtube.com/watch?v=wYsuclajEBc" rel="nofollow">https://www.youtube.com/watch?v=wYsuclajEBc</a>
Part2: <a href="https://www.youtube.com/watch?v=V-z7M4h3EzQ" rel="nofollow">https://www.youtube.com/watch?v=V-z7M4h3EzQ</a><p>This was his task and we just built it together while I am teaching/asking questions/explaining.<p>Important things to focus on<p>1. Thought process - cannot stress this enough, it is the most important thing to explain. Why are you doing X and just talk out what you think in your head
2. Explain everything
3. Leave a lot of time for questions and make sure you aren't impatient when a question is "basic". Make sure the engineer knows he/she can ask anything, nothing is too stupid or too basic.<p>Worst thing to do IMHO is just do "something cool". Just do the work inside the context of the environment you/him/she knows.<p>My 2 cents
Picking the language and then the specifics of what you want to improve knowledge of is next. specific e.g in Python use OOP to build a x using (flask or bottle and JavaScript flavor of the month here).<p>Phase things as well, don't try build a monolith in 4 weeks using 50 different stacks. They'll lose the plot and end up trying 3 different JavaScript frameworks and 6 different ways of nearly anything.<p>measure what it means to have achieved the goal, example a flask backend using a user and customer model connected to a postgres db by Date.<p>Have courses, books and websites available for learning. Checkin on progress and help them bring it back into order when they go off the path.<p>Then using the goal, the date and the measure of success, evaluate the knowledge gained with them