We have a trainee that needs to learn a lot of tech. We decided that she takes online courses with exercises independently, before touching in-house stuff.

In the beginning we talked about schedules, and how long she thinks the courses should take. We agreed on a reasonable schedule. Knowing how much there is to learn with a steep learning curve, I set aside some time in case this takes longer than thought, instead of hurrying the learning process. Maybe there are lessons to learn about how long things take instead of your first intuition.

The problem now is, that these deadlines have been moved multiple times by the trainee. Each time I ask how learning is going and how long she thinks is still required, we put on a few days - and then the same process repeats itself.

Also I learned she has registered to more online courses on her own (that is, of course, a positive thing, but doing this without discussing it first seems like an issue)

I'm in an awkward position, not knowing if this is slacking - or if she genuinely needs more time to process what she is learning and is too scared to say she does not understand something.

I want her to learn - in a way that suits her best. Anyway this looks bad for me, not being able to manage this trainee and be any kind of an authority (letting a trainee dictate schedules)

How do I regain control of the situation?



Thank you for answers. The question was probably a bit too broad (and contained too little info) to select a clear "best anwser", but I got excellent tips from many and got an attitude adjustment in the training process itself. Don't have time to answer comments on every thread but editing a small update here:

We've started to take this on with a more hands-on approach, and set her up with a smaller project that has in-house value, using the tech involved. We have set clear checkpoints for each individual step, will do code review, have talked through the whole process and made sure she knows I'm always available for questions and any tech talk (being the only person available for this kind of support). We also made a point about stopping and learning things with no rush, whenever something new comes up.

In the meantime we'll be identifying good first issues on the company flagship product.

Instead of imposing deadlines, the process is now more about learning by doing that is supported by courses and coworkers.

  • 95
    Have you spent any time reviewing the material she's covered so far? Can you judge whether she's making progress?
    – DaveG
    Jun 18, 2019 at 13:09
  • 132
    How much time are you investing in helping this trainee with their learning? The idea of "trainee" is usually that you get considerable time with an experienced mentor. If she's doing courses alone, don't expect her to learn faster than "amateur equipped with google" speed, which is very slow.
    – Erik
    Jun 18, 2019 at 13:11
  • 5
    Do you have her working on anything real as she is going through the training so she can apply what she is learning?
    – Seth R
    Jun 19, 2019 at 4:49
  • 5
    @Erik That's a very fair point that, this is going to require more involvement from my part, and other tasks are inevitably going to get less of my time - this needs to be resolved with management Jun 19, 2019 at 9:00
  • 10
    How far behind is the trainee? On a scale of "I used Angular 1.x extensively in my previous job, but I haven't used Angular 2." to "What's a computer?" Jun 19, 2019 at 14:42

13 Answers 13


I work as a dedicated mentor in a software development company, building a team of junior developers, and have done training with mostly fresh graduates and apprentices for some years. First off, I agree especially with nvoigt's excellent answer. However, I'd like to go into a bit more detail.

You've not told us where in the world you are doing this, or how the training came to pass. Usually there's a good reason for a company to hire someone as a trainee (as opposed to a "junior") in any role. Development often stands out, because a lot of people nowadays learn that on their own, and it is an industry seemingly easier to get into than say civil engineering or becoming a builder. So the first question you need to answer for yourself is why did your company decide to hire someone untrained?

When you know this, set aside some time. Talk with her about where she's at right now, and how you want to proceed. Prepare for this meeting, and tell her in advance to prepare as well. In general, always announce any progress or performance meetings in advance. Nothing is worse than being called into your boss' office and not knowing what's going on. Don't scare her.

Training courses are fine. Especially if your company is paying for them. I use online courses and books as well, but not exclusively. They are one of the tools at your disposal to train her. You should have a general awareness of the quality of these materials that you are using so you can be sure she is not using outdated books or tutorials, or worse, ones that are plain out wrong. There are unfortunately loads of these around, and especially in a technology as popular and widely used as .NET there would probably be loads of really bad things floating around the web.

Use the courses as an augmentation. Set targets for her for how she should work through a book. When I train Perl, we start with the O'Reilly book Learning Perl, where one chapter and associated tasks can be done in one half-day. So on average, it takes two to three weeks to work through the whole book. Mix books and video-training, and make sure there are some training exercises with the books and classes. Set aside time to review these, and give constructive feedback. I prefer to take a look at these things once a day at least.

If you have her do mostly self-guided learning for half a day, that leaves a second half to do real work. This is probably the most important part, because motivation is paramount. Nothing is worse than being stuck reading books and not understanding your own progress.

Invest some time to identify things in the code base that she can work on. This could initially be the most simple tickets, such as changing typos in user-facing text, or fixing simple bugs where the cause is already known. Write very detailed tickets initially, and make them less specific over time.

It will probably take a month or two to work through course materials on the side while already doing productive things. Of course productive here doesn't mean she's netting the company money yet. It means she is adding some kind of value to the team, and she feels like what she does has meaning. Her work product is not code for the sake of coding that is being thrown away. Her name appears in the code base, she can go home and tell her parents (I'm assuming a trainee would be fairly young) that she did this cool thing at work today and it went live and now real people somewhere are using what she did. That's how you keep her motivated and excited.

If you notice that she's struggling with something, sit down with her and help. Gently nudge her in the right direction if you think she should be able to find the answer on her own. Stack Overflow is great for this, and teaching her how to search properly is one of the best things you can do. On the other hand, sometimes you need to go to a meeting room and use a whiteboard to explain concepts, like the MVC paradigm or something like that.

Lastly, always appear available. Don't go away giving her the impression she's on her own. When you give her a task, tell her she can always come by your desk and ask, or drop you a message on the company instant messenger. Tell her that the headphones you are wearing are not to deter her from talking to you, but rather because you don't like the noise in the office. She can always ask you stuff. Make her feel save and part of the team.

If it goes well, you'll notice she will pick up tickets and actively investigate things in the system after a few months. Keep assigning her interesting stuff, but within your workflow constraints let her chose more challenging things as well o keep her motivated.

This is one of the topics I speak about at open source conferences. Here's a recording of my talk Turning Humans into Developers from a the London Perl Workshop 2017. It will give you a more in-depths look at the things I've described above.

  • 3
    To supplement the 'let them actually do work that contributes to business value', having a reasonable Pairing session, with the trainee's hands on the keyboard and someone just above their experience level as the 'navigating' pair can go a long way into initially getting their feet wet, and will provide lots of opportunity to dig into gaps in their understanding. - sometimes the 'sink or swim, on your own' approach is overused at companies and they wonder why that can't 'find' good (enough) engineers
    – Cinderhaze
    Jun 19, 2019 at 15:50
  • 1
    @Cinderhaze I agree, and I do that a lot too. Either with myself giving tips, or with someone who's less experienced but more so than the trainee if that person exists. You know you've succeeded when you see the fresh trainee ask one of the "older" trainees for help and you end up with a group of them vividly discussing a problem and passing a keyboard around. :)
    – simbabque
    Jun 20, 2019 at 12:01

You're approaching this with a waterfall mindset: First she learns everything she needs to know, and then applies it to your in-house stuff.

The thing is waterfall doesn't work. You don't know what you need to know until you're doing it, and by guessing at the start you can waste a LOT of time and money, which you're seeing now.

Instead, consider assigning smaller, real, tasks to her. Have a senior colleague (perhaps you yourself) sit with her until she's comfortable with what she needs to do (not doing the tasks while she watches), and then check in frequently to make sure she's still on track and not getting stuck.

As she gains more experience she'll be able to become more independent, until she can work as an autonomous junior member of the team.

If something comes up that's so completely over her head that she can't even start, then you can look at courses for that specific thing.

In comments on your question and the answers here you say that one of the challenges you're facing is that she's afraid of starting "real work" ("[she] keeps saying [she] needs to learn more before that").

Part of your job as a mentor is to support her in learning that she actually doesn't need to be a rockstar before she starts working on real code, she just needs to be willing to get started, and not be afraid to make mistakes and learn from them.

  • 5
    This reflects real 'learning on the job'. It will make tasks relevant, rather than seemingly random stuff with no immediate purpose. At least then, the trainee may appreciate what needs to be learned.
    – Tim
    Jun 20, 2019 at 7:57
  • 6
    I love how this answer flies in the face of not just the topic here, but also practically every public school's approach to education. :D
    – Vandroiy
    Jun 21, 2019 at 8:41
  • 13
    Waterfall works perfectly fine when requirements are fully known in advanced. Agile development and the like were invented to handle constantly changing requirements. Do you think anyone builds a bridge in an agile way?
    – Davor
    Jun 21, 2019 at 9:04
  • 3
    Education paths are a classical thing of something where waterfall is appropriate... Did not downvote because the rest of the answer hits the spot, but suggesting that you cannot sequence some training before work is just too much. Jun 21, 2019 at 10:17
  • 2
    @PlayerOne - the question is about training, not software development.
    – Davor
    Jun 21, 2019 at 15:17

I'll address the elephant in the room here:

You have a trainee. And you refuse to train her. Instead you sent her to please train herself and come back when done.

That's not going to work. If that would work, she'd be master-nobel-prize-winning-chief-of-whatever-you-do before she even started at your company, because there really is no shortage of "training courses" and online videos.

Think about your own education. I will take a guess and say you have a college degree or equivalent. Is that really how you got it? The professor sent you to the library to please educate yourself? With a timeline of your choosing? Sounds silly when said out loud, doesn't it? That's not how you educate people.

Training somebody is no side-job. Professional teachers and trainers have an education on how to do it. They know that learning something needs the right amount of structure, repetition and feedback, something an online course simply cannot give. Teaching needs a teacher, not a prerecorded course.

If you want the traineeship to be successful, you will need to start the training. Either in person or delegate it. But it needs to be a human, not a video.

Addressing additional information:

I'm trying to address this elephant myself, and learn. The problem is, I was left alone learning this job, and that is also how i have learned development. I have no training to be a mentor for juniors or trainees.

First off, sorry you had a bad experience with your own "trainer". I appreciate the effort to do better than that yourself. I imagine it would be really hard to teach somebody without a formal education (having been on the receiving end at least teaches you something about teaching it) and without training as a trainer.

So what can you do?

  • Don't hire trainees. Hire experienced people. As far as a solution goes, that might be cheating, but it will solve the problem of not knowing how to properly teach them, because you don't need to.

  • Outsource the training, but not to a video course, but to a real life course with real people that are professional trainers. They will have a lesson plan and goals to reach and a reasonable expectation of when the trainee should be where in their progress. That costs money, but nothing in life is free. You don't get to hire a trainee and make a professional out of them for free.

  • Take a course yourself (again, real professional trainer, not online video) on how to train people. I'm not sure where you are located, in Germany they are run by the chamber of commerce, take 2 full weeks (or longer if you only spend evenings or weekends) and have oral and written exams in the end. It's commonly called "Train the trainer" and you learn a lot about both how people learn and what the legal framework for having trainees is. You could also hire a person who is already proficient at this, but it's really great to know this because it applies to almost any job and even in private. This course is also dirt cheap compared to for example technical or programming courses. I think my company paid 500€ for the two weeks. That's nothing as far as professional training is concerned.

Maybe you can combine all that? Send your trainee to a professional course, hire professionals until you yourself took a course on training people so you can do a good job when your trainee is back?

Please note that I'm not generally against "online" courses. I have seen professional trainings that happened online. But that only means the audio and video signal comes through a cable instead of being in the same room. It still needs a real life, "live" trainer for structure and feedback. That trainer will have the same plan, lessons, feedback and exams whether the class is in the same room or connected remotely.

  • Comments are not for extended discussion; this conversation has been moved to chat.
    – user44108
    Jun 21, 2019 at 10:29

So you asked a person not familiar with your tech because she probably never came in contact with it how long it will take her to be proficient. And then you created a schedule around this estimation. Estimating time especially in programming is incredibly hard. Giving a spot on Estimation might even be harder than programming itself.

So now this Trainee is sitting by herself and trying to comb through EVERYTHING. This schedule was doomed to fail when it was made.

It is hard to train new people. And it is even harder to let them make their own experiences so that they can really own their knowledge. But right now it seems as if you don't train her at all.

I think you should engage her more. Try to make her explain what she is doing right now (Be the rubber ducky). This way you can get insight in how far along she really is and you can help her at the same time.

On the other hand you can use her as a the rubber ducky. Explainig what you are doing might help her even if she doesn't understand everything about the tech. But it might also teach her how you think when you attack a problem. And it shows her that everybody arround her also struggles.

  • 39
    Basically they got a trainee who is there to be trained and what they do is tell her to train herself. Thank you very much, that's not how you train a trainee... Jun 18, 2019 at 14:24
  • Thank you, the rubber ducking is a great idea, and more engaging is definitely needed. I do not need her to be proficient in the tech, just to understand it enough to be able to do little things in our projects and learn from there. (tech stack is very popular and widely used with lots of online tutorials and howtos that probably teach it better than i could) Jun 19, 2019 at 6:55
  • 2
    @anonymousdotnetdeveloper666 The problem with any teaching is that it only really works if you're doing something useful (or fun). How much do you remember from school? Probably only small bits of trivia, beyond the things you were actually interested in or happened to use. If you want to keep her from your project until she has some proficiency (why? poor code review infrastructure?), give her a side-project - something useful to work on that she can tackle with the help of those training materials.
    – Luaan
    Jun 19, 2019 at 9:45
  • @Luaan Oh while I don't know about much that I know that I explicitly learned that in school, I'm pretty sure that a lot of what I know and take for granted, I know from school; and even more so it gave me the capabilities to build on top of that and self-learn more. So, I'd not subscribe that learning can only work if you have something practical/useful to do, but by definition a trainee at a company is there to get in touch with practical stuff and be trained to apply her theoretical knowledge that lies dormant and waits to be trained to be properly applied... Jun 19, 2019 at 19:41

Before starting my junior engineering position I did about 6 months of online courses and found myself woefully unprepared. I could write code, but setting your environment to write proper code outside of the browser wasn't covered. Git wasn't covered et al

I've been in my role for 8 months now and found that in the first month I learnt more than the past 6, just having been given a small project to complete that was a simple task (a PDF generator) with a real business case. You should strongly consider instead giving her a project

  • 2
    Similar experience (only about 40 years earlier). I had done some courses on programming at uni and I was hired as a programmer. Actually doing work is the only way to learn. Jun 21, 2019 at 14:18
  • @MartinBonner that's right. This is very much true with today's "computer science" degrees as well. They are great for teaching a lot of theory and engaging students to do little canned programs involving linked lists, tree traversal, and elementary parsers. They do not do well at all in teaching good style, teamwork, project management, or scaling. Jun 21, 2019 at 18:43
  • 2
    @RobertColumbia That's because Computer Science is (mostly) about the science of algorithms. "Programming" is a craft, and like all crafts is best learnt via an apprenticeship under a master. Jun 22, 2019 at 9:28

I am in a similar position at the moment; my company has onboarded some interns for the summer, and I've been assigned to mentor one of them. I'm trying to emulate how my boss operates with me, since I think it's been very successful in helping me learn.

First off, stay closer to your trainee. Engage more with them on the work they're doing, and the training/courses they're completing. If you just mindlessly throw something at them, and expect results, you're not going to get what you want out of it. You need to make your expectations clear, while also helping that trainee to meet them. Your goals are theirs, and their goals are yours.

The point of it all is the title you've given them: trainee. If you expect the world from them, an adjustment of expectations might be in order too. Additionally, some people absorb materials faster than others, so maybe some patience is needed. As she gains more experience from her work, let the leash go a little bit; give them more responsibility, different tasks, independent projects, etc. Be there for them still, but don't hover and micromanage and hold their hand.

Maybe have weekly catch-up meetings, and make it clear that they can speak frankly and clearly about any problems they might be having. This way, you can address things quickly and early, before they blossom into potential problems. We're only as strong as our weakest link, so working to strengthen those links goes a long way in the end.

  • 3
    "tighten the leash" might not be the friendliest way of describing what you're describing (great sentence me). You usually use that expression if someone misbehaves and you must keep a tighter control, in a bad way. +1 for the following explanation though. Jun 18, 2019 at 13:21
  • 1
    @ricardosilva I agree, but at this point, a nicer way to say it escapes me! If you've got a suggestion, feel free to edit! Jun 18, 2019 at 13:22

Divide the total training plan into smaller and >> verifiable << parts, ideally not longer than what can be learned in two weeks.

At the end of each part of training, test the trainee in practice - the trainee must be able to get a real task (not necessarily from a production code, but, something that requires real work on a computer, programming if it's software development, or whatever other skill it is), and do it in a reasonable time frame.

Don't let the trainee proceed to the next level until he/she has at least passably learned the current one.

Having long periods of training without any verification or feedback, without testing, and proceeding to the next stage without ensuring that the previous stage has been completed, is a recipe for failure.


Individuals differ vastly in traits related to learning. These traits include educational background, innate intelligence, intellectual maturity, and personality traits such as ability to defer gratification or the types of rewards and motivations that work for them. As an example, I'm 53 years old. When I was in high school and college, I was not very intellectually mature, so I tended to look for and accept oversimplified answers to complex questions.

These differences mean that some people will be able to self-study faster or more successfully than others. Your expectations may have been realistic for person A, but are turning out not to be realistic for person B.

Even a person who is good at self-studying will typically need feedback and course corrections from a mentor. In a college course, we talk about the teacher "teaching" the subject matter in a lecture. The reality is often that the teacher's most important functions is just the feedback. In your situation, there's no way you're going to present an entire lecture course for this student. However, the kind of feedback you give has a huge influence. The feedback effectively defines what it is that you want the student to learn. You can hand the trainee a book on the python programming language, and the student may think that the goal is to learn the syntax: function definitions have a colon at the end of the first line, etc. But maybe what you really want the trainee to learn is more conceptual stuff: reasons why some data types are immutable, etc.

People also generally need to practice new skills on something concrete. In the example where they're learning python: Exercise 1 -- Pick some exercises from ch. 1-4 of the python book and do them. Exercise 2 -- Check out our codebase from version control and edit the source code of LittleModule to make it conform to our conventions for source code formatting. Run the test suite, check with Fred that it looks OK, and then check it in. Continue with the rest of the modules in that directory.

So basically you should be interacting with the trainee in order to: --

  • Customize your expectations to their aptitudes as an individual.

  • Give frequent feedback on their progress and what it is you really expect them to be learning.

  • Give them small tasks for practice.


You can take this approach.

  • Identify topics that she has already learnt or is learning currently.

  • List out tasks from in-house work that can use the topics that she
    has learnt.

  • Submit listed tasks to her to work with and notify her that she can use XYZ concepts that she has already learned.
  • Make sure that listed tasks have some extra works that she might need to lookup while doing the development.

This approach might spark her interest in the actual in-house stuff as she will be actually learning concepts while doing the work itself. Once you think she is able to handle this tasks try to allocate more challenging work with gradual learning curve.


We do similar things mentioned by Player One in his answer. Our trainees (i am in IT) have to learn some basic things first. They get small tasks which have no purpose besides learning but with an long term goal in mind. The results of these tasks are verified by the supervisor. If a task is too broad then the supervisor splits it in smaller subtasks. Doing this we can ensure that the student/trainee learns some good programming practice and our company style of doing things.

So define what your trainee has to learn. Define some task or goal (learning only or some subtask of a commerical project) and split it in small steps. The trainee should also do time estimations how long a task (including the learning part) will take. He will fail his own deadlines very often. But thats ok because estimating is very hard, needs much experiences and you need to do it to get better at it.

Here is an example:

I once had to supervise an student/trainee. His ultimate task was to install Redmine on Linux, migrate the data of our old time and tasktracking software and write some plugins for some important additional features. This would be some interesting and fun work for a senior dev but for our student it was way above his skills. He knew the basics from the university (programming, SQL, database design) but was not experienced enough. So checked what he had to learn and prepared a special learning task as preparation for the real task.

He needed to:

  • to learn Ruby (for Redmine plugin development)
  • improve in using SQL
  • design a real application
  • learn basic webdevelopment stuff

Learning task: Calendar App

  • Write a console application in ruby to add, remove and display the events. (Ruby programming basics, no gui just boring console menu entries)
  • Save the events to a file and load events from a file. (basic filehandling in Ruby)
  • Design a database table to save calendar events in the database (simple database desing, first use of sql)
  • Write a simple webpage to add, remove and display the events. (first part for webdevelopment)
  • Write Ajax-Requests to add, remove and display events. (usage of Ajax Requests)
  • Add a login page and session handling for the app. (new user table, simple sessionhandling)

All these points above where milestones which i checked after he finished it. I had him redo or improve some parts if it was necessary (e.g. writing useful comments, variable names and so on). After that he knew the basics of webdevelopment and was capable to do the real project (still with supervision). In the end he was able to concentrate on the real problems of his project (how to write a Ruby plugin for Redmine, how to migrate some data) and not on low level things like how does the syntax in Ruby works, what is a (web)-session, how can i put files on a webserver for testing.

It went really great and it was the first time i did it like this.

  • How are tasks that are entirely for the sake of learning being perceived by the trainees? I tend to do the exact opposite and have them only do things that will actually get used, because I find it demotivates if you know this is going to be thrown out afterwards. The closest to a throw-away task would be if I find them Stack Overflow questions that have already been answered, and tell them to solve the problem without looking at the answers for practice. But those are usually not longer than half an hour things, and if they come up with a different solution they can post them.
    – simbabque
    Jun 19, 2019 at 11:45
  • In that case it was very well perceived. The learning task took 4 weeks and was just good enough to cover the basic aspects (learning new language and framework, writing some simple database crud app and some small webapplication) of the main project. The main project itself took 2.5 months and had it's own problems (like any real project). But he was able to solve them and i was able to see a significant increase in his coding skills. I would do this aigan but only for bigger tasks which are longer than a month and more complex than a small simple app.
    – some_coder
    Jun 19, 2019 at 12:00
  • When I was first learning development on the job ( different language than at university), I didn't have any ability to 'create from scratch' a project in the language, but I could make changes to the existing code-base. Having a simple 'from scratch' initially or in tandem with work in the actual code base could have more quickly guided me to success.
    – Cinderhaze
    Jun 19, 2019 at 15:53
  • Did you break the projects (both the "fake" and the real one) into tasks for him, or did you let him go on his own?
    – simbabque
    Jun 20, 2019 at 11:59
  • 1
    @simbabque I divided the projects into smaller tasks/milestones myself. The reason is that i want to check the results regulary and that i want to push the trainee into the right direction if he/she gets stuck. The regular timeframe for a subtask is 3-5 days. At the end of the apprenticeship the trainee has to divide the projects into smaller tasks himself/herself. I also do the time estimates for the projects and I add some buffer for the trainees. But i don't tell the trainees my estimates. They have to learn it themselves.
    – some_coder
    Jun 25, 2019 at 5:58

Lots of good answers, many of which touch on related points, but not necessarily the ones I'd like to focus on.

We have a trainee that needs to learn a lot of tech.

How much is "a lot" here? By your own admission, it sounds like even you consider that to be a significant and non-trivial amount. Assuming you're an average person and not some gifted genius, how long did it take you to learn it all? Start with that as an anchor point.

We decided that she takes online courses with exercises independently, before touching in-house stuff.

Your approach seems very ineffective. You don't just throw everything at someone and expect them to learn it before they even know what they need to use. That's how schools often teach math and it's a methodical disaster, IMHO.

Get the trainee to work on simpler/smaller tasks, so that they learn by doing as they go. That will be productive, effective, and mutually beneficial.

Also, being a trainee implies that there should be a trainer, instructor, or mentor of some sort with the trainee's training as part of their official responsibilities. This mentor would also be accountable for the trainee's progress at least as much as the trainee him/herself.

If you're not doing this, and it sounds like you're not from your OP, then this is on you, not your trainee.

In the beginning we talked about schedules, and how long she thinks the courses should take.

You're asking the trainee to provide estimates about something they're not yet qualified to estimate. Can you really justify the reasoning and logic behind doing this to other people with a straight face?

We agreed on a reasonable schedule.

Here's something that a lot of people seem to forget: Estimates are not commitments.

Also, in what alternate universe does a, presumably experienced, logical, and rational person, think that an estimate provided by someone who is not familiar with the material will be anywhere close to reality? Again, you're asking the trainee to provide a "reasonable" (according to who and on what basis?) estimate about something that, as a complete unknown to them, they're not yet qualified to estimate.

Knowing how much there is to learn with a steep learning curve, I set aside some time in case this takes longer than thought, instead of hurrying the learning process

And the purpose of this is what? You admit that the material is both a sizeable amount and of significant difficulty; learning things like this at a satisfactory level can take months, not just "hours" or "days". It would be more effective if you look at my initial suggestion regarding a more effective learning-by-doing method. I'd avoid doing things that might unnecessarily increase the pressure on this trainee, for no good reason. Doing this will simply create more (mental) obstacles for the trainee, instead of helping.

The problem now is, that these deadlines have been moved multiple times by the trainee [...] then the same process repeats itself.

I see nothing wrong with this. It's called wishful thinking meets objective reality.

Also I learned she has registered to more online courses on her own (that is, of course, a positive thing, but doing this without discussing it first seems like an issue)

Why does it "seem like an issue"? The only concern that I think would be valid here would be if the additional material is really related to what she needs to learn or if, due to her being new, she simply thinks it's related, when it's in fact irrelevant, or at least not as relevant as other things.

Beyond this, I don't see a lot of validity to your "issue" concern.

I'm in an awkward position, not knowing if this is slacking - or if she genuinely needs more time to process what she is learning and is too scared to say she does not understand something.

I think this will depend on how much rapport and trust you've been able to earn in the meantime, what your reactions have been in your previous meetings regarding the (IMHO questionable) "schedules" that were initially set up and then updated/delayed, whether you've been expressing your frustration (either verbally or general body-language, etc.), and so on.

Try to think back and, if you have, it might be a good idea to briefly apologize, acknowledge that you should've known better when it came to the amount and difficulty of the material, and that it's ok to openly let you know if she needs something else. (Obviously, this should be done with any trainee, regardless of gender.)

I want her to learn - in a way that suits her best.

Have you asked her what, if anything, she needs from you? Have you made it clear that, as a manager, you're there to remove obstacles outside of her control from her path rather than trying to spend your time micromanaging people?

Anyway this looks bad for me, not being able to manage this trainee and be any kind of an authority (letting a trainee dictate schedules)

What looks bad on you is that you should've known better regarding the amount and difficulty of the material. I once had a friend co-worker who severely underestimated the complexity of a task, and gave it out to an intern. Not surprisingly, the intern failed to accomplish his project. It lead to an overall negative and frustrating experience for everyone involved, including myself who as (unofficially) acting as the mentor to the intern's mentor.

I see lots of similarities here and I'm saying these things because it seems like you, as the more experienced person, need a reality check. You clearly seem to be holding yourself accountable, but you should do that not because it makes you "look bad", but because it makes you an ineffective manager and leader (there's a difference).

Also, if you really "want her to learn - in a way that suits her best", then you should provide a reasonable amount of trust and let the trainee openly communicate what their actual needs are. Even if this person needs something (e.g. more time to understand, etc), previous interactions (or a lack of them) might be part of the situation here.

How do I regain control of the situation?

You cannot "control the situation" while at the same time claiming that you "want her to learn - in a way that suits her best". You're trying to eat your cake and also have it; can't have it both ways.

I also don't know what "controlling the situation" would even mean, as you can't make her, or anyone else, learn/understand lots of complicated things at a faster rate. But perhaps some of the points above (e.g. learning by doing, smaller/simpler tasks, having an actual mentor, etc) might be of help to both of you in the process.

  • 1
    there's a lot going on here, but briefly: 1) tech is a modern js frontend webdev stack - she knows all the libs and frameworks - for someone who only knows jquery and php it IS a lot. 2) I was focusing on completely wrong issues, and now take a more supporting role. Controlling and looks is not important, efficient learning is the goal. 3) I started giving her small tasks starting from how we handle version control and building up, so she can focus on one thing at a time Jun 20, 2019 at 11:04

Use timeboxes to gain control

When something like learning takes too much time, it may simply be because the person is trying to go too deep into every single thing.

One way to deal with this is by allocating a reasonable amount of time to each topic, and giving this as a 'budget' to the trainee.

For example:

Please reserve monday-tuesday for X, wednesday for Y, and thursday for Z. You may of course work ahead, but never go past the planned dates, even if the task is not completed. We will review the progress on friday morning. If people try to claim too much of your time and the deadline is at risk, refer them to me rather than accepting.

This allows you to guarantee basic progress, and at the end of the week you can decide whether to pick up the next topics, or go deeper into the past ones.


Ask her to make a presentation, or report of what she learned. She should create a small example code, lecture notes, or a Powerpoint slides about this technology. Give her a quiz, an exam, to evaluate her performance. Give her an interview, just ask her some basic questions that every beginner should know, and then just start raising the difficulty step by step. She should tell you if she hasn't learned something yet instead of just guessing. That way you can measure how far she is on her progress. A test is an assessment of what she learned. She should learn the concepts well enough to be able to explain them to you you.

  • I'm not a big fan of your suggestions. Adding the work of a presentation or preparation for tests just adds even more to the workload of the trainee. And while tests might give some form of achievement for having completed these checkpoints, introducing them now might actually backfire. I think it would be better to just ask her what she is working at and then show her how this problem was solved in projects she is expected to contribute to in the future. Let her see a possible solution that is actually used will help more than creating problems in thin air for a test. Then make her explain. Jun 21, 2019 at 13:41

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .