HN2new | past | comments | ask | show | jobs | submitlogin

What I find striking is that someone working at a gas station, and with apparently no formal CS education, could get hired and eventually become a lead developer, at Microsoft. Google would never hire someone like Zeke (they might have in the past, but not current Google); without a degree from a "top-tier school", you don't even get past the first steps of the interview process.

Say what you will about IE (Zeke is apparently lead on the project), Microsoft actually does have a lot of good software developers working there. I can't imagine someone would rise to a lead role on a major product like IE without being pretty damned good. And, there probably is something to hiring really passionate people over someone with a lot of qualification who could take it or leave it...companies like Google that weed out first based on school and grades, might just be missing out on a huge class of talent.

I can think of a few well-known examples of this (jwz, most of the 8-bit game developers, John Carmack, etc.). Not to say the guy responsible for IE is necessarily in that class...but, nonetheless, there's an awful lot of great developers who never went to a good school for CS.



Remember that you're comparing MS in the 90s to Google today, which is an unfair comparison. When I worked at Google (2004-2007), a few of the smartest developers I knew didn't have college degrees. People like Aaron Boodman, who wrote Greasemonkey before he was hired, and was responsible for Google Gears. They were all one-off cases, who were either recruited for their skills or who tried many times until they finally got an interview. These people were hired directly into the engineering organization - it would probably have been easier to start as a QA contractor and then attempt to move up later (which is what Zeke did).

It's definitely an uphill battle if you don't have a CS degree from a top college. I will be the first to admit that having a top university on my resume made it significantly easier to get hired. Remember that, with the sheer volume of resumes that these companies get, it's impossible to interview everyone. I did a lot of phone screens, and of the people with exceptional resumes, about 90% weren't that impressive when you talked to them on the phone. It just wasn't possible to talk to everyone.

If you don't have a degree but are an exceptional programmer, getting a job at a top software company is going to take a lot more perseverance, but it is definitely doable. However, in most cases it's probably going to take more effort than just figuring out how to get the degree.


Totally agree. Many of the most impressive people I've met were fuckups in HS, which pretty much blocks you from a great college. Google is basically selecting for people who either grew up really fast or had parents bully them into academic performance. Of course, they are also selecting for people who have a great work ethic, aren't stupid, and largely play by the rules.

Out of curiosity, how would you thin the applicant herd? Say you have 10,000 resumes sitting on your desk for a CS job. You can't read them all so you need to set a few automatable/arbitrary rules to get the pile down to 50 or so. What rules do you use? Years of experience? Google HR can't take the time to get to know 10,000 people.

What Google does is incredibly imperfect, but to trim their resume flow down to a smaller number they haven't made a terrible choice. What's a better one?


I don't know. I just ask questions. I don't have any good answers.

I've tried to figure it out every time I've had to hire someone. The best luck I've had is with prior knowledge of the person (worked with them in the past, knew them from an Open Source project, etc.). I'm suspicious of the network hiring process, though, as it seems to narrow the pool too much, and certainly doesn't scale. I think it can also bring about quality degradation over time as people bring in people they like rather than people that are the best.

I just have a sneaking suspicion that some of the things that Google does wrong could possibly be attributed to hiring predominantly from the "teacher's pet" archetype.


I think you are confusing different parts of Google's hiring process.

Keep in mind this guy started in tech support. When you describe Google as requiring a "top-tier degree" you are thinking of software engineer positions. If you want to get a job at Google doing tech support, or working in a datacenter, the hiring bar is lower.


That's true. And, contractor positions are also easier to get hired for than full-time positions. It's a very common "back door" for folks who don't meet all the requirements into a job at Google to start as a contractor...I know several people who got their Google job that way. I question how readily one can move between those positions at Google, and the more rarefied positions, though.

So, maybe Zeke is an exception at Microsoft, too, and this really is just some straight up astroturfing. I'm sure one could easily find a few dozen team leads at Google that don't sport a fancy degree. But, if Microsoft doesn't actually want to hire more people like Zeke, it seems like a poor choice of story to tell.


Anecdote time: I have a friend at Google who started there as basically a glorified tech while he was attending a community college (so, no degree at all). Google has been paying for large chunks of his tuition, enabling him to scrape together enough money to go to UC Berkeley. He recently graduated, and simultaneously shifted from his technician position into engineering based on feedback from the engineers he worked with.

Mind you, it took him a pretty long time to do so, and lots of things could have gone wrong on the way, but its definitely possible.


But will that get you into a software engineer position?

Of course, that might not get you into a software engineer position at Microsoft anymore, either.


A close friend of mine starting learning to program in the mailroom of a software company. He was the one in charge of boxing software and sending it out. The job offered a lot of downtime, so he taught himself enough to program.

He became one of their developers and the lead developer at multiple other firms, including two he co-founded with me.

I should add that while he hasn't finished his "top tier" undergrad degree, he's very close.

He got hired at Google relatively recently (~2 years back) and is rising through the ranks.


He got hired at Google relatively recently (~2 years back) and is rising through the ranks.

It's my understanding that that's about the point in time when the hiring bar started rising, and the focus on top-tier schools became prominent, at Google. My information could be colored by the people I talk to (who are mostly on the OSO side of Google rather than engineering), but as far as I know, it's been a definite trend. I also know several people who left Google over the past two years, either to go back to school or to pursue other interests, but now very likely wouldn't get a job there due to the changing hiring policies.


I think that the stories of Google's automatic GPA/school filter are a bit overblown. I got hired last December with a 3.0 GPA and November graduation date, which alone should've indicated that I was a complete fuckup in college (plus if they'd done the math, the 3.6ish GPA in my major meant that I must've been hovering around a 2.0 for courses not in my major). That was all on the top line of my resume, and they didn't care. I know folks here with degrees from Cal State or in rare cases no degree at all - they are a definite minority, but they did make it through the hiring process.

The one thing we all had in common was prior work experience and a passion for computers. I don't think you can get hired at Google with neither the degree nor experience - but then, should you be able to?


Yes, they're highly overblown - I just made it through the hiring meatgrinder this week and I have a non-CS degree from a tiny liberal arts college. It was a nonissue. Plus, two years ago, they hired me as an intern after reading my resume and two phone screens. Now, that all said, I'm fairly active in OSS, but that's almost all of my "formal" training and/or experience in CS and SW Engineering.

The fact of the matter is that if you can get through the interview questions and appear to "fit" the culture, you probably stand a decent chance. Top tier schools help, but that's probably more a fact of the school having a big name and the brand of the school being more prized. Otherwise, they never would have even looked at me as an intern, much less an actual hire.


It's my understanding that that's about the point in time when the hiring bar started rising

I thought it was the opposite. Google always emphasized GPA and where you went to school. They loosened things up quite a bit during their great hiring sprees of 2006-2007.

Maybe recently they've reverted to their old policies because they hired so many duds during that time period.


My Noogler class (Jan 09) was biased towards people with actual work experience. There were a couple of freshly-minted Ph.Ds, but most of us had been working for 4-10 years, and AFAIK the only fresh-out-of-undergrad had already done a couple internships with them. Very different from the demographics of the rest of company, where I occasionally get teased (lightheartedly) for having worked at a company other than Google.


Norvig in his essay 'Teach Yourself Programming in Ten Years':

"If you want, put in four years at a college (or more at a graduate school). This will give you access to some jobs that require credentials, and it will give you a deeper understanding of the field, but if you don't enjoy school, you can (with some dedication) get similar experience on the job. In any case, book learning alone won't be enough. "Computer science education cannot make anybody an expert programmer any more than studying brushes and pigment can make somebody an expert painter" says Eric Raymond, author of The New Hacker's Dictionary. One of the best programmers I ever hired had only a High School degree; he's produced a lot of great software, has his own news group, and made enough in stock options to buy his own nightclub."

http://norvig.com/21-days.html


I agree fully, Google has one of the most convoluted and non-sensical recruitment models I've ever come across.

When I was in university I was doing a cross-discipline degree in mechanical and electrical engineering. Not your usual hacker program to say the least. I, however, coded like mad in my spare time (and have since primary school), and even found ways to incorporate a lot of software into the decidedly mechanically-slanted work I did in school.

I worked at numerous software companies during this time as an intern - Apple, Amazon, and a couple of smaller ones people have no doubt never heard of :) They seemed to like the work I did as well, since all of them invited me back for a second go.

Google, however, never touched me. I applied to their dev positions again and again (for internship and full-time) and never got a peep back except the occasional "you don't fit anything we have right now, but thanks!" message. I even got recommended by someone who worked there, and that was still no dice.

I also noticed that, despite the number of interns Google was hiring from my school, almost all of them were CS students, very few engineering students, and certainly none outside of the traditional computer engineering departments.

In the end, near graduation, I was courted by Microsoft, Amazon, and a few smaller companies, and Google still hasn't given me a dev interview ever :P


The misconception is about education itself, and not just CS. There is an overconfidence in instructionist educational systems(which means, an overemphasis in teaching), as opposed to a focus on learning.

Learning can take many, many forms, in all kinds of different backgrounds, because it is constructed by the individual attaching meaning to his experiences.

It is unfortunate that this happens, but projects like the OLPC is bringing constructionism(Seymour Papert's theory, based on constructivism). Lets hope we move to a deschooled society sooner than later.


Google would never hire someone like Zeke (they might have in the past, but not current Google); without a degree from a "top-tier school"

If this is true, this is disempowering to Google for 2 reasons:

1. Many potential superstars simply never get the opportunity to go to a "top-tier school".

2. In applicability to real world requirements, the difference between a "top-tier school" and a second level school is negligible. That is, if there was a scale of what was important from 1 to 100, with 100 as a total super star, then a top-tier school would make you a 10 instead of a 9. Big deal.


> then a top-tier school would make you a 10 instead of a 9. Big deal.

Ummm, there is a huge difference between a 9 and a 10. The horse that wins the race by a nose wins 10 times more prize money than the second place horse. Was the 1st place horse 10 times faster? 10 times stronger? No, he was a nose faster - and it made a huge difference.

Think about this in terms of search engines. are Googles search results 10 times better than Yahoo. Absolutely not, but they are a nose better and thats why we all use Google.


In both your argument and that of edw519, you accept that a better school (or any school at all) makes a better developer. I'm not sure that's necessarily the case, though I don't think going to a good school hurts, I'm not sure the people with a high level of passion and the right mindset for being a developer could very well be held back by a lack of schooling.

In thinking back on the most effective developers I've ever known, there's a pretty wide range of backgrounds. Though I guess most of them do have some sort of university degree, not all of them were in CS and most were not top-tier schools.


It's not the school, it's the fire-in-the-belly that matters the most. Some people are driven to excel. Their drive focuses all of their energy on whatever topic they are pursuing. They want to know their field better than anyone else. That's the person I want to work with.


I think we can agree on that. The question is: is a "fire-in-the-belly" for getting good grades and getting into a good school and doing well at that good school (which, let's face it, involves many factors other than programming) correlated with a fire-in-the-belly for building real world projects?

I can say with confidence that I've known serious over-achievers in school who went on to become non-achievers in life, and vice versa. In other words, I'm not sure that what school someone attended is a good indicator of their ability or their enthusiasm for the work. The more top-tier school alumni I meet, the less confidence I have in the predictive value of that data point vs. other data points.


People who have "fire-in-the-belly" will usually have something to show for it besides just good grades.


This is why I like to hire guys with Open Source software on their resume. I can see it and know they are awesome. If someone doesn't have any Open Source on their resume, I also begin to wonder, "How much do they really love this stuff, if they only do it when they're being paid for it?"


I can sort of understand this viewpoint, but there may be reasons why someone may not have Open Source software on their resume.

I have worked in finance, and I am currently working on my Master's degree in financial engineering. A lot of finance-oriented companies highly value their code. Now, yes, there are projects like QuantLib someone can contribute to, but if you someone was hired directly out of school and had never contributed to Open Source, chances are you aren't going to find any Open Source projects associated with that person. That person's employer probably doesn't allow it. With that said, the other case may be that they simply don't have the time to work on anything outside of work. Again, Wall Street is like this.


I just compared Yahoo's search results to Google's a week and a half ago. The difference wasn't large, but I switched to Yahoo Search. (I've never worked for Yahoo or Google, but lots of my friends work at both, and I have a Yahoo Search shirt in the closet.)

http://canonical.org/~kragen/search-comparison-2009.html


For a web search default, you generally want the least worst engine, unless you habitually check multiple search sites. Favour consistency over occasional excellence.


Only Bing failed completely (in my subjective opinion) in any case where any othe search engine succeeded. Google had a higher median score, Yahoo was the very best most often.


There are a few places I've seen that try to formally bring in "smart people who didn't get a CS degree." Microsoft has or had an "apprentice program" aimed at smart people who never happened to pick up a CS degree. There's a little bit about it here http://microsoftjobsblog.com/blog/microspotting/

I can't find any mention of it on the Microsoft jobs site. Maybe it's become a casualty of the recession. From what I can tell it started around 2006, so it would not have affected Zeke.

Berkeley used to have a "computer science re-entry program" aimed specifically at people who wanted to go to graduate school in CS but who had a degree in something other than CS, like, say music or history or whatever. The idea was to take people, then help them learn what they needed to know in a year or two, and finally help them navigate the grad school admissions process. A secondary goal was to increase the number of women and minorities in CS grad school. This worked well from what I understand, but a combination of funding cuts and Prop 209 killed it. http://portal.acm.org/citation.cfm?id=1008940


Google would never hire someone like Zeke (they might have in the past, but not current Google); without a degree from a "top-tier school", you don't even get past the first steps of the interview process.

You're wrong. Let me add one more anecdote: I know someone who dropped out of a second- or third-tier tech school after five years of moderate GPA, in 2000. He started work at Google three months ago. Yes, in engineering.


The person is Ben Sittler; the tech school is New Mexico Tech, which although very good is not at the same level as MIT, CMU, or ETH.


I'm happy to hear I'm wrong.


It makes so much sense now.

After all, who hasn't wondered whether IE wasn't written by an errant gas station attendant who just wandered into the MSFT offices to use the bathroom?


Yeah, the aristocratic, "geek machismo" model of hiring conflates (weak) correlation with causation.

For me it's an anti-pattern that shows that such people lack a critical bit of intelligence and vision.

It's also a modern example of the Maginot Line fallacy.


He was hired for customer support. I don't think Google even has such a thing.


My personal experience is that the best, most imaginative software developers are mostly self-taught.

Passion for the topic is very important because a lot of what we do for a living is un-charted, un-mapped territory. The passion is required to get past mediocre.

I am a self-taught programmer. I tried to learn in school but my mind wasn't quite molded to the way programming teachers taught back then (1985-ish). So years later I re-visited programming on my own after DOS 6.0 and Windows 3.1 came out.

I got the bug and eventually became a professional. I now work on a large magnificent software library used by millions of people whether they know it or not (I won't say what it is).

I consider it a privilege and part of the journey to work with passionate, self-taught people who paved the way.

There would be a lot of empty seats without superstars if we only accepted Ivy types or excluded the self-taught.

I just couldn't be in this field if that were the case.


I'm speaking as a self-taught guy who has gone pretty far.

First of all, all good programmers have the ability to teach themselves, because this is the definition of a good programmer. People who stick with what they knew three years ago are obsolete.

So the question is whether the pure autodidact strategy is a good idea. It isn't. There are far, far more failed or incompetent self-taught programmers than there are failed CS students. Observe the "Teach yourself X in Y days" bookshelf and the kind of programmer they produce. Could they have sucked less with better instruction? We'll never know.

Also, the stuff you learn on the job is nothing like the depth of knowledge you get from taking a real course. The rule of thumb is that 3 years on the job equals one year of university. And I find that to be about right. After more than 10 years of doing this professionally, I'm vaguely the equal of a really good Stanford grad. I have many more tricks up my sleeve, but they know a few things very very well. Passion works up to a point, but part of the job is also learning the really boring stuff that nobody likes.

So yeah, I do think I'm maybe more "original" just by dint of having a different background. But there are penalties for that too.


I'm also a self-taught programmer, but I think that our shared view that people like us are more imaginative, etc. is biased due to our personal experiences.


I have more academic qualifications than you can shake a medium sized stick at, and was largely self taught and continue to be largely self taught. My experience as a TA was that a disturbing number of my students had enormous entitlement complexes and thought of programming as a way to get their ticket stamped and get into a "good job". The few who were really interested in the work usually didn't need my help, or when they did it was more like "can you get a 2nd pair of eyeballs here? I'm too close to this to figure out what's wrong".


If so, it's awfully prevalent.

I'm self-taught too, and so is the best programmer I know by a long way (not me, I suck).

The guy I went to uni with who did CS to completion? He's writing printer drivers for Canon. And hell, good for him. He's got a nice apartment, he has nice dinner parties, he has a nice wife. Good for him!

But all the entrepreneurial types I know are self-taught.


I think there are A LOT of people who are self thought and terrible programmers. But the few that are self thought and great obviously always had extraordinary potential and not getting formal training could never hold them back.

9 our of 10 business fail, so the vast majority of entrepreneur suck big time. But of those that succeed people who work better under self direction are over represented because those who exceed even when managed are also currently busy succeeding.

I know plenty of successful entrepreneurs who had long and successful careers in corporate America.

I know plenty of brilliant hackers who bailed on school because everyone there was hopelessly behind them.

I know plenty of brilliant hacker who graduated from MIT.

I also know a few MIT engineers who make me wonder how the hell they got through MIT. Not only do they suck in the real world but they are also lacking some very basic academic concepts. Did they forget them, did they ever learn them? Who knows.

Life is full of personal anecdotes.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: