Interested in knowing from the more experienced ones if someone can find a job as a programmer without even a highschool degree. Consider the said person to be an average programmer. Would someone even consider giving him/her a chance on an interview ? The languages of interest would be python/php/java/c#

Please answer for your region/city/country only. No "go back to school" answers please.

This question exists because it has historical significance, but it is not considered a good, on-topic question for this site, so please do not use it as evidence that you can ask similar questions here. This question and its answers are frozen and cannot be changed. More info: help center.

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
If this question can be reworded to fit the rules in the help center, please edit the question.

26 Answers
26

Your biggest difficulty is going to be getting through the HR filter. If you can do that, experience will trump education (most of the time).

In the meantime, try to find some small shop that just needs someone who can code. You should also try to join an opensource project (or two) to get some experience and show that you have some skills. You are going to have to start small and build on that.

The HR factor is definitely real. Acronyms and qualifications are just as important as experience to them...
–
MM01Oct 1 '10 at 21:58

8

If you're looking at a small enough company, there might be little or no HR filter. Also look for some place with a little programming-quiz in their job listing. One of the developers at our place (hired before me) was a Spanish major, but his code was solid enough, so they took him anyway.
–
fennecOct 2 '10 at 2:43

2

Look for the "Or" clause, where I've had my best luck is with ads that said, "Such education or equivalent experience". Good Luck!
–
mezmoApr 12 '11 at 21:51

First, any HR department will toss your resume without a second's thought. You need to find a business small enough that resumes and applications go to the appropriate manager.

Second, your resume needs to interest the manager. It's very easy to see no high school diploma and round-file a resume, and it would feel very risky to hire such a person. Managers are interested in finding good candidates, not in giving everybody a fair shake. There may be very good reasons why you didn't graduate from high school, but those don't matter. You have to get to an interview for those to matter, and explaining why not will take time you could be using to actually impress the manager.

Therefore, you have to have something on your resume that says "this guy is special". (Something that says "this guy is average" won't work, since there's likely average programmers available that don't have any obvious problems with their resumes.) About the only thing that will work here is evidence of outstanding programming work, and about the only way you'll get that is by being outstanding in an open source project, since that's about the only reputable software you can get into just by being good.

You can always talk to people you personally know, who may be impressed by you, and if they have hiring authority they might be talked into giving you a shot. Of course, the jobs you're likely to get that way aren't all that impressive, and won't look all that good on the resume. You won't find them much of a steppingstone.

You can go into business for yourself, but that takes a lot of work and determination and ability. You'll have a great deal of difficulty getting hired as a consultant without a high school diploma, and making and selling a product is really difficult. Everybody knows about the big winners who became billionaires, but there's a whole lot more people you never heard of because they flopped. If you're only average in ability, you're probably doomed here.

So, you can devote a lot of work to an Open Source project, or start your own business and bull it through, and both of these require more than average ability. I know you said you don't want "go back to school" responses, but, really, it will take less time, ability, and energy to go back to school than to break into the field in any other way.

My impression is this: the less formal education you have, the more you have to compensate by a lot of self-education. Without those degrees, you'll need other stuff to demonstrate to potential employers that you can do the job. If you're so inclined, you can teach yourself the necessary skills. Read lots of books, join open source projects, write lots of programs on your own, figure out what skills are necessary for the jobs you want and learn them. Demonstrable passion for programming can easily trump the lack of a degree.

It definitely can be done. There is a lot more acceptance of autodidacts in this profession than most others. For myself, I have a college degree, but it's in history. Everything I learned about software development, I learned on my own. And despite certain holes in my knowledge base which I'm constantly trying to fill with a steady stream of books, I've never had too much trouble finding work. Nor have I ever felt like the least talented or least knowledgeable programmer on any team I've ever worked with. I've met some unbelievably capable programmers with computer science degrees and I've met others who were agonizingly incompetent.

Many many programmers don't have college degrees or degrees in programming. But having done a lot of hiring, I would hesitate to hire anyone who couldn't complete high school. There would have to be a really good explanation for that. It is my experience that people with no high school or GED do not have the self-discipline and ability to work with others to be good employees. I wouldn't hire them for most jobs not just programming.

In Germany 2-3 years of experience generally outweigh a degree. I don't have a degree but that never posed a problem for me. Also, if you freelance, your reference is much more important than any number of certificates could be. I suppose this is valid anywhere around the world.

You'd probably have a better chance getting hired by a small, locally owned business. They may not have an HR department so you could skip directly to the owner or a manager. Then you just have to convince them you are qualified.

But the key here is to realize your primary education is to acquire the skill to sell yourself.

One of the first facts a salesman learns is you don't win over the person with the checkbook, you win over the person who controls the person with the checkbook. HR manages the legal and administrative details of its relationship with employees. You don't want to go through HR unless you want to write programs for HR.

You've got to hit the department with the need for the type of programs you want to write. Instill in them the emotional bond that their future success requires them to get you on-board (which, once you've taken the time to learn what they do, how they do it, and their culture, won't be hard).

Take the time to develop a lot of practical software that applies to the department and industry you want the job in, for the programming environment typical in that industry. Plus a few more in related departments/industries/environments. And one or two in unrelated ones.

Odds are managers already know what graduates are like. You've got to be the iPhone of programmer candidates. The new, shiny that already fits into their culture and industry.

For end-user application development, become acquainted with their products and learn their features and their bugs. Learn it better than their salesmen. (It's a big bonus if you're familiar with their competitor's products too.) Hang out with their customers, and see what their needs are and how they use the software. Then go to conferences, user groups, networking events where salespeople interact with potential customers.

Salespeople have been known to varnish the truth. Don't call them out on it (publicly) and don't torpedo the sale. Listen to what objections prospects have about the product and how sales handles them. If you make a suggestion for a feature that the customer really wants you can ingratiate yourself to the sales department, and they can exercise their pull to get you hired. Because $$$ (or your local currency) makes the decisions. So don't torpedo the sale.

Maybe you find a hole in their product that you can fill by writing and selling your own product. Then they buy your company. That's another way to end up hired by a company without having a formal education.

Once an applicant has some experience under his belt, it doesn't really matter much about formal education. If you've worked in a respectable development environment for a few years, then great - come to an interview. I may ask about your background in your interview, but mostly to see how you handle discussing your background.

But if you're at the beginning of your career, and have little-to-no experience, then you'd definitely struggle to even get considered. Think of it this way. All applicants will have an interest in and a knowledge of programming (while this is not necessarily true, it serves for the purpose of the analogy). Of those, almost all will have secondary school level qualifications (A Levels here in the UK, High School in the US). Of those, some will have a CS Degree, and of those who don't, some will have experience. Those are the ones I'd consider first.

As someone with no experience and no qualifications, there'd be nothing on your CV to make you stand out as someone worth hiring for the job. From a recruiter's point of view, programming is an academic discipline, so school-level qualifications are vital in order to show that you have the discipline and ability to learn; even if your educational background is not in CS.

But on the other hand, the company I work for (which I won't name, obviously) is an IT Consultancy firm who specialise in recruiting people (often graduates, but not necessarily - each applicant is assessed on an individual basis), providing ~3 months of free but unpaid training, then hiring people out to blue-chip companies for the next two years. Companies like this are becoming more popular around the world nowadays (this one is based in the UK, but has offices in the US, Germany and Hong Kong); so while you may get laughed out of the room when applying directly to big companies, there are alternatives to help kickstart a career in programming.
The philosophy behind the company I work for is that for fresh graduates, it's near impossible to get a job in IT, since even the most junior positions require 2 years experience normally. So companies like this benefit young aspiring IT professionals, by getting them 2 years good work experience, and relatively up to date training; and also the companies they hire out to, by providing consultants of a known standard of quality, reliably, and without all the HR hassle of directly hiring people.

As a team manager, I hired both people with and without formal education in computer science or software engineering, so it certainly is possible to have a career as a programmer without having any formal education.

However, a rule of thumb is that there is a bigger chance that someone with education will be a better developer than one without. It is of course possible to learn everything by oneself, and there are plenty of crappy developers with formal education.

It would probably be easier getting a job in a smaller operation, since there will be less bureaucracy, so slipping through the HR filter (as Muad'Dib mentions) will be easier.

At my old job the two best developers were a guy with a BS in Math, MS in CompSci; both from top tier schools and a guy with a GED who spent six years in the USMC and dropped out of community college after six weeks to take a full time programming job.

The Marine was self-taught and absolutely tenacious. First one in, last one to leave.

They were equally productive but the grad student work about 2/3 of the hours of the Marine.

I'd start at a small company with no HR filters to worry about, get some experience there and then move to a bigger company once you have a nice job or two in your job history. Education matters less and less and we find Computer Science graduates who can't even do the FizzBuzz test and self-educated programmers are blowing them away.

"avoid hiring the wrong person, even
if this occasionally means missing out
on some good people. The justification
is that never before has it cost so
much to recruit, maintain, and --
heaven forbid -- discharge an
employee"

In other words they rather reject hundredths of developers who might actually been good or even great, than hire one bad one. That means immediately rejecting any "risky" candidates, like for example ones without diploma.

Spolsky: The truth is-- I hate to say
this-- but I mean we're very very
selective in our hiring. Google is
selective in their hiring, and I do
recommend that people be selective in
their hiring. On the other hand, I
know that a lot of people that don't
make the bar at Fog Creek-- just
'cause like I honestly-- given what
I've heard from our developers [about]
what goes on in our programming
interviews these days, I don't think I
would pass! So, on the other hand, a
lot of the people who don't make the
bar at Fog Creek will go off somewhere
and do something and be fantastically
successful somewhere else. And one of
the things that's kind of important to
remember is that, for us, hiring
somebody who we-- what we would call a
false-positive, somebody that we think
is gonna turn out good but doesn't
turn out good-- is really, really
costly. And it makes everybody
unhappy. You know, they might move to
New York. It makes them unhappy, it
makes us unhappy because we have to
fire them and that sucks. There's a
lot of expense because we paid them
for 6 months while they wrote bad code
that then had to be rewritten. And
all that stuff [that] adds up to a
false-positive is very very costly,
whereas a false-negative-- if we tell
somebody that we don't think they can
make it but maybe they can-- what that
costs us is whatever the interview
costs us. You know, $2000 to fly them
to New York and put them in a hotel
and some time that we spent
interviewing them. And so, the truth
is, I'd rather err-- and it's
unfortunate-- I'd rather err on the
side of safety at this point and get
people that I know can-- that have a
much higher probability of being
successful. What that means
specifically is that chances are that
most of the people that we're turning
away at the end of a day of interviews
would be great programmers somewhere
else... or here, but we just don't
want to take the risk.

Of course if you're exceptionally good, you might get in passing the normal channels. But you've mentioned that the person is average programmer.

It used to be possible, but it has become increasingly difficult (if not near impossible) in the last 15 years. I'm always of the school of thought that software engineering is MUCH, MUCH MORE a mindset and innate mental capabilities towards analysis and problem solving that the completion of a formal curriculum.

That is, people either get (or have the capability of getting) things like recursion and pointers or not (independently of whether people go to CS schools or not.) I've known people with degrees in Literature or Accounting being able to code really low level crap on embedded systems, whereas I've met people well into the CS masters who still cannot grasp the idea of a pointer to a function.

But nowadays, it will be really hard for someone without a formal education to break through into the software industry. Barring an opportunity to work at a small company where they might give you a chance, I don't know how to best suggest going about it.

Good luck.

--- edit ---

I would really hesitate to hire someone without a HS degree (unless he already has a demonstratively long work record in the software field), though. I could consider someone with partial college education or with a degree not related to math, sciences or engineering if they can prove they have the analytical skills (or the math that tends to be a good indicator of analytical skills.)

It is just too much the risk. And in hiring, there is always a risk analysis trade off involved.

I think most places will give you a shot at an interview at least, and whether you get the job or not will be based on your interview.

We were recently trying to hire someone, and we didn't care what the application said. What we were interested in was Work Experience/Past Projects, Sample Code, and how the interview went. Its easy to get code online or to follow tutorials to create sample projects, but talking to someone generally identifies if they actually know their stuff or not.

Also as a side note, if you have no Programming-Related work experience, leave it off your resume. That's the one bit that would actually put someone in a negative light before the interview with me... if their previous experience was all something like working at McDonalds. If you don't have any programming-related work experience, list projects you have worked on in the past instead (personal, open source, etc).

Err, how does a person without a HS built up a resume and portfolio as a programmer? Specially while trying to make a living with it. Yes, these are the steps, but without a valid context and clearly stating the probabilities of achieving it, the steps are simply an statement of the obvious.
–
luis.espinalOct 21 '10 at 10:41

As an experienced developer (without a formal education) and a hiring manager, I can tell you that a degree is at best a poor indicator of basic technical competency. They are often misleading, as are resumes. I find them almost irrelevant when evaluating a potential hire's technical and cultural competencies.

HR managers and recruiters typically use degrees because they lack the necessary skills to screen potential hires more accurately. Thus you will often find it difficult to get past the door at many larger firms where the technical hiring gatekeeper is not capable of assessing candidates based on their merit. Then again, my experience is that you don't want to work for these firms anyway. Certainly not at the beginning of your career.

The best way to succeed without a formal education is simply to become a stupidly competent developer. Work your ass off. If you want to be judged on merit, you'd better be good at what you do. Past a certain point, even traditionally HR dependent larger companies will be unable to write you off, if that's the direction you want to go.

The chicken-and-egg problem this would pose in many other industries is neatly side-stepped here by the ready availability of open source projects with extremely low barriers to entry. They offer real-world experience and often mentors and peers who will be your best teachers. This work has the additional advantage of training your cultural competencies, which degreed but inexperienced candidates often lack.

Indeed, you are fortunate in that this is one of the few industries where career development is possible outside the traditional academic paradigm and competent people can be accurately evaluated based solely on their actual merit.

All else being equal, I would take a successful open source contributor without a degree over a degreed but inexperienced candidate every time.

Also, some pragmatic advice. Contribute to open source projects (I can't stress this enough). Create your own open source projects and make them visible. Start a blog. Write interesting things that demonstrate your depth of critical faculty. All of these things will tell a competent interviewer far more than a degree possibly could.

Finally, become an active participant in the communities that surround your tools and technologies of choice. Getting hired is as much about who you know as what you know.

I am a college drop out as well and I too have thought that getting a regular job as a programmer would be hard. But most programmers know that a CV is not something that can reflect programming capabilities.

In your case when called for an interview you got to prove your best, and present why you as a self taught programmer can be as good as others. Because trust me, once they do not see a diploma on that resume they expect you to be really something in order to hire you.

If you say you are an average programmer, than no problem for you, because in small to medium firms most programmers are lower than average and you can shine through (from own experience).

I would hire that developer if he can show me the his abilities and prove that he is the one that my job needs through interview directly. Of course, it's difficult if his resume does not show any interested information.

Is there a kind of relaxation point, where one can just apply to random company and know that his previous two (junior, right), three or five years already made him a good reputation?

What about soap bubble software giants (IBM?), doesn't they recruit totally incompetent (e.g. non-educated, and non-degree) persons way too often? I can tell that by totally poor software quality

And what about those managers who just have a personal reasons in dropping your candidature right after the talk?

By counting those factors, one will always know: no matter how much years he had worked, there's always an envy HR guy who will drop his candidature just to hire some non-grade code monkey for having talks, beers and no envy in him.

There's no reason for CIO to start yelling at HR guys with "you just lost us an ex-Google worker who had two degrees and a wonderful career" altitude, because they didn't "lost an ex-Google worker" so no reason for punishing them.

But also, there's no reason to start applying for big companies just for this: they already wasted the budget on their advertising, student support programs etc. Usually they would not hire a self-taught specialist who was not brainwashed by their internship, their in-school job fair advertisements - this will occasionally lead them to opinion that PR is a money waste, noone gives such a disgrace to themselves. Once again - if you want to go this way, go to LinkedIn and find some disappointed tech leader to invite you.