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.
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."
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.
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.)
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.
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?
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".
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.
I read the title and laughed. I laughed because I worked at a major U.S. bank, and if you went to the bathroom during an unscheduled break, people wondered where you were.
Look, why is it so strange that Microsoft has a blog profiling people around the company who like their jobs? Are we supposed to cut ourselves every morning because we work for the "evil empire"? I don't understand why you think the site is somehow ridiculous, evil or insane. You know, of the 90,000+ people Microsoft employs, most of them actually like what they do.
Astroturfing implies that something is not true. Are you seriously arguing that people who work for Microsoft cannot possibly actually enjoy it?
The idea is fine. It's the implementation that makes it seem like a parody.
I honestly did have to check whois. When I first saw this, I thought it was someone making fun of Microsoft.
The ironic thing is, if it had been a parody, I'd have killed it, because it was (or would have been) so heavy handed. But since it's really from Microsoft, it's on-topic, because it's an interesting data point about how completely the company has lost its way.
Microsoft has always had a tendency to "not get it" on a grand scale, when it comes to stuff like this (advertising, social media, demo and marketing videos, etc.).
They're all pretty uncomfortable to watch, and are like a parody of someone trying to be funny.
However, I don't think Microsoft not getting it is sufficient reason for us to ignore them. They've done something really right somewhere along the way. I'm not sure exactly what it was, or if they're still doing it, but perhaps staring at it from multiple angles will help figure it out.
It just shows how culture always trickles down from the top. Gates, Ballmer, etc are all tremendous dorks, and their dorkiness pervades the Microsoft brand. I suppose Steve Jobs' smartest move was recognising the importance of style, and having faith in his own good taste.
What's wrong with that? So he looks/dresses like one of those people who thought there was a spaceship hiding in the tail of a comet. If a certain type of clothes makes you feel comfortable, then wear them.
Not at all! Astroturfing is not about lying, it's about creating a false impression of disinterested third party opinions, when the whole thing is controlled by an interested party.
This site straddles the line. They're not hiding their MS affiliation, but they're not drawing attention to it either. The suggestion is that there's this cute emo girl who wanders the halls of Microsoft because she just loves being around guys like this. Let's face it, having a girl like this be fascinated with the details of our work probably ranks pretty high on (male, heterosexual) hacker fantasies. And that was the whole point.
Furthermore the probably astroturfed comments also give us a false impression that other people think MS developers are pretty rad.
I don't think pg himself used the word "astroturfing," although other people here did.
The reason this site looks fishy is because it is pretty far from the way Microsoft usually presents itself. This blog seems to be going out of its way to find people who don't look like typical Microsoft employees, the interviewer asks them non-Microsoft questions, and so on. It's trying way too hard to present Microsoft as being a place that employs cool, edgy people.
I agree it's a pretty hokey site, but is it really that out of character for Microsoft? Think about the gates-seinfeld ads, the laptop hunter ads, and so on.
From the looks of this thing, I am guessing that Microsoft is losing all the best hires to google and startups, and they're hoping to reverse the trend. Seems kind of par for the course, doesn't it?
I've worked with some terrible programmers that have Stanford CS degrees, and one of the best programmers (CTE..) I've ever worked with also has a degree from Stanford CS. It's just not a very good metric to determine skill.
A university education demonstrates a commitment to studying for a reasonable period of time, which in itself is something valuable, however, anyone that has had more than a decade of industry relevant experience is self taught. After that time, what you learned in school pales into insignificance compared with what you (hopefully) have learned on the job (and in side projects).
The computing landscape changes every decade or so. The last one has seen dynamic languages come to the forefront and be actually used outside of school projects. And of course web development is completely new. It bought with it an entirely new sense of scale (think of Facebook's image serving needs, or Google's pagerank number matrix math)
I'm glad for Zeke and I'm glad for MSFT that they have hiring criteria that make sense. People have wrongly in my opinion written them off in favor of the new hotness (GOOG), but I am a little reluctant to be so hasty. While its true that I haven't used (or needed) a MSFT product for a while, I am also not naive enough to realize that a software developer in San Francisco isn't really typical of a computer user, when averaged over the globe.
From the Microspotting About page (which is a Microsoft page):
Oh and PS: You might notice that I use all manner of social media sites like Flickr and YouTube on Microspotting. You might notice that I publish the site using an open source content management system. Before you get all “ZOMG, TRAITOROUS MICROSOFTIE!!!11!1!!” understand this: I don’t buy into the idea that working at Microsoft means you can’t use competitors’ tools. In fact, I think that’s the best way to stay in touch with a constantly shifting, super exciting industry. I’m a Web 2.0 geek, so I use whatever tools interest me at the moment — regardless of who makes them. Working at Microsoft does not equal flunky.
Contributing to Microsoft-owned open source projects is acceptable, in some cases. A small number of products are run in an open-source manner within Microsoft, and actively recruit contributers inside the company.
I don't want to talk too much about internal policy -- I'm sure the legal office (LCA) wouldn't appreciate me pontificating about how cracked-out I think their opinions on F/OSS are -- but in general, 'forbidden' would be a good description, both for contributing and just reading code. There are exceptions, but they have to go up several levels of management and be directly work-related to be approved. (I think MSR is a different world, though.)
Honestly, most devs I know are too slammed with work as it is to keep up with a large-scale F/OSS project after hours. Every once in a while you get enough of a breather+motivation do small hobby projects and keep up with new technology.
The F/OSS restriction is the #1 thing I don't like about my job, but honestly, it's about the only thing.
It's wrong to the best of my knowledge. I've never heard of such a thing and I know several people who work on free software along with what they do at MS.
That said, if you work on IE in your day job and want to contribute to Firefox on the weekends, that wouldn't fly for obvious reasons.
It's all about you. You are not a good programmer because you went to a good school, or because you started learning on your own. You are a good programmer because you are a good programmer. It's a combination of traits that the individual aquires during all the points in life before the one in which we declare him a "good programmer". For every self-thought good programmer, you can name one with a degree. And vice versa.
The point of this article is not the way you learn to program. The point is how the company attracted someone and inspired him to fullfill his potential, and in the end be a true asset to the company. The right to go to the toilet whenever you want is just a simple simbol for a good working environment. A song of a caged nightingale is never his best.
For all of those folks who are saying IE is a piece of junk, you should consider:
1) IE is a REALLY stable/reliable piece of software. I don't think IEs failings are remotely technical. They are the strategic choices they made.
2) This guy is an high-level engineer. At Microsoft, I believe that gives him a seat at the table in terms strategic decisions, but it's a big table.
Sadly, the website is registered to Microsoft (and Copyright Microsoft Staffing Marketing)it is a Wordpress blog running on Apache!
Edit: I don't mean to offend people in this community working for Microsoft. But this is one of the best example of why I hate marketing.
Visiting the website convinced me even more that using the open-source LAMP stack and an open-source CMS is easier than using Microsoft technologies. Even if you don't consider the additional costs because they would have been used their own products.
This article is pretty dumb. I am working at Microsoft this summer, and there are plenty of great things to say about the place. Being able to go to the bathroom whenever I want isn't one of them.
As much as IE belongs in the bowels of software hell, and as much as Microsoft completely missed the boat for the Internet
and for the open-source software movement, kudos to this guy.
I'm much the same way--took a job right after high school doing bottom-feeder ISP tech support knowing absolutely nothing, started reading everything I could get my hands on about computers, networking, programming, and ended up being a pretty damned good software engineer.
Fuck CS college degrees, they're worthless--give me the autodidact guy who learned it all on his own anyday. And no, I'm not some guy who doesn't know CS--anyone want me to hand-hold you through
the steps to derive the existence of NP-Complete problems in Cooke's original proof? Or how about let's implement a red-black tree entirely from memorizing the algorithm?
Odd that Microsoft's culture has always followed the hacker ethos, caring only about how smart and capable you are to let you work for them, yet all of their software is crap, while Google will only stoop to maybe consider you if you have a CS degree from Stanford. Whether Google's software is all crap too, we need another 3-5 years to settle that decision.
not to be a dick to the true self taught gurus out there, but maybe IE wouldn't be such a pile of crap if the principle software developer wasn't someone who learned CS reading books on the bus. :p
There's nothing wrong with self-taught. Many great scientists and inventors have been self-taught (eg Michael Faraday).
Also, I'm the opposite of his guy. I went to Oxford. Studied mathematics and computer science and stayed and got a doctorate. I would suck at leading IE development.
As a hiring manager I look at what people can do, and then I look at their education. I do this becausesome of the best engineers I've worked with majored in non-CS/EE.
I knew I would catch shit for this comment because by and large CS can't be learned any way other than on your own. the field changes too fast for the schools to keep up. being a software developer is an exercise in being a lifelong student.
I couldn't resist though. after all the hundreds of hours I've spent dealing with IE related issues, the lead dev learned CS on the bus. It's just too poetic.
There's no doubt IE is a piece of junk, but I would imagine that has more to do with the business end more than anything else. It's not as if programming a browser is that difficult; choosing exactly which features to support can be.
The web development world is basically the Wild West. There aren't really any rules. The standards we do have can be vague or incomplete. At some point you find yourself making the decision to follow web developers' intent instead of a so-called standard.
Pile on top of that a desire on Microsoft's part to take every opportunity to keep people on the Windows platform and you've got a recipe for disaster for anyone who has to support multiple browsers. I don't think there's any group of developers that could produce something in that kind of environment that we would be happy with.
I don't think the problem is the talent of the IE team. I think the problem is they disbanded the IE team for several years. At least, that's what I remember reading in the Founders at Work chapter on Blake Ross. In other words, it was an explicit management decision to not make IE better. In that situation, there is literally nothing the developers can do.
Not literally nothing. I guess you haven't read "The Graphing Calculator Story":
I was frustrated by all the wasted effort,
so I decided
to uncancel my small part of the project.
I had been paid to do a job,
and I wanted to finish it.
My electronic badge
still opened Apple's doors,
so I just kept showing up.
We are still in stealth mode so I can't tell you that what. I can tell you that we are building a distributed application in Java that does very, very high-speed process of customer data to provide near real-time predictions of customer behaviour.
IE is stagnant because Microsoft's only strategic incentive to make IE better is so that it isn't too much worse than any other browser. It really wouldn't matter if they had the best team of developers in the world.
Microsoft had a very strong interest in dominating the browser market, and then crippling the web, so as to maintain their comfortable, high margin, desktop software business for a few more years. IE performed admirably for those goals. They extended the life of the desktop model for about seven more years, and gave themselves more runway to figure out this whole Internet thing. I kinda suspect they forgot that that was the point of those shenanigans, as they seem to have just now started trying to grasp the web; or maybe that's just how long it takes to turn a ship the size of Microsoft around.
I was self-taught, and started working 20 hours a week after school writing C for Merrill Lynch when I was 16. I got bored in my mid-twenties and finally went to college full-time, but not for CS: I double-majored in philosophy and the history of math and science and double-minored in comparative literature and classics. I returned to my career four years later and I'd like to think I contribute just as much to my team as those with formal CS training.
I guess that's because I was learning CS by reading books in my parents' basement instead of on a bus, right?
It all depends what books you read -- say if you just read programming books and no theory, which tends to be drier and less interesting because the pseudo-code examples, if the book even has them, won't compile directly.
Which is what university does. Picks the books. Then tests to see if you really read and understood the material. Plus you can go to lectures if you like to have the prof explain what's in the textbook with notes and examples on the blackboard.
I have a degree but low tolerance for the academic environment (nothing wrong with it, just doesn't suit my personality).
That said, I think I've met a few self-taught programmers during my career that read the wrong books, or more correctly never read the right books (since wrong books are just an opportunity cost). Some are great technicians but will never be engineers. Some have massive blindspots in their knowledge.
Some of the textbooks I read in university I would have never read on my own. So university forced me to read them via degree requirements. Not knowing some of that stuff would have been a handicap at times.
So there's university education for you in a nutshell: forcing you to read books you didn't want to so you'll know a few things you otherwise wouldn't have. Totally worth the four years and big bucks.
Lots of people are self-taught programmers. But there is a difference between people who taught themselves out of interest and those who taught themselves as a career move.
Ultimately, everybody is a self-taught programmer. I can't teach you how to program any more than I can teach you how to walk. Programming is one of those things you have to do in order to learn.
That's true to some extent but there are those who really figured it out on their own and there are those who had people holding their hand. I think that is the distinction we're trying to make when referring to somebody as an autodidact.
...like guarding an Ural2 during the night, which could not be turned off anyway, due to the tubes. Though you have to have connections to get the guard job though...
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.