Definitely tech companies don't do enough to recruit and train novice programmers. Cue the "Junior level" position with a 3 year experience requirement.
That said, certainly the group that face the most racial inequalities and lack of institutional privilege in the American job market are humans who had the unfortunate luck of being born outside her borders.
This is the worst part IMO. As we all know a Computer Science degree isn't a 1:1 match for what people will be doing in the industry. Assuming every candidate had the chance to do side projects or internships[1] instead of spending a couple of weeks training smart grads is an easy way to have a "shortage".
[1] Not everyone has time for side projects (work + school), not all internships are the same either
The phasing out of on-the-job training is an atrocity, IMO, especially since what tends to replace it is training at a university, which ought (imo) be a place where people can get some education that isn't oriented primarily toward making them better workers.
It's especially ironic since often the university is a public institution, and the tech world (and the business world generally) tends to be so down on the public sphere and are big boosters of private enterprise. But they're not above taking a giant, giant handout in the form of worker training and then pissing and moaning when they think it isn't coming fast enough.
Ha and I see that pinboard just tweeted sth relevant: https://twitter.com/Pinboard/status/665235613373718528 "Recurring theme this morning is Minimum Viable Education, how to train future tech professionals without the baggage of reading English lit"
It's a few years old at this point, but the 2013 Velocity talk "there is no talent shortage" is still one of my favorite resources on the topic: https://youtu.be/P_sWGl7MzhU
You can hire and start training people now. They can start being useful fast. The whole bootcamp model proves this. If there's such a shortage businesses could just subsidize the bootcamps.
> Few businesses give interns real coding assignments or support them adequately. Many can’t or won’t pay interns, which erects a privilege barrier by excluding anyone who doesn’t have savings to weather working for nothing for a few months.
I'm a university student in a co-op CS program and most of my classmates, many with no previous programming experience, found good jobs that pay well where they get real experience after 1 year of school. This paragraph doesn't seem true to me at all. Demand is extremely high for CS interns, many even make it to earning $100k+ before graduating. These internships can also easily pay your entire tuition, you can even end up with tens of thousands of savings after you finish your degree.
Can confirm, I don't know a single person who studied CS at Waterloo and graduated with $1 of debt. Most had cars and hefty savings accounts along with job offers by senior year.
My company aggressively hires interns and new grads out of Waterloo.
I wish more CS programs would follow their model.
For those that don't know, the CS program at Waterloo is 5 years long. 4 years for the traditional education but there's also a requirement that the student complete FIVE internships at different companies(thus the extra year).
It's a great combination of learning and on the job training, and they get paid for their work.
The requirement says 5 internships to graduate, but that's just in case you can't find one your first work term. There are 6 work terms in the schedule and almost everyone does all 6 internships.
I don't understand how, as a student in a (miraculously) high paying internship for (miraculously) 4+ years straight, you could save up the $30k-$100k needed in the US to pay off a degree after dealing with rent, food, insurance, and other bills for those years. Our dorms at UT Austin were nearly as much as rent nearby, and while rent was barely cheaper if you commute, there's the added cost of having to use a car. Regardless of commuter status, you'll need a car to get to work in most cities in this country, and if you stay on campus, the parking passes make up for the savings you had living in a dorm. Luckily our yearly tuition was "only" 7-8.5k per year throughout my education -- yes, it increased by 15% through my stay, which nothing compared to the rent increases caused by West Coast migrants driving up prices. Now that I'm in a "real city", the cost of tuition every is at least five times the amount I used to pay, and don't get me started on the other costs.
I was very fortunate in how quickly I was able to pay off my debt, but anyone who graduates without debt in the US today is either getting a lot of outside help or outright lying about how much help they're getting.
If you don't understand how then you must have not tried to do an internship while you were in college. It's not very hard, especially somewhere like Austin.
For students going to UT, I highly recommend an internship somewhere like RetailMeNot downtown. You could easily pay for your education and living expenses during school and have a job after. When I was there we were recruiting interns like crazy and paying up to $10k for relocation alone. They were very hands-on and had to learn a ton of practical skills. There are similar programs all over town -- you just need to have something (anything!) to demonstrate some basic skills.
If you don't understand how then you must have not tried to do an internship while you were in college. It's not very hard, especially somewhere like Austin. It is not a miracle. I see close to 100 openings for interns at HireUTexas (hosted by UT) and over 200 postings on Indeed.
For students going to UT, I highly recommend an internship somewhere like RetailMeNot downtown. You could easily pay for your education and living expenses during school and have a job after. When I was there we were recruiting interns like crazy and paying up to $10k for relocation alone. They were very hands-on and had to learn a ton of practical skills. There are similar programs all over town -- you just need to have something (anything!) to demonstrate some basic skills and be willing to learn.
Yeah, that's what I thought too. I don't mean to sound rude but it's easy to not see any issues with the industry's hiring when you go to Waterloo/MIT/Stanford/etc.
(I'm assuming you are a Canadian student due to referring to the work as "Co-op")
In general, Canadian labour laws prohibit what are typically considered unpaid internships, although it varies slightly by province.[1][2] My understanding is that this is not the case across most of the United States.
That's definitely true, in the bubble you are currently in. This is an exceptional situation, not the norm. I do think it's a very successful model though, and it should be copied.
You can't call it a shortage when you expect developers to work 80 hour work weeks so you can squeeze $$ out of all your clients who decided not to hire in house for their main product on Android.
I thought it was pretty much known that the concept of SW-shortage was a big lie?
In the country I actually live in reports say that there is a huge shortage of waiters and chefs at the moment. And there is -- most of them are leaving for richer countries. What this means is that there are a lot of businesses who don't want or cannot afford paying more for chefs and waiters, and not that there are simply not enough people who could serve pizzas in a countryside restaurant.
Same goes for tech talent. I was testing the tech market in my home country a couple of years ago, and a multinational company who is (also) complaining about extreme lack of tech talent said that no engineer is allowed to be paid more than ~ $40k/year (in that particular office). They pay three times as much in the UK. Well, tough luck then. :)
Well the issue, in both the waiter and chef situation and the tech one, is that the company who employees them has to make enough from the labor that it is worth paying the higher price. There might just not be enough opportunities that will generate the level of income to support paying the higher wages.
In other words, there are a lot of companies that have tasks for tech workers; the problem is that a lot of those companies don't make enough profit to afford to pay those tech workers.
I have said it a million times before and I will say it as long as necessary to fix our employment-education conundrum: you do not learn how to work by sitting in class, you learn to work by going to work. We need publicly subsidized apprenticeships to replace the assumed role of the outrageously expensive 4 year college degree as the primary means of acquiring skills for the modern labor force.
There is a place for higher education - I must say so, for it is my employer - but it cannot be expected to be the sole gateway to the middle class. My grandfather was a combat engineer in WWII and quit his unenthusiastic GI Bill college career to start a successful restaurant instead. College doesn't work for everybody - working does.
The whole idea of you need to be well-rounded and take those $$ general ed courses is such a money grab. You want people to be able to speak, so let them take speech courses.
I'm all for apprenticeships - you learn by doing - but will there be enough companies willing to participate?
Essentially it's a more integrated earned-income tax credit, where the government pays for X% of the employee's wages. All sorts of businesses could take advantage of this, from scaling startups who can't afford to be wrong about their hires as they grow rapidly, to restaurants that experience high turnover among line chefs and have to train new cooks from scratch.
I work in higher Ed as an app developer with a focus on standardizing web apps across the college and it is very very hard to get the disparate forces within to work together. My parents have been academics their entire careers and have told me throughout my childhood the very same thing. Trust me when I say that it is much more complicated than you think. There is no "cut down on administrative costs" magic wand. We have people paid to do things for a reason.
Administration spending has massively increased over the last 30 years. Spending on faculty that does teaching hasn't. Somehow we managed to run colleges 30 years ago w/ half the administration.
Students want more than they did before. More counseling, more recreational activities, better housing. There are still a lot of other gaps too that students are demanding to be filled, like workers compensation for graduate students who run labs and get injured when things explode in their face. Universities also partake in expensive undertakings like performing research and hosting conferences and the like, the cost of which tend to increase more than the price of bread and gas over time.
I think people see higher education as a huge bill that just has to be cut because it's big. It is much more complex than people think. I have been a part of this system literally my entire life, starting from my birth while my mother was in law school.
If you have suggestions on how to reduce the cost of higher education, I am all ears. Just know that people who come in and think they can run it "like a business" are a laughingstock from California to Cambridge.
Yes, college is a huge bill that needs to be cut. It's both unethical and horrid for our economy to saddle students with so much debt when they're starting out in life.
How to reduce costs: line administrators up in a row and have them count off 1,2. Fire either the evens or the odds. Return to administrator staffing levels from 30 years ago. What doesn't get done doesn't get done.
at berkeley, base year 1991, management grew 252%, while non-management (ie productive workers) grew approx 42%.
I also think we should cut most sports -- why do our colleges need to serve as an amateur league for the nfl? -- but that opinion is not widely shared. Nonetheless, the amount of bloat that has crept in to what is purely overhead is stunning. Note that none of this has to do with "running like a business" except that business wouldn't tolerate this level of management overhead; it's wildly excessive.
Hmm, perhaps the cost of these things should be separated from the general tuition, thereby allowing people to pick and choose according to what they will pay for. Therefore staffing will scale to demand.
30 years ago you may not of had all the city, state and federal compliance and policy laws that a modern day state university has now and must enforce or report on (more rules/laws/regs with no funding to support them). Additionally, I know for a fact, when there are hiring and salary freezes for 5+ years on end that faculty are the exception to that rule (not the staff).
Utah spent $6,555 per student per year in 2013. This isn't a lot. New York spends $19,818 per student per year. This is a lot and I'd say a lot of this money is misspent. A former teacher told me that because he raised his hand on a misbehaving student, he was assigned desk job of some kind where he'd just sign in and stay cooped up in a room all day. I don't think there is too much money in education as much as there is too much bureaucracy in education. The "support structure" is too damn big. We don't need so much administrative overhead. We do not need to spend millions on a sports stadium. We went too far on trying to get schools to create well-rounded individuals.
Now comes the unpopular bit: We need to scale back on "no child left behind" as well. No, not in the sense that George W Bush bill, in the sense that public school system does not have to educate every single child. No, not every school needs therapists and counselors and what not. We need smaller class sizes so teachers know the names of their students.
Agreed. If apprenticeships were that good of an idea, tech companies wouldn't need a government subsidy to implement them.
What we are seeing is the rise of more coding "bootcamps", roughly semester-long courses to get someone started with coding. Maybe federal loans/grants can be allowed for these, but definitely not giving companies subsidies to train their workers.
Federal loans or grants will simply cause the average price for the bootcamps to go up. The subsidy money will be captured by the vendors. It won't result in lower cost for the student. Just look at what has happened in the college/university marketplace with student loans.
Apprenticeships aren't a good answer either, though. They create too much of a caste system, and are very restricting. What if at 18 I don't actually know what I want to do? If I join an apprenticeship I'm learning one thing. What if I don't like that one thing? What if I get 5 years into an apprenticeship and realize I can't get to the level I want to be at? I have to start over from zero in another field?
I don't like the college system we have now, but switching to the extreme of apprenticeship is definitely not a good answer. Right now I'm an engineer, but with my rounded education, if I don't like it, I can go and switch to a myriad of other fields that I'm educated enough for.
The world already had apprenticeship systems, and it's not some magical system we forgot about. Apprenticeships lead to weird power dynamics that aren't very good for the individual, such as being indentured to your employer for providing the training.
The main problem I see with our education system is that it's inefficient, and growing too large and slow to keep up with modern needs. This doesn't mean a well-rounded education is a problem though.
apprenticeship via a union is class conscious, organized labor in software engineering would also help us to be a part of opposing our employers' doing things that harm the community / world, even if unintended consequences, and connect us with workers in other industries.
why do i feel a class separation from a BART maintenance worker? because they are organized and conscious and probably see us, fairly rightfully, as bougie.
Many of the reasons you point to are the result of guilds, which were very territorial about their workers and markets. What I am proposing is for apprenticeships to be democratized by being made available for any employer willing to accept the wage subsidy. So if you decide after 5 years that engineering sucks, you can always find an apprenticeship elsewhere (assuming your former employer doesn't give you a dreadful reference)
This is an interesting topic to brew on. There would certainly be a lot of problems that would be tough to address using apprenticeship, but it's not like our current education system is lacking in problems.
I wonder, though, how apprentices would fair in competition with people having general education and degree focus. Fields require skills to change over time, and quite quickly now. I wonder if an apprentice would be stronger in the short-term and outpaced in the long-term.
Also, where does the wage subsidy you talk about come from? Would people be paying for their own apprenticeships? The government paying for some like public institutions?
The subsidy should come from the state, as it does for other forms of education. Honestly I think apprenticeships should start at 16 (and if I had my way, 14. I live in a generally rural community and kids in the sticks learn how to work a tractor pretty young).
Ultimately, people's competitiveness comes from their investment in their own skills. As Ron White taught us, "you can't fix stupid." What you can do is ensure that people will be working (instead of claiming welfare, etc), and that if their skills atrophy or their job is automated away, back to a new apprenticeship. Better than getting a new 4 year B.S.
There are better, middle-of-the-road alternatives, such as Trade Schools and Adult Education.
Trade Schools ditch the concept of a 4 year degree for a more affordable, focused alternative, but which doesn't entirely ditch the concept of an education (still requires high school, still puts you through basic requisite courses).
Because of the reduced time frame, they are also better matches for on-the-job training, meaning, lets say you decide you want to be an X, well, get hired by a company that does X, and have them directly subsidize your Trade School (you can get scholarships, but that's beside the point). You get a re-usable education, the employer gets a trained employee. If you decide your employer sucks, save a bit of money, and go another 2-3 years for a full fledged degree. Now you have work experience, and a completely re-usable degree.
This goes hand in hand with the second concept, Adult Education. Lets say, everyone gets hired to work at age 16, only they get on-the-job training in the form of an Apprenticeship. Require employers (by law, potentially subsidized by the state) to provide you with an education, as a part of your training. Don't just limit it to 16-21 year old's, though - education should be something available to everyone - no matter your age. Notice that this sounds a lot like the previous paragraph - that's because it is basically the same thing. Some companies do provide on the job training, but apprenticeships are rare, and so are Trade School/employer combos.
It probably did restrict him, he still works in the industry of his apprenticeship. The point is, what if he realized two years in, or five years in, that he didn't want to be a programmer?
As I have written elsewhere on this thread, this is why we have state-funded apprenticeships. It is far cheaper than 4 years at college, and it will also reduce costs for colleges that don't have to accommodate students who would otherwise be off at a debt-free apprenticeship.
I agree with the thrust of your argument. Pretty much no one gets job training from university, they get it when they start actually working.
There is a big problem, however, and it's only going to get worse. If all your training is in a specific industry, what happens when that job gets outsourced or automated away? I'm not sure I completely buy it, but there is a case to be made for generalist education as preparation for a changing world.
Here's how I see it: people should be guaranteed apprenticeships regardless of the job market or results of automation. However I also think that some portion of their income should be accrued into a college-only account, should they choose to expand their general education.
This is just my opinion and I would welcome responses.
>We need publicly subsidized apprenticeships to replace the assumed role of the outrageously expensive 4 year college degree as the primary means of acquiring skills for the modern labor force. There is a place for higher education - [...] - but it cannot be expected to be the sole gateway to the middle class.
Unfortunately, your apprenticeship idea does not address a key driver of why college institutions act as gatekeepers of desirable employers. It's not so much the "training" but more of the "signaling".[1]
As a thought experiment, let's pretend that the USA de-emphasizes college and promotes apprenticeships. The USA has roughly 3 million high school graduates every year. It's safe to say that most of them are not really interested in college purely for the "skills", or "well-rounded education" including Shakespeare and Calculus III. They'd rather just earn a middle-income salary right away and college is just that "hoop to jump through" to make it happen.
Well, businesses like Google, Ford Motor, Goldman Sachs, etc are not going to be interested in dealing directly with a vast sea of undifferentiated high school graduates to offer internships. They need a pre-selection process. Therefore, a new "clearinghouse" institution would naturally emerge in the marketplace to "evaluate" (test) and "filter" (rank) these hopeful apprentices. (Perhaps Donald Trump could create a spinoff business to do just that.)
Once the clearinghouse is in place, the hopeful candidates will want to demonstrate "talent/smarts/whatever" so they get the best internship offers. That will then lead to tutoring, coaching, preparation, etc and all those services cost money.
Because of how humans work, we'd just be replacing variable $FILTER="college" with $FILTER="clearinghouse+coaching". That new model may cost less overall to society because C+C doesn't spend 4 months dissecting Shakespeare but let's not kid ourselves that this new model is "more fair". A future complaint would be, "I took out a $20k to pay for clearinghouse coaching but instead of landing a coveted apprenticeship slot at Google Inc, I'm a barista at Starbucks. It sucks because The Whole Point of the apprenticeship system is to TRAIN me!"
You see, the core problem remains because companies don't want to "waste internship training" on poor candidates. Everybody wants the best of the best and apprenticeships don't fundamentally change that human desire.
> We need publicly subsidized apprenticeships to replace the assumed role of the outrageously expensive 4 year college degree as the primary means of acquiring skills for the modern labor force.
Public assistance and loan guarantees is how we got outrageously expensive college programs in the first place. Any system will suck up any free floating dollar made available to it.
I think the major disconnect here is in the industry's general inability to recognize ability through the standard interview processes.
On one hand you have the common whiteboard coding interviews popular among the big tech players (and much of the rest of the industry). I'm definitely biased here, as someone who is average/below average at these types of interviews but an above average (I hope) developer, but I don't think these interviews are very good indicators of on-the-job performance.
On the other hand you have many startups who won't even interview you if you don't have side projects or open source contributions to show. As someone who has side projects to show, I understand that most people do not, and it's unrealistic to expect everyone to.
The best way I can think of to predict how someone will perform is to have them do something relatively close to what they'd actually be doing, like going over some of your actual code with them and asking them to talk about what it's doing, and doing some pair programming with them on an actual computer.
Lots of companies do that, fwiw...though I agree that many companies may benefit from doing it more instead of blindly following the "big tech" whiteboard style.
Here's the thing about the whiteboard coding interviews:
A) There's a huge false negative rate. I.E. a lot of good engineers get turned down because of a bad whiteboard exercise.
B) The "big tech" companies know this and do not care. They have people who want to work there lined up out the door. The whiteboard interview is setup to minimize false positives.
C) The above argument can possibly be made in favor of the pair programming/"do what you'll actually be doing" type of interview and with even less false negatives, but frankly those interviews are harder and more time consuming on the interviewer(s). Additionally, the whiteboard panel gives 5-6 people time to meet and speak with the candidate instead of 1-2 which helps to mitigate the effects of any personal biases that might be present.
Tl;Dr - the whiteboard interviews actually work well when you have a giant pool of potentials and only optimize for minimizing false positives.
I don't know if it's necessarily mutually exclusive. It's only a handful of company's that can afford to do this sort of interviewing.
Judging by the amount of recruiter activity in my email/LinkedIn I'd say there's plenty of non "big tech" companies out there that are really struggling to find people.
> The "big tech" companies know this and do not care. They have people who want to work there lined up out the door.
Also importantly, the big companies seem to purposefully have a short memory to help counteract this. The chances you even interview in the same division are relatively low, much less with the same team. So why not let people try again and again and again? If they really are good, they'll eventually find a fit and get in.
Totally agree that the aim is to minimize false positives. although I think you could devise the pair programming type interview to still allow for 1 hour chunks with many different people doing the sessions. A good phone screen should be able to filter out candidates who obviously don't have the foundation, and watching them code in a (semi)realistic environment can tease out things like resourcefulness, search IQ, etc. I find those things to be better indicators than the ability to find the distance between two nodes in a binary tree.
> I think you could devise the pair programming type interview to still allow for 1 hour chunks
I try and do my interviews this way. While I am required to use the whiteboard and the interviewee is required to write on it, I try to make it as clear as possible that we can brainstorm/strategize on the problem together.
Of course I've asked the same few questions probably 100 times now and have seen them solved every which way so I have to play a little dumb sometimes.
Same problem occurs in a "real" pair programming environment too, though.
Interviewing is hard, and it's easy to throw stones at companies who don't do it the way you want it done.
> The whiteboard interview is setup to minimize false positives.
I have yet to see evidence that it actually does this. Everything I have seen so far is of the form, "$BIG_COMPANY does whiteboard interviews, $BIG_COMPANY hires few bad people, therefore whiteboard interviews minimize false positives". The problem is, that says nothing about the effect the whiteboard interview has on doing this. Would the rate change if it were removed? Would the change make the rate worse or better?
Anecdotally, we switched up our process some in an attempt to be able to hire faster (mostly by avoiding false negatives). It used to be standard whiteboard style; we switched to a mix of that and more real-work style interviews. False positives went up pretty significantly, and even after shedding those the general quality was of hires was a bit lower.
How long did you keep the new practices before reverting? Any company making this change could run into the issue of interviewers being well practiced at getting meaningful information out of whiteboard interviews and inexperienced at getting meaningful information out of real-work style interviews. Additionally, hiring successful whiteboard interviewees may actually select for people who are better at getting meaningful information out of whiteboard interviews and in turn perpetuate the relative effectiveness of solutions that are less effective in absolute. Which would bring us back to the problem being one of company culture. And this is a case where it is particularly expensive to fix it.
We didn't revert. I've since left, but they're still using the newer method. I believe the decrease in time to fill positions was determined to be worth the decrease in quality. It's been over a year - maybe 2.
it's the false positives that worry me more - that is, the well-practiced whiteboard coder who cannot actually design a maintainable system or the sociopath or brilliant jerk who nobody can stand to work with.
it's a simple idea in theory, but the reality of these things is a different beast, in particular that these tests form a filter not just in terms of degree, but also in terms of kind. this is why Google is Google and is extreme in both its strengths and weaknesses.
what i'm curious about is how Apple weathers these particular waters, since they have more to lose than any of the other big companies ever had. hehehe.
I've had conversations with various people about startups to "solve hiring". Thing is, I don't think it's solvable any more than another engineer's trap: fixing online dating.
People are involved and whether or not someone will work out is no more deterministic than figuring out if two people dating would result in a long term relationship.
The biggest problem with coding whiteboard problems is engineers fall into the trap of thinking the problem needs to be hard, which actually reduces the value of the test.
A coding test is simply to weed out idiots. That's why FizzBuzz is a simple problem. It's a negative filter. Acing such an easy test doesn't mean you'll be an awesome engineer but failing an easy problem almost certainly means you won't be an awesome engineer. Substitute with a hard problem and a pass signal doesn't get much better but a fail signal gets far noisier and you're going to get an awful lot more false negatives.
I hear you however that's shortsighted on part of the employer. As an employer, you have a projects/tasks which needs to be done, you set up estimates on how long it should take. If the employee does it within those estimates, what he/she does in their spare time should not matter at all.
Personally, I would love to hire a person who is doing side projects to keep learning. I feel very confident that they will be able to take care of the regular tasks assigned as part of the job.
I can think of two (note: I don't think they are valid).
A) You won't have time to work "outside of office hours". A lot of tech is notorious for having people work all kinds of hours. If your busy working on side-projects, you won't be working on work-projects
B) Burn out. If you spend all your time coding, you might end up burning out after the company has invested money and time into you.
Of course it's a lie. Like with many industries, worker 'shortages' only exist at the price level the corporations want to pay. So they artificially inflate supply to lower wages. Nothing new here.
I am not sure what you mean by 'want to pay'. It isn't like the companies that can't pay higher prices are rolling in profit. The companies that DO make a lot of money DO pay their engineers good wages. It is just that most companies tech workers don't add enough profit to afford their work.
If a company will make $100k extra in profit a year from the work a developer does, but the worker capable of doing that costs $150k a year, that company isn't going to be able to hire the worker. It isn't about 'wanting to pay them less' it is about the fact that every worker needs to produce more value than they cost, or the company will go out of business .
So that specific company either doesn't hire, or hires for less compensation, if they can find it.
But that doesn't mean that there's a shortage of workers. It means that that company isn't paying the market rate and thus will pull the good old H1B trick.
If lots of companies that have a need can't fill that need at a price they can afford, that is by definition a shortage. Of course a company could hire a worker if they spent enough money; even in the middle of a famine, you can find food if you have enough money.
Are there a lot of engineers sitting around unemployed, not taking these jobs that are offered because they aren't paying enough? I don't think that is the case - if there were, those people would start taking those jobs at the lower pay.
Since this isn't the case, imagine what you say starts happening - those companies with openings raise the pay enough to find a candidate. Where do you think that person is coming from? Not a pool of unemployed engineers, but from a pool of engineers working at other companies. So now, that other company has an open position. You have not changed anything, just shifted the problem to another company.
Sure, an individual company can deal with a shortage by just paying more, but that doesn't fix the industry wide issue.
I know as engineers, the shortage is great for us. It drives up our wages, and it benefits me greatly. I make a lot more than most other industries. But that doesn't mean there isn't a shortage.
The pool of unemployed engineers is of decent size, especially people who are over 40. We know that ageism exists in tech, and many are deemed not even worthy of an interview.
I will also disagree that these companies "cannot afford it". Who are the ones complaining? They are mainly very large corporations, or at least the ones that are being heard. Do you really think that hiring of an engineer here will make it so that they will become unprofitable?
It's the old saying of, "if you've been unemployed for X number of months, you will get shunned".
So again, it's supply/demand. If you want to pay less, why not just hire give the unemployed guys a shot at that lower pay? It's part of doing business. So pay less for less quality, but that's not what companies want. They want to pay less but for a higher quality. Like all things economics, we can have a substitute. It might be an inferior one, but you're not sure.
As far as wages, meh. I dunno. Once you hit a certain level these days, you kind of top out in engineering, or what people _want_ to pay. And the top of the graph gets dragged down by the sheer number of H1Bs.
How is this a problem? It's like saying that there's a shortage of X because I have a business idea that won't work unless I can pay all my workers minimum wage.
Whether it is a problem or not can be debated, but it IS a shortage. If we don't say this is a shortage, then nothing ever would be, unless there is literally 0 supply of something. As long as there is at least 1 of something, there will always be at least SOME price you could pay to get it. In economics, a shortage means the price of something fails to rise to reach an equilibrium, which is EXACTLY this situation: https://en.wikipedia.org/wiki/Shortage
Actually, I think I am wrong. The price HAS risen, but lots of people can't or won't pay. This doesn't meet the technical definition of a shortage:
In common use, the term "shortage" may refer to a situation where most people are unable to find a desired good at an affordable price, especially where supply problems have increased the price. "Market clearing" happens when all buyers and sellers willing to transact at the equilibrium price are able to find partners. There are almost always willing buyers at a lower-than-market-clearing price; the narrower technical definition doesn't consider failure to serve this demand as a "shortage", even if it would be described that way in a social or political context (which the simple model of supply and demand does not attempt to encompass).
There's probably enough hysteresis and softness in the market, such that job markets that are pricing the wages too high will retain their error long enough to drive a lot of companies out of business that wouldn't have failed if wage levels were set perfectly.
If there are 4 people in the US who have the skills to do a job, but you need 8, you have a shortage. It doesn't matter how much you offer for the role, you only have 4 skilled workers.
Of course in the long run, that doesn't hold true.
Is there any company in the U.S. that needs more tech workers than exist in the United States or can come to the United States to work? If not, your example is silly.
No company needs more than a tiny fraction of all the workers. Any company can fill its tiny fraction, if it wanted to, by simply increasing wages.
There are strong economic disincentives to training employees in transferable skills: the second you do, their market value increases, which means that if you don't pay them more, they will be recruited by other companies willing to do so. So you wind up paying for both their education and an increased salary because you educated them. It's cheaper to just hire someone who's already educated.
For example, consider the employer who decides to pay 10,000 to train their employees when doing so will cause their employees' market salary to increase by 5000/year. Assuming the employee will stay with him for 2 years if he does the salary bump, he's effectively paying the employee $5000 (salary bump) + 10,000/2 (training) = $10,000/year extra, when he could just go to the market and hire someone who already has the skill for $5,000/year extra.
Going to the market may also be faster if the skill is both complex & modularized (so it doesn't require deep insight into the current code base). You'll also benefit from the experience of the person who's done it before and gained battle scars.
So instead of promoting a jr engineer and training them, it's often just cheaper and more efficient to hire a senior guy who's done it before.
This seems so obvious, I can't believe others aren't seeing this. It is a clear collective action problem - the free loader (the company who doesn't train and just hires the trained worker away from the other company) will always have the advantage.
The employer is just as much a free-loader here. Why should they get skilled people for free? That talent directly benefits them, so why should other people be subsidizing their talent pool?
It only seems that way because as a company you're amortizing the investment in education over 2 years, when as an individual the employee can amortize that investment over the effective life of the technology or how long he thinks the knowledge will benefit him, which should be way, way longer (since he can switch companies and sell himself as a battle-tested expert). So the $5000 premium does include a payoff for investing in education, but the payoff is spread out among many more years.
This is a fundamental economic problem in training employees in transferrable skills. It's the reason why companies rarely pay for employees' graduate degrees (even though it can be extremely tax efficient for them to do so), and in the case that they do, they include term requirements (e.g. you have to work for us for 4 years afterwards, otherwise repay a prorated portion).
This. The economics and incentives make more sense for individuals to train themselves. Whether that be through university or through side projects.
In fact I'm going to university and was taught this in "Comparative political economy of advanced industrial nations". Germany and Japan counter this effect through a culture of non-poaching whereas Anglo-saxon nations deal with it through lots of university education.
So on the one hand we have this general sense that "there aren't enough talented people to hire" but on the other hand we have this idea that "it's easier to hire someone talented than to train them ourselves." Can it be both?
Any time a business is saying they are having trouble hiring someone talented... maybe they just have to look inward and improve their own training processes.
When companies complain of shortages, they generally mean "shortage at the price I would like to pay". The talent is there, they just need to be willing to pay the _true_ market clearing price, and to advertise as such. Having trouble hiring an iOS lead? Advertise the job with a $200k salary, and you'll see many more applicants.
Granted, there's going to be related costs of sifting through many unqualified applicants; but that's part of the cost of doing business.
Finally, I explained above why businesses don't want to train employees. It really is that simple. Th e math is basic and as inescapable as gravity. (note that planes do fly, aka, you can defy it by devising a clever contraption).
I guess what I really wanted to communicate is this:
If 100% of the companies decide it is not worth it to train employees because it's easier to hire already trained employees... there would be no trained employees to hire.
So it's like a market force - as long as some companies are paying to train employees, other companies can take advantage and hire externally. But not all companies can do that.
I disagree with this article's thesis, that the industry is incorrectly framing the talent problem. Whether people are talent or have talent is philosophical; the truth of the matter is that it is really hard to find software practitioners that can come in and do the job and do it well.
The problem, IMO, is that we don't have a good and clear understanding of what is the professional skill set. Even companies like Google, etc have lamented the very difficult problem of interviewing and identifying talent that correlates to on-the-job success.
I know (believe) that there is an acquirable skill set of a professional software practitioner that maps to real value. It's just that we as an industry haven't successfully codified it yet, we haven't yet shown which of the practitioner's skills are the most valuable, and we haven't shown how to measure and evaluate those skills in a candidate.
Only when we can be specific about what is the talent, the skill set will we be in a better position to consider the shortage (or not) of that talent; and only then will we also be able to be specific with individuals on how to acquire that skill set.
Agree. If you compare to for example lawyers and doctors there is a highly structured, consistent (even consistent across different countries and cultures) route to achieving "made man" status (apologies for using a sexually biased term, but I couldn't think of a better one). This consistent structure, beyond university, is what's missing. This of course is hardly surprising in a field that is roughly 100X less mature.
It could also be that there are many paths to and definitions for the skillsets that make good professional workers. Even if you create a list of the most desirable features of a software developer there are infinite ways of actually getting those features and they will not even look the same for 2 people.
One person who could be driven to learn and improve themselves by sheer ego, and another by absolute anxiety from bad things happening in their lives and a need for security and understanding. Those people look quite different when they work, and respond very differently to the high pressure situations of an interview. In the end you'll end up trending towards the same people that are in charge of interviews, because you'll tend to want to work with people that match your expectations of what a productive professional looks like (which can sometimes be "diversity" itself, though usually with a lot of degrees).
The other problem is that people tend to stick with what they know through their careers, and be around similar people. Its a fact of life of any interviewing programmer that with the exact same job requirements you can completely bomb one interview and look like a saint in the next. This is something that isn't easily quantified, which pretty much goes against the whole point of software to begin with, creating quite an interesting problem.
The tech talent shortage is a lie when you don't know what tech talent actually looks like. It also doesn't exist nearly as strong as it does in SV. Remote is a solution, but not everyone knows how to run a company with remote employees.
> And therein lies the problem: The real shortage isn’t of talented people; it’s of employers (and, by implication, society) who are willing or able to nurture talented people.
When everyone has a runway of 18 months, spending the time and money to nurture talented people isn't feasible whatsoever. You need productive people on day 1.
> Despite the tech industry’s propensity to hire people of privilege, research shows that people with different backgrounds are no less capable or successful as software engineers than those from privileged circles. And there are strong bottom-line arguments for a more diverse workplace.
Yet, the author's company is full of white males in their 20's and 30's...[0] It sounds like the author wants other people, with other capital to invest in the hard part of what he's suggesting to be solved.
For the record, Google brings in 1,500 interns per year. That's a pretty significant investment in talented people who many not necessarily be productive...(hint: they take a lot of Stanford CS undergrads) of which many will eventually take full time jobs there when they graduate. I've tried to hire these people and they are extremely difficult to attract when the alternative is a cushy job at Google.
Do you know how long it takes to outsource workers? You might as well just train new one's in house. Most of the time these companies just want cheaper employees.
> When everyone has a runway of 18 months, spending the time and money to nurture talented people isn't feasible whatsoever. You need productive people on day 1.
Day productivity is a mirage. Nobody is productive on day 1 unless they were already somehow working with your organization and understand your processes[1], team dynamics, and whatnot.
> Yet, the author's company is full of white males in their 20's and 30's...
You must be seeing something on that page I am not. In fact, it looks more diverse to me than the typical Valley start-up.
> It sounds like the author wants other people, with other capital to invest in the hard part of what he's suggesting to be solved.
That is a huge leap to make from a few pictures on an about page.
> For the record, Google brings in 1,500 interns per year. That's a pretty significant investment in talented people who many not necessarily be productive...(hint: they take a lot of Stanford CS undergrads) of which many will eventually take full time jobs there when they graduate. I've tried to hire these people and they are extremely difficult to attract when the alternative is a cushy job at Google.
So, there's a shortage of Stanford CS grads who interned at Google. What about the hundreds of thousands of grads who didn't go to Stanford or intern at Google? How many of them have you interviewed?
[1] Of course, it is my firm belief that much of the angst in Valley hiring is that companies don't want to actually pay attention to things like process and organization and so try to hire a bunch of self-organizing rockstars to compensate.
"Day 1" doesn't literally mean the first hour of employment. I guess you didn't pick up the subtle exaggeration.
> You must be seeing something on that page I am not.
There are exactly 11 images of people on that page. 9 of which are light skinned, male, and dressed almost identical to what you would see in a typical SV tech startup. There is exactly 1, yes 1, woman.
> How many of them have you interviewed?
Lots, in fact, most of them are not Stanford grads. Care to elaborate why that's relevant?
I cringe every time I hear someone say it's hard to find talent. I've been a software engineer for over 12 years now and I know I'm good at it. My problem is that I truly suck at interviewing. I have no social issues whatsoever, I'm just a normal guy outside the interview room, but when I do get in there - I'm at my absolute worse. I've been out of work for going on 8 months now and I just don't get it.
I've tried many things to overcome my severe interview anxiety and I've tried creative ways of getting employers to give a second chance or even a better first chance :) But it fails me each and every time.
I know how you feel man and I wish I could help you. Been talking with a former colleague of mine who blows most devs out of the water to apply to some jobs where he would be an amazing technical fit but it's hard to convince him to take the "humiliation".
I feel your pain. I've managed to do enough interviews that I no longer appear to be nervous, but my brain still just does not work correctly when in an interview situation. Hell, I once used a goto during an interview for a C++ job because I was so stressed out I could not recall the concept of loops.
I have literally hung up the phone after a live(remote) coding interview and had the answer to the problem that had stumped me pop into my head seconds later. Similar things have happened with driving/flying home from an on-site whiteboard interview.
My best-ever interview performance came after a year of looking for a new job. I was so beaten down and emotionally exhausted I showed up for a coding interview knowing I would fail, and I just did not care. No stress. Got the job.
So I guess that would be the secret for me, I have to not care if I get the job or not. Easier said than done.
The author is making a lot of statements without any evidence. For example:
> Unsurprisingly, this has spawned an arms race where companies like Facebook and Google keep swapping engineers like they’re pawns in chess. It’s also closed the doors for talented people who need an opportunity to develop and demonstrate their skills.
The "closed the doors" point links to the anti-poaching agreement that stopped 5 years ago and Facebook wasn't even involved in.
My experience at Google was also exactly the opposite of what he is saying. I was hired as a new-grad who knew very little and was extensively trained via my more experienced coworkers and a bunch of classes that Google has explicitly set up to train new engineers.
Not to say that Google doesn't have its faults, but to argue that "even the large prestigious tech companies don't train their employees" is just not correct.
There's a shortage of talent willing to work 80 hours a week and get paid for 20. There's a shortage of talent with 5 years of experience in technology that is 3 years old. There's a shortage of talent willing to jump through an absurd number of hoops in order to work for you.
If there were a talent shortage, the surest sign would be an increase in average wages after adjusting for inflation over the past 10 or 20 years. That would mean salaries would be significantly more than 23% higher than 2005 or 57% higher than in 1995 for approximately the same skill level.
That's not the case so I don't think there's a real shortage.
I completely agree with the title of this post, and agree with most of the points, but this problem is a lot bigger than breaking down cliques and social barriers, and developing mechanisms to get people experience.
The problem is that a bad hire is too expensive. What we need is a way to make it less expensive so hiring managers can take more risks.
I get a hundred emails a week from tech companies and head hunters who found some of my skills in a query in some database. I've sent resumes, had phone interviews, and taken technical tests.
But maybe 1 in 10,000 recruiter emails leads to a situation in which I feel a potential employer understands how "talented" I am.
Everything from skillset databases to bad recruiters, to arcane, useless technical interview questions makes me think we're doing this all wrong.
How many good jobs have good workers missed out on because everyone is so afraid of hiring the wrong person?
There's another group facing barriers to entry in the tech world: those without CS degrees. There are plenty of people without a CS degree who are talented, have natural aptitude, work hard, and can certainly program who get blasted during technical interviews trying to do the "CS fundamentals" dance. I have a ECE degree (with a focus in software), and while I looked for jobs it was and still is tough. And I don't mean OOP concepts or datastrucures. I mean trivia - whiteboard questions where the "correct" answer is Monte Carlo, or how to manipulate the call stack in C. 99% of entry-level jobs don't even get close to the depth of these concepts. I never learned them in school. I learned them on my own time, but only after flopping hard.
I know that knowledge of deeper concepts are important to becoming a well-rounded developer, but they're far from the skills needed to succeed in day-to-day development work. You can be an excellent developer and not know what P=NP even means. It's irrelevant.
At the same time, I've seen an awful lot of coders set out on a course of action that is easy, provided they first solve the generalized Halting Problem.
When I observe that the first thing they need to is solve the Halting Problem, they've never heard of it, but they're going to get cracking straight away on it... <facepalm />
I don't have a CS degree, technically. I have a Mech E degree with an awful lot of EE/CS coursework and work experience along the way. IME, companies aren't focused on the degree per-se, but on knowing that you have basic competence. My non-CS degree has never (knowingly) been an issue for me.
This article is decent, but it's missing the main component of the problem, which is that companies aren't willing to pay for the level of talent they are demanding, and instead will smile and offer "entry level" pay for a job that is not entry level. This problem occurs in broader audiences than the tech industry, of course.
They are using PR to communicate to the public that there is a shortage, but in reality there is only a shortage of labor in the sense that employers are not offering enough for skilled labor to attract the unicorns they want. The only "shortage" that appears in a highly competitive market with rich labor supply is due to picky employers unwilling to be aggressive with talent acquisition. Try offering a million bucks a year for any given dev job, I guarantee people will be quitting their day jobs to fill your "shortage". The point is that companies aren't willing to give to employees. The selfishness which embodies corporations chasing profit is the root problem here. The lack of training and mediocre wages that companies offer is a symptom of that same issue. Cue people bitching about how "hiring is so hard" when really they should be complaining about "training people is so hard"-- yeah, hiring the perfect unicorn for your machine is harder than investing in someone to make them what you want.
"In fact, I’ve come to believe the so-called “talent shortage” is a lie — the real shortage is of companies that are willing to invest in talented people."
I have been saying this for quite some time. Nobody is willing to accept that employees are capital purchases which require an up-front investment of capital in the form of training time and training infrastructure in order to make having them mutually profitable. Instead, they expect to unbox "interchangeable" employee labor for free, then provide a (calibrated to be a low-ball) salary once they have the labor they want in hand.
The reality here is VCs, billionaires, and CEOs are busy talking their book (what is their largest expense? Often, salaries. What does skilled immigration serve to reduce? Salaries. Say it isn't so!) But they're in danger of losing control of the narrative.
Secondly, they want to claim, particularly to government, that the tech industry as a whole needs more immigration and more government funded education. ie they speak for us, rather than for themselves, and a small group of owners and the rich.
They certainly well understand if they pay more they'll be able to hire nearly anyone they choose or want. They just don't wish to do so. By their fruit you will recognize them. I suggest that, as a working engineer, we refrain from taking advice on what's best for us from many of same people (or their paid advocates) who were recently involved in a conspiracy to reduce our wages.
Where's the massive runup in engineering salaries that would accompany an actually tight labor market? Have you, or any of your peers, recently gotten, say, a $10k or greater per annum raise? Without switching employers? Have your wages kept pace with the runup in housing costs in the bay area? It's finally percolating through the collective consciousness that working at startups as an employee often isn't a particularly good deal. See eg Tikhon [1].
But, you know, employees advocating for themselves instead of their bosses; that's class consciousness and socialism and all sorts of evil. To the fainting couch!
> The INS moat protects the high salaries of US based developers.
The INS ceased to exist in 2003.
If you want to say "US Immigration law" in general, just say that; if you want to blame the particular agency responsible for enforcing that law, you want to point to USCIS (United States Citizenship and Immigration Services).
As the CEO of a company that focuses on developing our developers, I find this article very click-baity. We're currently trying to hire engineers in house and we have found a few interesting things:
1. Mid-level engineers (I consider 2-5 years of experience) are very hard to find.
2. Entry/Junior engineers are much easier to find, but finding good ones[1] is still difficult.
3. I suspect it is the shortage that has caused the following discrepancy in applications: 100% of Program Manager respondents include a well-thought out cover letter, less than half of our software developer candidates do the same. With a frantic hiring of software developers (i.e. shortage), you don't need to put in so much effort and still find something.
[1] We consider good software developer candidates someone in the area or willing to relocate, who is sharp at coding and who has done some independent work.
Someone else commented about not having time to do independent work. In life, you have time or money. Is there someone out there like the protagonist in "The Pursuit of Happyness"? Yeah, probably. But you can't tell me that's the case for 90% of engineering candidates. If you love what you do, you find a way -- in fact, wild horses couldn't keep you away from building something. </finding-a-job-in-software-advice>
It's not that there isn't a deep talent pool, it's just that the demand is deeper than the supply.
151 comments
[ 2.8 ms ] story [ 198 ms ] threadhttp://www.thenewsminute.com/lives/609
Just basic statistics tell you some percentage of these people are quite talented. The thing with software is you don't really need that many people.
That said, certainly the group that face the most racial inequalities and lack of institutional privilege in the American job market are humans who had the unfortunate luck of being born outside her borders.
This is the worst part IMO. As we all know a Computer Science degree isn't a 1:1 match for what people will be doing in the industry. Assuming every candidate had the chance to do side projects or internships[1] instead of spending a couple of weeks training smart grads is an easy way to have a "shortage".
[1] Not everyone has time for side projects (work + school), not all internships are the same either
It's especially ironic since often the university is a public institution, and the tech world (and the business world generally) tends to be so down on the public sphere and are big boosters of private enterprise. But they're not above taking a giant, giant handout in the form of worker training and then pissing and moaning when they think it isn't coming fast enough.
So there is a shortage. But clickbait gets clicks.
is - present tense
will be - future tense
Satirical piece right?
For my own well-being I'm gonna assume this is satire.
It's propaganda by a thousand cuts. Eventually you'll just slowly buy into it. Or your dumb kids will.
I'm a university student in a co-op CS program and most of my classmates, many with no previous programming experience, found good jobs that pay well where they get real experience after 1 year of school. This paragraph doesn't seem true to me at all. Demand is extremely high for CS interns, many even make it to earning $100k+ before graduating. These internships can also easily pay your entire tuition, you can even end up with tens of thousands of savings after you finish your degree.
I wish more CS programs would follow their model.
For those that don't know, the CS program at Waterloo is 5 years long. 4 years for the traditional education but there's also a requirement that the student complete FIVE internships at different companies(thus the extra year).
It's a great combination of learning and on the job training, and they get paid for their work.
The shortage comes from all companies only wanting Waterloo/MIT/Stanford/etc-like grads, but there's only so many.
Now with the Canadian dollar tanking it's more like $10,000 USD. Lucky kids (the internships are overwhelmingly in the US and paid in USD).
I was very fortunate in how quickly I was able to pay off my debt, but anyone who graduates without debt in the US today is either getting a lot of outside help or outright lying about how much help they're getting.
For students going to UT, I highly recommend an internship somewhere like RetailMeNot downtown. You could easily pay for your education and living expenses during school and have a job after. When I was there we were recruiting interns like crazy and paying up to $10k for relocation alone. They were very hands-on and had to learn a ton of practical skills. There are similar programs all over town -- you just need to have something (anything!) to demonstrate some basic skills.
For students going to UT, I highly recommend an internship somewhere like RetailMeNot downtown. You could easily pay for your education and living expenses during school and have a job after. When I was there we were recruiting interns like crazy and paying up to $10k for relocation alone. They were very hands-on and had to learn a ton of practical skills. There are similar programs all over town -- you just need to have something (anything!) to demonstrate some basic skills and be willing to learn.
In general, Canadian labour laws prohibit what are typically considered unpaid internships, although it varies slightly by province.[1][2] My understanding is that this is not the case across most of the United States.
[1]: http://www.labour.gov.on.ca/english/es/pubs/internships.php [2]: https://www.labour.gov.bc.ca/esb/igm/esa-part-1/igm-esa-s1-w...
I thought it was pretty much known that the concept of SW-shortage was a big lie?
Same goes for tech talent. I was testing the tech market in my home country a couple of years ago, and a multinational company who is (also) complaining about extreme lack of tech talent said that no engineer is allowed to be paid more than ~ $40k/year (in that particular office). They pay three times as much in the UK. Well, tough luck then. :)
In other words, there are a lot of companies that have tasks for tech workers; the problem is that a lot of those companies don't make enough profit to afford to pay those tech workers.
There is a place for higher education - I must say so, for it is my employer - but it cannot be expected to be the sole gateway to the middle class. My grandfather was a combat engineer in WWII and quit his unenthusiastic GI Bill college career to start a successful restaurant instead. College doesn't work for everybody - working does.
I'm all for apprenticeships - you learn by doing - but will there be enough companies willing to participate?
Tech can afford to train their workers, regardless.
Are you kidding? Almost every public school I know of has to run fundraisers because government funding is not enough to last through the school year.
Administration spending has massively increased over the last 30 years. Spending on faculty that does teaching hasn't. Somehow we managed to run colleges 30 years ago w/ half the administration.
I think people see higher education as a huge bill that just has to be cut because it's big. It is much more complex than people think. I have been a part of this system literally my entire life, starting from my birth while my mother was in law school.
If you have suggestions on how to reduce the cost of higher education, I am all ears. Just know that people who come in and think they can run it "like a business" are a laughingstock from California to Cambridge.
Yes, college is a huge bill that needs to be cut. It's both unethical and horrid for our economy to saddle students with so much debt when they're starting out in life.
How to reduce costs: line administrators up in a row and have them count off 1,2. Fire either the evens or the odds. Return to administrator staffing levels from 30 years ago. What doesn't get done doesn't get done.
see eg http://ucbfa.org/2013/01/uc-management-bloat-updated/
at berkeley, base year 1991, management grew 252%, while non-management (ie productive workers) grew approx 42%.
I also think we should cut most sports -- why do our colleges need to serve as an amateur league for the nfl? -- but that opinion is not widely shared. Nonetheless, the amount of bloat that has crept in to what is purely overhead is stunning. Note that none of this has to do with "running like a business" except that business wouldn't tolerate this level of management overhead; it's wildly excessive.
Hmm, perhaps the cost of these things should be separated from the general tuition, thereby allowing people to pick and choose according to what they will pay for. Therefore staffing will scale to demand.
"Teachers outnumbered in schools by administrators, support staff in many states, study shows"
http://www.washingtontimes.com/news/2013/feb/28/teachers-out...
Utah spent $6,555 per student per year in 2013. This isn't a lot. New York spends $19,818 per student per year. This is a lot and I'd say a lot of this money is misspent. A former teacher told me that because he raised his hand on a misbehaving student, he was assigned desk job of some kind where he'd just sign in and stay cooped up in a room all day. I don't think there is too much money in education as much as there is too much bureaucracy in education. The "support structure" is too damn big. We don't need so much administrative overhead. We do not need to spend millions on a sports stadium. We went too far on trying to get schools to create well-rounded individuals.
Now comes the unpopular bit: We need to scale back on "no child left behind" as well. No, not in the sense that George W Bush bill, in the sense that public school system does not have to educate every single child. No, not every school needs therapists and counselors and what not. We need smaller class sizes so teachers know the names of their students.
What we are seeing is the rise of more coding "bootcamps", roughly semester-long courses to get someone started with coding. Maybe federal loans/grants can be allowed for these, but definitely not giving companies subsidies to train their workers.
I don't like the college system we have now, but switching to the extreme of apprenticeship is definitely not a good answer. Right now I'm an engineer, but with my rounded education, if I don't like it, I can go and switch to a myriad of other fields that I'm educated enough for.
The world already had apprenticeship systems, and it's not some magical system we forgot about. Apprenticeships lead to weird power dynamics that aren't very good for the individual, such as being indentured to your employer for providing the training.
The main problem I see with our education system is that it's inefficient, and growing too large and slow to keep up with modern needs. This doesn't mean a well-rounded education is a problem though.
why do i feel a class separation from a BART maintenance worker? because they are organized and conscious and probably see us, fairly rightfully, as bougie.
I wonder, though, how apprentices would fair in competition with people having general education and degree focus. Fields require skills to change over time, and quite quickly now. I wonder if an apprentice would be stronger in the short-term and outpaced in the long-term.
Also, where does the wage subsidy you talk about come from? Would people be paying for their own apprenticeships? The government paying for some like public institutions?
Ultimately, people's competitiveness comes from their investment in their own skills. As Ron White taught us, "you can't fix stupid." What you can do is ensure that people will be working (instead of claiming welfare, etc), and that if their skills atrophy or their job is automated away, back to a new apprenticeship. Better than getting a new 4 year B.S.
Trade Schools ditch the concept of a 4 year degree for a more affordable, focused alternative, but which doesn't entirely ditch the concept of an education (still requires high school, still puts you through basic requisite courses).
Because of the reduced time frame, they are also better matches for on-the-job training, meaning, lets say you decide you want to be an X, well, get hired by a company that does X, and have them directly subsidize your Trade School (you can get scholarships, but that's beside the point). You get a re-usable education, the employer gets a trained employee. If you decide your employer sucks, save a bit of money, and go another 2-3 years for a full fledged degree. Now you have work experience, and a completely re-usable degree.
This goes hand in hand with the second concept, Adult Education. Lets say, everyone gets hired to work at age 16, only they get on-the-job training in the form of an Apprenticeship. Require employers (by law, potentially subsidized by the state) to provide you with an education, as a part of your training. Don't just limit it to 16-21 year old's, though - education should be something available to everyone - no matter your age. Notice that this sounds a lot like the previous paragraph - that's because it is basically the same thing. Some companies do provide on the job training, but apprenticeships are rare, and so are Trade School/employer combos.
We should be combining the two.
There is a big problem, however, and it's only going to get worse. If all your training is in a specific industry, what happens when that job gets outsourced or automated away? I'm not sure I completely buy it, but there is a case to be made for generalist education as preparation for a changing world.
This is just my opinion and I would welcome responses.
Unfortunately, your apprenticeship idea does not address a key driver of why college institutions act as gatekeepers of desirable employers. It's not so much the "training" but more of the "signaling".[1]
As a thought experiment, let's pretend that the USA de-emphasizes college and promotes apprenticeships. The USA has roughly 3 million high school graduates every year. It's safe to say that most of them are not really interested in college purely for the "skills", or "well-rounded education" including Shakespeare and Calculus III. They'd rather just earn a middle-income salary right away and college is just that "hoop to jump through" to make it happen.
Well, businesses like Google, Ford Motor, Goldman Sachs, etc are not going to be interested in dealing directly with a vast sea of undifferentiated high school graduates to offer internships. They need a pre-selection process. Therefore, a new "clearinghouse" institution would naturally emerge in the marketplace to "evaluate" (test) and "filter" (rank) these hopeful apprentices. (Perhaps Donald Trump could create a spinoff business to do just that.)
Once the clearinghouse is in place, the hopeful candidates will want to demonstrate "talent/smarts/whatever" so they get the best internship offers. That will then lead to tutoring, coaching, preparation, etc and all those services cost money.
Because of how humans work, we'd just be replacing variable $FILTER="college" with $FILTER="clearinghouse+coaching". That new model may cost less overall to society because C+C doesn't spend 4 months dissecting Shakespeare but let's not kid ourselves that this new model is "more fair". A future complaint would be, "I took out a $20k to pay for clearinghouse coaching but instead of landing a coveted apprenticeship slot at Google Inc, I'm a barista at Starbucks. It sucks because The Whole Point of the apprenticeship system is to TRAIN me!"
You see, the core problem remains because companies don't want to "waste internship training" on poor candidates. Everybody wants the best of the best and apprenticeships don't fundamentally change that human desire.
[1]https://en.wikipedia.org/wiki/Signalling_(economics)
Public assistance and loan guarantees is how we got outrageously expensive college programs in the first place. Any system will suck up any free floating dollar made available to it.
On one hand you have the common whiteboard coding interviews popular among the big tech players (and much of the rest of the industry). I'm definitely biased here, as someone who is average/below average at these types of interviews but an above average (I hope) developer, but I don't think these interviews are very good indicators of on-the-job performance.
On the other hand you have many startups who won't even interview you if you don't have side projects or open source contributions to show. As someone who has side projects to show, I understand that most people do not, and it's unrealistic to expect everyone to.
The best way I can think of to predict how someone will perform is to have them do something relatively close to what they'd actually be doing, like going over some of your actual code with them and asking them to talk about what it's doing, and doing some pair programming with them on an actual computer.
Has anyone had success with something like that?
Here's the thing about the whiteboard coding interviews:
A) There's a huge false negative rate. I.E. a lot of good engineers get turned down because of a bad whiteboard exercise.
B) The "big tech" companies know this and do not care. They have people who want to work there lined up out the door. The whiteboard interview is setup to minimize false positives.
C) The above argument can possibly be made in favor of the pair programming/"do what you'll actually be doing" type of interview and with even less false negatives, but frankly those interviews are harder and more time consuming on the interviewer(s). Additionally, the whiteboard panel gives 5-6 people time to meet and speak with the candidate instead of 1-2 which helps to mitigate the effects of any personal biases that might be present.
Tl;Dr - the whiteboard interviews actually work well when you have a giant pool of potentials and only optimize for minimizing false positives.
Judging by the amount of recruiter activity in my email/LinkedIn I'd say there's plenty of non "big tech" companies out there that are really struggling to find people.
Also importantly, the big companies seem to purposefully have a short memory to help counteract this. The chances you even interview in the same division are relatively low, much less with the same team. So why not let people try again and again and again? If they really are good, they'll eventually find a fit and get in.
edit oops, no I didn't. I had a note about it originally but deleted before posting. Either way, that is correct.
I try and do my interviews this way. While I am required to use the whiteboard and the interviewee is required to write on it, I try to make it as clear as possible that we can brainstorm/strategize on the problem together.
Of course I've asked the same few questions probably 100 times now and have seen them solved every which way so I have to play a little dumb sometimes.
Same problem occurs in a "real" pair programming environment too, though.
Interviewing is hard, and it's easy to throw stones at companies who don't do it the way you want it done.
I have yet to see evidence that it actually does this. Everything I have seen so far is of the form, "$BIG_COMPANY does whiteboard interviews, $BIG_COMPANY hires few bad people, therefore whiteboard interviews minimize false positives". The problem is, that says nothing about the effect the whiteboard interview has on doing this. Would the rate change if it were removed? Would the change make the rate worse or better?
what i'm curious about is how Apple weathers these particular waters, since they have more to lose than any of the other big companies ever had. hehehe.
People are involved and whether or not someone will work out is no more deterministic than figuring out if two people dating would result in a long term relationship.
The biggest problem with coding whiteboard problems is engineers fall into the trap of thinking the problem needs to be hard, which actually reduces the value of the test.
A coding test is simply to weed out idiots. That's why FizzBuzz is a simple problem. It's a negative filter. Acing such an easy test doesn't mean you'll be an awesome engineer but failing an easy problem almost certainly means you won't be an awesome engineer. Substitute with a hard problem and a pass signal doesn't get much better but a fail signal gets far noisier and you're going to get an awful lot more false negatives.
In my experience having too many side projects can be perceived as a negative for some employers.
Personally, I would love to hire a person who is doing side projects to keep learning. I feel very confident that they will be able to take care of the regular tasks assigned as part of the job.
A) You won't have time to work "outside of office hours". A lot of tech is notorious for having people work all kinds of hours. If your busy working on side-projects, you won't be working on work-projects
B) Burn out. If you spend all your time coding, you might end up burning out after the company has invested money and time into you.
If a company will make $100k extra in profit a year from the work a developer does, but the worker capable of doing that costs $150k a year, that company isn't going to be able to hire the worker. It isn't about 'wanting to pay them less' it is about the fact that every worker needs to produce more value than they cost, or the company will go out of business .
But that doesn't mean that there's a shortage of workers. It means that that company isn't paying the market rate and thus will pull the good old H1B trick.
Are there a lot of engineers sitting around unemployed, not taking these jobs that are offered because they aren't paying enough? I don't think that is the case - if there were, those people would start taking those jobs at the lower pay.
Since this isn't the case, imagine what you say starts happening - those companies with openings raise the pay enough to find a candidate. Where do you think that person is coming from? Not a pool of unemployed engineers, but from a pool of engineers working at other companies. So now, that other company has an open position. You have not changed anything, just shifted the problem to another company.
Sure, an individual company can deal with a shortage by just paying more, but that doesn't fix the industry wide issue.
I know as engineers, the shortage is great for us. It drives up our wages, and it benefits me greatly. I make a lot more than most other industries. But that doesn't mean there isn't a shortage.
I will also disagree that these companies "cannot afford it". Who are the ones complaining? They are mainly very large corporations, or at least the ones that are being heard. Do you really think that hiring of an engineer here will make it so that they will become unprofitable?
It's the old saying of, "if you've been unemployed for X number of months, you will get shunned".
So again, it's supply/demand. If you want to pay less, why not just hire give the unemployed guys a shot at that lower pay? It's part of doing business. So pay less for less quality, but that's not what companies want. They want to pay less but for a higher quality. Like all things economics, we can have a substitute. It might be an inferior one, but you're not sure.
As far as wages, meh. I dunno. Once you hit a certain level these days, you kind of top out in engineering, or what people _want_ to pay. And the top of the graph gets dragged down by the sheer number of H1Bs.
In common use, the term "shortage" may refer to a situation where most people are unable to find a desired good at an affordable price, especially where supply problems have increased the price. "Market clearing" happens when all buyers and sellers willing to transact at the equilibrium price are able to find partners. There are almost always willing buyers at a lower-than-market-clearing price; the narrower technical definition doesn't consider failure to serve this demand as a "shortage", even if it would be described that way in a social or political context (which the simple model of supply and demand does not attempt to encompass).
If there are 4 people in the US who have the skills to do a job, but you need 8, you have a shortage. It doesn't matter how much you offer for the role, you only have 4 skilled workers.
Of course in the long run, that doesn't hold true.
No company needs more than a tiny fraction of all the workers. Any company can fill its tiny fraction, if it wanted to, by simply increasing wages.
For example, consider the employer who decides to pay 10,000 to train their employees when doing so will cause their employees' market salary to increase by 5000/year. Assuming the employee will stay with him for 2 years if he does the salary bump, he's effectively paying the employee $5000 (salary bump) + 10,000/2 (training) = $10,000/year extra, when he could just go to the market and hire someone who already has the skill for $5,000/year extra.
Going to the market may also be faster if the skill is both complex & modularized (so it doesn't require deep insight into the current code base). You'll also benefit from the experience of the person who's done it before and gained battle scars.
So instead of promoting a jr engineer and training them, it's often just cheaper and more efficient to hire a senior guy who's done it before.
Problem is, that's a name-calling game.
The employer is just as much a free-loader here. Why should they get skilled people for free? That talent directly benefits them, so why should other people be subsidizing their talent pool?
This is a fundamental economic problem in training employees in transferrable skills. It's the reason why companies rarely pay for employees' graduate degrees (even though it can be extremely tax efficient for them to do so), and in the case that they do, they include term requirements (e.g. you have to work for us for 4 years afterwards, otherwise repay a prorated portion).
In fact I'm going to university and was taught this in "Comparative political economy of advanced industrial nations". Germany and Japan counter this effect through a culture of non-poaching whereas Anglo-saxon nations deal with it through lots of university education.
Any time a business is saying they are having trouble hiring someone talented... maybe they just have to look inward and improve their own training processes.
Granted, there's going to be related costs of sifting through many unqualified applicants; but that's part of the cost of doing business.
Finally, I explained above why businesses don't want to train employees. It really is that simple. Th e math is basic and as inescapable as gravity. (note that planes do fly, aka, you can defy it by devising a clever contraption).
If 100% of the companies decide it is not worth it to train employees because it's easier to hire already trained employees... there would be no trained employees to hire.
So it's like a market force - as long as some companies are paying to train employees, other companies can take advantage and hire externally. But not all companies can do that.
The problem, IMO, is that we don't have a good and clear understanding of what is the professional skill set. Even companies like Google, etc have lamented the very difficult problem of interviewing and identifying talent that correlates to on-the-job success.
I know (believe) that there is an acquirable skill set of a professional software practitioner that maps to real value. It's just that we as an industry haven't successfully codified it yet, we haven't yet shown which of the practitioner's skills are the most valuable, and we haven't shown how to measure and evaluate those skills in a candidate.
Only when we can be specific about what is the talent, the skill set will we be in a better position to consider the shortage (or not) of that talent; and only then will we also be able to be specific with individuals on how to acquire that skill set.
One person who could be driven to learn and improve themselves by sheer ego, and another by absolute anxiety from bad things happening in their lives and a need for security and understanding. Those people look quite different when they work, and respond very differently to the high pressure situations of an interview. In the end you'll end up trending towards the same people that are in charge of interviews, because you'll tend to want to work with people that match your expectations of what a productive professional looks like (which can sometimes be "diversity" itself, though usually with a lot of degrees).
The other problem is that people tend to stick with what they know through their careers, and be around similar people. Its a fact of life of any interviewing programmer that with the exact same job requirements you can completely bomb one interview and look like a saint in the next. This is something that isn't easily quantified, which pretty much goes against the whole point of software to begin with, creating quite an interesting problem.
> And therein lies the problem: The real shortage isn’t of talented people; it’s of employers (and, by implication, society) who are willing or able to nurture talented people.
When everyone has a runway of 18 months, spending the time and money to nurture talented people isn't feasible whatsoever. You need productive people on day 1.
> Despite the tech industry’s propensity to hire people of privilege, research shows that people with different backgrounds are no less capable or successful as software engineers than those from privileged circles. And there are strong bottom-line arguments for a more diverse workplace.
Yet, the author's company is full of white males in their 20's and 30's...[0] It sounds like the author wants other people, with other capital to invest in the hard part of what he's suggesting to be solved.
For the record, Google brings in 1,500 interns per year. That's a pretty significant investment in talented people who many not necessarily be productive...(hint: they take a lot of Stanford CS undergrads) of which many will eventually take full time jobs there when they graduate. I've tried to hire these people and they are extremely difficult to attract when the alternative is a cushy job at Google.
[0] - https://www.vividcortex.com/about-us/#leadership
Day productivity is a mirage. Nobody is productive on day 1 unless they were already somehow working with your organization and understand your processes[1], team dynamics, and whatnot.
> Yet, the author's company is full of white males in their 20's and 30's...
You must be seeing something on that page I am not. In fact, it looks more diverse to me than the typical Valley start-up.
> It sounds like the author wants other people, with other capital to invest in the hard part of what he's suggesting to be solved.
That is a huge leap to make from a few pictures on an about page.
> For the record, Google brings in 1,500 interns per year. That's a pretty significant investment in talented people who many not necessarily be productive...(hint: they take a lot of Stanford CS undergrads) of which many will eventually take full time jobs there when they graduate. I've tried to hire these people and they are extremely difficult to attract when the alternative is a cushy job at Google.
So, there's a shortage of Stanford CS grads who interned at Google. What about the hundreds of thousands of grads who didn't go to Stanford or intern at Google? How many of them have you interviewed?
[1] Of course, it is my firm belief that much of the angst in Valley hiring is that companies don't want to actually pay attention to things like process and organization and so try to hire a bunch of self-organizing rockstars to compensate.
"Day 1" doesn't literally mean the first hour of employment. I guess you didn't pick up the subtle exaggeration.
> You must be seeing something on that page I am not.
There are exactly 11 images of people on that page. 9 of which are light skinned, male, and dressed almost identical to what you would see in a typical SV tech startup. There is exactly 1, yes 1, woman.
> How many of them have you interviewed?
Lots, in fact, most of them are not Stanford grads. Care to elaborate why that's relevant?
I've tried many things to overcome my severe interview anxiety and I've tried creative ways of getting employers to give a second chance or even a better first chance :) But it fails me each and every time.
I'm sorta the same..
I have literally hung up the phone after a live(remote) coding interview and had the answer to the problem that had stumped me pop into my head seconds later. Similar things have happened with driving/flying home from an on-site whiteboard interview.
My best-ever interview performance came after a year of looking for a new job. I was so beaten down and emotionally exhausted I showed up for a coding interview knowing I would fail, and I just did not care. No stress. Got the job.
So I guess that would be the secret for me, I have to not care if I get the job or not. Easier said than done.
I don't mind showing my work, but not while I do it.
> Unsurprisingly, this has spawned an arms race where companies like Facebook and Google keep swapping engineers like they’re pawns in chess. It’s also closed the doors for talented people who need an opportunity to develop and demonstrate their skills.
The "closed the doors" point links to the anti-poaching agreement that stopped 5 years ago and Facebook wasn't even involved in.
My experience at Google was also exactly the opposite of what he is saying. I was hired as a new-grad who knew very little and was extensively trained via my more experienced coworkers and a bunch of classes that Google has explicitly set up to train new engineers.
Not to say that Google doesn't have its faults, but to argue that "even the large prestigious tech companies don't train their employees" is just not correct.
There's a shortage of talent willing to work 80 hours a week and get paid for 20. There's a shortage of talent with 5 years of experience in technology that is 3 years old. There's a shortage of talent willing to jump through an absurd number of hoops in order to work for you.
That's not the case so I don't think there's a real shortage.
The problem is that a bad hire is too expensive. What we need is a way to make it less expensive so hiring managers can take more risks.
I get a hundred emails a week from tech companies and head hunters who found some of my skills in a query in some database. I've sent resumes, had phone interviews, and taken technical tests.
But maybe 1 in 10,000 recruiter emails leads to a situation in which I feel a potential employer understands how "talented" I am.
Everything from skillset databases to bad recruiters, to arcane, useless technical interview questions makes me think we're doing this all wrong.
How many good jobs have good workers missed out on because everyone is so afraid of hiring the wrong person?
There's another group facing barriers to entry in the tech world: those without CS degrees. There are plenty of people without a CS degree who are talented, have natural aptitude, work hard, and can certainly program who get blasted during technical interviews trying to do the "CS fundamentals" dance. I have a ECE degree (with a focus in software), and while I looked for jobs it was and still is tough. And I don't mean OOP concepts or datastrucures. I mean trivia - whiteboard questions where the "correct" answer is Monte Carlo, or how to manipulate the call stack in C. 99% of entry-level jobs don't even get close to the depth of these concepts. I never learned them in school. I learned them on my own time, but only after flopping hard.
I know that knowledge of deeper concepts are important to becoming a well-rounded developer, but they're far from the skills needed to succeed in day-to-day development work. You can be an excellent developer and not know what P=NP even means. It's irrelevant.
When I observe that the first thing they need to is solve the Halting Problem, they've never heard of it, but they're going to get cracking straight away on it... <facepalm />
I don't have a CS degree, technically. I have a Mech E degree with an awful lot of EE/CS coursework and work experience along the way. IME, companies aren't focused on the degree per-se, but on knowing that you have basic competence. My non-CS degree has never (knowingly) been an issue for me.
What an easy way to confuse someone whose never heard of the term for "does the program stop". It's pedantic.
They are using PR to communicate to the public that there is a shortage, but in reality there is only a shortage of labor in the sense that employers are not offering enough for skilled labor to attract the unicorns they want. The only "shortage" that appears in a highly competitive market with rich labor supply is due to picky employers unwilling to be aggressive with talent acquisition. Try offering a million bucks a year for any given dev job, I guarantee people will be quitting their day jobs to fill your "shortage". The point is that companies aren't willing to give to employees. The selfishness which embodies corporations chasing profit is the root problem here. The lack of training and mediocre wages that companies offer is a symptom of that same issue. Cue people bitching about how "hiring is so hard" when really they should be complaining about "training people is so hard"-- yeah, hiring the perfect unicorn for your machine is harder than investing in someone to make them what you want.
"In fact, I’ve come to believe the so-called “talent shortage” is a lie — the real shortage is of companies that are willing to invest in talented people."
I have been saying this for quite some time. Nobody is willing to accept that employees are capital purchases which require an up-front investment of capital in the form of training time and training infrastructure in order to make having them mutually profitable. Instead, they expect to unbox "interchangeable" employee labor for free, then provide a (calibrated to be a low-ball) salary once they have the labor they want in hand.
Secondly, they want to claim, particularly to government, that the tech industry as a whole needs more immigration and more government funded education. ie they speak for us, rather than for themselves, and a small group of owners and the rich.
They certainly well understand if they pay more they'll be able to hire nearly anyone they choose or want. They just don't wish to do so. By their fruit you will recognize them. I suggest that, as a working engineer, we refrain from taking advice on what's best for us from many of same people (or their paid advocates) who were recently involved in a conspiracy to reduce our wages.
Where's the massive runup in engineering salaries that would accompany an actually tight labor market? Have you, or any of your peers, recently gotten, say, a $10k or greater per annum raise? Without switching employers? Have your wages kept pace with the runup in housing costs in the bay area? It's finally percolating through the collective consciousness that working at startups as an employee often isn't a particularly good deal. See eg Tikhon [1].
But, you know, employees advocating for themselves instead of their bosses; that's class consciousness and socialism and all sorts of evil. To the fainting couch!
[1] https://medium.com/@tikhon/founders-it-s-not-1990-stop-treat...
There's more than enough talent, it's just waiting outside the gates of the coliseum.......
The INS ceased to exist in 2003.
If you want to say "US Immigration law" in general, just say that; if you want to blame the particular agency responsible for enforcing that law, you want to point to USCIS (United States Citizenship and Immigration Services).
1. Mid-level engineers (I consider 2-5 years of experience) are very hard to find. 2. Entry/Junior engineers are much easier to find, but finding good ones[1] is still difficult. 3. I suspect it is the shortage that has caused the following discrepancy in applications: 100% of Program Manager respondents include a well-thought out cover letter, less than half of our software developer candidates do the same. With a frantic hiring of software developers (i.e. shortage), you don't need to put in so much effort and still find something.
[1] We consider good software developer candidates someone in the area or willing to relocate, who is sharp at coding and who has done some independent work.
Someone else commented about not having time to do independent work. In life, you have time or money. Is there someone out there like the protagonist in "The Pursuit of Happyness"? Yeah, probably. But you can't tell me that's the case for 90% of engineering candidates. If you love what you do, you find a way -- in fact, wild horses couldn't keep you away from building something. </finding-a-job-in-software-advice>
It's not that there isn't a deep talent pool, it's just that the demand is deeper than the supply.