I work for Google and I find there's already a very large amount of on the job training required due to all the powerful but complicated internal tools. My manager has told me that I should not feel pressured to contribute at all for my first 6 months and I should feel free to just focus on learning as much as I can.
I've been here for almost a year now and feel like I still know nothing so the training is still certainly not done.
I didn't mean to jump to the defense of my employer as I'm obviously biased but do think we are far from perfect (although I am very happy here :). I just wonder what the right balance is. It seems like if people can't program at all then it's not really on the job training because they wouldn't be working right?
At least my own experience has been that I came in with some college experience but no college degree and not really knowing anything besides the bare minimum to contribute (being able to program, having some grasp of CS fundamentals) and have learned a ton on the job and still have much much more to learn. I think there is an expectation (and pressure!) for all SWEs to hit the senior level, L5, so in a way everyone who is hired under that level is doing on the job training no?
Sorry for the long post!
I don't see why Google couldn't do that today.
I'm not saying they are morally obligated to do so. At the end of the day they are a for profit company and they don't have to do anything at all about this problem. And, sure, the donations they are making instead are probably better than nothing. But as I mentioned, and as top19 mentions on what is as of this writing the top post on this article, the track record for these job retraining programs going back decades isn't very good.
What I'm saying is that if Google were to go to Pittsburgh, Youngstown, or Detroit, hire some bright unemployed people, pay them a decent but by no means exorbitant salary while it taught them how to code and then, as you point out, how to be a productive engineer at Google, at the end of the process those people would likely have very marketable skills to either continue moving up the ladder at Google or elsewhere. Of course this would cost Google something -- not only in the salaries while people were learning and not contributing but also in the salaries of people that were training and mentoring them. But Google is planning on spending a billion dollars anyway, so here's another way they could do that. A way that I think would be more effective.
--
Congrats on getting what sounds like a great job.
Rather than hire a traditional Stanford CS graduate, we find people who have self-taught to some basic extent and give them the chance to work under an apprenticeship. We started with a class of about 25 with decent results and will tune it more based on what we learn
This made sense back then because most of the tools, languages and techniques were either proprietary or niche. IBM wouldn't hire an ATT employee as FB hires a Google employee today, and back then people saw jobs as "until retirement", with a very different culture.
If you invested a lot of money training someone, you could expect them to stick around for a while and "pay back" your investment.
Today that isn't worth it. You could hire someone out of high school, spend a lot of resources training them just to have them poached by another company right after they are "ready".
That time is gone.
But here Google is looking to donate $1 billion as a charitable contribution to address a specific social problem. I'm suggesting an alternative way of "spending" that money. From that standpoint the fact that such a training program is sub-optimal in a bottom line sort of way isn't as important -- indeed it is kind of the point. The difference between the optimal business focused process and such a hiring and training program would be in lieu of the donation that Google is planning on making.
It's my contention that this way of spending money would yield more benefits than the current plan. I could well be wrong, but just criticizing the idea from a business efficiency angle misses the point.
That does make sense and I think that would be super cool if companies could do that today.
I admit I don't know much about the history but isn't building software today more complicated though not necessarily harder than it was before?
My impression is that before we would just build programs that ran on computers. So in that sense, if you knew how to program and had a compiler to use, that was sufficient to do what companies wanted to do. However, now we have people building other things like services, which is requires additional complexity and tooling on top of what was previously necessary.
The point I'm trying to make is that I suspect nowadays there's more prerequisite knowledge for most jobs than before.
> But Google is planning on spending a billion dollars anyway, so here's another way they could do that. A way that I think would be more effective.
That's a really good point. I imagine even if it takes a very long time to train people, with a billion dollars you have the time to do that..
The optimistic side of me wants to say it's because handling the logistics for that would be a nightmare and it's really outside of our core expertise.
The realistic side of me thinks that it probably is too expensive to give the same benefits to those employees that we give to current full time employees.
The pessimistic side of me also thinks that there's a certain level of prestige associated with working at Google that has been, at least to some level, successfully marketed both inwards and outwards, and hiring people who don't meet whatever "bar" would undermine that.
> Congrats on getting what sounds like a great job.
Thanks!
A more reasonable path is HelpDesk / Hardware Tech -> operations software / SysOp -> software engineering
Like, being a soldier doesn't require any sort of exceptional intelligence either. It doesn't even require average intelligence. What it requires is an IQ of 85 - below that point, and the US army cannot effectively train you to become a soldier. Despite having every incentive in the world, the US army still rejects about 15% of the population.
The area under the normal distribution curve from minus infinity to -1 (one standard deviation left of centre) is about 0.1586 or about 15-16%.
The 15 points = 1 stddev property of IQ is arbitrarily established.
I don't think our brain suddenly evolved in 200 years from illiterate peasants to software engineers. We just have more school time these days.
What do you think people did before the industrial revolution?
Ok, you can say that.
> Given enough[] time I believe most people can be trained to do almost any job.
That's a statement about potential, not capability.
1: http://thehill.com/homenews/state-watch/326995-census-more-a...
Truth of the matter is that most tech work doesn't involve AI, machine learning, self-driving cars or augmented reality but down-to-earth business applications. Developing those requires abstract thinking, empathy and problem-solving skills but it doesn't necessarily require a college-level IQ.
In fact a high IQ could even be harmful in that situation because apart from getting bored quickly highly intelligent people can display a tendency to overthink problems (which is probably how many notorious enterprise frameworks came about ...).
An IQ of 100 is defined as the median IQ level for a population. The range between 90 and 130 covers the whole gamut of human intelligence that's commonly considered normal.
Much of the day-to-day work in IT often doesn't need original thinking but merely skillful application of known methods and patterns, which in turn doesn't require a college education.
Point proven, eh? I'm not talking about these people (though I surmise there are quite a few in these companies as well who don't have that level of intelligence and simply tag along ...) but about the vast majority of IT workers working on some supposedly 'boring' database application.
Google and Apple in particular have been known for hiring highly qualified engineers only to then have them maintain some run-of-the-mill administrative software they're vastly overqualified to work on.
It doesn't, but you still need "higher level" developers to cover security and concurrent/parallel/distributed problems and maybe architecture.
It's not that someone can't also learn that stuff, but exposing a product publicly without some experience in those areas is asking for trouble.
IMO, Software is resisting division of labor and work by collapsing roles into "Full stack devs" or "DevOps Engineers".
In my opinion, full stack and DevOps is the normal, sane way of approaching software development. Artificially dividing up roles into labels such as 'front-end', 'back-end', 'database programmer', 'system administrator' only leads to more silos, less collaboration and sometimes even downright hostility between these roles.
There is no evidence that a person with low IQ cannot accomplish the the tasks involved in e.g. software engineering, although they would probably do so more slowly than a person with high IQ. From Wiki:
"The prevailing view among academics is that it is largely through the quicker acquisition of job-relevant knowledge that higher IQ mediates job performance. "
Also, going to college has no effect on IQ, so "college-level IQ" is meaningless gobbledygook.
The average IQ of someone with a college degree is a good bit higher than that. From a quick Google search it looks like it's around 115, which is a standard deviation higher than the general population.
Pretty much the same way we can consider the median personal income ($31,100 in 2016 - https://fred.stlouisfed.org/series/MEPAINUSA646N ) "low". Because it's low.
IQ: How fast you do it.
tl;dr: Problem-solving is software, IQ is hardware
Like any other skill, programming comes more easily to some than others, but with the right approach can be acquired by anyone.
Edit: responders to this comment seem to miss that the parent comment is suggesting Google hire new individuals and train them, not find talent in their workforce and do training there. Thats the unrealistic part- creating a secondary application process for individuals without the skills -- when they already reject a ridiculous number of people with many of the skills.
Do you think Google lets anyone to work their way up from front desk admin or barista?
She changed careers before I can really remember her at that job, but I too am self-taught in this field (but I trained myself at home).
The whole idea of companies not investing in their people is relatively new.
I don't think being a barista is much different than my example, though. Maybe they should make them internal hires.
A basic aptitude for the role or transferable skills maybe?
>"What salary should those positions command?"
Whatever the company wants to pay. Why does that matter at all? Employment is still an agreement between the two parties.
>"Sounds pretty handwavy."
Not at all, "on the job training" has a history stretching from Medieval Ages and the guild system, to the industrial revolution, powering the war-time workforce etc:
The commitment of capital to tanglible jobs that lead towards ojt is not handwavy at all. That said, i bet the tax breaks from the schooling is substantial
In my case I had no choice but to do a draining unpaid internship in college, their return offer was only $15/hr, nowhere I applied to for months (likely hundreds of applications) would take me even though I did all those things in the list and continually put my resume through those resume threads on reddit, except one offer for 30k. 15/hr and 30k are abysmal insults to the amount of time money and effort put into programming since middle school, getting a BS CS degree, volunteering on big online projects since high school, etc. I'm not in the middle of nowhere either, this was NY/NJ.
These experiences signal to me that the tech field is hightly oversaturated for new grads and it's a matter of time before people realize the bubble popped. Someone in my position should not be getting offered what amount to poverty wages taking into account student loans, the high price of car insurance for a driver of my age range, etc. Programs like what google is doing are just going to make this problem even worse as companies feel further emboldened to require increasingly more experience out of junior programmers and offer them salaries further approaching minimum wage.
From curiosity, and certainly not to offend.. you _did_ place your resume elsewhere as well, right?
I think retraining programs primarily help sharp, energetic folks who somehow got into a bad state (useless major, bad school, rough childhood, etc.); maybe even social connections and stability are more important than the skills they end up getting. However, those programs are IMO worthless for folks who lost a stable job and hope that Yet Another Certification Class will put them into a pipeline for a similar one. I am not sure how to help the second type.
Mind you they do hire some of the best, but the idea that google engineers are “the best” is a myth.
I heard though they are still trying to do this, even being aware of the lower success ratio.
However, just today I listened to the most recent Freakonomics Radio episode, which was about how Germany managed to become the economic powerhouse it is today. Most economists that were asked agreed that an essential ingredient of Germany's economic success is its unique concept of vocational training, which combines on-the-job training with school education and general - as opposed to employer-specific - job training.
Perhaps a system that's essentially a combination of both on-the-job training and more formal training programs would be conducive in this case as well.