Skip to main content

Improve employees skills - in working hours of in their free time?

I see in many companies the culture where people should improve their technical and soft skills by they own, especially in their free time. This is not a bad thing but not all the time the skills that needs to be learned by the employee are the same with the one that the company prefers.

 Let’s assume that the employee would like to learn JavaScript and Angular.JS, but based on the company vision and forecast, you need to increase the skills on desktop application. In this case, people will be oriented to learn and increase their knowledge in the area where company needs.
Until now, we could say that we are fine, the need from the market needs to be full field by the company. Because of this there is a direct inters for it, for company and people that are working in that company.
In an ideal world, the company will invest the time from normal working hours to improve and increase the skills on desktop applications or the area where they need.
In reality we all know that the employee will need to accept a ‘win-win’ situation, where he will need to invest from his own time to improve this skills. We could say that this approach is good, because the skills of the employee increase – and this is in the interest not only from the company perspective, but also from the person.
But let’s look at the problem from a different view. The company needs to increase the skills on a specific area. There is a direct interests to do this – in the end we are talking about business and money. To be able to full field the marker demand, increase their business or even to remain on the marker they need to increase the skills on a specific area. Once they do this, they can deliver project using that technologies and/or skills that will generate automatically revenue and business.
From this point of view, a company has his own interest to increase people skills and they will see a direct revenue from this action.
In this context, should people invest their own time to lean and improve the skills based on the company needs?
There is no perfect answer. The problem is complex and we could discuss around it for days.
From company perspective, it needs the right people to deliver a project or a task. If this people will improve their skills they will gain automatically different advantages that will be seen in time in their benefits package or opportunities.
From people perspective, they will learn new stuff and their value on the marker will increase. But what is happening if you have 3 kids at home and you don’t have time anymore for learning. What if in their free time they study and play with AI and they don’t want to learn the company target skills in their time.
In the end, is their time and we need to respect it.

My opinion about this problem is in favor of people. Yes, as a company you will have different objectives and interests. You will want to have only the people that have passion and are involved 100% in their job. But, in reality, we cannot have a company with 100 or 1000 people formed only from people with passion. It is not because you don’t want to have this, but because you will not be able to find so many people with passion, gather them under the same roof and make all of them happy.
Less than 10% of people are dedicated to their work and IT. You will not be the only company on the market that wants to recruit this kind of people.
In this case, because in the end you are making a business you need to accept two things:
  1. Not all the people will want to learn and improve their skills from their own time.
  2. It is your own interest to increase the skills, because of this you should invest, not only requests (in this case invest = offer time to learn).
The learning context that you should offer during working hours should be with a clear MGO (Mission, Goal and Objectives), otherwise you will not be able to accomplish what you want.

Finding the ideal situation is hard, the perfect win-win situation for long term is even harder. Because of this a company should invest in people (in the business hours especially). And trust me, people with passion and commitment will invest from their own time (based on how much time they have). But never judge a person based on that he is doing in his free time, especially if he prefer to do other stuff then your vision.


  1. "If this people will improve their skills they will gain automatically different advantages that will be seen in time in their benefits package or opportunities. "

    If people learn other things not in the interest of the company, but in the interest of the (general) market, it still opens up opportunities for them, possibly much more (a new job or even a new career). So I see quite little advantage in learning on your own time things that are not interesting to you.

    1. 100% true.
      At home you should learn and do what you enjoy.


Post a Comment

Popular posts from this blog

ADO.NET provider with invariant name 'System.Data.SqlClient' could not be loaded

Today blog post will be started with the following error when running DB tests on the CI machine:
threw exception: System.InvalidOperationException: The Entity Framework provider type 'System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer' registered in the application config file for the ADO.NET provider with invariant name 'System.Data.SqlClient' could not be loaded. Make sure that the assembly-qualified name is used and that the assembly is available to the running application. See for more information. at System.Data.Entity.Infrastructure.DependencyResolution.ProviderServicesFactory.GetInstance(String providerTypeName, String providerInvariantName) This error happened only on the Continuous Integration machine. On the devs machines, everything has fine. The classic problem – on my machine it’s working. The CI has the following configuration:

TeamCity.NET 4.51EF 6.0.2VS2013
It seems that there …

Fundamental Books of a Software Engineer (version 2018)

More then six years ago I wrote a blog post about fundamental books that any software engineer (developer) should read. Now it is an excellent time to update this list with new entries.

There are 5 different categories of books, that represent the recommended path. For example, you start with Coding books, after that, you read books about Programming, Design and so on.
There are some books about C++ that I recommend not because you shall know C++, only because the concepts that you can learn from it.


Writing solid codeCode completeProgramming Pearls, more programming pearls(recommended)[NEW] Introduction to Algorithms


Refactoring (M. Fowler)Pragmatic ProgrammerClean code[NEW] Software Engineering: A Practitioner's Approach[NEW] The Mythical Man-Month[NEW] The Art of Computer Programming


Applying UML and Patterns (GRASP patterns)C++ coding standards (Sutter, Alexandrescu)The C++ programming language (Stroustrup, Part IV)Object-oriented programming (Peter Coad)P…

Entity Framework (EF) TransactionScope vs Database.BeginTransaction

In today blog post we will talk a little about a new feature that is available on EF6+ related to Transactions.
Until now, when we had to use transaction we used ‘TransactionScope’. It works great and I would say that is something that is now in our blood.
using (var scope = new TransactionScope(TransactionScopeOption.Required)) { using (SqlConnection conn = new SqlConnection("...")) { conn.Open(); SqlCommand sqlCommand = new SqlCommand(); sqlCommand.Connection = conn; sqlCommand.CommandText = ... sqlCommand.ExecuteNonQuery(); ... } scope.Complete(); } Starting with EF6.0 we have a new way to work with transactions. The new approach is based on Database.BeginTransaction(), Database.Rollback(), Database.Commit(). Yes, no more TransactionScope.
In the followi…