In other words, do you give more preference to developers with degrees as compared to self taught programmers?
I guess it depends of the job. Most of the time degree doesn't matter, especially for web development. If I were a manager my focus would be on skills and motivation, not paper.
That being said, degree can be extremely important for people that are really into computers. Companies that want to push their tech up absolutely needs people with degree in CS. I mean, I can learn PHP, Java, C# etc. and be productive and pay the bills, but that is only one dimension of software engineer.
Some college classes give you perspective about computer science field. You tackle a lot of subjects and hopefully you are surrounded by really smart people who can teach you a lot. People who are good with math, algorithms and data structures, automata and formal languages are people who push our technology. I consider myself decent PHP developer (LAMP in general), I can develop various web sites and applications, and for the most companies that is enough. But tech makers look somewhere else and that's fine. Reason I'm telling this is that a lot of people have wrong perception that degree is completely useless. If you have right attitude degree is really good to have.
Regarding people saying that classes are outdated, that depends of the class itself. When you learn basics of programming most likely it is taught using C, C++ or Python. Basic principles are the same and almost never outdated. When you learn about networking and communications, you learn how protocols works on a bit basis. Almost never outdated. When you learn about algorithms, you learn about thinking smarter and outside the box, how to solve the problem in most efficient way, and how to analyse what you've done. There are some classes which are really not that interesting in the beginning, but are very useful. Algebra, math, automata, operating systems (in depth), system programming, data science etc. You can learn them by reading books, but most of the self taught folks simply don't learn them cause they don't need them. Basics of them aren't outdated, and while you don't need them to develop nice Wordpress site, go work on improving search engines, encoders/decoders, drivers for devices, data analysis algorithms, AI etc. and you're screwed.
Now, there are certainly a lot of examples where you learn something that is almost useless and/or outdated, like PHP 5.2, outdated Java etc. I won't go into details on that cause it mostly depends of professors. But that indeed is a problem and should be addressed.
People who think that CS degree is not useful are wrong and right. They are right in a sense that it's not useful for them, and that's fine, they are satisfied with their job and are working where they want. However, to influence on younger people and say "you don't need it, you just need to learn X if you want job Y" is kind of irresponsible cause it's not that simple. I also don't like when people who dropped college (or never went to it) have such a strong opinion on this. We need to be honest.
Short Answer Yes.
Steve Wozniak did not have a degree. Bill Gates did not have a degree. Mark Zuckerberg did not have a degree.
I have a degree, but it is not in Computer Science, it is in Aviation.
That being said, I have worked with developers with CS degrees in the past, and they are great. Only about 10% have a related degree.
Hire smart people.
There are some good answers here. My answer is, absolutely, yes. There are many other things I look for. Are they experienced? Often, that outweighs a degree. Do they have passion and drive, and a zeal to learn and keep up? Do they have hobby programming projects they work on in their own time? Often, degreed candidates do not.
Personally, I view programming as an art form, a special craft. Degreed candidates might be able to do it, but they're often constrained by "by the book" thinking, and don't view their work as art. To me, a computer is a canvas. That's my artistry. That's my passion. I would much rather find a non-degreed, yet passionate person, willing to learn, able and excited to demonstrate their craft than a degreed one who is only there for the money.
Whenever we are talking about hiring we are talking about the benefits our team or company will get from the new person. To answer that question we first should ask ourselves - will degree boost that person or not, what it would give to us?
It is just a paper which proves that a person has wasted some years listening many lectures (most of which are useless for typical business), and passed many exams, however, it doesn't gives any real practical knowledge and experience.
While many fields do not change so fast like IT and degree might really approve that in those fields a person might have "production-ready" knowledge like it is in the medicine because human body is the same as 100 years ago, the problem with our field is that it changes too fast. It means, that by those X years while someone is studing program Z that program might be no more relevant and main problem is in educational system itself. Because of the legal issues it takes too long time to accreditate a new program.
Another problem is that IT is not only changing, but also evolving too fast, the amount of data and different technologies is growing significantly.
Businesses don't need someone with a lot of theory, businesses needs someone who can just do a simple task.
Many good web engineers don't know very well and use languages like C or Assembly because they, probably, will never use them in real life. Another example - wordpress developers don't know general software engineering principles and patterns, they mostly only know how to be a "plugin operator", but can't write a framework from the scratch themselves, etc.
It always depends on the task and what company is looking for. Knowing everything is also impossible.
The next reason why degree is a waste of time in the IT is that in typical comuter science programs nobody teaches students how to build real business applications, web apps, mobile apps, games, etc.
Because of all that factors I described above, in the software engineering most of developers are self-taught, including myself. I was studing computer science in the local university, but I dropped out on the 2nd year because I started asking myself the same question every day - "What the hell I am doing here?"
The answer, of course, is yes, I might hire someone without a degree. Whenever I am looking for a new team member I do not care about the paper, however, I am looking for strong knowledge - my own definition of the degree.
The problem with computer science programs around the world is that they ignore one very important part of the computer science. CS as any field has theoretical and practical parts. What I am looking for in candidates is practical computer science which is software engineering.
Many people do not agree with me that software engineering is a science. However, not only CS, but all the real world problems we are trying to solve every day also have many questions like:
... and many, many others.
And that is a knowledge I am exactly looking for in any candidate - is he or she capable to write code, read code, test code, maintain code, use his tools, work independently, learn new things fast, etc. And to get that knowledge is much harder then to get a Master's degree.
I am also looking into social aspect of any candidate - GitHub and open-source contribution activity, does he or she writes articles, makes screencasts, participates in meetups, conferences, etc.
I went through a round of hiring recently. I'm not opposed to hiring someone who is lacking a degree but those candidates face an uphill battle. I think the biggest indicators of success are someone who is curious and likes to tinker with things. He or she is constantly learning, picking up new things, is not afraid to challenge his/her own beliefs (especially on things like ways to solve problems, which technology to use, etc). I like to see candidates who have personal projects.
On the flip side of the degree question, I saw a LOT of resumes from people who had degrees (bachelors, masters, and even some PhD's) and were absolutely terrible candidates in the interview. These were almost exclusively from universities in other countries. It's difficult to not build up a bias when facing trends like that. So I try to remind myself that programmers who are currently unemployed also tend to be the crappy, unemployable programmers -- joelonsoftware.com/articles/FindingGreatDeveloper…
I come from a time when there weren't any degrees for my particular field. Yes, I would hire one without a degree. This field changes quicker than degree programs can keep up anyways.
I have to echo the general sentiment here so far - degree should not matter.
As someone without a degree, who's been working in the industry for 18+ years, I've never lost a job opportunity simply because I don't have a degree.
This is a field where one's experience and willingness/passion to continue learning should matter above everything else.
Education never came in at any stage of the process for me and I preferred easy going, reasonable and enthusiastic people with a good example or two of their work. I think hiring for potential is a lot better than hiring for current skill level. On the downside, it takes time to mentor to only potentially "lose" that investment. On the upside, you chose based on other important criteria that begin to matter when skill/experience is no longer in question.
I hire people that know what they are doing. Degrees are somewhat irrelevant in the field.
I give preference to the developers that can do work, think by their own mind and be efficient. For me degree it's not important as i don't have one and never miss job or work :)
tl;dr yes (to the title, not the other one)
My background - engineering masters degree. Based in UK.
I would like to say that the questions you've asked are completely different.
Would I employee someone without a degree? - Yes, given certain assumptions.
Do I prefer someone with a degree over someone who doesn't? - This is a subjective question that attracts subjective answers.
For me, whether a candidate has a degree or not can be irrelevant.
From experience I know employers look more for commercial experience instead of educational. And therefore commercial experience has more weighting - this is a general rule. Especially considering, in the UK at least, the gap between university education and a year in the industry can be quite drastic at times.
Asking about self-taught programmers is always a difficult one as an employer has no real method (apart from a basic coding test, maybe) of seeing what level that candidate is at. It's difficult to see their true skill level. It's also difficult for the candidate who may not have a mentor/a teacher when starting out in this field.
It doesn't matter. If I am a Manager, I'd hire a guy who has knowledge with no degree anyday over a guy who is dumb but with a degree. But if it is the companies policy only to hire graduates, then that's a tough one though!
Thanks for the invite.
I'm biased; I don't have a degree. But business is business and the success of a company is almost directly proportional to it's employees.
I'm obviously completely accepting of someone without a degree, but that doesn't mean a candidate should be hired with 0 qualifications. If the person has some work to show be it past jobs, freelance, etc... and their skills are in alignment with what I need / am looking for - hire.
If their skills are out of alignment, but during the interview they appear to be willing to learn; learn quickly and are motivated - hire. No problem teaching or letting them learn new things to grow their career.
If their self taught and they have 1 line on their resume regarding programming (and everything else not related to programming) - no hire.
Build, build, build! So many people, especially the self taught, don't know what to build or are lazy or whatever. I'd rather see a dozen "me too" apps on their resume then 1 original idea. I'd rather see someone with thousands of lines of good and bad code then a dozen lines of perfect code. Programming is not perfect. There is no exact science. We figure this out as we go and hope for the best. I want someone that can think on their own and solve problems; the language doesn't matter, languages can be taught. If I throw you an idea for a feature, can you tell me how you'd build it without coming here or Google? Yes? Hire. We'll figure out the language part of it as we go.
Mirko Vukušić
Full(stack|dev|life)
I can say it in past tense :) As a manager I hired many programmers without a degree. Some time I even thought it is completely irrelevant but in time I relaized advantages of candidates with degree. But still, its never a requirement, although degree brings some points now.