Silicon Valley Asks Mostly for Developers with Degrees
blogs.wsj.com
blogs.wsj.com
1. All else equal, and looking at the industry as a whole, having a college degree in CS is an advantage in getting hired over being self-taught. Things get more fuzzy if your degree is in math/physics/etc., but those still confer some advantage.
2. The advantage is very large for entry-level roles but diminishes greatly with experience. The advantage is even larger if you went to an elite school. The advantage is small if the school is mediocre, and negative if it's a diploma mill.
3. The advantage varies greatly with the company. Google definitely cares more than most startups.
4. The advantage virtually goes to 0 within a decade but never completely goes away, simply because of effects like your-interviewer-went-to-the-same-school, alumni networks, and the fact that more people irrationally care about CS degrees in senior devs than are irrationally biased against them.
5. Whether the advantage is worth the cost is a very complicated issue. This advantage is almost certainly not worth it if you have to go 100-250k in debt (private schools). The opportunity cost is also quite large, but this is complicated because what self-taught job you get depends on your own background. Coding bootcamps also complicate things. At a certain point depending on scholarships / parents paying / going to an in-state school, it makes sense.
According to whom? Multiple Google recruiters have quite explicitly told me that they don't care that I don't have a degree.
It's also quite possible that the amount of test-taking/etc. people get in undergrad helps with some forms of interview programming. Hypothesis only - don't take too seriously.
I'm a computer science professor with a Ph.D., who's spending the year hacking code in C++ & Python at Google, and I can tell you with certainty that if I didn't study, there are some forms of dynamic programming or tree data structures (I can't remember the details of a red-black tree to save my life without googling it) that I'd flub in a time-pressured interview.
Many of those things are problems that some programmers might never encounter in day to day life. I do a lot of data structure stuff, and I've still never implemented a red-black tree or huffman coding after undergrad. I have std::map and gzip, for crying out loud. :) (That said, one of my Ph.D. students did once, in a very specific context where we needed it tightly integrated with something. He's also one of the best programmers I've met - far better than I - so take that with a grain of salt.)
1. I work in an office where almost everyone went to the same university, which is in the same town as the office. Recruitment of grads from that university is a high priority. 2. Like you said, the interview process does bias towards things emphasized in CS programs. Recent exposure to algorithms courses would definitely help. 3. The culture within Google itself feels very much like a university culture. Perf (promo through 'demonstrating impact' and basically being in a lot of design docs and PRDs, rigorous and extensive peer review, committees evaluating people's work almost like a thesis defense), etc. To me at least. 4. I've never been on hiring committee but I do get the impression that degree will be considered. Even if not for hire, but for determining the hiring level the person is slotted into. I can't say that for sure, tho.
Anyways, although I have been here 4 1/2 years I do feel like an outsider, and I feel a lot of this is being sans-degree.
So I got a job offer from them without a degree, but they certainly did care.
Obviously they were happy with my competency since I was offered a job, they just took the path where they used my lack of degree as a negotiating tactic.
Turns out there are plenty of other places that don't care about degrees and offer more money, so I accepted a job somewhere else. It was an easy decision at the time.
One year of science and mathematics: 1. Mathematics: At least one half year that must include discrete mathematics. The additional mathematics might consist of courses in areas such as calculus, linear algebra, numerical methods, probability, statistics, number theory, geometry, or symbolic logic. [CS]
2. Science: A science component that develops an understanding of the scientific method and provides students with an opportunity to experience this mode of inquiry in courses for science or engineering majors that provide some exposure to laboratory work. [CS]
The General Institute Requirements for all MIT undergrads include 1 term of the calculus beyond the AP Calculus BC sequence, 1 term each of calculus based mechanics and E&M, and 1 term each of biology and wet or solid state chemistry. There's also a laboratory requirement that's satisfied by the new EECS introductory courses that replaced 6.001-3 (SICP plus EE fundamentals, now it's robotics and communications).
So a MIT (and CalTech) graduate is guaranteed to have more scientific and mathematical maturity than the generic CS degree holder from another school. It's also a degree that grew from its EE department like UC Berkeley and unlike (I think) CMU and Stanford, so there's some required low level EE learning (and last time I checked most in the department get a degree with lots of both).
It's all done at a very fast pace as well, about 13 weeks of learning per se for a term (vs. e.g. the 2-3 terms that seems to be common for covering the AP Calculus sequence), so being able to learn hard stuff fast is an implicit requirement, and officially stated as a virtue, seeing as how quickly so much in so many fields including most especially computers changes so quickly.
NOTE TO HIGH SCHOOL STUDENTS: if you want to attend MIT, don't despair. In addition to a new model financial aid system which disdains loans, the raw odds if MIT judges you can do the work are 1 in 3. Best thing you can do besides the usual things is to demonstrate in your application that you can do projects. E.g. do a significant block of programming (FOSS nowadays) work and do a good jobs of writing it up, as I did, in addition to a serious biology project at a NSSF Summer Science Training Program that would have been published if not for later realized reagent contamination.
Disclaimer: I was a MIT undergraduate pursuing a science degree, and interacted a lot with the EECS department (e.g. I lead the infrastructure part of their forced move from Multics to UNIX(TM) when MIT-MULTICS was shutting down due to Honeywell Brain Damage(TM)), and still have ties to the department.
In other words, why fast pass MIT grads but not applicants with MS degrees and published papers?
Maybe Google has some metrics to back up their decision, but I'm skeptical that they can explain why the numbers are what they are.
I can't think of much about MIT that can't be replicated by a dedicated individual. And I think the industry as a whole agrees with that. There seems to be consensus that where a degree is from matters much less as industry experience increases.
I said nothing of the sort.
I said they only require 1 university level math course in addition to discrete math, and a vague in this short overview science requirement, let's call it 1 course with a lab component (but it could be more).
All MIT undergraduates are required to do a lot more university level math and science, more than twice as much of the former given the usual pace of other universities, and four times as much as the latter. It's not optional, and FB/Google/whatever doesn't have to do any investigation of their transcript, just confirm they graduated from MIT (or CalTech, but it's 1/4th the size and science, not engineering oriented, I doubt they see many applicants from it and those should get true red carpet treatment).
And that's without getting into intangible benefits; as a physics major mentioned to me in my first week, "everyone" who attends MIT learns how to do electrical wiring. No, it's hardly required, but any vaguely curious person will pick up a lot of science and engineering just by rubbing shoulders with 4,000+ other STEM undergraduates for 4 years.
Compare to Zuckerberg's Harvard: back when I attended MIT, the math requirement for graduating from Harvard was proving you could do algebra, and I now find its CS program is not ABET accredited. That said, it's math heavy, requiring a linear algebra course which I assume goes beyond the linear algebra taught in MIT's required 2nd calculus course (see more here http://handbook.fas.harvard.edu/book/computer-science).
Strange, but they are Harvard (and ABET has some ideas about how to teach CS that the MIT EECS department does not agree with at all, like being able to teach design per se), they were a pioneering computer institution prior to fully electronic computers, and students can fulfill some of their requirements by taking MIT EECS courses.
(Let it be said I'm boosting MIT too much, if I wanted to do pure CS, CMU would be my first choice, Stanford probably 2nd, not sure about EE derived UC Berkeley (which has in addition has all those state school disadvantages, and nowadays many fewer of the in-state ones for residents), and MIT could easily be my last choice after the department panicked after the dot.com crash cratered enrollment for the first time ever.)
As for "applicants with MS degrees and published papers", presumably they wouldn't be in the same interview track as gaggles of new graduates.
Doesn't describe my degree at all.
But that's not standard for lower ranked ABET accredited CS degrees. On the other hand, just now, looking at UC Berkeley which is an EECS department, they require perhaps more math than MIT, multivariable calculus and linear algebra+differential equations courses on top of single variable calculus and of course the mandatory discrete math. And 3 science courses (a third in addition to mechanics and E&M; see http://www.eecs.berkeley.edu/Programs/Notes/section2.shtml).
This has probably changed in the decades since since CS has matured (and, no- I don't want to name my alma mater!) but just on the face of it I can see why, based on your comment, knowing the mathematical rigor of certain schools and how they compare to other schools would allow them to skip an early filter. If a substantial fraction of their candidates bombed at the next interview level, they would probably put it back in.
Sorry for my lack of clarity.
I said nothing good about MIT's CS program per se (quite to the contrary...), it's MIT and CalTech that remain by far the most rigorous major undergraduate universities in the US (I'm not counting the tiny humanities colleges that rigorously do things like the Great Books, and maybe I'm missing some). Something its CS graduates indirectly benefit from, but it's not inherent to the CS program, which in its post dot.com crash I have little respect for.
No others even come close in subjects required of all students; as I mentioned in a message downstream, as of the '80s the math requirement for Harvard was proving you could do algebra. On the other hand, they have the world's "best" first year undergraduate math course (https://en.wikipedia.org/wiki/Math_55), Harvard has been very strong in math for a very long time. But serious math (and science) is not required of all students.
So, yeah, you want to measure the dicks of us CalTech and MIT alumni as a population, go right ahead, you just won't be happy with the result if you think your school as a whole is better, with the noted exceptions that still retain rigor in the humanities.
None of which says that a graduate of another school isn't every bit as good, it just wasn't required of them.
Yeah that's not a fact at all; it's just your opinion. This is why I agreed with the other poster that this wasn't a great thread of argument; we're just dick-measuring based on our own experiences at this point. You can attempt to try to bring in what you believe to be "objective" measures (like course requirements), but 1) those measures are themselves questionable, and 2) the selection of criteria to judge is itself a subjective judgment.
Here's a neat story about how one student was implicitly recruited to one of them: http://www.theguardian.com/education/2014/dec/06/shimer-coll...
Jibran Ludwig – recounts to me the strange tale of how he ended up here. One night two years ago, when Jibran was 15, he was sitting in an Amtrak station in upstate New York reading Plato’s Republic and getting annoyed by the translation. The Greek gods had been given capital Gs, which struck Jibran as an erroneous Christian reinterpretation, and so he decided to abandon the book and try and find something closer to what Plato had intended. It was election night. The woman sitting opposite Jibran had an iPhone. So he went over to ask her the results.
As he approached her, his Plato in his hand, she looked alarmed. “Oh,” she said after a moment. “I thought you might be one of my students and I didn’t recognize you and I felt embarrassed.” She explained that she was Susan Henking, president of Shimer, “and Plato is the kind of thing we read”.
“If the president of this college thinks I might already be there,” Jibran suddenly thought, “maybe it’s where I should be.”
Google claims to have a lot of data backing up its hiring decisions, so maybe they have internal stats showing phone screens aren't a useful further signal for certain alma maters?
At the beginning of my senior year in college, I sent them a resume containing my GPA (3.9/4.0) at a public school (Clemson).
I heard back from Google within a couple weeks, had a few phone interviews, and then they flew me out for an on-site interview.
I had friends with similar credentials, but lower GPAs (< 3.5/4.0) that never heard back from Google.
Having a degree or high GPA doesn't matter to them once you're interviewing, but its tough to even get an interview without one.
My sub-3.0 GPA for a humanities degree a decade ago has no bearing on my skill as a programmer, but it almost certainly means I won't be working for Google or Facebook.
I lucked out and happened to turn 23 the year the property boom started, my degree would have cost me over $500K in lost opportunities and cost. In my case I started out in tech support, and had to find my way into dev.
It's definitely not "opportunity costs win every time."
My first job out of school paid me $60k/yr (2006) and I was over $100k in three. I learned a lot in my CpE and CS classes, but I gained a ton of experience at market rate I never would've gotten as an 18 year old know it all.
Not really related but even though I've spent most of my career using my CS teachings, the EE learning that was part of my CpE studies sure has come in handy with the IoT explosion. I knew next to nothing about electrical engineering when I entered university. Had I not gone I wouldn't have known how much I like electronics and robotics.
I've consulted at a lot of startups in the Bay Area as a Rails engineer, and we've mostly leaned on doing a series of hands on coding exercises (e.g. Let's develop a simple TODO list in Rails).
I've probably done a couple hundred interviews, and the topic of where the candidate went to school was discussed in depth once. And that was only because he was an MIT graduate, looking for a senior role position, and missed some basic model associations in our exercises.
I just can't see any of my colleagues saying out loud "yeah, this kid went to Berkeley, so he must be a winner. Let's go with him."
HR do the recruiting, and have to fit the recruit into a company-wide HR policy pay-and-benefits grading structure. That structure takes account of education.
HR also know nothing about tech (and are usually bizarrely proud of it). So they need the tech people recruiting to lay out a range of specific qualifications or experience that the recruit needs, so they can easily reduce the huge pile of CVs down to something more manageable.
The combination results in a degree being required, and CV's with no degree never even make it to a review stage.
It sucks, because often the best programmers are not degree-qualified. But large organisations aren't actually a meritocracy, or concerned with hiring the best people. They want the people who will fit into the large organisation and its bureaucracy nicely. A degree usually indicates at least some respect for authority, so actually it's a good qualifier.
Recruiters basically keep a database of engineers and contact them to get them into the typical interview funnel. Interviews are done by engineers and their managers only and then everyone gets together in a meeting soon after to give a hire/no hire. Then recruiters (and managers) attempt to close the interviewee. This has been my experience after interviewing at dozens of companies at various sizes, from small to huge.
This is so true in every industry. My company did work for a big HR firm that specialized in servicing the accounting industry. Every one working for that firm was aggressively ignorant about every aspect of accounting. Having known people in other HR fields, that tends to be true overall. It almost feels like they think that finding out more about the industry they are servicing would somehow lower them to the level of the "peons" they are hiring. This is anecdotal only, of course.
When hired, I was told that my job is to prepare the students to work in a cubicle.
This is reflected in the curriculum - for example, proprietary software is taught (even where open source tools excel), because they are more likely to be found in the large corporation they are being prepared for.
If you think of cubicle training as the main job of the university, it follows that large corporations would look for degrees.
For certain departments an amount of prestige is owed not just to the research you put out, but how many students you successfully place in jobs in the field.
I studied geography at a mid tier public school and this school of thought was pretty prevalent. The professors used open source software in their research but when I learned statistics it was IBM SPSS and GIS was all ESRI and MapInfo. The department even hand curates a list of alumni and their current employers for marketability to future students.
If you read The History of Education (1920)[0] which outlines how the American and the Preussian system of education it is based on was created and on what basis, you'll see that this is exactly true. Education has never, ever been about exploration, or knowledge for its own sake. It has always been about increasing productivity for businesses, and tax revenue for government.
[0] https://archive.org/stream/briefhistoryofed00cubbuoft/briefh...
I've worked with very good programers that don't have a degree. But, learning the basis to become a good software engineer, is just a lot easier following formal training (like going to University). I find it hard to believe that most competent programmers will not have a degree.
Again, having a degree is not necessary to be a good software engineer. But it's a lot easier to be a good software engineer if you have a degree.
But a degree in general does seem to be requisite for even professionals with decades of experience.
I don't think this is uncontroversial. I've done hundreds of interviews at companies large and small, and nobody else has ever brought up the education section of someone's resume in discussion.
I look at it occasionally, but my hiring preference is inversely correlated to the amount of education a candidate has. PhDs go directly to the bottom of the pile, then masters, then undergrad, and no school is on top.
However, for more specialized types of systems, I'd require formal education, even going far enough to require topic-specific coursework to ensure depth of knowledge. A team at my company is being led by a guy with a BS in CS, but he doesn't have the background in the type of system he's building. The project has been a source of pain for management for the past few quarters; it's stagnating because he's come upon difficult issues that would be avoided had he had a more comprehensive education.
Education is crucial for designing and developing interesting software (i.e. anything that doesn't query a database and pretty print results). Dismissing it altogether can limit the types of systems your team can develop, and limits the career potential of your employees/coworkers.
FTFY
He sure can build a great ecommerce system in Rails though.
This way he'll acquire that missing knowledge and one can still profit from his decades of experience, something a fresh graduate would not have and can't acquire at all without spending the actual time.
OP seemed to hint at a master's degree or Phd, but then also mentioned doing one's "homework".
Without wanting to make this into a discussion about what 'a productive machine learning guy' needs to know, I would say that you need to be able to understand, implement and calibrate most state of the art machine learning techniques. So then you need 3-4 semesters of undergrad maths (algebra 1 & 2, calculus 1 & 2, statistics, linear algebra), a theoretical machine learning specific course (course as in 'university course', so 8-12 weeks with 1/2 lectures per week plus lab sessions, plus homework/exercises, plus exam; this could maybe be consolidated into half that time for a more experienced person who commits himself 8 hours a day plus half a day on the weekends), an operations research or similar course, and maybe a numerical computing course or short course.
All of this is assuming that the candidate already has a solid grasp of computer programming, including some data structures, algorithms, distributed systems maybe. Plus good practical skills, but that should be the least of the problems.
This is at least one year of full time study, for a gifted person who can really commit to the program. Realistically it's 1 1/2 or 2 years for most people.
Somebody without a college degree will likely not know any of these topics (I mean the things from my second paragraph), save maybe some high school calculus and stats. Maybe they've used R a bit and have done some numerical computing or so. But that's a far way from becoming what I would call 'a productive machine learning guy'.
edit: typo
I don't have a proper math-intensive CS degree myself, only a 'software engineering' degree, so I've been going back to uni and studying when I can to build a math foundation first. So what I wrote down above is basically the 'curriculum' I designed for myself, as well as what I already know from the software side and is needed for ML.
To make it relevant again to the topic at hand - this is also why a university degree (and a proper one) is required for programming jobs that are cutting edge. Sure, making websites doesn't require it - and neither do line of business CRUD applications. The interesting work though is not 'programming', it's 'using math to solve problems and using programming to get the computer to do the repetitive stuff for you'. When it's framed like that, it becomes obvious why a university degree is required.
(yes yes theoretically it's possible to study math by yourself - the number of people who have the discipline to do that though is minuscule compared to the number of people who can bootstrap themselves to be 'programmers' of simple applications like web applications, most mobile apps or CRUD applications)
Those who do not want to be helped cannot be helped. And an intensive course won't fill all the statistics and math requirements he doesn't have.
"People who are Smart but don’t Get Things Done often have PhDs and work in big companies where nobody listens to them because they are completely impractical. They would rather mull over something academic about a problem rather than ship on time. These kind of people can be identified because they love to point out the theoretical similarity between two widely divergent concepts. For example, they will say, “Spreadsheets are really just a special case of programming language,” and then go off for a week and write a thrilling, brilliant whitepaper about the theoretical computational linguistic attributes of a spreadsheet as a programming language. Smart, but not useful. The other way to identify these people is that they have a tendency to show up at your office, coffee mug in hand, and try to start a long conversation about the relative merits of Java introspection vs. COM type libraries, on the day you are trying to ship a beta."
http://www.joelonsoftware.com/articles/GuerrillaInterviewing...
> he's come upon difficult issues that would be avoided had he had more experience.
I vehemently disagree with this. Education provides the breadth to know where to look for answers. In industry, a developer gains depth as this is mutually beneficial for the employer.
There are fundamental topics that self-taught developers generally don't learn because they're not directly applicable to industry, yet come up in practice all the time:
- compilers / PL theory
- kernel development
- distributed systems
- statistics
- graph theory
The cost of switching jobs to learn aforementioned topics is magnitudes higher than simply taking a course, assuming one can even get hired for a position with no relevant knowledge or experience.
I know a few smart and motivated self-taught developers. They're incredibly productive, but sometimes waste too much time trying to solve known problems in an inefficient manner.
But I certainly would never hold it against someone not having a CS degree, even in specialized fields. Frankly, you can learn more in a couple months on the job at places doing real cutting edge work than you would through an entire CS undergrad program, at least for the purposes of shipping software of value.
The bottom line is if you have what it takes to be a competent software developer, anything you would learn in a CS degree is easily accessible just by learning the right things to google for. There are certainly disciplines that require more specialized knowledge and have a much higher bar than your typical CRUD app, but even there I don't feel like school is any kind of important factor in determining whether one can achieve competence.
I can't put my finger on it exactly, but I think there is a baseline ability to grok software which can be unlocked in an individual through sufficient practice, but not by education, and this is the primary factor to one's productivity in all programmer jobs.
If you know developers writing their own distributed system, chances are they are wasting their time, BS or no.
If you happen to be in that 10%, then yeah, maybe some higher education on those topics is necessary.
My experience of university-taught programmers has been that they can't teach themselves, and tend to assume their knowledge is wider than it actually is.
And my original point is that experience is massively more useful than education when encountering difficult issues in the field. I stand by that. I've seen too many real-life examples to not believe it.
This is an extremely optimistic view of self taught programmers. While these type of self taught people certainly exist and I have worked with a few, they're definitely not universal or even, I would say, the norm. Most self taught programmers I've dealt with will brute force any problem they have into the one thing they know and are just barely scraping by on frantic googling and copy-and-pasting in random code from stack overflow.
You could easily say the same of university-educated coders who only learned Python and C and are up against a real commercial deadline for the first time. I've seen those folks do some crazy shit.
Dumping anyone into a project outside their area of experience with no guidance will cause poor practices.
That said, a lot of people in both categories aren't that great in the workplace. Either through lack of discipline, lack of experience, emotional problems that prevent them acknowledging negative feedback and using it to improve themselves, or a general desire to overthrow capitalism whilst reading Facebook. But none of that has anything to do with going to university which is a privilege that may or may not be available to somebody given their class, background, and general life experiences.
As long as programming remains an uncredentialed occupation - compare and contrast with medicine and the law for example - people without degrees deserve the right to be assessed on the quality of their actual work, and not a general prejudice on how they acquired the ability to do it. After all, the people who laid the foundations for computer science, necessarily didn't have a computer science degree.
> They're incredibly productive, but sometimes waste too much.
> time trying to solve known problems in an inefficient manner.
As a self taught with 20 years in field, I agree and am even in the process of getting ready to go back to school because of it.
I've been working half time on a master's in software engineering for the past four years (graduating this May) and one of the most valuable things I do at my company, in terms of "pain and suffering averted" is map out object relationships, both in the database and in the API, in flexible and extensible ways. I can't tell you how many internal APIs I've seen -- even recently developed ones -- that look like: "/api/getAcctManagerUsers"
Instead of, say: "/api/users?role=manager"
And these aren't new developers who do this, either. Developers trying to export three and four dimensional data in a single CSV file and wondering why it's so gross to use. Developers adding multiple secondary indexes to a 16kb table that isn't anticipated to grow in size, just because "indexes make things faster."
I've seen so many boneheaded things done, just because people were just muddling through and writing the app, rather than actually thinking clearly about the data and the system, or knowing how the pieces actually fit together. I would argue that a formal education in software engineering really can force you to think in certain ways, and develop practices that are useful, even in products that should be "straightforward"
Also, you probably haven't interviewed for entry level software jobs at a BigCorp in many years.
So, all else being equal, you're less likely to get hired without a degree, but you're just as likely to pass an interview.
And you could add;
6. When the market is saturated with programmers looking to be hired, those with degrees (at all levels) are hired before those without degrees.
If the current slow down in funding results in a lot of layoffs, it could create a 'bump' where a lot of programmers are competing for a relatively small number of jobs. And in that situation a degree would be helpful.
Pretty much every developer who doesn't get their first job through an internship ends up taking a job that had 2-3 years of experience listed as the minimum requirement, but we would know an article titled "junior developers need not apply" is questionable.
If I see someone who's done interesting things, then realize they don't have a degree, that is a plus, and I'm interested in them.
But generally, if they've got 10+ years experience, I never even look at the education history. It doesn't matter.
Remarkably small class sizes meant a ton of one on one time with teachers whom had worked in the industry for years before going into teaching. All the students were there to LEARN, many of them non-traditional students.
They never could escape the negative stigma and went out of business last year. I imagine I'm doomed to the same stigma.
With the new wave of coding bootcamps, I would expect the same disdain. In fact, I would expect bootcamp to rate below diploma mill, but I'm not sure that's the case.
They are not as highly regarded as the private US universities, but there are two dozen European universities in the world top 100. I hear more and more people saying they want to send their kids to study in Europe instead of paying hundreds of thousands for private school here. The curriculum for CS and many other STEM is more or less the same everywhere.
I don't know how real the risk is, but it is a perception in HR at big companies.
Many of the US work visas, such as TN, H1-B and even the employment-based green card either require a college degree or give preference to a position that requires a college degree.
Once you have several years experience the degree becomes less important because you will be judged on your actual experience. An employers looks at the languages/platforms you have used and can then easily test you based on those.
After 5 or more years the degree is pretty much irrelevant. Especially when there is a shortage of talent.
And in reality most industry experience is of little use at Google anyways.
Google does care about school and GPAs, etc. tho. More than most.
Q. Other insights from the data you’ve gathered about Google employees?
A. One of the things we’ve seen from all our data crunching is that G.P.A.’s are worthless as a criteria for hiring, and test scores are worthless — no correlation at all except for brand-new college grads, where there’s a slight correlation. Google famously used to ask everyone for a transcript and G.P.A.’s and test scores, but we don’t anymore, unless you’re just a few years out of school. We found that they don’t predict anything.
Source: http://www.nytimes.com/2013/06/20/business/in-head-hunting-b...
Also, I doubt that external industry experience means little to Google -- for two reasons:
1. Good engineering practices are good engineering practices. You can pick those up by working at a good firm
2. Though they hold God-like stature, Google is like any other company. They mostly use the same technology and a lot of the same tools as everybody else.
I don't know anybody else in my office without a degree. A very high % have masters or phds.
As a Google employee, no, not true. Yes, we use the same _languages_ and compilers and editors... but beyond that most everything else is unique to Google. Build tools, libraries, deployment environment, web servers, databases, it's all unique to Google.
Ugh, a degree might be a good thing, some things considered... I have to hope this was a phone interview, but even so, where is the author and editor and proofer?
(I am degreeless)
"A number of readers have complained after seeing plural abbreviations like M.D.’s and M.R.I.’s in The Times. They say the apostrophe is wrong — that it indicates a possessive and should not be used in a plural like this.
In fact, style rules at The Times (and some other publications, including the Chicago Manual of Style) do call for using an apostrophe in the plural of abbreviations that include periods. The idea is that a combination of uppercase letters, periods and a lowercase “s” is confusing at first glance, and that the apostrophe helps a reader see that the “s” has been added to make a plural."
You might say that it should be GPA instead of G.P.A., but at least you can see that it was proofread.
Really?
When you start reaching positions where you get listed on the company website, a degree helps.
Except in one case: immigration. I'm the type of person who is simply dreadful at exactly only one thing: education. The how an why seems irrelevant. The American government does allow an employer to motivate an H1B, but after 5 years (when the visa expires) I'll need a degree in order to continue my stay.
So it becomes irrelevant in terms of landing a job. It's still valuable in many other situations.
- You come from a family well-off/integrated enough in society to afford putting you through college. Or, you know what it's like to be responsible for paying off a large loan.
- You've been thrown into a melting pot for ~4 years and have managed not to freak out and/or commit a felony.
- You've been able to commit to and meet arbitrary deadlines (i.e. finals week) and goals.
No, having a college degree doesn't guarantee that you're a fine upstanding person...it's just one useful metric for an employer to have when they have little else to go on.
This is really a metric we want to keep significant? "We'd just feel more comfortable giving our good jobs to people from already well-off families; if you're not from one of those, tough luck..."?
I recall the blue collar employers questioning me about my choice to interview as they saw me a s "flight risk" that I'd find it beneath me or something --having been going thru Uni, or that I might not fit in with the rest of the shop workers.
Basically, interviewers want some assurance of some type you will fit in, whether you'll be able to blend in with the rest of the employees -in the blue collar places, that I might fit in with a less polished crowd and whether one might find it fulfilling.
If you're running a welfare program, that's an unfair criterion. If you're running a business and need competent employees, then it's not a bad screening measure.
Some employers believe they have the competence to directly evaluate job-relevant skills. They will lean heavily on practical interviews and discussion of actual work experience.
Other employers are much more credential oriented because they can't tell a good developer from a bad one. Sometimes that's because there aren't many technical people in the company. More often, it seems, it's because hiring is done by people who are not working developers themselves. (E.g., HR screens resumes, interviews mainly done by non-techincal hiring managers.)
Since I'm of the former sort, I look especially hard for developers who don't have the "right" credentials. Not only are they more likely to have certain valuable characteristics than people who take the prescribed path, they're also likely to be overlooked by organizations that value credentials, and so easier to hire.
I think this is a significant factor in the skew from 'experience is king' to 'you need a degree'. The industry is much less of a 'wild west' now than it was even 15 years ago, so people with more than 15 years experience have a much higher chance of being self taught than people with 1-5 years.
That might be true, but there's a very limited number of courses on a typical computer science degree which actually do help. I think on mine it was mostly just data structures, theory of databases and concurrency. Possibly math.
Many others were interesting but I wouldn't say that I ever used them.
Pragmatically, after more than a decade I've seen people with PhDs from top schools who couldn't code their way out of a paper bag. I've also seen "uneducated" software craftsmen who could write the most elegant and clear code.
There is no silver-bullet in the tech industry--yes, having a Computer Science degree helps, but it doesn't guarantee the person will be a good Software Engineer.
A computer science PhD, in my humble opinion, does not teach how to program anymore then having PhD of Architecture teaches you how to build a residential home. If it did, there'd be much more time spent learning about tooling and practicing programming instead of reading papers and generating novel research.
If I were hiring C.S. PhD's, I would not be judging them on the quality of their code or proficiency in any particular language.
Generally, they aren't called "engineers". They'd be computer scientists. But I say that as someone who lives in a place (Canada) where "engineer" is a protected term, of sorts. You can't just slap the title on anyone.
https://news.ycombinator.com/item?id=8587697
I consider the ability to perform practical programming a skill of software/computer engineering...In the same way that someone can be brilliant in chemistry and yet have little clue how to perform the kind of chemical engineering needed to efficiently produce chemical reactions...being a great mathematician/computer scientist doesn't necessarily relate to building. It's not that they don't have the intellectual capacity to do it, it's just that building/engineering requires its own experience and field of knowledge.
No, it's not about this
It's about a CS PhD that can't program at all. Believe me, they exist
That is the only question worth asking.
The rest of your post is just useless anecdote. Yeah of course there's candidates with degrees that suck, and candidates without degrees that are amazing. You've said basically nothing of substance by pointing that out.
What are the averages? It I'm sifting through dozens of resumes for an initial cull, guess what? I'm using heuristics. "Has a degree" is one (of many) of them.
You'd have a much better experience if you threw out that heuristic, and also stopped looking at resumes. Resumes are generally packed full of bullshit and lies anyway, ignore them. Create a simple test problem and require candidates to submit code solutions to the problem. That immediately filters out all the bullshitters who can't code because they won't bother applying for a job that demands code as a resume. What you'll be left with is just a few submissions from people who can actually code, and most of the them will be shitty but functional solutions to the problem. A small few will submit great code to your sample problem, you'll see it right away, you hire those people.
A computer science degree doesn't tell you anything at all about how well a person can program; computer science and software engineering are quite frankly vastly different things and little if any actual computer science is needed by most software engineers. Filtering by it as a heuristic does nothing positive for you, you're just filtering out a bunch of great programmers; it's a terrible heuristic.
You have no evidence supporting your hunch that degreed applicants make better employees, so you're making your most important business decisions based on feels.
You have never performed a long-term study or an A/B test of degreed and non-degreed applicants.
You run all applicants through a filter that eliminates outliers and produces a mediocre average, before you start looking for people that are above average, able to fit your team.
The problem with your hiring process isn't the candidates but that your ties to them are too weak and that there are too many of them, so that you can't put enough time into learning about them. Degrees have nothing to do with it.
A simple 10 minute coding problem on Codility is a more useful filter - just to see if they can read and write code at all.
In my experience, there is no correlation _whatsoever_ between a candidate's "quality" (although I'm not really sure what that means) and whether they have a degree from a "good institution". As a consequence, the only reason I look at the education section of a candidate's CVs is to see if I can find anything that could help starting a conversation, such as an interesting final year project.
Let me turn this question around to help illustrate. Do you think there is a correlation between IQ and candidate quality? Any correlation, positive, negative?
Is that the ONLY QUESTION that determines whether IQ test results should be on a resume?
The fact of the matter is that sometimes more information causes people to make less accurate judgments. Overweighting of information of small use can lead to worse judgments.
I didn't learn computer science formally, but I did learn it. I don't expect everyone to know exactly what I know, but I do find a degree a useful proxy for some percentage chance of knowing their shit. Industry experience is useful for some additional, knowing what words to put on their resume is part of it too. If they don't pass some combination of the group they're not worth my time, but I have to verify that by interviewing some amount of applicants anyway to check that those are real determining factors.
I've seen PhDs in Electrical Engineering who couldn't repair a television. Somehow they missed that class.
No one comes out of college knowing it all, it's just figuring out where your shortcomings are and always trying to fill in those gaps. I'm a mediocre software developer at best. However, I'm better than about 90% of the people I've worked with (IMO). The 10% that are better than me I strive to learn from and discuss topics constantly instead of being intimidated by their expertise.
If companies would simply hire good people and make growing them into well rounded developers, they'd have a hell of a lot better return on their investment than simply having a checklist of "employee must have" when hiring.
I'm on (failed) startup #8 at the moment with one of these friends. Our primary goal is to hire people that haven't had job experience in the field so we can train them on the proper ways to build software (well, our opinions on what's "right"). Assuming we ever get to the point of replacing ourselves. :-)
Many companies have entire departments that are made up of an H1 workforce and will favor them in hiring - which is a little odd considering that you are supposed to pay over market rate for an H1, but we all know there are ways around that (either changing the job title to a lesser paying job, using a job title that has a below market rate for the same set of duties as another title, paying the "contracting company" the higher rate, but the actual worker gets paid less, etc.).
I've seen a handful of companies actually require a degree, but almost all will waive the requirement based on experience - especially for someone who is the right fit. I've seen some (or some departments) that will only hire high profile school graduates, but that kind of a thing is usually specific to a particular market.
It's sad when the most impressive thing about a candidate is that they went to School X.
It's impressive when a candidate has done interesting / difficult things despite a lack of degree.
You've bet on yourself to pull through these past 20 years and you've won. You're going to be fine without it.
You may also never be fully accepted culturally, since one of the major advantages of going is that you're the "right" sort of person (meaning that you have the correct socio-economic background and understand/speak corporate-derived "elite meritocratic culture") / you're able to build a high-quality network of well-connected peers who themselves are part of the socio-economic elite.
It's also what you make of it. Sure your degree may give you an easier entry to robotics, but it doesn't mean you need one to get in. It's just the most standard way of getting in, but there are other ways of getting in.
Also, 4 years is still a lot of time not working on 'real projects' if your career is 20-30 years.
Because of coding bootcamps and other stuff, we're already seeing less people going to 4 year programs and more doing 2-4 semester intensive courses. At least in the software industry, I think it's going to be like apprenticeships in the future. Apparently it's more common in Europe like Germany. Shopify's CEO (Tobias) did some sort of apprenticeship program like that.
I went to the University of Nebraska (not an Ivy league). I dropped out.
My clothes are usually wrinkled, my hair is never combed. Some may mistake me for a homeless person on the right day.
But I've done open source work. I've spoken at RailsConf twice. I have a good tract record.
I have no idea who this "socio-economic elite" is that you refer to, but in general, if you want to make money as a software engineer, you don't need a fancy degree.
If you want to make money, you need to learn how to sell yourself and constantly put yourself out there. No university is ever going to teach you this.
You don't understand. I coulda had class. I coulda been a billionaire. I coulda been somebody, instead of a nerd, which is what I am, let's face it.
Wasn't quite as easily as I hoped as it turns out, but I still managed to pay it off in the same time it took to earn it, so on the overall, it worked out. Honestly can't say my degree is worth much more than the certainty my resume won't get band-rejected by recruiters, but hey.
Its like requiring a degree in mechanical engineering to be a racecar driver, and being told to assemble an engine during your interview.
Even if you do get hired, HR might undermine your career and prospects for promotion if you don't have a college degree. I don't have data but I reluctantly suspect it is true. Hopefully I'll get down votes by someone who knows this isn't the case.
Ask for what you want, and remember, even if it's a pain in the neck and takes a long time, if you can earn double, every year is like 2 years.
You know what else selects for cleverer people? SAT scores. Now, companies aren't allowed to ask for SAT scores, but they are allowed to look at what college you went to. So if you know that someone attended MIT or Stanford, you get a pretty gigantic hint about what their IQ is.
In all honesty, I think SAT scores have less correlation with IQ and general intuition than most people believe. Sure, it's a decent way to weed people out, but it is by no means a way to find geniuses.
I would say that performance on standardized tests is a test of two things: 1) hard work and preparation and/or 2) Intelligence in the concepts or subjects being tested.
As a counterpoint, a Google HR SVP says in an article referenced elsewhere in the comments [0] that they don't ask for G.P.A's and test scores anymore because they're "worthless — no correlation at all except for brand-new college grads, where there’s a slight correlation".
[0] http://www.nytimes.com/2013/06/20/business/in-head-hunting-b...
Similarly, the correlation between height and basketball ability is attenuated for people who are currently NBA players. But it's quite strong for people overall.
I don't have access to the works that Wikipedia cites, but the correlation is positive and between 0.2 and 0.6 for every job studied.
And I agree, there are a lot more things that influence job performance. IQ probably isn't the most important thing - a malicious programmer can cause millions of dollars worth of damage, so probably the most important thing is trustworthiness. That said, learning about someone's IQ helps you predict their future job performance, basically regardless of what job you are talking about.
But probably more apropos, the laws for H1-B and other hiring processes make it such that you don't want to have any hint of impropriety that would convince a judge the plaintiff would even have a case. Once the judge rules there's a case, you pretty much open up your bank account and settle.
Then there's the counter, if you're so awesome why aren't you my competitor?
(I'm a dropout, though not from an Ivy, and that's definitely something I've had to do a lot of explaining of in every interview I've had. Haven't been on the market for a few years; if there really is a magical age where people stop caring about degrees, I look forward to reaching it.)
It still gave me experience and I used that experience and stories for the next 2 jobs. Hopefully it keeps working because I am way better than I was on that casino job.
I don't think you can become a great programmer until you overcome The Fear. And you won't be able to do that until you have the stress of doing it professionally for someone else. And being able to successfully come out the other side of the project.
I imagine for junior positions this matters more.
Anecdotally, I know at least one friend without a degree who gets the same amount or more recruiter emails sans any degree on his profile
If I can bypass that step and talk to a dev or experienced manager I get at least one interview every time. For companies using software like Greenhouse in their recruiting pipeline, I _never_ make it through to even a phone screen without an internal shove by someone.
Almost everywhere I've ever worked, I've been considered a strong hire. Mid-level dev.
For some jobs this was a good thing, for other jobs it didn't matter.
I've had jobs where my manager didn't have a CS degree, one of them I had to sit him down and explain why his ad-hoc database made out of .txt files and thousands of lines of C# code wasn't a good idea. A CS degree forces you to know about a broad range of ideas and tools (e.g. databases). This is useful. Employing someone with out that means they may have holes in their knowledge that you aren't expecting to be there. But give this person some motivation and a week and they'll get up to speed.
Despite my lack of degree, I tend to be one of the more CS-oriented people on the teams I join. I put this upfront in my portfolio & github with the projects I show off, namely that I've written an ORM, a Web Server, games with AI using game trees and behavior trees, contributed to some popular OSS, etc...even some random odd stuff like emulators, disassembler scripts, pentest tools, etc.,
I guess I do have some gaps but I'm constantly trying to fill them and I'm not satisfied to rest on that knowledge.
One place even went so far as to limit the acceptable majors. CS and CE only, not even EE was acceptable. Nevermind that EE is often in the same department and some people may have gone to schools without dedicated CS programs. Exceptions could only be made if the candidate was a direct referral and that person really went to bat for you.
It's total nonsense. I have a CS degree myself and it hasn't informed my professional work at all. I don't find myself referring back to my databases coursework where we used a made-up non-SQL language or my operating systems class which was about punch cards and paper tape OSes (and this was in the early 2000's, not 1975!).
You mostly just don't get phone screens, and this is mostly from larger companies where the HR drives the initial recruitment.
Needless to say, my degree is now on my CV again, so people can go back to not asking me about it.
So as to your question; Yes, it happens routinely, in my Canadian job market. At both the junior and senior level. Many positions won't even reply if they don't see the degree on your resume. I make it explicit in interviews just to get it out there because I have had too many unpleasant situations where the degree was at first assumed and then revealed to not be there. Reactions vary.
In the end I've had a successful career, but with some struggle. I work at Google now. But mostly only because I came through acquisition. I would not even be considered for an interview otherwise. I have faced some small internal attitude over not having a degree, tho only a little bit.
There are other things that result; grads from CS programs spend a lot of time in algorithms course studying the kinds of things that get asked as skill testers in job interviews but then almost never used in the real world again. (Not to say I haven't studied these algorithms, but studying them in school I think helps respond in the way an interview expects.) That also affects employability. And more and more because this is the direction more and more interviews are taking.
Granted, there needs to be a filter. However, how many algorithms does one need to memorize to be a good programmer? Is knowing how red-black trees work going to make one successful? Or is knowing how hash tables work Under the surface going to make one successful? Or is just being able to use the Hash data structure provided in Ruby good enough?
It was usually just a phone screen, an in person, a few questions to see if you were full of shit, and then call references. Ta da!
If you don't have a degree there's a good chance you won't get past the initial screening at some companies. In practice, if you get dozens of applicants for the same position you may be looking for excuses not to bring people in. And there are some companies that have a famously academia-focused culture, like Google. While most startups say that they don't care about degrees, the reality is that somebody with little experience who happens to have a CS degree from Stanford has a lot of doors open to them, especially in a place like Silicon Valley where so many founders -- and VCs -- are Stanford grads. This has happened to me more than once. Recruiter emails aren't a good measure for this; a dismaying number of recruiters only contact you based on keyword matches against your profile, and don't actually look at your resume. (Hence why I regularly get emails looking for contract Java developers in the northeast US, despite the fact that I'm a technical writer with a full time, non-contract job in Mountain View.)
I suspect there's going to be more of a focus on degrees going forward, not less, simply because it seems like more and more people are going to "developer boot camps" and trying to get out on the market without a CS background. I don't have a CS background, so I don't want to say that's necessarily a bad thing, but I suspect in a year or two we'll be creating more tech job seekers than tech jobs, and as the market tightens, screening will get more stringent. People with stellar track records are still going to get work, degrees or not, but people who are "merely good" may find that a degree tips things in their favor.
TLDR version: you may have to deal with lower salaries, less respect, lower quality organizations or departments, lots of free time catching up/keeping current, more questioning compared to degreed peers, and occasional culture shock. Not everyone deals with all/any of those, but chances are higher with no degree.
About 9 interviews later over 4 spread-out days, I was told I had done quite well during the interview process. Eventually I was not given the position because 1. I did not have a degree, and 2. I was holding a beer in my LinkedIn picture.
They ended up paying my current employer (their vendor at the time) astronomical amounts of money to do the very same service, done by me, on-site. I still do it.
Go figure.
Edit: I am in hardware-side, not a developer.
No, never. Not even for jobs that listed a degree as a requirement.
What I have seen being done though, not just to me, is companies using no degree as an excuse to underpay for a position. This usually only works with experienced people like myself. The company says, "ok, he seems like he can do the job, but he doesn't have a degree. That's good, because we can take 10-20k off the salary for the position and still get roughly the same level of work out of him."
Also, if I am ever doing contract/job searching, it's usually word of mouth. If a company requires me to resubmit my resume in their wierd online portal and reenter every detail about myself in someother HR system to make it past the HR gods, I don't even bother with them. I'm guessing places like that would be more likley to weed out non-degree holders, while word of mouth/good ol boy network jobs are much more about your experience.
Greatness is independent of school or diploma. Some of the best minds of the world never set foot in a school campus.
If a company is large enough to have some HR person creating job postings, then they're going to come from this mindset that education acts as a convenient filter for separating "the wheat from the chaff". It can sound dumb as all hell, but it's the best broken solution they can come up with because it's easy to glance at a resume, see the letters "MIT" and put it in a different pile from the people who came from New Mexico State (or some other generic university in a predominantly rural area).
I don't agree a degree, and I've done pretty well for myself, but it's worth pointing out that I've never applied for a formal job ad. I've relied on friends and I've relied on networking events where I showed off some cool thing I made and found out after the fact that the person I showed it off to was an influencer when it came to hiring at their company.
So to sum things up, I think it's safe to say that companies hire by degrees because that process scales pretty well, whereas hiring by portfolio really doesn't. Nonetheless, if a dropout can prove themselves even modestly well, then they've got a job.
On the hacker front, I noticed a lot of patterns--they had a lot of drive, were self-taught (obviously), and had other things about them that were remarkable. One can play any song on the piano that he's heard just once before. Another is a multiple-time CTF champion. Another is the best performance engineer I've ever met, and who can diagnose and fix site outages 10x faster than anyone else.
There's a difference between hackers and engineers though. I found that the engineers were good at breaking projects into milestones and driving their teams toward them, e.g. steady state development when conditions are good. And I found that the hackers excelled at exceptional or emergency situations like debugging complicated multithreaded code on the fly or figuring out which switch in a datacenter was corrupting packets for production traffic. There were exceptions in both directions (hackers who were great technical leads and engineers who were great detectives), but this was a pretty general rule I saw over the years.
I also worked with a number of people without degrees that weren't very good, so it's not like the lack of a degree makes you a hacker or makes you good at your job. You have to be very driven when you're self-taught and sometimes have to work harder than your peers who have a more evenly balanced education.
I ended up being a bit of a wildcard myself--I'm a self-taught hacker and did lots of cool debugging and detective work for 14 years, and then I was a manager for 5 years. I think hackers can make interesting managers since they are willing to upend traditions and try new things with their teams. I did a lot of that.
With that 20 years experience (and two non-cs bachelor's degrees) I've now managed to fail interviews at both Facebook and Amazon.
While the Facebook one was (in my opinion) pretty deeply flawed, the Amazon one, the 4 hour version, gave me virtually every opportunity "get it right" and I felt like interviewers were all "on my side"
In the end though, I really felt like if I'd had the full CS experience in university, I'd have had the edge I needed.
Specifically there were portions of technical nomenclature that I fell short on in the object oriented design portion. "What is the word for that thing you're doing there?"
and the dozens of hours spent discussing various efficiencies of search and sort algorithms would have made the extra steps in the optimization portion feel more like second nature.
With all that said, I have recently been doing my research into how and where I might be able to go back to school for the stuff I've missed out on.
U of T or a Waterloo masters? Perhaps Harvard extension schools? (the online version of the school which apparently real Harvard grads sneer at but still has Harvard in the name)... Or maybe there is enough in iTunes U to get what I need.
Whatever I go with, after 20 years programming, I've decided that I may as well take this programming thing seriously. I suspect there is a future in it.
I don't always get an interview, of course, but I get them often enough to where I kind of feel like they're on the description as a formality more than anything.
I think I skipped over that because I got acquired into the middle management role, no resume or job spec required.
Reminds me of the hoary cliché that democracy is the worst form of government except for all the others.
Another significant percentage of those job listings are designed to game the H1B system as well. So, are basically fictitious.
It's fascinating to read this article on SV wanting devs with degrees, then compare it to this article [0] on the annual StackOverflow developer survey. SV requires a very narrow skill set compared to the rest of the world.
[0] "Two out of three developers are self-taught, and other trends from a survey of 56,033 coders" ~ https://news.ycombinator.com/item?id=11395207
..or even Software Engineering!
From Wikipedia:
"The term programmer has often been used as a pejorative term to refer to those without the tools, skills, education, or ethics to write good quality software. In response, many practitioners called themselves software engineers to escape the stigma attached to the word programmer. In many companies, the titles programmer and software developer were changed to software engineer, for many categories of programmers."
I've even considered going back, but due to the length of time I've been out it seems my credits have expired (even though I'm still paying the student loans). On top of that, I left school for a reason and it hasn't changed - I hated every waking second of my life while I was there.
But now I have no income and a wife and house to support. Maybe I'm just looking for a scapegoat. Everyone I talk to (outside the industry, I have only a few contacts within it) just say "Don't worry, everyone wants to hire smart nerds like you!".
Not having a degree in Austin puts you at a significant disadvantage when it comes to getting recruited. I had the same problem when I lived there and I, too, do not have a degree.
Damn. Maybe I'll have to look to other cities. I put my resume into the big corps and either got nothing or had some asinine HackerRank test that lost my progress 1:45 in and then heard nothing more.
The upside is they pay you more to offset the cost of living. The downside is that roughly 50% of my income before rent goes to taxes, and half of that goes to rent.
Sometimes I just want to yell at these people "Just watch this video. I did that! That's my name in the credits, under 'Lead Programmer'! And here's my iPad, launch this app! Now click credits. See, my name!"
Instead I get asked virtually zero questions about my past work and get a test thrust in my face, or a marker shoved into my hand, or I'm asked to "sit and code this while I stare at you over your shoulder as you try to remember whether it's NSJSONReadingMutableContainers or NSJSONReadingMutableLeaves. But don't you dare make a Google search!." It's frustrating.
That said I think a degree is probably the least relevant aspect of hiring for 99% of developers.
Historically, the difference maker between SV and Boston was the willingness of the former to take dropouts, divorced people, dreamers with gaps between jobs, and for the latter to actively filter out those people.
Remember, "disruptive innovation" occurs first in the low-cost product segment before working its way up into the the more recognized and lucrative markets. Given the rapid progress going into both:
- Alternative Learning Models: bootcamps, MOOC's, K-12 coding education, etc
- Dev Tools: StackOverflow replacing book learning, github/npm creating code of a thousand dependencies, etc
I would worry that forcing your entire company to be made of candidates of the most traditional and elite background sets you up to miss the next trend in how to profit from People->Software.
On the other side, if you do have a CS degree, have you written application code before? If not, I want to see that you can apply your CS fundamentals to practical business problems.
Of course there are people without a degree who are phenomenal programmers, and people with one who can't write FizzBuzz! Is anyone arguing against this? When we're screening people we need some way of gauging your skill level. A degree is one indicator, practical experience is another.
For every year of school a person has to have a 3 years of experience to be considered for H1-B. FB hired 3k people in 2015 (http://www.statista.com/statistics/273563/number-of-facebook...) of which 900 were foreigners hired thanks to H1-B.
Every job I've applied to had a degree requirement. Ive had offers from every place I've interviewed with no degree. Just because they ask for it doesn't make it a hard requirement.
(I used to work at Hired; I have a decent sense of what gets noticed on an engineer's resume. And I've personally interviewed hundreds of developers.)
Personally, I might filter for someone with particular training or tool experience, and I see outsourcing your decision process to a college/university in a similar light. We can't investigate every competency, so we use proxies.
I'm just one data point, but I think having gone to college for a few years is the important advantage, not the degree itself. I did the former, never ended up having time for the latter. Too busy solving people's real world business problems in return for cold hard cash.
But I also started coding when I was 9 and started coding for money when I was 16 and still in high school. Your mileage may vary.
(Bachelors of Science degree AND three years of development experience) OR (Five years systems development experience) OR (Any equivalent combination of experience, training and/or education)
In personal experience, once I hit about 10 years of experience, whether I had a degree seemed be only of passing interest to interviewers.
I think it more matters that you have a degree at all and a decent sum of experience than strictly a CS degree. For instance, I can now lean on my professional experience more where before I had to have a portfolio of projects.
I have previously applied and gotten job postings that mention they want a CS degree, in fact no one has ever made a fuss about the lack of it in my experience.
Maybe because applicants with degrees are, statistically speaking, better than those without?
I've always said that getting a job takes two things:
1) Be good
2) Prove you're good
A degree achieves neither. But it helps a lot. Not having a degree doesn't preclude either. But it doesn't help at all.
1) Persuade people you're good. Or, in other words, get people to believe you add value.
Being able to add value doesn't achieve this by itself. But it helps a lot. Not being able to add value doesn't preclude you from doing this. But it doesn't help.
(My comment is a somewhat winking... but I suspect some readers will recognize some uncomfortable truth.)
I don't understand downvotes on my initial comment. HN is such a fickle beast.
Is it fair to people without degrees, esp, for cases where the only reason was that they couldn't afford it (considering how damn expensive higher education is in US) ? No, of course it is not, but then who said life has to be fair ? And of all things, why should we expect for-profit (and I use that word with respect, not derision) companies to hurt themselves to "just" try and make it fair to everyone ?
IMHO, education (both degree, and even more importantly the selectiveness of the university) serve as a very good proxy measure for how likely a candidate will be good. This is similar to say work-experience at a very reputable company, which is known for its selectivity. In both (university or top company) the scenarios you know that candidate had been filtered among a very large pool of candidates in past, so very likely to be bright.
As an example say, you want to select a dream team to attack the "Riemann Hypothesis" problem. Will you consider a candidate's credential (like education, university they are working at) as one of the big factors, or will you be just trying to interview anyone who applies, even if they don't have any exposure to higher math ? Say you get 100k applications, and can only interview at most 100 of them, does your answer change ? I know, that I will look at credentials, past work (which all correlate insanely with education & university affiliation) as the first measure to filter things out. Of course their will be outliers, and there will be exceptional people who are very good at Math without any degree (like Ramanujan), but there is no scalable way to find them in this scenario.
Similar example: What is the probability of some random dude on internet claiming he has a proof of P != NP being right vs say it coming from a reputed researcher (for the sake of argument say "Richard Karp") ? Whose proof are you going to read more carefully ? I guess the answer is obvious is this case. Now let's say it is between a random no-credential dude vs a PhD student of Richard Karp's (at Berkley) - who are you going to take more seriously ? Is it fair, probably not ? But statistically you will be much better with having these conscious & unconscious biases (backed up by data of course), then sampling uniformly from the world.