Hacker Read top | best | new | newcomments | leaders | about | bookmarklet login

There seems to me like there is a clear third option here which is for the organisation to buy an online rust course or select some of the (many) free materials online and pay a few existing employees (or new employees with previous programming experience but no rust experience) to do nothing but study those resources for two months before making them the senior devs/tech leads of the codebase. What is it with organisations refusing to pay to train and upskill employees nowadays? It is such short minded thinking to not invest in your own people.


sort by: page size:

What I am missing in the article and in all discussions here is: Why not pro-actively train people? Looking 2 months for someone with some kind of certification for "agile" is already a fourth of the time required to train someone who is already working for the client (numbers taken from the article).

If one is willing to pay 220k and cannot find anyone while most job offers (according to comments here) max out at 36k, make a deal with a current employee: "We pay for training, after 2 years you get a bonus of 72k and we double your salary." Company does not make a loss even if the dev leaves after 2 years, it has built the experience in-house and it had 16 months to disseminate the newly acquired knowledge to other employees.

The mindset that people must already have knowledge about some specific technology and universities accommodating employers there is exactly why we have so many code monkeys who don't know anything about CS finishing with a degree in CS who, after a few years, realize that their knowledge is basically worthless because the IT world has moved on and other languages or stacks are now en vogue.


Nowadays, it seems that companies don't train or pay for training.

I don't really see it that way. Training people is more expensive than hiring a senior dev for the simple fact that you have to use a senior dev's time to train the new person anyways.

Wait you mean companies should pay for training? That's unpossible. I thought training on high level systems just happened by unemployed people taking free Youtube courses or paying for their own training. Why are we asking so much from companies. It's bad enough we only give them massive tax breaks but now we want them to train people? What's next paying them well for experience? /s

In my experience, there is never enough time to complete the existing projects comfortably before the deadline. (If there is enough time, it means some team member should be moved to another project, or a new project should be created. Otherwise the managers are not doing their job.) So the actual problem with employee training is usually time, not money.

If you could learn a new work-related skill in literally zero time, most companies would be happy to pay the expenses. It wouldn't be different from buying a new chair, or a larger monitor. But if learning the skill takes a few days (forget about weeks!), in short term it means that a project that is already late would become even more late. Which is why the company totes supports investing in their human resources, but sorry, you can't get the training right now, because there are higher priorities. (Spoiler: there will always be higher priorities.)

Which is sad, because in many cases what is needed is time, not extra money. There are free tutorials, free online courses; the employees have skills they could teach their colleagues. In theory, the company totes supports employees with initiative to offer internal trainings, until they realize that this actually requires some time, too. Then you get the usual "yes, but not anytime soon". (Translation: it means "no".)

I have also seen it from the other side. At some point of my life, I was providing courses for companies.

Generally, there are companies willing to pay you for lessons of MS Word, or MS Excel. (Also Photoshop etc., but I wasn't doing those.) But with anything more complicated, time became an issue. Like, there would be a market for e.g. Enterprise Java lessons, assuming you could teach the whole thing from scratch in one day. Two days, maybe. But three days is definitely too long.

Literally, I once had a potential client asking me whether I could teach their new employees, who had zero programming skills (in any programming language, ever), make Java Enterprise applications. They gave me the checklist with dozen required topics, like web services etc. How quickly can I get my students from zero to expert? I thought about it, and concluded that perhaps in one week, I could at least tell them something about each topic; with no hope that they would remember it all, but perhaps if I also gave them detailed written notes, they would be able to reconstruct parts of it later. When I made a schedule and showed it to the potential client, they were horrified why should it take so much time; there were expecting at most three days, preferably two. At that moment I understood how much the complexity of technical knowledge is underestimated by those who make the decisions.

tl;dr - you are supposed to learn in your free time (and sometimes the company is willing to pay for it)


It wouldn't be a waste of time if there were not an endemic bias against both having older developers and paying them more for their experience.

As the employer-employee loyalty culture has been systematically destroyed, I am far more likely to see the training of more junior developers as training my own replacement than as improving the capabilities of my team.

If you want me to train someone in anything, you really ought to make me feel secure in my position, such as by offering me some form of job security. For the sake of discussion, let's just call that "tenure". If I am an "at will" employee, the only form of job security at my disposal is to be indispensable, and training others undermines that.

So if your company has a clear career path, with employees from entry-level tenderfoot to ultra-senior guru, and every step in between, you might feel good about training. If, on the other hand, your office is full of young bros, and the dusties are encouraged to move out to pasture when it's time, your time is coming.

If a company truly has a commitment to training, a necessary prerequisite is a commitment to long-term employee retention.


I'm not sure why companies ever got away from the idea that they could avoid training employees? In Silicon Valley you see the same pool of startups competing for the same pool of Rails/Backbone.js developers all because they'd rather perceive to get a complete package up front.

The apprenticeship model should be re-embraced.


This is why I think on-the-job training is important. I know there isn't much of an economic argument for a company to take on older candidates and teach them how to be a productive developer, but maybe subsidies would help? I don't know, I just don't think we can reasonably expect people to retrain on their own time... especially if they're dealing with financial stress already.

Imagine if they could like, hire a developer, and task him with reading up on Django for two or three months.

It is insane how much companies pay for refusing to pay for training.


tbh I hate this approach of up-skilling / free trainings, all they are really after with this is squeezing every last bit of juice out of you so they can continue to consolidate job roles and make you do more with less, instead of hiring SME's for specific things, they have a jack of all trades working on an endless amount of items that use to require a team of 10+ people to do. Especially in tech roles.

Some employers are actually far-sighted enough to spend money training their employees.

So e.g. you hire a bunch of fresh graduates who've learned some programming maybe Java and Python, and maybe have other expertise you value (e.g. maybe they're aerospace engineers and you write control software for jet engines) and you spend money hiring somebody capable to stand at the front and teach them how to write C++. It's their job to learn this, so you can do it pretty intensively, e.g. lecture slot / exercises / break / repeat.

C++ is a big sprawling language, but you can make a good start on them in two weeks.

You've presumably worked somewhere with at least some onboarding or spin-up time. Somewhere you weren't employee #1 and responsible for buying your own stationery and cleaning the toilet ? What did you do on day one? Fire training? How to use the CI system? Anti-bribery? Getting your photo taken for an ID badge? Maybe some "easy" first tasks just to learn your way around the systems?

If you have a job where you turn up on day one and are just as productive as a long haul employee, I have terrible news for you - you are the most replaceable person in your organisation and you are going to get fired.


How are you going to keep this hypothetical honor student down on the farm? [1]

In other words, once the employee has the skills to earn $85k, why should she wait six months for her giant raise when she could just switch employers and get the giant raise right away?

Not that this is the reason why the fantasy scenario doesn't work - if it were reliably possible to turn a raw recruit into DHH with six months of training, the fact that we'd have to pay market rates the entire time would be the least of our problems. Indeed, it would not be a problem at all.

A real reason why more companies don't try training up raw recruits is that (a) running a school is a specialized business and (b) the yield is far less than 100%, so it only works at scale. You need to admit - optimistically! - 10 or 20 bright and motivated nonprogrammers in order to graduate one person who, after six to twelve months of training, can be expected to successfully attack problems like:

"A customer has called; he has an obscure problem with his web site. Help him debug this problem over the phone. You have no access to the code or the server."

or

"Here's a legacy codebase that spans 267 files, two major versions of Rails, and three generations of programmers. Improve it. Don't break it, though, because our revenue depends on it."

or

"Here's a collection of 175 cloud instances running in Amazon. Build a system that reliably backs them all up once a day, with no downtime, and that can verify on demand that those backups exist."

or even something as "simple" as

"Here is a Wordpress site with a handful of specialty plugins installed. Here is an empty Git repository. Fill this Git repository with Rails code that implements a site that looks and acts exactly like the Wordpress site."

[1] http://www.azlyrics.com/lyrics/andrewbird/howyougonnakeepemd... - this song is now 95 years old, so I guess I better footnote it!


The problem with training is that you hire 10 people. 3 of them pan out. Then they leave for 100% more salary from a company that doesn't need to make up for hiring those other 7 in the first place.

In my experience companies that rely on armies of junior programmers to do things manually tend to end with horrible code bases and a lot of technical debt. Few abstractions, lots of repetition, little automation and so on.


My old company used to hire broke, desperate, and underachieving college students out of the local university for that exact reason - desperate people are often the most dedicated people.

The scheme worked something like how the New England Patriots run things: keep a solid core of veterans well-paid and happy, then use them to train the hell out of new hires. Later, make sure those new hires get excellent jobs elsewhere in 4-6 years and repeat the cycle, ensuring that you never have to pay for premium talent since you can develop it at budget cost in-house.

When I say "train the hell out of", I mean each new dev had a senior dev dedicated to just them who would criticize everything about their code and workmanship like a Mr. Miyagi. Every email that dev sent also got CC'd to that senior dev and the senior dev always knew what they were working on, how long such a thing should take them, and knew what questions/difficulties were likely to come up and when during the process of that item. Good mentorship cannot be substituted for during the training process.

The system fell apart once management got flipped and forgot what made them successful in the first place.


Kind of curious about what you're saying. Essentially that when the dev is getting up to speed with that training they quickly become more valuable to the company but the company isn't willing to acknowledge it?

The whole for-profit code school thing has been giving me the creeps since I started hearing about it years ago, precisely because it's the potential employees paying for hyper-specific training. I wonder if there would be fewer outcries about a talent shortage if companies were somehow incentivized to hire these more junior people with the explicit goal of training them up to a productive level.

Probably companies paying for their employees' training... Expensive if you ask me, but when you have 500 employees who need to learn some Linux basics, you can't just tell them to learn it themselves at home (and organizing their own training would be expensive).

This mentality towards training people is common, but is a textbook case of stupid management. Companies under-invest in training, then pay enormous recruiting costs in getting people with the "right skills" as well as paying opportunity costs when projects can't go forward because they can't find the "right people." It's a bit of brain-dead management that's common in some other fields, but acutely common in software/IT.

Which is crazy. No University can teach the kind of skills needed to be a good commercial developer.

The best approach would be apprenticeships; learning the craft while doing the job. But the industry has always been ridiculously opposed to training its own staff - echoing your point that this is seen as something that the education system should do (why?).

I've heard managers say crap like "but if we train them then they'll leave us when they finish the training and go somewhere else - we'll have paid for their training and get no benefit". This is a staff retention problem, not a training problem.

next

Legal | privacy