I think that is the default Google+ layout to show where you went to school? If it says anything, I think it reinforces my point that US culture by default places too much emphasis on where you went to school.
Not that I don't value my time at Yale, but I don't feel like it is particularly worth highlighting on my resume: tens of thousands of people graduate every single year from top universities. Hardly something unique.
Not "unique," but certainly not meaningless either.
In particular, my experience with top schools is that, more than "average" schools, they're often hard—the people that get in are very competitive and competent, and the material and pace reflect this.
It's useful information to know that somebody was up to dealing with all that, because not everybody is...
The hardest part about Yale was getting in. Yes, many if not most of the people who get in are smart, but are they all competitive and competent? I don't believe so.
Top school == a signal, but it is a weakly correlated one with being productive in my opinion.
"Stay(ed) up until 5am coding" was what really jumped out at me.
I think the modern college market is just a credentialing racket, so I don't mind steps taken to disrupt it. That doesn't mean I'll support any step to disrupt it.
Justin.TV certainly wasn't, and I'd be very surprised if Exec is. I was the first engineering hire at Justin.TV, aged 33 at the time (a full decade older than one of the founders!). Nobody cared about that, they cared that I'm a good hacker who gets things done.
Literally one sentence later: "Network engineers who started off as college dropouts but figured it out from years of on the job experience learning to be the best."
So, he wants young creative kids, and also super experienced people. The obvious point is that he wants ambitious people who work hard, not that he wants young people. Some of those people are younger and some people are older.
Yeah, I kind of regret posting that as it was snarkier than I intended and was undeservedly upvoted a lot. The article mentions young people several times and it rubbed me the wrong way, I got the impression that he likes to hire lower-waged engineers, but after a re-read I don't think that was intentional.
Younger engineer doesn't necessarily mean lower wages.
There's so much funding in Silicon Valley, and such a talent crunch, that startup salaries are often on par with "real jobs" at established companies.
In the first dot com boom, startup engineers were often paid sub par wages because much of the funding was allocated to expensive infrastructure and for-show C-level execs. These days, infrastructure is cheap and startups don't hire MBAs, so virtually all of the funding is earmarked for engineering salaries.
I was all hyped up until I remembered I was 35, went to a technical school no one cares about and code in languages everyone loves to hate. Something tells me I wouldn't make it past the lobby.
My personal biases (which I understand, and thus look at a bit more, but tend to consider valid):
1) People who hacked on projects on their own is WAY more important than "worked for a big successful company" or school. Even if the project fails.
2) Personality/performance traits matter a lot more than specific skills.
3) I'm generally biased toward hiring military veterans (US, Israeli, etc.); yet, there are parts of the US military which have a higher-than-ambient density of idiots, so it's gotta be selective.
4) Hiring mostly makes sense through network of existing people (founders, early employees), although "soft" connections to that network matter more than core membership.
I also probably shouldn't admit this legally (but I think it's safe) -- I would be biased toward 25+ year olds, vs. 18-25. I don't see much difference after mid/late 20s, but teens or early 20s, not so much. I would absolutely hire a qualified 18 year old, but I don't really look in the 18-25 year old range when hiring, and due to the historical accident of dotcom 1.0, people who were at least aware of their surroundings in the tech industry (even if in a junior role) in 1997+ would be a huge win.
I generally ask people "What was the last code you wrote for yourself that wasn't for work or school?". I learned that one from a friend and it is a great question that tends get to people who I want to work with.
I think one of the uncomfortable truths that people don't like to talk about in Silicon Valley is how much nepotism and old-boy-network is wrapped up in the clothing of "hiring from top schools". Social proof sounds really good until you start to think through that a lot of so called social proof actually comes from relationships built through serendipity of what school your parents could afford to send you to. It's not unusual, to steal a line from elsewhere, to be born on third base and think you hit a triple.
I see this even more with MBAs than comp sci and particularly in downturns (having been in Silicon Valley a long time now) where weaker VCs invest in MBA buddies as easy decisions in tough climates.
Credentials are great as lazy decision making tools for big co hr departments - you don't get fired for hiring the Ivy Leaguer. But for startups make sure you're hiring for what someone can do and has done, not for what paperwork they've accumulated. I've made the mistake of hiring the high flying Ivy League wunderkind straight out of college, highly recommended... it was an absolute disaster but my own fault for taking this as proxy for being good on a startup.
It's not unusual, to steal a line from elsewhere, to be born on third base and think you hit a triple.
That's a fantastic expression. I just looked it up -- the internet thinks that it originated with Barry Switzer, a former head coach of the Dallas Cowboys.
My sense of order would've been served better if one of baseball's many famous wisecracks had come up with that line. A football coach originating baseball metaphors, egads!
I'd always heard it in the context of people using it to describe children of privilege who assume everything they achieved in life was down to their own merit. I remember it being used (and I am not making a political statement either way) in regard to George W. Bush, and I've seen it used in regards to certain CEOs and execs who got their positions because of work their parents or grandparents put in rather than on their own efforts.
The kernel of "born on third base" is 50 years older. "The Yale Book of Quotations" lists several variations from the 1930's the oldest is from 12 May 1934, Hammond (IN) Times, pg. 4, col. 2: "A genius is one who seems a wonder because he was born on third base."
I believe this is also an indicator of an industry maturing.
Spin back to ten years ago and Silicon Valley wasn't wholly reliant only on institutional knowledge and skillsets were earned through work experience. Hiring a stereotypical computer hacker that's also a social misfit rebel was because those were the ones possessing the skills that colleges didn't teach.
My boss while I was at the big fruit company told me stories about how back then, back when it was still a garage startup of the literal sense, if someone showed up, poking around, and asked for a job was given some job to do. If they lasted and are competent they were hired. Only the true nerds came around, because only true nerds cared about computers.
That's not true nowadays.
Now that the body of knowledge has been collected and distributed, now that the lead time has diminished and colleges are teaching skills in almost real time, a college degree has a benefit of sorting those capable of finishing a 4 year project and those that don't.
The lambda between two candidates, one that earned his stripes while on the job while the other having a degree, has diminished. In that case, why risk it? No one ever got fired for investing or hiring an Ivy League grad.
Now that the body of knowledge has been collected and distributed, now that the lead time has diminished and colleges are teaching skills in almost real time, a college degree has a benefit of sorting those capable of finishing a 4 year project and those that don't.
I would feel better about this new status quo if there were more meaningful overlap between what they teach in universities and what skills one needs to be a successful software developer.
I was thinking specifically between the (intentional) difference between a typical computer science curriculum and the specific skills that professionals use.
I don't think it's reasonable to expect anyone to come from an academic field of study and immediately slot into professional work without having to pick up new skills.
I think that's right in many ways. That being said there's still a big difference between Good and Great and just hiring out of habit from big schools probably doesn't increase your chances of getting Great by all that much.
When you invest in startup you lose by default. Investing in Ivy League grads does not seem like a good strategy. Let's say 95% startups fail; 90% Ivy League grads' startups fail. An obvious improvement but you still lose by a wide margin. Someone who is able to invest in the top startups of which say only 75% fail will run circles around you.
Pardon me if I am wrong, because I believe I am more clueless than most, but the reasons VCs invest in their MBA buddies may not be because that is an easy (as in lazy) decision but because it is a safe decision. Traditional coaching does ensure that the candidate has at least his/her basics clear. Of course, the decision has to take into account the necessary skills as well, there is no denying that, but Ivy League should be guaranteeing some minimum competency.
> .. Silicon Valley is how much nepotism and old-boy-network
If I am ever in a position to hire (and affect through it entirely and only my own economic well being) I wouldn't mind having people I enjoy company of and can relate to. Genuinely awesome people are a plus point, but even in that category if I am able to find people who share the same background as mine, is it really that bad a decision?
> It was an absolute disaster but my own fault for taking this as proxy for being good on a startup
But there are bad apples in all baskets. I am sure there would be some evidence of great hackers without Ivy League credentials being poor matches for some startups. And I am not arguing that credential replace the need for a test of actual skills, interest and commitment; I am just arguing that the probability of the candidate possessing some minimum value for all three points is fairly high.
> If I am ever in a position to hire (and affect through it entirely and only my own economic well being) I wouldn't mind having people I enjoy company of and can relate to. Genuinely awesome people are a plus point, but even in that category if I am able to find people who share the same background as mine, is it really that bad a decision?
Yes, it's the opposite of a meritocracy, which i'm not sure if there's a specific word for. Very close to cronyism.
> It's the opposite of a meritocracy ...
You seem to ignore the part where I mention that the two candidates are of equivalent if not equal skill set. If pure technical expertise was all that was expected from people, we wouldn't be singing songs about people-skills, entrepreneurial spirit and cultural _fitness_ like we do. Most of these values decide only how well the person is going to gel with the team.
Easy is the same as appearing safe - potato potato - your argument for it BEING safe however is nonsense... VC returns don't come from minimum competency. They come from a disproportionate number of home runs. Funding for familiarity with the school is absolutely NOT making the best investment with the money for which you are responsible, because it's not a decision criteria for putting risk capital to work - it's a risk avoidance strategy. (As you seem to instinctively see by your use of the word safe.)
The question isn't whether "if all else is equal should I hire someone like me" it's whether you should prioritize a certain credential over other factors, as happens in a lot of hiring. But to come back to your "is it really that bad a decision?" I think most evidence points to YES, increased diversity of background and opinion benefits decision making groups - in this case companies companies - more than homogeneity, with its tendency towards systematic error.
To challenge your final point given the fact that a lot of the top schools have large numbers of legacy hires, and getting into them often involves far more factors than mere merit you're hoping that the delta in better schooling techniques outweighs recruitment drawbacks. Maybe, but I think it's far from proven.
Nobody is saying DON'T hire people from top schools, with great reputations, and track records of turning out quality candidates. Of course not. What's being said is that optimizing your hiring process to a handful of schools, given how many others are doing the same, makes it unlikely you're getting the very best candidates on the market - I don't see how this is anything other than statistically self-evident.
I fully agree with this post and this is exactly what I keep telling people that do things for their resume.
The one notion that always irks me though is talent. It seems to measure some combination of confidence and the amount of praise a person happens to have received in their life (i.e. how often someone told them they're talented) and is for the most part not well-defined. Yet, this article uses talent just like another credential.
I don't think talent is a thing that you either have or don't have. There's certainly some people that I'd like to hire that wouldn't with certainty say that they have talent. Vetting for confidence is a bit more interesting, but I also know plenty of confident people (i.e. that think they're talented) that can't get the job done.
The best way I've come up with to characterize what we're all looking for is people who can solve our problems/get the job done. That makes it mostly about what the applicant thinks they can do and less about the amount of praise they've received previously in live. This reminds me of how Kyle Neath posted yesterday that he thought he was not a great coder or designer but he could get the job done. When he was twenty, perhaps he didn't consider himself talented but I'm pretty sure nobody would have regretted hiring him.
Talent is one of those words with a thousand pet definitions.
Personally, I see the word used most often a kind of negative rationalization. A way to disregard success as lacking in effort, to say it's inborn, incidental.
I'd generally prefer to be described and to describe people as passionate, dedicated, capable or plain smart rather than talented.
I think those traits, often in combination with a lot of thought/practice, but not necessarily direct experience are the things that add up to what's often described as talent.
As a multi-time founder with an exit to my credit and about 3/4 of a college degree from a small liberal arts college in Louisiana(Dropout) I completely agree with the sentiment here.
That said, I also think there is nothing wrong with going after candidates from top tier schools since most of those people have been properly vetted in the past and will likely handle themselves well in high pressure situations.
All in all Justin's article is spot on that credentials really shouldn't matter all that much as long as the talent is there.
However, The fact that someone has to write a blog post stating that and calling it bold really shows the lack of direction our country has as a whole right now unfortunately
Good values aside, this is deceivingly brilliant as a hiring technique.
Hire the undervalued "hungry" people who the Googles/Facebooks of the world won't even give an interview, and they'll 1) be easier/cheaper to convince and 2) work super hard to prove themselves (especially if it's their first job out of school). If the startup does well, it's a win-win.
But without the filter of "top schools", how many candidates do you have to sift through? People use that criteria because its easy and means something (although maybe not much), not because they think it's perfect. You can only afford to spend so much time recruiting talent.
You can still sift through resumés, but don't filter by school. Filter for people who have "created something" or who have a thoughtful online portfolio.
Code or GTFO. I ask trivial coding questions (fizz buzz level) but take them further. First write that, then change it a bit, then more, then make it customizable, etc.
I also like the idea of saying 'mention (some shibboleth) in your cover letter' to prove people read the add. If I was writing an ad I'd ask someone, maybe, to provide their favorite code snippet and describe why. Anything would be okay, as long as someone has an articulate reason.
I get disappointed in an interview if the company don't want to see code. Someone in this thread discussed how school doesn't correlate to the ability to ship code; I'm good at having an executable answer to a problem in minutes. If they don't want to see what I can do it usually seems like it's because they don't know how to judge it, and thus aren't who I'd like to work with.
> I ask trivial coding questions (fizz buzz level) but take them further. First write that, then change it a bit, then more, then make it customizable, etc.
This doesn't even come close to scaling when your applicant pool is 100 (or more) times the size of your interviewer pool. You have to have some quick filtering method, or you'll never get anything done.
Jacob, our designer and first hire at Justin.tv, now Twitch’s Director of Product, hadn’t finished college in New Mexico
I've got a good hunch what that college is. A little hint: it was one of the top three Gates mentioned in "The Road Ahead" that MS regularly hired from, and with good reason.
The unfortunate (to this article) truth is that the odds of x person being talented is higher if they went to a great school.
I think it's often safe to assume that if you went to a top school you have either (or both) determination or raw intelligence. If you didn't do this you'll spend forever screening dumb people.
The reason some firms hire only top school kids is (apart from ego) they know that whatever test/puzzle/interview they give their decision in hiring candidates will still be fairly inaccurate.
However, good credentials (I'd normally include internships but it wasn't mentioned in the original article.) simply means that there's a higher chance of the kid having a better understanding of programming than another candidate coming from a less competitive pool. What the author does in order to suppress this statistical strategy is giving anecdotal evidence. Problem with that is for every example the author might come up, this community can produce 100 nontrivial counterexamples.
One other issue is most founders who do not come from top schools have a tendency to think that kids in these schools are simply giving so much money to have a cheesy-easy undergraduate life and are terribly spoiled (and that might be partly true). Yet the fact is those are the top schools because students have to produce work that is quantitatively and qualitatively superior to their counterparts in other schools. This is not because of everybody are geniuses in these schools but because the average student starts at a higher level so the academics can push the students further without overestimating their capacity from day 1.
I would not call it unfortunate. After giving people from Ivy Leage schools a chance to work with me I've realized something. The amount of people who can ship software (not only write code) is basically the same everywhere. A college education does provide a lot of things, but the ability to ship software seems to not be included. Seems a lot of people out there are worried about the code being perfect, or their VIM setup being ideal, or anything else but shipping. I wish that somehow colleges of all levels would teach their students that the discipline to get shit done is worth more than anything else.
That depends on who you are hiring. If you're hiring Computer Science graduates than "getting shit done" is not a priority at all (at least in the meaning you imply). Computer Science graduates gets the discipline to be scientists not to be code ninjas or rockstars and it should stay that way.
On the other hand if you're meaning people with Computer/Software Engineering degrees then you're right.
Well, if Computer Science graduates are applying for Computer Programming positions, then I expect them to be able to ship software. I don't go around knocking doors asking for them. They come to me. By the way, people who ship code are not code ninjas or rockstars. They are called professionals.
Cheers for being brave enough to challenge the prevailing sentiment on HN about credentialism.
But, strong disagree.
In my experience as a hiring manager (which stretches back quite a ways), I've noticed no correlation between school and on-the-job performance. I'm sure MIT does indeed present more challenging CS/EE curricula, but the inference I draw after stipulating that is that CS/EE curricula quality just doesn't matter much in the real world. Perhaps we just do our most important learning in our first jobs, or, even better, throughout our career? Maybe memorizing MESI cache coherence in school is just less important than, say, having to learn on the job how to do a u/k copy in an ioctl handler because that's the only way to accomplish what your next dev task is?
And, you suggest that tests/puzzles/interviews are "fairly inaccurate". Well, all of technology hiring is inaccurate. Compared to other professions, the recruiting/onboarding process in the tech industry is amateurish across the board whether you ask people to design manhole covers or review Github pages. The answer to this is to improve the tests, and, I think, to evacuate as much of the subjective stuff (school and GPA, yes, but also "interviews" as much as possible) so you can make apples-apples comparisons to candidates and discover what factors really correlate to good performance.
I think if school attended influences on the job performance, that's a failure of the hiring/interview process. It is fine if school attended influences interview performance, but if it influences it too strongly that may allude to a failure of recruitment/screening process (failing to look at other indicators of performance, e.g., open source contributors, code samples, etc...)
I think when hiring (or vice-versa, making a choice of people I will work with) I look for some evidence that they've done something they're "not supposed to" have done. Growing up in a slum and yet attending Berkeley/Stanford/MIT/IIT Madras is such evidence -- higher education _is_ an equalizer -- but growing up in a wealthy suburb, going to a great prep school, and then and attending a top-tier school is insufficient.
Real open source contributions, serious undergrad research (even if done at an obscure liberal arts college), writing your own screen replacement "just because", building and open-sourcing an impressive piece of infrastructure at a previous job, are other examples of such evidence.
I have a correlation between school [performance] and on-the-job performance. I know you were probably comparing different schools, but within the same school there is definitely a difference. At my co-op job we always pulled from the same school[1], since we were on campus. We had to interview people basically every semester in order to keep up with the continual rotation. As we started dropping our GPA requirement in order to attract more people (we ended up with like a 2.5, school's co-op program required 3.0), the quality of hires significantly decreased in soft skills - self tasking, critical thinking, and creativity compared to when the GPA requirement was a 3.5.
Most hires were from their sophomore year, so they all had the same basic classes coming in and had a baseline of knowledge.
[1]There were a few exceptions, but they knew someone in our org before they interviewed
MIT people can be very good (ob: I am an MIT people, so I obviously have a huge bias here), but they can also be way too theoretical for development work. Not too long ago, it was entirely possible to get a CS/EE degree from MIT without doing any Java or C programming, which were the vast majority of industry use at the time.
PhDs, from any school, are also something I've gotten to be wary of. Of the 5 best coworkers I've ever had, all 5 had PhDs, but there is a lot of variance. Sometimes they spent a lot of time understanding one very specific problem very well, and people who have that problem should pay a premium for that talent, but if you don't have that problem they won't be worth it to you.
> The reason some firms hire only top school kids is (apart from ego) they know that whatever test/puzzle/interview they give their decision in hiring candidates will still be fairly inaccurate.
For young firms in software industry, this is not true. Neither Google nor Facebook (disclosure: my employer) hires exclusively from top schools. These companies do spend more effort recruiting interns and new graduates from top Computer Science programs (which is a rather different set of schools than top schools in general), but the reason puzzles, participating in competitions like TopCoder or ACM ICPC, research, open source contributions, etc... matter is that they give smart people everywhere a chance to stand out and be noticed.
On the other hand, the technical interview process in these firms is known more for false negatives than false positives. These companies all explicitly track the relationship between interview scores and employee performance and tune the interview process accordingly.
Finance, management consulting, etc... firms do recruit exclusively from top schools -- but they have other reasons for doing so. If you're in technology business but only hire from top-tier schools and fail to setup a meaningful technical interview process, you're more than welcome to -- I would highly encourage all of my potential competitors to do so :-)
I made fairly silly choices as a high school student (as well as not-so-silly, e.g., interning at a startup junior and senior years of HS) which led to me having to "hack" my way through a higher education despite having high SAT scores: after high-school I attended a community college for a year, got a near 4.0 GPA, transfered to a university no one heard of (I had a chance to stay one more year and transfer to Berkeley or UCLA, but I jumped the gun out of fear that my performance was "illusory" as I've never had such a high GPA before) while interning at yet another startup. More traditional companies (think Cisco, Symantec, etc...) ignored my resume (unknown school, internships only at startups), but nearly everyone I actually wanted to work for gave me a shot and I had plenty of good offers. I'm now 29 and I don't feel my career suffered as a result of silly choices (e.g., getting modest grades in high school, transferring too soon from a community college) I made between ages of 14 and 19.
Interviewing is hard and time-consuming. So hard that any filter that's even (say) 5% effective is worthwhile. People who went to less famous universities are only undervalued when you don't think about the total cost of hiring.
Leaving aside the ethics of discrimination and considering it from a pure profit motive, the above would be true if you were the only employer in the world. You're not, and on average the companies competing with you for the best recruits overvalue paper credentials. That means it would be in your interest to attach negative value to those credentials, to get a higher percentage of good candidates who haven't already been snapped up.
The filter is worthless. I've known lots of disinterested CS grads who coasted through school and fight anything that requires any expenditure of effort on their part (like using a new library, etc.). They went to school and now they feel entitled to their seat in a bloated corporation where their lack of contribution can't really stand out against the larger background.
The best way to hire someone is to sit down and chat with them on multiple occasions for 1-2 hours at a time. Another programmer can generally tell when someone is incompetent and/or BSing. It doesn't guarantee the employment will work out, as working styles can be incompatible, employee can be/become depressed and/or unmotivated, etc., but it at least allows you to discern the competence to a reasonable degree of satisfaction.
When I interview programmers we're so busy talking shop that school doesn't even cross my mind. Thus far very few mention anything related to their schooling as a qualification while we're discussing, i.e., not a lot of "Yeah, I did a project like that in school once...". If one is hiring for a heavily theoretical position, academic credentials may be slightly more meaningful (though it's still about the final output, much of the personal research/development for that type of thing would occur at a university, whereas "working" software engineers mostly go through school as a formality), but for most other things, it's so irrelevant that it never comes up after several searching technical interviews.
I don’t give a shit where you went to college as long as you’re talented.
I don't care if you're talented as long as you are good.
I think the word "talent" is getting more and more misuse in the startup field. Talent is innate ability. While it helps, it's not a prerequisite to being good.
A nontrivial fraction of people go from one subject in college to a tangentially related career upon graduating. If they had known 2 years later what kind of work they would want to do, then sure. But if you're not willing to give them a shot, you could be missing out on some cheap talent.
(I was an example when I came out of pure math and looked for a programming job back in the 90s, with no programming background.)
I keep seeing this talk about "six figures" in the valley as code for "overpaid".
I don't live in San Francisco but everything I can tell about the cost of living shows me that a $100,000 salary in SF is roughly equivalent to what, $45,000 here in Atlanta, GA. (http://www.bestplaces.net/col/?salary=100000&city1=50667...)
Which is certainly a good salary for a college grad but it's NO WHERE NEAR "overpaid", in my opinion...
It's deceptive though. Making $100k/year in San Francisco means that rent is very expensive, relatively speaking, but that consumer goods are incredibly cheap.
Living in SF: Eating out at restaurants, buying the latest iPhone, plane tickets, clothes shopping all relatively cheap.
Living in Atlanta: Getting a big house in a desirable neighborhood, parking are cheap.
So if you'd prefer to consume more real estate and real estate dependent goods, you should prefer to live outside boom zones. If you like to buy experiences and consumer goods, you should live in the boom zone.
At 100k/year eating out at restaurants, buying latest iphone, plane tickets, clothes shopping, etc are all relatively cheap most anywhere, aren't they?
There are plenty of Atlanta people who fall into the real estate trap, and it is a trap, but there are also plenty who live in slummy east atlanta, or get a reasonable condo/apt in midtown. Leaving them with relatively huge amounts of disposable income for experiences and shiny things.
Yeah, this doesn't compute for me either. The price of iPhones and plane tickets have little to do with geography until you start crossing national borders.
Exactly! The price of iPhones is constant, but income is variable. So as a percentage of income, the price of iPhones varies hugely from location to location.
Interesting I could see that as a possibility, but I think we're comparing two different fictional people. Of course if you could double your salary moving to SF it usually makes sense, but I think its often more of a 25-50% difference.
And also, I don't believe it scales 1:1. The developers I know well here, 5 to 7 years out of school, nearly everyone in Atlanta is making close to 100k (almost all +/- 10k). Developers with similar positions and experience aren't making 180-220 are they?
Perhaps I'm wrong, maybe SF really is the promised land, but the numbers have never worked out on any positions I've looked at. YMMV of course.
I think you're more likely to get meaningfully-valued equity in Silicon Valley $140k/yr jobs than in Atlanta $80k/yr jobs, and then there's the tax differential there (lower rate as well as the income vs. LTCG differential).
The absolute win seems to be to work in Silicon Valley for 3-5 years, accepting a low "house" standard of living while enjoying consumer goods and travel, and then take your $100-150k/yr salary (and history of working at top companies) to do one of two things:
1) work remotely for top companies from a place like Seattle for $100-120k/yr (or, if you want to optimize even more, move to Thailand or something and work remotely for $60k/yr)
2) Found a startup, deferring as much compensation as possible into LT capital gains. Being much easier to raise money in Silicon Valley makes up for all the other things. Potentially open an engineering office outside the Bay Area to hire people who chose path #1.
I think it is worth noting that in much of the technology sector you can work in SF, and make a SF salary, while existing in Atlanta. This also serves to drive up salaries in the sector across the nation, and even the world.
Interesting to think about how the same kind of market differentials exist for companies in the area. People are super expensive (salaries, recruiting and retention, etc.). Real estate is somewhat expensive (but, not that expensive; even at $7/ft2/mo peak, giving someone 200ft2 vs. 100ft2 isn't going to kill you -- and you can get cheaper RE in some areas, especially if you get bigger areas. I'd kill to work near VMware.). Computers and outsourced (outside the Bay Area) services are cheap. Buying people out of their houses outside the Bay Area would presumably be cheap ($50k underwater on a house in Ohio is a big deal to some people, but $50k is a reasonable hiring cost for a senior developer).
Also, interesting how similar differences exist for VC funded vs. bootstrapped companies. (AWS is 3-10x more expensive than buying hardware and putting it in colo, but takes less time for some things (and more for other things...), but less upfront cash cost, and can scale)
The problem with these theories is that it assumes people in other states cannot make six figures a year.
I have a cushy job in Louisiana that pays me right at six figures and allows me to work only 15-20 hours a week most of the time, in my extra time I run a software consultancy that pulls in several thousand dollars a month as well.
This means for me to live the same lifestyle in SF I'd have to make $250k per year or more.
Even with that said I actually just accepted a job in the bay area and took a pay cut because I want to be around people who make me better and there is no better place to do that in tech.
Any reasonably experienced engineer should pull in six figures in the Bay Area at this point, or close to it. Honestly the range should go a lot higher than it does for GOOD engineers; a good engineer who can accomplish 10x over an "average" $80k engineer should be able to make more than $120k or so. But I'm not bitter... [1] ;)
[1] Actually, I'm not. I took my ~$120k salary to another state and worked from remote for 3 years, getting the lower cost of living combined with the San Francisco salary, and giving myself an "effective" raise of about 80% (it wasn't Atlanta-cheap or it would have been even better). I kept everything well documented, but they still knew they couldn't easily replace me. YMMV.
"...I don’t give a shit where you went to college as long as you’re talented."
But of course.
The problem is that talented people usually do not carry the sign "I am talented" to make it easy for you.
It's up to you to figure that out.
And you never know who is "talented" upfront unless you give that person a space and time and let the person express himself.
So you may not give a shit, but you have to give it a time and take a risk of finding out that cool looking and smooth talking dropout you hired 6 months ago is not talented at all.
I don't think "talent" (or, the ability to produce a quality work product) is that inconceivably difficult to ascertain in this field.
Also, while I realize you were speaking generally, I am familiar with at least one of Exec's non-traditional hires, and I sincerely doubt he will be regretting that decision.
Designers and Engineers are incredibly fortunate to be able to show portfolios and work samples that we can use to evaluate people with. You can also give real work sample tests during interviews! Try doing that with an MBA. My personal experience has shown a Stanford comp sci PhD doesn't mean that person is necessarily a good software developer, and if you can't even rely on that, then you might as well evaluate them directly.
My dad's business began to decline when I was in middle school, and he had to shut it down by the time I was in my junior year of high school. I'm the second of seven children, and by the time I graduated my parents' savings were wiped out and they were just barely managing to keep food on the table.
They couldn't afford to help me pay for school, but my test scores were high enough to get a full scholarship to a public university near my home town, so that's where I went. I lived at home, used public transit to commute, and made due with what I had available.
It's easy for me to say that credentials are worthless, I went to a school you've probably never even heard of, so it's nice to hear this from a successful individual who graduated from a top school.
- Github. Contribute to (or start) open source projects that show your skill.
- Blog. Write technical articles explaining confusing topics in the areas you are skilled in.
- Freelance/Contract work. Do work for others who can vouch for your skills.
Survive multiple serious (but not overly specific) technical interviews, have a decent and/or interesting body of work online, and demonstrable involvement and working habits from contribution to open-source projects, mailing lists, tech journals (my last hire had several Linux-specific articles carried by an online publisher over 10 years ago), etc.
A degree is honestly one of the least useful metrics for actual talent out there. Its value is basically limited to showing a tolerance (but not necessarily an aptitude) for bureaucracy and corporate mind games.
Formal education in my opinion is really only good for one thing when determining how good of a hire someone will be. Ensuring a certain level of exposure to areas that may otherwise be overlooked in self study.
When people learn things by themselves they tend to focus on what they love the most and have a tendency to ignore what they don't. Formal education forces you to learn all areas that are covered and often bring things to light that are very useful, but would often be overlooked in selfstudy.
So formal education provides a base-line level of exposure to a lot of topics, what a student chooses to do with this level of exposure is what will determine wether they will succeed.
Apparently well reasoned blog posts are worthless too. What does Steve Jobs have to do with people Justin Kan wants to hire? He's famous not for being hired but for starting a company. He also doesn't fill the roles on Exec's hiring page.
That's another thing that amuses me about all these companies looking for superstar developers. A fairly large fraction of them will be far more interested in doing their own thing than working for you.
Yes, but trendy startups often convince superstar developers that it's just like doing their own thing. It might be. Personally I'm more interested in open source than I am on working on someone else's startup.
> "[Top schools] don’t make you a great UX designer or programmer."
I've found this statement to be false, at least at my alma mater(UT Austin). My Honors OS class unquestionably made me a better programmer, teaching me about how programs I wrote interacted with the OS to a very deep level. My algorithms class gave me an extremely deep understanding of how algorithms+data structures worked, giving me a better intuition as to what tools to use when confronted with a problem. My HCI class made me acutely aware of how users interact with software.
I'll agree that the purpose of universities is not vocational. Without a doubt, a lot of classes I've taken will have absolutely no impact on my career (unless Buddhist Art becomes an in-demand field!). But a good school gives students the opportunity to gain applicable skills that are needed in the world.
If someone got an 'A' in UT Austin's honors OS class, I wouldn't even hesitate to interview them. It's a very good proxy for a good programmer. You can't do well in the class unless you truly understand code. Using a coarse grained filter of "Harvard University" is bad, but using a "Passed CS50 with an 'A'" filter is a very good metric to use.
What kind of intuition did you get from algorithms class? What's an example of the kind of intuition you feel like you got that you wouldn't have gotten on-the-job?
I don't believe there's any intuition I got from my algorithms class that couldn't be gained on the job. However, the class does provide intuition in an accelerated manner, and it proves to employers that I have the intuition. Some examples off the top of my head:
- Memoization / DP
- Divide and conquer
- Using a bounded approximate algorithm in place of an exponential one for NP complete problems
I feel like it would have taken me a lot of time to internalize those types of algorithms on the job, but seeing them presented in my algorithms class made it easy.
i would not hire anyone who does not know about these sorts of basic algorithm and how/what they are used for - whether they learnt it themselves, or via tiertiary education is irrelevant. Unfortuantely, its common to use a good school as a proxy for such knowledge, but finding out later that the employee lack such knowledge could be costly. Learning what i would consider "basic" things on the job is both wrong and bad for business!
There is a line to be drawn somewhere tho - what is considered basic isn't basic to some. I would draw it where 'basic' means you could have learnt it in a 3 year undergrad CS course - essentially what is covered in the text http://mitpress.mit.edu/sicp/ would be all i need from a grad, and domain specific stuff can be trained on the job.
I was just discussing this with some coworkers the other day, and it resonated because later that afternoon I read the "farewell to bioinformatics" post [0].
In my experience, people who don't have a formal computer science education, who haven't taken any classes (or at least worked through the material in their own time) in algorithms or data structures, will muddle through and _will get things done_. They may also shrug their shoulders when it comes time to scale up their dataset input and their code takes 6 days instead of 6 minutes.
When the person lacking this education finds himself in a three- or four-level deep "for (...) { for (...) { for (...) { ... } } }" structure, (I guess) he feels mildly uncomfortable and thinks "yeah this is going to take a long time".
When the person with this education finds himself there, he has at his (I hate to use the word, but: intuitive) disposal some ideas for reducing some of the necessary computation ("I can keep a min-heap instead of scanning the list to find the minimum every time."). He has a toolbox of algorithmic knowledge that helps him without him consciously knowing about it. Some people reduce the complexity as much as they can and are still not satisfied, causing them to restructure the larger program or try to invent a new algorithm for this particular problem.
I was not being sarcastic. If you buy ranking metrics, UT Austin has a top 10 CS program [1]. We have some of the best Systems researchers in the country [2], a professor from our dept won the Turing Award in 2007 [3], and Bill Gates + Michael Dell just donated a new CS building for our campus [4].
Ssshh, don't tell anyone that UT Austin is a top 10 CS program :-)
I would strongly encourage any potential competitor to never recruit from UT Austin (or any UC school, U of Washington, UWisc Madison, Waterloo, etc...). Oh, and amongst Ivy League schools please be sure never to recruit from Brown.
Sorry to hear about the response. Hopefully I didn't come off as being negative. I thought maybe I was learning something as well. Different people have different experiences. I myself don't know much about Canada except that it appears to be a beautiful place I want to visit some day.
I think it's probably if you go to a top 10 school, you know of the other top 10 schools for your program. As a CompSci undergrad at Georgia Tech I knew of UT, etc. Even if you don't go there for undergrad, there's still a possibility of going there for post-grad and people talk.
> Ihave no idea if UT Austin is a good comp sci program or if you're being sarcastic. This is the first I've heard of it.
UT Austin actually does have a wonderful CS program.* The reason you likely haven't heard about it is that it is notoriously difficult for out-of-state students in the US to get into UT Austin, so you don't have as diverse a student body (geographically speaking) as you do at many other top schools. Less than 10% of undergrads are not Texans.
* I didn't go there myself, but I've worked with people who did, and they are top-notch.
I feel the same way about discrete math and numerical analysis (a mix of calc 2 and algorithms). These are the first things I look for on a transcript.
Speaking as a graduate of one, top schools teach you credentialing and ladder climbing. If you’re lucky, you might learn how to create a financial model or craft a solid argument.
If that's what you got out of college, you were definitely doing it wrong. Maybe in a business degree, but most people who do a science, engineering, or math degree learn some, you know, actual science, engineering, and/or math, not merely schmoozing skills.
You could learn that elsewhere, but if you care about scientific progress, my experience is that few people without a science degree ever get around to developing a rigorous scientific education, whether out of disinterest, lack of time, or whatever other reason. Lots of people plan to one day work through some textbooks, but most people don't. You see it in a lot of self-taught programmers, many of whom have a weak grounding in computer science. That might be okay, depending on what you're hiring for, but there are many cases where you want some more solid foundations. For example, if you're doing anything with machine learning, you might want people who understand statistics. Oh, and if you're designing aircraft, you might want someone who's studied aeronautical engineering, or at least some kind of engineering, whether at a university or through equivalent self-study. Even Google, a canonical Disruptive Silicon Valley company, seems to prefer its technical employees to understand computer science, rather than to hire pure programmers.
If someone is a true autodidact, learning on their own the equivalent of what they would've learned in a rigorous 4-year degree, that's fine, and there are some of those, so I have no problem making sure to look out for them, or even actively seek them out. I don't run across them very often at all, however, especially if we're talking about people without any formal mathematical training who are able to do solid mathematical or engineering modeling work. When you do find such a person, they're often amazing, but they're not common. Maybe MOOCs will increase their numbers, but it's a bit early to tell.
That said, I agree in not caring about the actual credential. If someone studied CS at CMU but left without the piece of paper for whatever reason, but learned the kind of stuff people learn in the CMU CS program, I don't really care about the missing document.
I think this is mostly about the resources available to self-taught programmers. I know on many occasions I've sought to strengthen my mathematical and theoretical background without a lot of tangible progress because the resources online don't really approach things comprehensibly or accessibly. I have a friend getting advanced physics degrees and even he says the usual suspects like Wikipedia are uselessly over-technical for him. I've bought a couple of textbooks without much progress in penetration, and Khan Academy and/or Open Courseware is kinda OK for specific issues but they're too tight and "locked up" in video format to really constitute a generally useful guide, and I think they lose some relevance without the greater context. Better Explained is also selectively useful, but most of his analogies don't click with me and the site tends to ramble.
What I really need is a decent tutor who is willing to help me specifically with the issues I have but I've sought in vain for one who is willing to free-wheel it with me instead of just copying out of a textbook. I tried one briefly and he came up with a cop-out shortly after our first lesson, because I don't think he liked the unconventional questions I was asking, like "Why and/or how are sine waves relevant to non-geometric data? The only definition I can find of a sine casts it in strictly trigonometric terms, so how is it applicable to non-trigonometric data? Is everything encoded into a representation of a triangle before these calculations are applied?" Heh, that one made him pretty annoyed and he didn't really have a good answer.
I would love to increase my background in statistics and comp sci theory (which is basic but imo sufficient, and I seem to have a better grounding than most of the CS grads I've worked with), but I don't really know of a good option to receive that training. If someone wrote tutorials for graduate-level math from the bottom principles up like they write out tutorials on PHP or whatever, I'd be all over it. I really want to increase my formal mathematical literacy.
Man, I used to tutor math -- I wish I got questions like that from my students!
Three answers (in case you haven't found one you like yet):
A set of sine and cosine waves whose frequency is a multiple of some value form an orthogonal set of vectors/functions, which means that for any given function or vector whose domain is at most the period of the lowest frequency wave, there's exactly one set of weights whose weighted sum equals the function (with certain caveats if the function isn't discrete). There are other such sets, for example the Hadamard series, so sines and cosines aren't unique in this regard.
A complex number can be treated geometrically, as a phase + magnitude (converted to a+bi using sin & cos of course). This representation has the benefit that the magnitude of the value is readily apparent, and makes certain calculations involving multiplication and exponentiation easier.
Sine waves arise naturally in differential equations, because they are the only functions which are the negation of their own second derivative. Hence they often turn up in second-order systems with negative feedback (e.g. microphone feedback is more-or-less a sine wave).
When I lived in Cambridge, there were many math graduate students who would have entertained questions like these in a tutoring context. Also, what about Math Overflow?
where I live all the Mathematics professors hang out every month doing a public round table discussion which is free, completely informal and held at a local cafe. anybody can go in and ask questions about anything there is no discussion agenda
you can also show up to public lectures given by visiting math profs and afterwards ask them whatever theoretical background questions you want so long as it's not total spoon feeding
campus walls are also covered in tutor posters for hire and many of them graduate level
I am a mathematics professor. Where do you live, how is this advertised, what kind of audience does this attract, and what sort of questions get asked?
I live in Europe now, but before when I was in Canada UBC and SFU would do 'Community roundtable cafe philosophy' and there was often Math and Physics professors there. Here it's all Math professors in the cafes with their own roundtable and it's advertised on the University events page. I believe all these events are sponsored through the University.
Here they mainly talk philosophy and crazy advanced, graduate level mathematics that are way beyond my comprehension and often there are industry programmers, visiting professors on vacation, math self taught geniuses who smoke a pipe with huge unkept beards that look insane, students and even this anarchist group that shows up sometimes to talk game theory.
A few Math dept profs hang out on Sundays here too where all the public chess boards are set up and are fully approachable to answer questions as long as they aren't engrossed in a game.
Clicking on the Events page for the UBC Math dept they always have visiting Math profs give free seminars to anybody who wants to show up, and it's easy to get to the university. Every month at least 5 seminars there's one coming up by a visiting prof from UC Berkeley on Lattice Poisson AKSZ Theory, a bunch of discrete math seminars, and 2 seminars today on chemical distances and shape theorems in percolation models with long-range correlations, and retractions of representation varieties of nilpotent groups.
These guys stick around afterwards and are fully approachable I would talk to them all the time about offtopic theory and went to the student bar with a few of them and other students for a few hours.
> Why and/or how are sine waves relevant to non-geometric data?
The universe likes sine waves. If you hang a weight from a spring and give it a yank, it will bob up and down according to a sine wave. Lots of resonating and oscillating things are also governed by sine waves. So scientists and engineers are forced by circumstance to learn all about sine waves.
> Lots of people plan to one day work through some textbooks, but most people don't. You see it in a lot of self-taught programmers, many of whom have a weak grounding in computer science. That might be okay, depending on what you're hiring for, but there are many cases where you want some more solid foundations.
This rings true to me. I have a degree in aerospace engineering, but I'm a self-taught programmer. I've worked as a programmer, never as an aerospace engineer, but to this day I have a much better theoretical grasp of the latter than the former. I was recently trying to understand bidirectional type checking, and I'm just stuck. I understand ML-style type inference based on unification, for which there are a lot of undergraduate-style descriptions online, but I'm clearly missing half a dozen classes between "point A" and "point B" when it comes to anything more advanced, and I don't know enough to know what I need to learn.
Some things are just not easy to pick up, even for people skilled at self-education. They require a level of background knowledge that has to be acquired incrementally, and it takes time and discipline to pursue that path systematically.
I think knowing abstract algebra is pretty helpful to understand types, but I'd imagine you were likely exposed to a great deal as an aerospace engineer already.
Be sure to check out Pierce's new book, Software Foundations[0], which is available for free online. Learning how to use Coq is quite an amazing experience.
Now there's something I've been wanting to self-study but haven't found a good intro to. Thanks! (I'm an academic, but eventually they don't let you keep attending school, so you have to learn the rest on your own, and some of the same problems arise...)
I wonder if some better way of discovering books suitable for self-study would solve at least a part of the problem. I find a lot of textbooks are aimed mainly at being used as a resource in a course, which isn't quite the same use-case. Others are more of a compendium or reference, which also isn't the same thing, e.g. you could learn algorithms from either CLRS or Knuth, but I don't think they'd be engaging as introductions. So far my method is to ask around and make notes when people suggest things in threads like this one.
An even rarer genre of books is the high-level, creatively written book that lets you understand why an area is interesting in the first place, but which still digs enough into the concepts that you learn something about it. Sort of the textual equivalent of the dazzling lecturers you occasionally run across in universities (alas, not most of them, myself included, though I do try to provide students with a high-level map of what's going on in an area). There are some good books in physics, which attracts a lot of good popular writing leaning toward the harder-science end of the spectrum, but not as much elsewhere. In CS, only Hofstadter's Gödel, Escher, Bach comes to mind, though I'm sure I'm overlooking something.
> I have ATTAPL and couldn't get through it. Now I know why. I didn't realize there was a more introductory book in the series. Thanks!
This brings out a point not explicitly mentioned in your original post. A key thing you get in college is access to people who know the topology of your field. It is a routine recommendation to start with TAPL. A map is invaluable in order to limit backtracking or dead ends.
In my field of reverse engineering, those who have produced the top public results are completely self taught. Advanced forms of reverse engineering require a large smattering of knowledge from many graduate level areas of Computer Science and Mathematics. Autodidacticism of some form is the only option, whether it involves complete self-instruction or designing a custom curriculum in graduate school. The aforementioned authors have described the process of learning without a roadmap as extremely painful. If you don't have to subject yourself to it, I don't know why you would.
Tangentially, this reminds me of something else: the grandparent studied another STEM discipline (aerospace engineering). Yet he's not only been able to master programming well enough to be employable as a core software engineer, is able to self-study non-trivial topics in Computer Science (that are generally only taught to early graduate students or advanced undergrads), and works as an attorney.
I think that illustrates the real value of education, which has nothing to do with brand name or credentialing. I like that I studied enough electrical engineering to do hobbyist projects with FPGAs; enough physics, math, and other sciences to be able to make sense of Nature articles, as well stay up to date with relatively new and fast growing fields like neuroscience and molecular biology.
Not everyone will extract this out of their degree program and there are definitely a few universities that make it difficult to get this kind of background knowledge. However, I'd wager that most good universities (ABET accredited CS/engineering programs, most faculty having Ph.D.s and publishing, healthy portion of students going on to graduate schools, etc...) offer this to students -- irrespective of their USNWR rating is (which, I think, at least for general undergraduate studies becomes more of a game beyond a certain point).
Could MOOCs offer this? Probably, but having structure and providing a toplogical sort (just like you've described it) of disciplines -- as well as things like labs for hard sciences -- is also valuable.
A key thing you get in college is access to people who know the topology of your field. It is a routine recommendation to start with TAPL. A map is invaluable in order to limit backtracking or dead ends.
Top schools do not teach the material differentially better. Yale teaches computer science quite well (I'm a graduate!) but not particularly better than any other school. CMU and MIT also have great CS programs, but they're not substantially superior to what you get at Yale. Or at any UC school.
What Ivy League schools do teach better than other schools is exactly what Justin says: how to fit in to the elite.
Ah, ok, I don't disagree with that. I had read the anti-credential argument as being against formal education entirely. I do agree that the finer distinctions of university rankings are unimportant, especially at the undergraduate level, and serve mostly as a pedigree. I wouldn't differentiate at all among, say, the top-20 CS schools, and I'd differentiate only weakly between the top-20 and top-100. To the extent I would, it's mostly in that the top-20 tend to have "harder" programs, since they typically accept stronger students, so their curricula can often be designed with higher expectations and covering more material. But there are plenty of solid programs at non-Ivy-League places like Cal Poly Pomona or Purdue.
I'm not against formal education entirely. I don't believe that everyone derives benefit equivalent to the cost (both to themselves, and the public cost) of college tuition, but clearly there are a large number of professions that require a formal education, including ones in software development.
Like Emmett point out, however, I think any potential incremental benefit of a CS education at a top school is very much overvalued by recruiters.
>>>I don't believe that everyone derives benefit equivalent to the cost (both to themselves, and the public cost) of college tuition
The "everyone" that you are referring to consists of the vast majority of university majors, which happen to be non-vocational. I would say that STEM majors are generally pretty close to vocational, but as you say lots of people can get the degree without actually learning anything useful to any specific employer.
Which is what vocational schools are for. The biggest pity is that vocational schools aren't held up as great opportunities - lots of them are intellectually challenging - can you name and describe the function of all of the moving and non moving parts in your car? Also vocational schools are just as social as long as they are encompassed in a normal junior college. Oh and JOBS that pay MONEY.
The funniest part of the tragedy is that (on average) someone going to vocational school for a law certificate is going to make less money than someone going to vocational school for an electrician or plumbing or automotive repair certificate. Have we mentioned debt and compound interest?
CMU and MIT also have great CS programs, but they're not substantially superior to what you get at Yale. Or at any UC school.
Yeah, well, you know, that's just like, your opinion, man.
Memes aside, that contrarian claim may or may not be true, but where's the evidence to support it?
On a related note, the OP lost me with the claim that "Speaking as a graduate of one, top schools [just] teach you credentialing and ladder climbing." That doesn't match what I've seen at MIT or CMU, but perhaps it's true at Yale? :P
At the very least, it's an extraordinary claim (for engineering majors) presented with something falling far short of extraordinary evidence.
I am a physics graduate of a state school. I thought my physics program was excellent. I have since studied some additional math from MIT's OpenCourseWare and some machine-learning classes from Coursera. In my opinion, the quality of the classes are roughly the same.
But what I have noticed is that a lot more of the original research comes from the big-name universities. (I suppose that professors compete to go where the most funding is, and also where they can get access to the best grad students.) If I wanted to get a PhD in machine-learning, I'd most want to go to U.Toronto or UCL (University College London). Because that's where the action is.
As a graduate student, if I'm studying the xyz algorithm, I might be learning it from the guy who invented the xyz algorithm. (As well as surrounded by grad students and post-docs who are studying the next version of the xyz algorithm.)
I suppose that, in the STEM fields, there's a trickle-down effect to the undergrads. Surely there's more energy in studying something right where it's being invented.
I think that's a great point. With the more advanced stuff, who you studied under will probably have some bearing on a candidate's learning. Perhaps still not an exact indicator of their commercial viability, but still a different kettle of fish than the undergraduate level.
I would think that scientifically speaking, the burden of proof would be on the elite schools to show that they are superior teachers. Marketing-wise, of course they don't need to prove anything, but in any market where a brand is untouchable that brand tends to degrade.
At the time I got my engineering degree, my dept was in the top 20. It was pretty clear through the entire 4 years that educating undergrads was not a serious priority for the professors or the dept as a whole; research was king. I'd be pretty open to evidence that colleges without world-renowned research are actually better teachers.
I wasn't making a truth-claim, I was clarifying Justin's truth-claim.
The comment was claiming that Justin claimed that education didn't matter. I was clarifying that his point seems to me to be that the prestige of the institution you attend doesn't matter, and that more prestigious universities do not offer correspondingly better educations.
Now, as to the truth of that matter, it's a topic there's not a lot of good evidence on.
Obviously MIT and Yale and CMU all select from the very best students, so their graduates are correspondingly better than average as well. The question is whether they are more-better after attending prestigious schools.
Anecdotally, my friends who went to state schools got educations every bit as good as mine, in terms of the quality of instruction and rigor of the classes. Ditto for me comparing my CS degree to a MIT degree (I don't know about CMU).
Also, the null hypothesis (or the dominant prior if you're bayesian) should be that schools provide equivalent educations unless you have some reason to believe that's not the case. What evidence do you have that MIT and CMU provide better educations than other schools?
Again, note that the claim is not "You don't learn anything in college", the claim is "You don't learn anything more at prestigious schools".
I wasn't making a truth-claim, I was clarifying Justin's truth-claim ....
Fair enough.
Obviously MIT and Yale and CMU all select from the very best students, so their graduates are correspondingly better than average as well. The question is whether they are more-better after attending prestigious schools.
Sure.
[The] null hypothesis (or the dominant prior if you're bayesian) should be that schools provide equivalent educations unless you have some reason to believe that's not the case.
See, this is where the argument gets pretty flimsy. The prior should take into account the data we have on hand and practically all of it points in the opposite direction. Some data we have includes:
* professors (in many cases, learning techniques from those who invented them)
* quality of students you're interacting with
* laboratory resources available
* the "wisdom of the crowds" about the schools in question
Sorry, but the burden of proof is yours (or Justin's) — practically ipso facto — given that this is a contrarian claim.
From a pure common sense perspective, we should be surprised if there is literally no difference between the CS education at MIT and, say, UC Irvine, just as we should be surprised if there is literally no difference between the dining experience at a restaurant with multiple Michelin Stars and that at one without.
I actually concede that a higher percentage of graduates from top schools are highly talented (than other schools). Whether this is nature or nurture is irrelevant to me (as an employer). My point was that it is not of a differential to justify the difference in recruitment effort and hype.
Assuming that students at elite institutions are smarter going in then the curriculum can be designed assuming that the students will pick up complicated topics more quickly. So they have time to simply teach more stuff.
For example I am in the UK and studied computing at an FE college (probably equivalent to a US community college) and also at a "red brick" university.
Both courses contained introductory Java programming modules. At university the first few lectures were spent whizzing through the Java syntax and by about the fifth lecture we were being introduced to BST implementations.
The college course took about the same time to explain the difference between an object and a class and many students still struggled.
Of course if you are comparing "good college" to "really good college" the difference in intelligence might be much more minimal and admission comes down to whoever studied the hardest for their exams.
"Yale teaches computer science quite well (I'm a graduate!)"
Same here (DC' 04) but from my experience places like Waterloo produce graduates that are phenomenal compared to Yale. They leave Waterloo with such a wealth of actual working experience. Even when I was at Yale recruiters from Microsoft would complain to my professor that Yale graduates were lacking in actual experience. Don't discount the value of experience in learning theory because a great deal of CS is driven by real problems encountered. It's harder for the theoretical stuff to sink in without understanding the problem they can be applied to. I don't think I am alone in this regard.
In any case, dollar for dollar, if you're going to hire new college grads your money will go farther on graduates from schools that have a strong internship program. So in a sense, school does matter.
Maybe what is more true is the label "Ivy League" doesn't matter, not in CS anyways.
Waterloo is actually special (unlike Yale, MIT, or CMU). The internship program there is brilliant and does indeed produce significantly more experienced students on graduation.
It's also not particularly prestigious, which just goes to prove Justin's point.
That would be his point if he said "Ivy Leagues don't matter". But if we agree that someone from Waterloo stands out then credentials do matter. If I was looking for candidates, I would search first for "Waterloo" or other schools with programs like them.
It might not be prestigious to some people but where I work Waterloo carries a lot of weight. We also love Brown.
I think the cornerstone of this discussion centers around what, where and how non-university educated developers can excel.
Everyone seems to have a certain implicit sense that, sure enough, a CS education isn't crucial to work in certain sub-sets of software development. Likewise, it's well understood that such a foundation is necessary in others.
> For example, if you're doing anything with machine learning, you might want people who understand statistics. Oh, and if you're designing aircraft, you might want someone who's studied aeronautical engineering
Exec, of course, is neither doing cutting edge work in machine learning nor designing aircraft. Neither, if we are honest, are most startups or software companies hiring developers (including those who emphasize & prefer pedigree).
The question being posed (continuously) is :
To what degree is being self-taught (or, non-university taught) a hindrance in positions that do not explicitly call for it? If it's not a major hindrance, then is limiting the hiring pool in fact irrational?
I do not see this being answered adequately and directly. More often than not, we default to pointing out edge cases where a university education in CS/robotics/engineering/bio-engineering/what have you is necessary to perform the basic job functions. This isn't particularly productive.
Data should resolve discussions, not corner cases or anecdotes. Is there anything actionable or quantifiable that we can work with, or will this discussion inevitably lead down the path of opinion?
Without the "University Degree" filter, you end up with a lot more candidates that claim to be self-taught. If you're only looking at a handful of candidates, applying the filter might not make sense, but if you're looking at 1000 candidates, trimming it down by even 25% is probably pretty productive.
off topic, but i can't help but note the irony of a company that claims to not care about credentials, but under the "meet our execs" section shows a helper who is a BA graduate of claremont mckenna.
the company may not care about credentials for hiring, but for marketing purposes at least they are creating the illusion that their menial helpers are in fact credentialed.
further off topic - it's a little depressing to me to see the "high tech" cradle of silicon valley creating a service to organize menial labor. wow, house cleaning online is sexy? i must be dreaming, is it 1999 again?
One of the biggest problems in the US right now is employment and job creation. If we can create a system by which people work for each other incrementally more because of a new hiring interface, then maybe we are doing some part to address that. Perhaps not as sexy as creating Facebook, but our customers are growing in number, like the service, and you can extrapolate how this might be used by a broader audience outside of Silicon Valley.
Regarding listing one of our Exec's degrees: credentialing clearly matters to people outside the company (customers), and there's little we can do to immediately change that. When we talk about credentialing not mattering for hiring, it's for core team employees (people who build the product), for which there are generally other metrics we can evaluate on.
appreciate you responding to my somewhat snarky comment. for the record, while i appreciate that facebook's concurrent user and database/data challenges are complex problems, the actual product itself isn't that sexy to me in terms of what the user gets for all that effort (i'm thinking about the news feed, photo storage, etc.) But i don't use much on the site so maybe i'm missing out.
i think robots picking artichokes would be cool in terms of both high tech and reducing the dependency on exploitative labor conditions. but moving robots and object recognition are tough problems, and when there's other "low hanging fruit" (excuse the pun) to be found in other startups the technically difficult stuff can get pushed off.
exec may also have longer life as a viable business than facebook. it fills a need that won't go away, whereas facebook has a major risk of having the fad end, or alienating users through ever-increasing invasion into people's personal data driven by the need to justify a ridiculous valuation.
only risk i see to exec is what happens to your quality labor pool if the job market tightened, but that doesn't seem like a big risk for a while. with 8+ million people dropping out of the labor force over the last four years, there's a lot of slack to pick up.
i agree that credentials are not necessarily indicative of on-the-job effectiveness. alternative and cheaper ways to hire people, like using programming tests (we use them at my company), are tricky and can risk running into discrimination lawsuits if they are not directly job related, esp at bigger companies. however, for some reason using tests to filter people out is considered OK if it is done through a university, and then employers hire on the back end, which leads me to think that it is partly employer laziness and partly fear of liability that keeps the credentialing system intact.
Robots picking artichokes might not be as tough as you think. I think a sufficiently motivated teenager with ROS could do it half-assed right now. That's a shorthand way of saying I reckon I could do it ;)
Generally, the hard problems with robotics are related to sensing. Stuff like inverse kinematics and gripper movement are mostly handled in ROS if you can build a model.
Recognising the artichokes is not that hard as you might think given OpenCV as a primitive, and if you could get a near-field sensor using structured light it would actually be easy. This is not possible right now but will be in the next few years (unsubstantiated prediction).
Anyway, what I am saying is that you would be surprised how fast the boundaries change between "hard" and "easy". The things people are doing now with a $200 irobot create and a $100 kinect are blowing my mind.
If I had to guess, they probably had the employees write their own biographies. I would also guess that graduating from a good school is something he's proud of (which doesn't necessarily imply tat he looks down on these who didn't), therefore, he put it in his bio.
I do agree that house cleaning online isn't very glamorous, but if it helps people and makes money, it doesn't need to be.
I really enjoyed my MIT education, and maybe it made me smarter, but I can't say it made me a much better programmer. We had exactly one class (6.170) that was a practical programming course and the content should have been familiar to anyone with previous programming experience.
The foundational "computer science" skills held in such esteem by companies like Google amount almost entirely to an understanding of algorithms and data structures (you will almost never see an interview question based on, say, programming language theory), which was covered by exactly one semester-long course in our curriculum.
I think we learned a lot of cool stuff, but not stuff a working programmer really needs to know.
I practiced writing code a lot during UROPs (research opportunities available to MIT undergrads). While UROPs are not required, most course VI (cs majors) that I know did at least one during their 4 years there.
that's not really true. I very well remember a friend of mine who was building depackers for polymorphic pe packers, he went on to study security, and switched to graphics immediately. his reason "at least I can learn photoshop there"
I was simply appalled, when I noticed my co students in computer engineering had never seen a computer from the inside or knew that c was a programming language I studied. every single one of them has a ph.d now. I pretty much left.
And now that I moved to the US I can tell you each one of those who studied in a german engineering school is worth more than your average Ivy league candidate.
See, the thing is, the ones that actually do care drop out, because the system is made to find the highest common denominator. You want to get as many cs engineers out as you can from your university.
I often go on to tell people you should get interested high school students. Most of the ones in the University are already damaged. The ones that know coding at highschool age, are the later self taught wizzes
I was recently involved in hiring cs graduates for a university program, it was a horrible experience. They did all these capability assessments, grade measurement stuff, etc. In the end I got bored, and started asking them to solve problems(yes, like every half decent interviewer would do).
You'd be surprised how few people can break down a problem that would be 3 if statements into something that actually resembles a function. Sure, they can do exactly what you want them to do, but if that was it, you might as well just outsource it to some dude in india.
I learned a lot of CS on my own before college, and yet my first semester was quite a ride, even other guys who came from schools with a strong computer background had some trouble.
A large number need to at least understand the science. Doing machine learning and data analytics correctly requires mathematical and scientific understanding, for example. Same with, say, chemical engineering, or structural engineering.
206 comments
[ 4.1 ms ] story [ 146 ms ] threadI'm not sure if the "attended Yale University" is part of the Google+ page layout or a conscious choice on his part, but either way it says something.
Not that I disagree with his point.
Not that I don't value my time at Yale, but I don't feel like it is particularly worth highlighting on my resume: tens of thousands of people graduate every single year from top universities. Hardly something unique.
In particular, my experience with top schools is that, more than "average" schools, they're often hard—the people that get in are very competitive and competent, and the material and pace reflect this.
It's useful information to know that somebody was up to dealing with all that, because not everybody is...
Top school == a signal, but it is a weakly correlated one with being productive in my opinion.
>Speaking as a graduate of one, top schools teach you credentialing and ladder climbing.
So Kan's companies are ageist, gotcha.
I think the modern college market is just a credentialing racket, so I don't mind steps taken to disrupt it. That doesn't mean I'll support any step to disrupt it.
Bill made me look young, though. ;-)
So, he wants young creative kids, and also super experienced people. The obvious point is that he wants ambitious people who work hard, not that he wants young people. Some of those people are younger and some people are older.
There's so much funding in Silicon Valley, and such a talent crunch, that startup salaries are often on par with "real jobs" at established companies.
In the first dot com boom, startup engineers were often paid sub par wages because much of the funding was allocated to expensive infrastructure and for-show C-level execs. These days, infrastructure is cheap and startups don't hire MBAs, so virtually all of the funding is earmarked for engineering salaries.
1) People who hacked on projects on their own is WAY more important than "worked for a big successful company" or school. Even if the project fails.
2) Personality/performance traits matter a lot more than specific skills.
3) I'm generally biased toward hiring military veterans (US, Israeli, etc.); yet, there are parts of the US military which have a higher-than-ambient density of idiots, so it's gotta be selective.
4) Hiring mostly makes sense through network of existing people (founders, early employees), although "soft" connections to that network matter more than core membership.
I also probably shouldn't admit this legally (but I think it's safe) -- I would be biased toward 25+ year olds, vs. 18-25. I don't see much difference after mid/late 20s, but teens or early 20s, not so much. I would absolutely hire a qualified 18 year old, but I don't really look in the 18-25 year old range when hiring, and due to the historical accident of dotcom 1.0, people who were at least aware of their surroundings in the tech industry (even if in a junior role) in 1997+ would be a huge win.
I generally ask people "What was the last code you wrote for yourself that wasn't for work or school?". I learned that one from a friend and it is a great question that tends get to people who I want to work with.
I see this even more with MBAs than comp sci and particularly in downturns (having been in Silicon Valley a long time now) where weaker VCs invest in MBA buddies as easy decisions in tough climates.
Credentials are great as lazy decision making tools for big co hr departments - you don't get fired for hiring the Ivy Leaguer. But for startups make sure you're hiring for what someone can do and has done, not for what paperwork they've accumulated. I've made the mistake of hiring the high flying Ivy League wunderkind straight out of college, highly recommended... it was an absolute disaster but my own fault for taking this as proxy for being good on a startup.
That's a fantastic expression. I just looked it up -- the internet thinks that it originated with Barry Switzer, a former head coach of the Dallas Cowboys.
http://www.quotationspage.com/quote/23536.html
h/t http://www.barrypopik.com/index.php/new_york_city/entry/born...
Spin back to ten years ago and Silicon Valley wasn't wholly reliant only on institutional knowledge and skillsets were earned through work experience. Hiring a stereotypical computer hacker that's also a social misfit rebel was because those were the ones possessing the skills that colleges didn't teach.
My boss while I was at the big fruit company told me stories about how back then, back when it was still a garage startup of the literal sense, if someone showed up, poking around, and asked for a job was given some job to do. If they lasted and are competent they were hired. Only the true nerds came around, because only true nerds cared about computers.
That's not true nowadays.
Now that the body of knowledge has been collected and distributed, now that the lead time has diminished and colleges are teaching skills in almost real time, a college degree has a benefit of sorting those capable of finishing a 4 year project and those that don't.
The lambda between two candidates, one that earned his stripes while on the job while the other having a degree, has diminished. In that case, why risk it? No one ever got fired for investing or hiring an Ivy League grad.
I would feel better about this new status quo if there were more meaningful overlap between what they teach in universities and what skills one needs to be a successful software developer.
Are top-ranked colleges not adequately preparing their students paying hundreds of thousands of dollars to be a successful software developer?
Are there not enough work to go around for software developers of all levels?
People complain about a lack of talent in the technology world--some of that has to do with the absurd hiring practices of technology companies
I don't think it's reasonable to expect anyone to come from an academic field of study and immediately slot into professional work without having to pick up new skills.
> .. Silicon Valley is how much nepotism and old-boy-network
If I am ever in a position to hire (and affect through it entirely and only my own economic well being) I wouldn't mind having people I enjoy company of and can relate to. Genuinely awesome people are a plus point, but even in that category if I am able to find people who share the same background as mine, is it really that bad a decision?
> It was an absolute disaster but my own fault for taking this as proxy for being good on a startup
But there are bad apples in all baskets. I am sure there would be some evidence of great hackers without Ivy League credentials being poor matches for some startups. And I am not arguing that credential replace the need for a test of actual skills, interest and commitment; I am just arguing that the probability of the candidate possessing some minimum value for all three points is fairly high.
Yes, it's the opposite of a meritocracy, which i'm not sure if there's a specific word for. Very close to cronyism.
The question isn't whether "if all else is equal should I hire someone like me" it's whether you should prioritize a certain credential over other factors, as happens in a lot of hiring. But to come back to your "is it really that bad a decision?" I think most evidence points to YES, increased diversity of background and opinion benefits decision making groups - in this case companies companies - more than homogeneity, with its tendency towards systematic error.
To challenge your final point given the fact that a lot of the top schools have large numbers of legacy hires, and getting into them often involves far more factors than mere merit you're hoping that the delta in better schooling techniques outweighs recruitment drawbacks. Maybe, but I think it's far from proven.
Nobody is saying DON'T hire people from top schools, with great reputations, and track records of turning out quality candidates. Of course not. What's being said is that optimizing your hiring process to a handful of schools, given how many others are doing the same, makes it unlikely you're getting the very best candidates on the market - I don't see how this is anything other than statistically self-evident.
The one notion that always irks me though is talent. It seems to measure some combination of confidence and the amount of praise a person happens to have received in their life (i.e. how often someone told them they're talented) and is for the most part not well-defined. Yet, this article uses talent just like another credential.
I don't think talent is a thing that you either have or don't have. There's certainly some people that I'd like to hire that wouldn't with certainty say that they have talent. Vetting for confidence is a bit more interesting, but I also know plenty of confident people (i.e. that think they're talented) that can't get the job done.
The best way I've come up with to characterize what we're all looking for is people who can solve our problems/get the job done. That makes it mostly about what the applicant thinks they can do and less about the amount of praise they've received previously in live. This reminds me of how Kyle Neath posted yesterday that he thought he was not a great coder or designer but he could get the job done. When he was twenty, perhaps he didn't consider himself talented but I'm pretty sure nobody would have regretted hiring him.
Personally, I see the word used most often a kind of negative rationalization. A way to disregard success as lacking in effort, to say it's inborn, incidental.
I'd generally prefer to be described and to describe people as passionate, dedicated, capable or plain smart rather than talented.
I think those traits, often in combination with a lot of thought/practice, but not necessarily direct experience are the things that add up to what's often described as talent.
That said, I also think there is nothing wrong with going after candidates from top tier schools since most of those people have been properly vetted in the past and will likely handle themselves well in high pressure situations.
All in all Justin's article is spot on that credentials really shouldn't matter all that much as long as the talent is there.
However, The fact that someone has to write a blog post stating that and calling it bold really shows the lack of direction our country has as a whole right now unfortunately
Hire the undervalued "hungry" people who the Googles/Facebooks of the world won't even give an interview, and they'll 1) be easier/cheaper to convince and 2) work super hard to prove themselves (especially if it's their first job out of school). If the startup does well, it's a win-win.
I also like the idea of saying 'mention (some shibboleth) in your cover letter' to prove people read the add. If I was writing an ad I'd ask someone, maybe, to provide their favorite code snippet and describe why. Anything would be okay, as long as someone has an articulate reason.
I get disappointed in an interview if the company don't want to see code. Someone in this thread discussed how school doesn't correlate to the ability to ship code; I'm good at having an executable answer to a problem in minutes. If they don't want to see what I can do it usually seems like it's because they don't know how to judge it, and thus aren't who I'd like to work with.
This doesn't even come close to scaling when your applicant pool is 100 (or more) times the size of your interviewer pool. You have to have some quick filtering method, or you'll never get anything done.
I've got a good hunch what that college is. A little hint: it was one of the top three Gates mentioned in "The Road Ahead" that MS regularly hired from, and with good reason.
I think it's often safe to assume that if you went to a top school you have either (or both) determination or raw intelligence. If you didn't do this you'll spend forever screening dumb people.
The reason some firms hire only top school kids is (apart from ego) they know that whatever test/puzzle/interview they give their decision in hiring candidates will still be fairly inaccurate.
However, good credentials (I'd normally include internships but it wasn't mentioned in the original article.) simply means that there's a higher chance of the kid having a better understanding of programming than another candidate coming from a less competitive pool. What the author does in order to suppress this statistical strategy is giving anecdotal evidence. Problem with that is for every example the author might come up, this community can produce 100 nontrivial counterexamples.
One other issue is most founders who do not come from top schools have a tendency to think that kids in these schools are simply giving so much money to have a cheesy-easy undergraduate life and are terribly spoiled (and that might be partly true). Yet the fact is those are the top schools because students have to produce work that is quantitatively and qualitatively superior to their counterparts in other schools. This is not because of everybody are geniuses in these schools but because the average student starts at a higher level so the academics can push the students further without overestimating their capacity from day 1.
On the other hand if you're meaning people with Computer/Software Engineering degrees then you're right.
At my university the curriculum was identical for both degrees, you basically got to pick what it said on your cert at the end.
But, strong disagree.
In my experience as a hiring manager (which stretches back quite a ways), I've noticed no correlation between school and on-the-job performance. I'm sure MIT does indeed present more challenging CS/EE curricula, but the inference I draw after stipulating that is that CS/EE curricula quality just doesn't matter much in the real world. Perhaps we just do our most important learning in our first jobs, or, even better, throughout our career? Maybe memorizing MESI cache coherence in school is just less important than, say, having to learn on the job how to do a u/k copy in an ioctl handler because that's the only way to accomplish what your next dev task is?
And, you suggest that tests/puzzles/interviews are "fairly inaccurate". Well, all of technology hiring is inaccurate. Compared to other professions, the recruiting/onboarding process in the tech industry is amateurish across the board whether you ask people to design manhole covers or review Github pages. The answer to this is to improve the tests, and, I think, to evacuate as much of the subjective stuff (school and GPA, yes, but also "interviews" as much as possible) so you can make apples-apples comparisons to candidates and discover what factors really correlate to good performance.
I think when hiring (or vice-versa, making a choice of people I will work with) I look for some evidence that they've done something they're "not supposed to" have done. Growing up in a slum and yet attending Berkeley/Stanford/MIT/IIT Madras is such evidence -- higher education _is_ an equalizer -- but growing up in a wealthy suburb, going to a great prep school, and then and attending a top-tier school is insufficient.
Real open source contributions, serious undergrad research (even if done at an obscure liberal arts college), writing your own screen replacement "just because", building and open-sourcing an impressive piece of infrastructure at a previous job, are other examples of such evidence.
Most hires were from their sophomore year, so they all had the same basic classes coming in and had a baseline of knowledge.
[1]There were a few exceptions, but they knew someone in our org before they interviewed
PhDs, from any school, are also something I've gotten to be wary of. Of the 5 best coworkers I've ever had, all 5 had PhDs, but there is a lot of variance. Sometimes they spent a lot of time understanding one very specific problem very well, and people who have that problem should pay a premium for that talent, but if you don't have that problem they won't be worth it to you.
For young firms in software industry, this is not true. Neither Google nor Facebook (disclosure: my employer) hires exclusively from top schools. These companies do spend more effort recruiting interns and new graduates from top Computer Science programs (which is a rather different set of schools than top schools in general), but the reason puzzles, participating in competitions like TopCoder or ACM ICPC, research, open source contributions, etc... matter is that they give smart people everywhere a chance to stand out and be noticed.
On the other hand, the technical interview process in these firms is known more for false negatives than false positives. These companies all explicitly track the relationship between interview scores and employee performance and tune the interview process accordingly.
Finance, management consulting, etc... firms do recruit exclusively from top schools -- but they have other reasons for doing so. If you're in technology business but only hire from top-tier schools and fail to setup a meaningful technical interview process, you're more than welcome to -- I would highly encourage all of my potential competitors to do so :-)
I made fairly silly choices as a high school student (as well as not-so-silly, e.g., interning at a startup junior and senior years of HS) which led to me having to "hack" my way through a higher education despite having high SAT scores: after high-school I attended a community college for a year, got a near 4.0 GPA, transfered to a university no one heard of (I had a chance to stay one more year and transfer to Berkeley or UCLA, but I jumped the gun out of fear that my performance was "illusory" as I've never had such a high GPA before) while interning at yet another startup. More traditional companies (think Cisco, Symantec, etc...) ignored my resume (unknown school, internships only at startups), but nearly everyone I actually wanted to work for gave me a shot and I had plenty of good offers. I'm now 29 and I don't feel my career suffered as a result of silly choices (e.g., getting modest grades in high school, transferring too soon from a community college) I made between ages of 14 and 19.
The best way to hire someone is to sit down and chat with them on multiple occasions for 1-2 hours at a time. Another programmer can generally tell when someone is incompetent and/or BSing. It doesn't guarantee the employment will work out, as working styles can be incompatible, employee can be/become depressed and/or unmotivated, etc., but it at least allows you to discern the competence to a reasonable degree of satisfaction.
When I interview programmers we're so busy talking shop that school doesn't even cross my mind. Thus far very few mention anything related to their schooling as a qualification while we're discussing, i.e., not a lot of "Yeah, I did a project like that in school once...". If one is hiring for a heavily theoretical position, academic credentials may be slightly more meaningful (though it's still about the final output, much of the personal research/development for that type of thing would occur at a university, whereas "working" software engineers mostly go through school as a formality), but for most other things, it's so irrelevant that it never comes up after several searching technical interviews.
I don't care if you're talented as long as you are good.
I think the word "talent" is getting more and more misuse in the startup field. Talent is innate ability. While it helps, it's not a prerequisite to being good.
If your credentials are worthwhile, that will become obvious. If not, then they don't matter.
For anyone other than recent graduates, I wholeheartedly agree. But for recent graduates, you may have little else to point to.
They should skip a few homework assignments and write a few simple yet interesting tech demos and upload them to GitHub.
(I was an example when I came out of pure math and looked for a programming job back in the 90s, with no programming background.)
I don't live in San Francisco but everything I can tell about the cost of living shows me that a $100,000 salary in SF is roughly equivalent to what, $45,000 here in Atlanta, GA. (http://www.bestplaces.net/col/?salary=100000&city1=50667...)
Which is certainly a good salary for a college grad but it's NO WHERE NEAR "overpaid", in my opinion...
Living in SF: Eating out at restaurants, buying the latest iPhone, plane tickets, clothes shopping all relatively cheap.
Living in Atlanta: Getting a big house in a desirable neighborhood, parking are cheap.
So if you'd prefer to consume more real estate and real estate dependent goods, you should prefer to live outside boom zones. If you like to buy experiences and consumer goods, you should live in the boom zone.
At 100k/year eating out at restaurants, buying latest iphone, plane tickets, clothes shopping, etc are all relatively cheap most anywhere, aren't they?
There are plenty of Atlanta people who fall into the real estate trap, and it is a trap, but there are also plenty who live in slummy east atlanta, or get a reasonable condo/apt in midtown. Leaving them with relatively huge amounts of disposable income for experiences and shiny things.
Let me break down the math (all approximate):
SF: $100k/year income, $24k/year rent, $45k/year taxes, $31k/year disposable
Atlanta: $50k/year income, $8k/year rent, $20k/year taxes, $22k/year disposable
So if you live in SF, an iPhone is 1.6% of your disposable income. In Atlanta, it's 2.3%. That makes it "cheaper".
However, $24k/year in SF probably buys you a lot less house than $8k/year does in Atlanta. The SF real estate market is stupid.
And also, I don't believe it scales 1:1. The developers I know well here, 5 to 7 years out of school, nearly everyone in Atlanta is making close to 100k (almost all +/- 10k). Developers with similar positions and experience aren't making 180-220 are they?
Perhaps I'm wrong, maybe SF really is the promised land, but the numbers have never worked out on any positions I've looked at. YMMV of course.
The absolute win seems to be to work in Silicon Valley for 3-5 years, accepting a low "house" standard of living while enjoying consumer goods and travel, and then take your $100-150k/yr salary (and history of working at top companies) to do one of two things:
1) work remotely for top companies from a place like Seattle for $100-120k/yr (or, if you want to optimize even more, move to Thailand or something and work remotely for $60k/yr)
2) Found a startup, deferring as much compensation as possible into LT capital gains. Being much easier to raise money in Silicon Valley makes up for all the other things. Potentially open an engineering office outside the Bay Area to hire people who chose path #1.
$100k/year income, $8k/year rent, $20k/year taxes, $72k/year disposable
Outside of tech, where presence matters more, your scenario probably is fairly realistic though.
Interesting to think about how the same kind of market differentials exist for companies in the area. People are super expensive (salaries, recruiting and retention, etc.). Real estate is somewhat expensive (but, not that expensive; even at $7/ft2/mo peak, giving someone 200ft2 vs. 100ft2 isn't going to kill you -- and you can get cheaper RE in some areas, especially if you get bigger areas. I'd kill to work near VMware.). Computers and outsourced (outside the Bay Area) services are cheap. Buying people out of their houses outside the Bay Area would presumably be cheap ($50k underwater on a house in Ohio is a big deal to some people, but $50k is a reasonable hiring cost for a senior developer).
Also, interesting how similar differences exist for VC funded vs. bootstrapped companies. (AWS is 3-10x more expensive than buying hardware and putting it in colo, but takes less time for some things (and more for other things...), but less upfront cash cost, and can scale)
I have a cushy job in Louisiana that pays me right at six figures and allows me to work only 15-20 hours a week most of the time, in my extra time I run a software consultancy that pulls in several thousand dollars a month as well.
This means for me to live the same lifestyle in SF I'd have to make $250k per year or more.
Even with that said I actually just accepted a job in the bay area and took a pay cut because I want to be around people who make me better and there is no better place to do that in tech.
[1] Actually, I'm not. I took my ~$120k salary to another state and worked from remote for 3 years, getting the lower cost of living combined with the San Francisco salary, and giving myself an "effective" raise of about 80% (it wasn't Atlanta-cheap or it would have been even better). I kept everything well documented, but they still knew they couldn't easily replace me. YMMV.
But of course.
The problem is that talented people usually do not carry the sign "I am talented" to make it easy for you.
It's up to you to figure that out.
And you never know who is "talented" upfront unless you give that person a space and time and let the person express himself.
So you may not give a shit, but you have to give it a time and take a risk of finding out that cool looking and smooth talking dropout you hired 6 months ago is not talented at all.
Also, while I realize you were speaking generally, I am familiar with at least one of Exec's non-traditional hires, and I sincerely doubt he will be regretting that decision.
They couldn't afford to help me pay for school, but my test scores were high enough to get a full scholarship to a public university near my home town, so that's where I went. I lived at home, used public transit to commute, and made due with what I had available.
It's easy for me to say that credentials are worthless, I went to a school you've probably never even heard of, so it's nice to hear this from a successful individual who graduated from a top school.
A degree is honestly one of the least useful metrics for actual talent out there. Its value is basically limited to showing a tolerance (but not necessarily an aptitude) for bureaucracy and corporate mind games.
When people learn things by themselves they tend to focus on what they love the most and have a tendency to ignore what they don't. Formal education forces you to learn all areas that are covered and often bring things to light that are very useful, but would often be overlooked in selfstudy.
So formal education provides a base-line level of exposure to a lot of topics, what a student chooses to do with this level of exposure is what will determine wether they will succeed.
Being a college dropout doesn't necessarily mean they'll be a good hire, just like having a degree doesn't necessarily mean they'll be a good hire.
The impression I got was more along the lines of "We're willing to overlook your lack of credentials if you can prove you're talented."
These articles always come off a little pompous to me. But, I guess if you have the money, and you're hiring, you get to say what's important.
I've found this statement to be false, at least at my alma mater(UT Austin). My Honors OS class unquestionably made me a better programmer, teaching me about how programs I wrote interacted with the OS to a very deep level. My algorithms class gave me an extremely deep understanding of how algorithms+data structures worked, giving me a better intuition as to what tools to use when confronted with a problem. My HCI class made me acutely aware of how users interact with software.
I'll agree that the purpose of universities is not vocational. Without a doubt, a lot of classes I've taken will have absolutely no impact on my career (unless Buddhist Art becomes an in-demand field!). But a good school gives students the opportunity to gain applicable skills that are needed in the world.
If someone got an 'A' in UT Austin's honors OS class, I wouldn't even hesitate to interview them. It's a very good proxy for a good programmer. You can't do well in the class unless you truly understand code. Using a coarse grained filter of "Harvard University" is bad, but using a "Passed CS50 with an 'A'" filter is a very good metric to use.
- Memoization / DP
- Divide and conquer
- Using a bounded approximate algorithm in place of an exponential one for NP complete problems
I feel like it would have taken me a lot of time to internalize those types of algorithms on the job, but seeing them presented in my algorithms class made it easy.
There is a line to be drawn somewhere tho - what is considered basic isn't basic to some. I would draw it where 'basic' means you could have learnt it in a 3 year undergrad CS course - essentially what is covered in the text http://mitpress.mit.edu/sicp/ would be all i need from a grad, and domain specific stuff can be trained on the job.
In my experience, people who don't have a formal computer science education, who haven't taken any classes (or at least worked through the material in their own time) in algorithms or data structures, will muddle through and _will get things done_. They may also shrug their shoulders when it comes time to scale up their dataset input and their code takes 6 days instead of 6 minutes.
When the person lacking this education finds himself in a three- or four-level deep "for (...) { for (...) { for (...) { ... } } }" structure, (I guess) he feels mildly uncomfortable and thinks "yeah this is going to take a long time".
When the person with this education finds himself there, he has at his (I hate to use the word, but: intuitive) disposal some ideas for reducing some of the necessary computation ("I can keep a min-heap instead of scanning the list to find the minimum every time."). He has a toolbox of algorithmic knowledge that helps him without him consciously knowing about it. Some people reduce the complexity as much as they can and are still not satisfied, causing them to restructure the larger program or try to invent a new algorithm for this particular problem.
[0] http://news.ycombinator.com/item?id=5123022
Ihave no idea if UT Austin is a good comp sci program or if you're being sarcastic. This is the first I've heard of it.
Assuming you're being serious, then Joel Spolsky mentioned something similar in one of the stackoverflow podcasts.
His point was that a "top" school wouldn't get you hired directly but it would get you interviewed before someone else all other things being equal.
[1] http://grad-schools.usnews.rankingsandreviews.com/best-gradu...
[2] http://www.cs.utexas.edu/lasr/
[3] http://amturing.acm.org/award_winners/emerson_1671460.cfm
[4] http://apps.cs.utexas.edu/goto_gdc/
I would strongly encourage any potential competitor to never recruit from UT Austin (or any UC school, U of Washington, UWisc Madison, Waterloo, etc...). Oh, and amongst Ivy League schools please be sure never to recruit from Brown.
Though judging by the negative votes on my post I guess I'm being punished for my ignorance.
I thought I made a decent contribution to back up the original posters claim. I guess its true that no good dead goes unpunished:)
UT Austin actually does have a wonderful CS program.* The reason you likely haven't heard about it is that it is notoriously difficult for out-of-state students in the US to get into UT Austin, so you don't have as diverse a student body (geographically speaking) as you do at many other top schools. Less than 10% of undergrads are not Texans.
* I didn't go there myself, but I've worked with people who did, and they are top-notch.
If that's what you got out of college, you were definitely doing it wrong. Maybe in a business degree, but most people who do a science, engineering, or math degree learn some, you know, actual science, engineering, and/or math, not merely schmoozing skills.
You could learn that elsewhere, but if you care about scientific progress, my experience is that few people without a science degree ever get around to developing a rigorous scientific education, whether out of disinterest, lack of time, or whatever other reason. Lots of people plan to one day work through some textbooks, but most people don't. You see it in a lot of self-taught programmers, many of whom have a weak grounding in computer science. That might be okay, depending on what you're hiring for, but there are many cases where you want some more solid foundations. For example, if you're doing anything with machine learning, you might want people who understand statistics. Oh, and if you're designing aircraft, you might want someone who's studied aeronautical engineering, or at least some kind of engineering, whether at a university or through equivalent self-study. Even Google, a canonical Disruptive Silicon Valley company, seems to prefer its technical employees to understand computer science, rather than to hire pure programmers.
If someone is a true autodidact, learning on their own the equivalent of what they would've learned in a rigorous 4-year degree, that's fine, and there are some of those, so I have no problem making sure to look out for them, or even actively seek them out. I don't run across them very often at all, however, especially if we're talking about people without any formal mathematical training who are able to do solid mathematical or engineering modeling work. When you do find such a person, they're often amazing, but they're not common. Maybe MOOCs will increase their numbers, but it's a bit early to tell.
That said, I agree in not caring about the actual credential. If someone studied CS at CMU but left without the piece of paper for whatever reason, but learned the kind of stuff people learn in the CMU CS program, I don't really care about the missing document.
What I really need is a decent tutor who is willing to help me specifically with the issues I have but I've sought in vain for one who is willing to free-wheel it with me instead of just copying out of a textbook. I tried one briefly and he came up with a cop-out shortly after our first lesson, because I don't think he liked the unconventional questions I was asking, like "Why and/or how are sine waves relevant to non-geometric data? The only definition I can find of a sine casts it in strictly trigonometric terms, so how is it applicable to non-trigonometric data? Is everything encoded into a representation of a triangle before these calculations are applied?" Heh, that one made him pretty annoyed and he didn't really have a good answer.
I would love to increase my background in statistics and comp sci theory (which is basic but imo sufficient, and I seem to have a better grounding than most of the CS grads I've worked with), but I don't really know of a good option to receive that training. If someone wrote tutorials for graduate-level math from the bottom principles up like they write out tutorials on PHP or whatever, I'd be all over it. I really want to increase my formal mathematical literacy.
Three answers (in case you haven't found one you like yet):
A set of sine and cosine waves whose frequency is a multiple of some value form an orthogonal set of vectors/functions, which means that for any given function or vector whose domain is at most the period of the lowest frequency wave, there's exactly one set of weights whose weighted sum equals the function (with certain caveats if the function isn't discrete). There are other such sets, for example the Hadamard series, so sines and cosines aren't unique in this regard.
A complex number can be treated geometrically, as a phase + magnitude (converted to a+bi using sin & cos of course). This representation has the benefit that the magnitude of the value is readily apparent, and makes certain calculations involving multiplication and exponentiation easier.
Sine waves arise naturally in differential equations, because they are the only functions which are the negation of their own second derivative. Hence they often turn up in second-order systems with negative feedback (e.g. microphone feedback is more-or-less a sine wave).
you can also show up to public lectures given by visiting math profs and afterwards ask them whatever theoretical background questions you want so long as it's not total spoon feeding
campus walls are also covered in tutor posters for hire and many of them graduate level
I am a mathematics professor. Where do you live, how is this advertised, what kind of audience does this attract, and what sort of questions get asked?
Here they mainly talk philosophy and crazy advanced, graduate level mathematics that are way beyond my comprehension and often there are industry programmers, visiting professors on vacation, math self taught geniuses who smoke a pipe with huge unkept beards that look insane, students and even this anarchist group that shows up sometimes to talk game theory.
A few Math dept profs hang out on Sundays here too where all the public chess boards are set up and are fully approachable to answer questions as long as they aren't engrossed in a game.
Clicking on the Events page for the UBC Math dept they always have visiting Math profs give free seminars to anybody who wants to show up, and it's easy to get to the university. Every month at least 5 seminars there's one coming up by a visiting prof from UC Berkeley on Lattice Poisson AKSZ Theory, a bunch of discrete math seminars, and 2 seminars today on chemical distances and shape theorems in percolation models with long-range correlations, and retractions of representation varieties of nilpotent groups.
These guys stick around afterwards and are fully approachable I would talk to them all the time about offtopic theory and went to the student bar with a few of them and other students for a few hours.
The universe likes sine waves. If you hang a weight from a spring and give it a yank, it will bob up and down according to a sine wave. Lots of resonating and oscillating things are also governed by sine waves. So scientists and engineers are forced by circumstance to learn all about sine waves.
This rings true to me. I have a degree in aerospace engineering, but I'm a self-taught programmer. I've worked as a programmer, never as an aerospace engineer, but to this day I have a much better theoretical grasp of the latter than the former. I was recently trying to understand bidirectional type checking, and I'm just stuck. I understand ML-style type inference based on unification, for which there are a lot of undergraduate-style descriptions online, but I'm clearly missing half a dozen classes between "point A" and "point B" when it comes to anything more advanced, and I don't know enough to know what I need to learn.
Some things are just not easy to pick up, even for people skilled at self-education. They require a level of background knowledge that has to be acquired incrementally, and it takes time and discipline to pursue that path systematically.
http://www.cis.upenn.edu/~bcpierce/tapl/ (It is very amenable to self-study)
and then:
http://www.cis.upenn.edu/~bcpierce/attapl/ (Began working my way through this, but haven't quite)
I think knowing abstract algebra is pretty helpful to understand types, but I'd imagine you were likely exposed to a great deal as an aerospace engineer already.
[0] http://www.seas.upenn.edu/~cis500/current/index.html
I wonder if some better way of discovering books suitable for self-study would solve at least a part of the problem. I find a lot of textbooks are aimed mainly at being used as a resource in a course, which isn't quite the same use-case. Others are more of a compendium or reference, which also isn't the same thing, e.g. you could learn algorithms from either CLRS or Knuth, but I don't think they'd be engaging as introductions. So far my method is to ask around and make notes when people suggest things in threads like this one.
An even rarer genre of books is the high-level, creatively written book that lets you understand why an area is interesting in the first place, but which still digs enough into the concepts that you learn something about it. Sort of the textual equivalent of the dazzling lecturers you occasionally run across in universities (alas, not most of them, myself included, though I do try to provide students with a high-level map of what's going on in an area). There are some good books in physics, which attracts a lot of good popular writing leaning toward the harder-science end of the spectrum, but not as much elsewhere. In CS, only Hofstadter's Gödel, Escher, Bach comes to mind, though I'm sure I'm overlooking something.
This brings out a point not explicitly mentioned in your original post. A key thing you get in college is access to people who know the topology of your field. It is a routine recommendation to start with TAPL. A map is invaluable in order to limit backtracking or dead ends.
In my field of reverse engineering, those who have produced the top public results are completely self taught. Advanced forms of reverse engineering require a large smattering of knowledge from many graduate level areas of Computer Science and Mathematics. Autodidacticism of some form is the only option, whether it involves complete self-instruction or designing a custom curriculum in graduate school. The aforementioned authors have described the process of learning without a roadmap as extremely painful. If you don't have to subject yourself to it, I don't know why you would.
I think that illustrates the real value of education, which has nothing to do with brand name or credentialing. I like that I studied enough electrical engineering to do hobbyist projects with FPGAs; enough physics, math, and other sciences to be able to make sense of Nature articles, as well stay up to date with relatively new and fast growing fields like neuroscience and molecular biology.
Not everyone will extract this out of their degree program and there are definitely a few universities that make it difficult to get this kind of background knowledge. However, I'd wager that most good universities (ABET accredited CS/engineering programs, most faculty having Ph.D.s and publishing, healthy portion of students going on to graduate schools, etc...) offer this to students -- irrespective of their USNWR rating is (which, I think, at least for general undergraduate studies becomes more of a game beyond a certain point).
Could MOOCs offer this? Probably, but having structure and providing a toplogical sort (just like you've described it) of disciplines -- as well as things like labs for hard sciences -- is also valuable.
==Very good point.
What Ivy League schools do teach better than other schools is exactly what Justin says: how to fit in to the elite.
Like Emmett point out, however, I think any potential incremental benefit of a CS education at a top school is very much overvalued by recruiters.
The "everyone" that you are referring to consists of the vast majority of university majors, which happen to be non-vocational. I would say that STEM majors are generally pretty close to vocational, but as you say lots of people can get the degree without actually learning anything useful to any specific employer.
Which is what vocational schools are for. The biggest pity is that vocational schools aren't held up as great opportunities - lots of them are intellectually challenging - can you name and describe the function of all of the moving and non moving parts in your car? Also vocational schools are just as social as long as they are encompassed in a normal junior college. Oh and JOBS that pay MONEY.
The funniest part of the tragedy is that (on average) someone going to vocational school for a law certificate is going to make less money than someone going to vocational school for an electrician or plumbing or automotive repair certificate. Have we mentioned debt and compound interest?
Yeah, well, you know, that's just like, your opinion, man.
Memes aside, that contrarian claim may or may not be true, but where's the evidence to support it?
On a related note, the OP lost me with the claim that "Speaking as a graduate of one, top schools [just] teach you credentialing and ladder climbing." That doesn't match what I've seen at MIT or CMU, but perhaps it's true at Yale? :P
At the very least, it's an extraordinary claim (for engineering majors) presented with something falling far short of extraordinary evidence.
I am a physics graduate of a state school. I thought my physics program was excellent. I have since studied some additional math from MIT's OpenCourseWare and some machine-learning classes from Coursera. In my opinion, the quality of the classes are roughly the same.
But what I have noticed is that a lot more of the original research comes from the big-name universities. (I suppose that professors compete to go where the most funding is, and also where they can get access to the best grad students.) If I wanted to get a PhD in machine-learning, I'd most want to go to U.Toronto or UCL (University College London). Because that's where the action is.
As a graduate student, if I'm studying the xyz algorithm, I might be learning it from the guy who invented the xyz algorithm. (As well as surrounded by grad students and post-docs who are studying the next version of the xyz algorithm.)
I suppose that, in the STEM fields, there's a trickle-down effect to the undergrads. Surely there's more energy in studying something right where it's being invented.
At the time I got my engineering degree, my dept was in the top 20. It was pretty clear through the entire 4 years that educating undergrads was not a serious priority for the professors or the dept as a whole; research was king. I'd be pretty open to evidence that colleges without world-renowned research are actually better teachers.
The comment was claiming that Justin claimed that education didn't matter. I was clarifying that his point seems to me to be that the prestige of the institution you attend doesn't matter, and that more prestigious universities do not offer correspondingly better educations.
Now, as to the truth of that matter, it's a topic there's not a lot of good evidence on.
Obviously MIT and Yale and CMU all select from the very best students, so their graduates are correspondingly better than average as well. The question is whether they are more-better after attending prestigious schools.
Anecdotally, my friends who went to state schools got educations every bit as good as mine, in terms of the quality of instruction and rigor of the classes. Ditto for me comparing my CS degree to a MIT degree (I don't know about CMU).
Also, the null hypothesis (or the dominant prior if you're bayesian) should be that schools provide equivalent educations unless you have some reason to believe that's not the case. What evidence do you have that MIT and CMU provide better educations than other schools?
Again, note that the claim is not "You don't learn anything in college", the claim is "You don't learn anything more at prestigious schools".
Fair enough.
Obviously MIT and Yale and CMU all select from the very best students, so their graduates are correspondingly better than average as well. The question is whether they are more-better after attending prestigious schools.
Sure.
[The] null hypothesis (or the dominant prior if you're bayesian) should be that schools provide equivalent educations unless you have some reason to believe that's not the case.
See, this is where the argument gets pretty flimsy. The prior should take into account the data we have on hand and practically all of it points in the opposite direction. Some data we have includes:
* professors (in many cases, learning techniques from those who invented them)
* quality of students you're interacting with
* laboratory resources available
* the "wisdom of the crowds" about the schools in question
Sorry, but the burden of proof is yours (or Justin's) — practically ipso facto — given that this is a contrarian claim.
From a pure common sense perspective, we should be surprised if there is literally no difference between the CS education at MIT and, say, UC Irvine, just as we should be surprised if there is literally no difference between the dining experience at a restaurant with multiple Michelin Stars and that at one without.
Well that's quite a bit harder to refute. ;)
For example I am in the UK and studied computing at an FE college (probably equivalent to a US community college) and also at a "red brick" university.
Both courses contained introductory Java programming modules. At university the first few lectures were spent whizzing through the Java syntax and by about the fifth lecture we were being introduced to BST implementations.
The college course took about the same time to explain the difference between an object and a class and many students still struggled.
Of course if you are comparing "good college" to "really good college" the difference in intelligence might be much more minimal and admission comes down to whoever studied the hardest for their exams.
Same here (DC' 04) but from my experience places like Waterloo produce graduates that are phenomenal compared to Yale. They leave Waterloo with such a wealth of actual working experience. Even when I was at Yale recruiters from Microsoft would complain to my professor that Yale graduates were lacking in actual experience. Don't discount the value of experience in learning theory because a great deal of CS is driven by real problems encountered. It's harder for the theoretical stuff to sink in without understanding the problem they can be applied to. I don't think I am alone in this regard.
In any case, dollar for dollar, if you're going to hire new college grads your money will go farther on graduates from schools that have a strong internship program. So in a sense, school does matter.
Maybe what is more true is the label "Ivy League" doesn't matter, not in CS anyways.
It's also not particularly prestigious, which just goes to prove Justin's point.
It might not be prestigious to some people but where I work Waterloo carries a lot of weight. We also love Brown.
Everyone seems to have a certain implicit sense that, sure enough, a CS education isn't crucial to work in certain sub-sets of software development. Likewise, it's well understood that such a foundation is necessary in others.
> For example, if you're doing anything with machine learning, you might want people who understand statistics. Oh, and if you're designing aircraft, you might want someone who's studied aeronautical engineering
Exec, of course, is neither doing cutting edge work in machine learning nor designing aircraft. Neither, if we are honest, are most startups or software companies hiring developers (including those who emphasize & prefer pedigree).
The question being posed (continuously) is :
To what degree is being self-taught (or, non-university taught) a hindrance in positions that do not explicitly call for it? If it's not a major hindrance, then is limiting the hiring pool in fact irrational?
I do not see this being answered adequately and directly. More often than not, we default to pointing out edge cases where a university education in CS/robotics/engineering/bio-engineering/what have you is necessary to perform the basic job functions. This isn't particularly productive.
Data should resolve discussions, not corner cases or anecdotes. Is there anything actionable or quantifiable that we can work with, or will this discussion inevitably lead down the path of opinion?
https://iamexec.com/meet_our_execs
the company may not care about credentials for hiring, but for marketing purposes at least they are creating the illusion that their menial helpers are in fact credentialed.
further off topic - it's a little depressing to me to see the "high tech" cradle of silicon valley creating a service to organize menial labor. wow, house cleaning online is sexy? i must be dreaming, is it 1999 again?
Regarding listing one of our Exec's degrees: credentialing clearly matters to people outside the company (customers), and there's little we can do to immediately change that. When we talk about credentialing not mattering for hiring, it's for core team employees (people who build the product), for which there are generally other metrics we can evaluate on.
i think robots picking artichokes would be cool in terms of both high tech and reducing the dependency on exploitative labor conditions. but moving robots and object recognition are tough problems, and when there's other "low hanging fruit" (excuse the pun) to be found in other startups the technically difficult stuff can get pushed off.
exec may also have longer life as a viable business than facebook. it fills a need that won't go away, whereas facebook has a major risk of having the fad end, or alienating users through ever-increasing invasion into people's personal data driven by the need to justify a ridiculous valuation.
only risk i see to exec is what happens to your quality labor pool if the job market tightened, but that doesn't seem like a big risk for a while. with 8+ million people dropping out of the labor force over the last four years, there's a lot of slack to pick up.
i agree that credentials are not necessarily indicative of on-the-job effectiveness. alternative and cheaper ways to hire people, like using programming tests (we use them at my company), are tricky and can risk running into discrimination lawsuits if they are not directly job related, esp at bigger companies. however, for some reason using tests to filter people out is considered OK if it is done through a university, and then employers hire on the back end, which leads me to think that it is partly employer laziness and partly fear of liability that keeps the credentialing system intact.
Generally, the hard problems with robotics are related to sensing. Stuff like inverse kinematics and gripper movement are mostly handled in ROS if you can build a model.
Recognising the artichokes is not that hard as you might think given OpenCV as a primitive, and if you could get a near-field sensor using structured light it would actually be easy. This is not possible right now but will be in the next few years (unsubstantiated prediction).
Anyway, what I am saying is that you would be surprised how fast the boundaries change between "hard" and "easy". The things people are doing now with a $200 irobot create and a $100 kinect are blowing my mind.
I do agree that house cleaning online isn't very glamorous, but if it helps people and makes money, it doesn't need to be.
The foundational "computer science" skills held in such esteem by companies like Google amount almost entirely to an understanding of algorithms and data structures (you will almost never see an interview question based on, say, programming language theory), which was covered by exactly one semester-long course in our curriculum.
I think we learned a lot of cool stuff, but not stuff a working programmer really needs to know.
I was simply appalled, when I noticed my co students in computer engineering had never seen a computer from the inside or knew that c was a programming language I studied. every single one of them has a ph.d now. I pretty much left.
And now that I moved to the US I can tell you each one of those who studied in a german engineering school is worth more than your average Ivy league candidate.
See, the thing is, the ones that actually do care drop out, because the system is made to find the highest common denominator. You want to get as many cs engineers out as you can from your university.
I often go on to tell people you should get interested high school students. Most of the ones in the University are already damaged. The ones that know coding at highschool age, are the later self taught wizzes
I was recently involved in hiring cs graduates for a university program, it was a horrible experience. They did all these capability assessments, grade measurement stuff, etc. In the end I got bored, and started asking them to solve problems(yes, like every half decent interviewer would do).
You'd be surprised how few people can break down a problem that would be 3 if statements into something that actually resembles a function. Sure, they can do exactly what you want them to do, but if that was it, you might as well just outsource it to some dude in india.