Thursday, February 7, 2013

Employer Investment in Employees

Uncle Bob has a pretty clear opinion on who has the responsibility for a programmer’s practice/learning:

Professional programmers practice on their own time. It is not your employer’s job to help you keep your skills sharp for you.

Uncle Bob in The Clean Coder Chapter 6

Here Uncle Bob is talking to programmers, to employees.  What I hear is “don’t expect your employer to help you out.  If they’re not, that’s not an excuse.”

So, my question is, does that mean that employers should not provide any learning opportunities for it’s employees?

Sure, programmers are responsible for their own learning opportunities but could part of that be making sure to find an employer that provides those opportunities?  I personally take some time outside of work to sharpen my saw, but I also look for an employer that cares enough about me to invest in me.

Here is my reasoning why an employer would want to provide learning:

  • Hiring is hard and expensive. If you have people that are a good fit, it’s usually easier to improve their skills than to hire someone new.
  • Learning opportunities at work can inspire people to pursue outside work opportunities.  I have has several people that I work with start attending Utah Software Craftsmanship, Utah Code Camp and Coderetreats because of things that we’ve done during working hours.

What do you think?  Should employers provide opportunities for practice and learning?


  1. I've seen all four combinations of the employer and employee side of things. I think I'd rank the outcomes in this order:

    An employee who learns on their own and works for an employer that provides learning opportunities results in the most skilled and productive situation.
    I would say that the next best situation is an employee that learns on their own and the employer doesn't encourage it.
    I would put employees who don't learn on their own but their employer does provide learning opportunities next. Employers can only provide so much learning time, and if you're not in the habit of learning frequently you won't learn as fast during those employer provided situations.
    Lastly of course is the situation where the employee doesn't learn on their own and the employer doesn't encourage learning. This situation is just sad and is a great way to eventually kill off your career.

  2. I disagree with Uncle Bob. I think an employer has some responsibility in keeping employees/programmers trained. Employees are an investment that pay dividends. A great programmer can easily raise the valuation of a small startup.

    While I think the primary responsibility of learning falls upon the individual, the employer must bear some responsibility as well. I wouldn't want to work for a place that didn't align with those principles.

  3. Employers may offer you training. That's fine. You'd be a fool to turn that training down. More often than not, however, the training employers offer you is the training that they have chosen for you. This may, or may not coincide with your career goals and interests. If not, then it is still incumbent upon you to train yourself.

  4. @Robert - That is completely fair. If you want to learn something different than what your company wants you to learn, it is very much your responsibility to train yourself. (new language, new platform or framework) There is no excuse for playing the victim ("My company won't train me"). BUT, I guess in your world view, would you offer training as an employer? I ran into a company recently that took what you've said as "we don't provide any time for training and expect you to do it on your own because Uncle Bob said it's not a company's responsibility to train".


Original design by andrastudio
Blogger port by Blogger Templates