Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I guess it isn't that common but occasionally there are some software developers who didn't actually go to college and just spent their teens hacking away at pet projects and learned enough to work out of high school.

My question is if you were hiring a candidate how would you determine if someone who didn't go to a university but is claiming to be (more than)proficient and fully able to develop software just as well as a student with a degree? What do you look for?

What would you want to see from this person that would put them at or above the level of a college grad when it comes to hiring?

share|improve this question
5  
I usually find it's the opposite, university students proving that they can code as well as a non-university student. –  Ryan Bigg May 3 '11 at 5:54

6 Answers 6

up vote 8 down vote accepted

The best thing you can do is look at his code. If he or she has the code for their projects up on, say github or bitbucket, look through it and evaluate its quality and the complexity of the problem that it solves. The best metric of a coder's ability is the code.

share|improve this answer

Assuming you get to the interview, I ask all candidates questions specific to the job I'm interviewing them for. I don't really care whether they bought a degree from an online university or co-wrote "Design Patterns", so much as I care whether we can communicate effectively. I've had too many bad experiences with degreed candidates who can't program to give anyone a free pass. So I'll ask "How would you mock an observer?" "Would closures help implement a streaming FFT?" or something similar from my pre-prepared list. If the candidate looks at me blankly we've both learned something. Otherwise, only I have :)

To jump above degreed candidates you would need to be known to me (in a good way). Either from StackOverflow, a local user group or something similar. The same applies to anyone, but without a degree you're less likely to be interviewed. If you don't have a degree you will need to come up in an online search, and ideally in a context that either reminds me that I have seen you perform, or makes it clear that you're good. A decent contribution history to an open source project or being the author of a good tool will do that.

Also, once you have ten years experience the degree becomes less important in many ways. What counts then is whether you know anything about programming techniques popularised since you graduated. I will cheerfully pummel old guys on the current patterns we use, recent features in C#/Dot Net or whatever else. I don't want someone who learned everything they ever needed to know from Fortran95.

share|improve this answer

When you go to college in any field and earn a degree, you walk away from that institution with a foundation of knowledge that is very similar to the foundation of knowledge that other students of that same field have acquired, at their institution of learning, either during the same time period as you, or during an earlier period in time.

The basic fundamentals of Computer Science have changed very little in the last 50 years, despite the advances in computers.

As a result, when you and I meet to discuss a very abstract concept, and I need to describe to you in detail this certain abstract concept, I'm going to reach into the deep, dark depths of my 400/4000 level Computer Science classes on formalism and abstraction and use those concepts to relate to the one that I'm trying to describe.

While I've worked with some great software engineers, in the end, the only ones who I could successfully explain very complex, abstract, software engineering concepts to were those who had earned Computer Science degrees or who had some background in Computer Science.

The rest are just hackers, which is not to degrade those individuals by any means. I've worked with non-Computer Science people who can get stuff done, make things happen, write good code and build applications.

But when it comes to the concepts derived from Computer Science, like building an application that not only solves problem X for you but that also solves problem X for all your customers, it's the computer scientists who really shine. Otherwise, I've found that we keep reinventing the wheel over and over again until problem X is solved several times repeatedly.

share|improve this answer
    
Agreed. There is value in spending 4+ years learning a topic. The real question is whether you'll pay $10K a year to go to a school or $50K... But... who knows these days, we've all met terrible managers who have MBA's from prestigious uni's... –  Agile Scout May 3 '11 at 3:54
3  
I had the contrary experience so far: the only ones who could grasp complex concepts were the self-taught ones because the CS graduates were lost as soon as something isn't exactly what they learnt in textbooks (which is frustrating because one needs the other: creativity without knowledge takes time and knowledge without creativity fails to see possible better ways to solve a given problem). Like a former colleague used to say: 5-legged sheeps (creativity + knowledge) are rare :) –  wildpeaks May 3 '11 at 5:56
2  
"But when it comes to the concepts derived from Computer Science, ..., it's the computer scientists who really shine" My mileage differs. :-) I have found that its the computer scientists who get bogged down in something akin to "Architecture Astronaut" syndrom and its the more practical/pragmatic non-computer scientists who get the results, using whatever (non-)computer scientists before them have discovered/designed/written about. –  Marjan Venema May 3 '11 at 5:58
1  
Also, new hires can be trained when they lack some knowledge, however creativity is a state of mind that is much harder to inspire, so it's sometimes easier to train a self-taught to turn him into a 5-legged sheep than open the creative mind of a pre-formatted CS candidate. On the other hand, you are less likely to think out of the box when you've never seen of the box, so it's really on case by case. –  wildpeaks May 3 '11 at 6:03

I'm going to watch both of you code. You'll demonstrate what you know, what you don't know and how well you pick up on things. Handle it.

The real question is how do you get an interview? Which is going to be based on your resume and more important a cover letter focused on landing the job I'm offering. And yes, spelling counts.

Ultimately, I want to know how educated you are and have you been preparing yourself to learn. You will probably have to work in a domain outside of IT. I'm not talking about school. How much time do you spend programming? Are you well read? You better get in the habit of reading if you want to learn more about programming and you will need to learn more about programming.

Do you speak appropriately based on the circumstances or are you a juvenile that talks during an interview the same way you do with your friends sitting on their couch playing video games? This goes for the cover letter as well; it's not a chat room.

Have you ever put programming to practical use? A database for your comic books. A website for your friends to post their dart scores. An iPhone app that records someone's voice mail message and turns it into a ring tone. Anything.

share|improve this answer
    
Cover letters (unless you mean emails?) are very old-school, I suspect used by <<5%. I know many excellent programmers your criteria would have excluded. The communication stuff you can determine from a quick phonescreen. I agree with the rest of your comments. –  smci Jan 21 '12 at 13:17

Look at the projects they have worked on. If they have exercised all the skills that you would need them to have in order to work on the projects at your place, I don't see a point turning them down because they have not gone to university.

Perhaps you could get them to earn such a degree in your employ if you think it can help you better.

share|improve this answer

Generally, the industry sets a minimum educational requirement as a prequalifier to filter candidates. It does not mean that someone who hasnt done that degree is unfit for the job; it just establishes a minimum standard. I have seen candidates with high degree fail to do simple c/C++ problems. In once case an Oracle certifiied guy quit his job in 10 days because he couldnt do an app in that much time while the others could do it in one day. How good you are at explaining concepts and showing that you know how to use them in real life situations will be the determinant in an interview.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.