Some years ago I was talking to the technical lead of a medium-sized company. I told them that I had just taught a 2-day training about the new features of Java 8 to two teams at a very large company.

He said: “I will never understand why those large companies spend money on training something like that. Like, language features! I expect my employees to learn those on their own, out of curiosity!”

Two people sitting in front of a computer, studying

Never be Great Anyway

Now, some weeks ago, I had a similar chat with someone from a different company. He said something like: “I am still baffled that companies hire you as a trainer because doing formal training is such a no-go at our company. Our founders want us to learn everything on our own.”

I asked: “And the people that don’t?” - “They say that those people will never be great programmers anyway.”

The Diversity Problem

While the first company gives its employees a lot of time to learn things on their own, I am not entirely sure about the second. I think they expect their employees to learn things on their own time, just as so many other companies do.

And this creates a huge diversity problem. You create a company that is based on a certain elite and shut out people who don’t fit. There are plenty of reasons why people cannot or do not want to learn in their spare time. People who might otherwise be very talented and might still be great programmers/architects/testers/… . And you are excluding those groups of people from your company.

So, if you want your people to learn on their own, at least give them enough time, as the first company does.

But while this is probably the bigger problem of such policies, it is not what I want to talk about today. Today, I want to talk about money.

When do We Learn?

I already wrote about how your employer will not teach you everything you want to know, but also cannot expect you to learn everything they want you to know on your own.

And if your employer still wants you to learn things they need you to know on your own time, try to find a time that is least precious to you, like a “learning lunch”. And learn about “fuck-you money”.

From here on, let’s assume that the company gives employees time to learn, or that they just take the time.

They probably can learn some a lot on their own. But people learn better together. And sometimes, some deliberate practice - on a “toy project”, not on the production code - will be the less risky way to learn.

When you add a trainer or coach to the mix (see below), again, sometimes it might be best to have an intense, on-site, multi-day training. Sometimes a few hours of remote coaching per month might be more cost-effective. Or any point between the two on that spectrum.

What does it Cost?

When you want people to learn on the job (during their “normal” work) or when you give them time to learn, this comes with a cost. Let’s ask 12 persons to learn something that will take them roughly a day (12 because that would also be a nice group size for training). In our hypothetical company, this costs 10 000 € (fully loaded cost, which is more than their salary).

But there is also an opportunity cost. While learning, those persons do not produce value for our customers - at least not directly (let’s assume they produce 13 000 € or value per day). So, the total cost of the learning is 13 000 €.

Now we put the 12 persons in a room together and add a hypothetical trainer. The day of learning now costs 15 000 €. (This is not an offer. If you are interested in hiring us, the price will depend on many factors.)

Why should our hypothetical company spend 15% more, if the can also not spend 15% more?

Could it be Cheaper?

Could hiring a trainer be more cost-efficient that not hiring them? What would have to be true so that investing that extra money would pay off?

To decide, we must look at the downside of employees learning on their own and at the value a professional trainer might bring.

When people learn on their own, some will be more motivated than others. Some will go into a topic deeply, others will only skim it. Some will learn just enough to be dangerous and then cause problems in your production code. Only then they will learn, the hard way - hard for themselves and for your company.

When there are sub-topics A, B and C to learn, everyone will focus on a different one, depending on their interests. Some - or all - might miss sub-topic C entirely, because they do not know that it is there. Or because it is a subtle detail, that you will only recognize after having some experience.

And you have no way to know who learned which sub-topics down to which depth. Everyone on your team might be at a different level.

An experienced trainer would show them from the start that C is important too. And he can be there to answer questions that the learners would otherwise have a hard time figuring out. In the classroom, you will know how deeply people dove into the sub-topics. And you have some control over that: All of them should have reached the same depth.

But a classroom setting with an experienced facilitator can provide even more value. A trainer who has experience with brain-friendly learning will prepare an environment where learning becomes more efficient. They will prepare the room and the training materials and create a schedule that ensures there is enough time for the important topics.

They know that people learn better in small groups. They will make sure that people talk and write about a topic and that there is enough movement and slack so that the energy stays high all the time.

They will make sure that learners discover the topics on their own and provide enough guidance to make sure the discovery does not take too long.


If you want your employees/team members to learn something, investing in formal training might be cheaper than making them learn it on their own. An experienced trainer and a dedicated time and place to learn can provide more value than not having them.

Before you dismiss hiring an experienced trainer, please consider the factors described in this post.