Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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.


locked by World Engineer Feb 19 '14 at 15:02

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.

closed as not constructive by gnat, Mark Trapp, Walter, Yannis Mar 7 '12 at 8:11

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.

You can always find some online work on sites such as elance. – Ivan Ferić Oct 2 '10 at 0:38
Do you grok pointers? – user1249 Oct 10 '10 at 18:28
the question about whether you understand pointers is actually very important as it indicates what mindset you currently have. The same thing with recursion. Could you provide that information? – user1249 Nov 15 '10 at 21:24
Yes, you can. You can also climb Mount Everest in flip flops. Why anyone would try either is beyond me. – Joel Etherton Mar 6 '12 at 11:46

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... – MM01 Oct 1 '10 at 21:58
He has to start small. Sure he won't get an interview for a .net architect first! Targeting a junior developer role in a small company that is not a software dev house is better. – user2567 Oct 1 '10 at 22:02
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. – fennec Oct 2 '10 at 2:43
I have to agree with starting at a smallish shop. Experience is key. I've been a manager and programmer at these kinds of shops for most of my career -- places where experience and results matter more than education. Also, I have a high school education, but never went to college. – bogeymin Oct 21 '10 at 18:08
Look for the "Or" clause, where I've had my best luck is with ads that said, "Such education or equivalent experience". Good Luck! – mezmo Apr 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.

"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." -- Or find a good recruiter who can cut through to the right person for you. – Mike Rosenblum Apr 12 '11 at 22:28
"You have to have something on your resume that says 'this guy is special'" -- Or have a recuiter who can tell HR or the department-head contact that "this guy is special". But you really have to be for the recruiter to stick their neck out and risk their reputation. – Mike Rosenblum Apr 12 '11 at 22:30
@Mike Rosenblum: Which means you have to get a recruiter interested in pitching you. That's going to be difficult in the first place. Recruiters make money by getting people hired to high-paying jobs, and a person without a High School diploma is not a good bet. I don't think that it will be easier to get a recruiter to do that than a hiring manager. (A hiring manager is likely to be able to evaluate what he or she is looking for. Most recruiters in the field are unable to figure out who's good and who's not by themselves.) – David Thornley May 19 '11 at 18:03
Yeah, David, that's a really good point... One would have to build up their resume a lot with work experience (yes, circular problem here) and contributing to open source projects. Eventually, though, one's work experience -- even if you have to start low -- and one's desire to study and learn on the side can really make a difference. If your skill set is truly high enough, that's all that the vast majority of firms will care about. True tech talent remains somewhat scarce today. And yes, you could get a recruiter to pitch for you at this point. But you're right, it's not easy. – Mike Rosenblum Jun 4 '11 at 0:29

I didn't finish High School and used to work as a Software Engineer for a small-sized company.

Now I do freelance.

Like others suggested, apply at smaller shops where you can bypass those incompetent HR people.

Create open source programs, and at least some sort of website for them.

Stay updated in all current technologies, challenge yourself.

You'll definitely need to 'prove' yourself before attempting to get hired. Beside that, I've been told I was a better developer than my fellow developers with college degrees.

  • Michael dell (DELL)
  • Marc Zuckerberg (FACEBOOK)
  • Bill Gates (MICROSOFT)
  • Steve Jobs (APPLE)

None of the above got their diploma

True, but they also started their own companies. – gablin Oct 2 '10 at 18:57
AFIK, these gentlemen DID finish high-school (it was college they dropped out of, after all) – Muad'Dib Oct 4 '10 at 18:09
@gablin: Yes, it takes very little experience to get hired by yourself. – Tim Goodman Oct 4 '10 at 18:11
@Pierre: I didn't say it was easy to start a successful company. Anyway, my comment was tongue-in-cheek. – Tim Goodman Oct 4 '10 at 18:28
It's very hard to start one that sucks too. Try yourself. – user2567 Oct 4 '10 at 18:37

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.

Of course you have to compensate your lack of formal education with self-learning. If you don't have either (though you should preferably have both), you don't know anything, and is not of use for the company. – gablin Oct 2 '10 at 7:58
@gablin Stating the obvious. Very insightful. – Nick Oct 2 '10 at 9:56
"There is a lot more acceptance of autodidacts in this profession than most others." Definitely true. – Benjol Apr 13 '11 at 5:22

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.


I think, the point is 'without degree' and 'without education' is not equivalent. I know

  • many people with both
  • even more CS graduates with degree and without educaction - very annoying people
  • a lot of people with education and without degree
  • and - last but not least - quite a lot of people without any of those two, but those guys usually go into marketing.

There are places, where you have no chance of being hired. These are not the places where you want to work anyway.

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.

So, to put it into few words: Yes you can!

"and - last but not least - quite a lot of people without any of those two, but those guys usually go into marketing" - so true! +1 – Bogdan Mar 30 '11 at 10:16

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.


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.

Interesting, but you're spending a lot of money on each individual hire (three months of paying and training somebody is a lot). It sounds like a very nice deal, so you presumably get more applications than you need. How do you select new hires? – David Thornley Mar 30 '11 at 15:07
@David - no they don't pay you during the training. The 'reputable' ones take desperate people, sit them in front of a video of Sharepoint for dummies for 12weeks (for no pay) then hire them out at 2K/day as consultants to government IT projects - while paying them <20K/year. The disreputable ones are the same but charge for the training. – Martin Beckett Apr 12 '11 at 22:50

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.

That's funny... my experience has been that people without formal education are better. – Matthew Whited Mar 30 '11 at 11:20

Not without an education, no. But without a formal education, yes.

There is programming knowledge that is categorized horizontally (problem-solving, logic, software architecture, OOP, security, etc.) and vertically (iPhone, *NIX, CICS, bash, PERL, XML, etc).

There's also industry-specific knowledge you need to familiarize yourself with. Health care. Automotive. Systems Programming. Scientific computing. ERP. Manufacturing. etc.

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.


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.


Basic hiring principle in top companies in the industry is "no false positives".

A quote from "How Would You Move Mount Fuji?":

"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.

Another quote, from Joel Spolsky in one of Stackoverflow podcasts:

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.


If I have a bunch of resumes, several of them are likely to be "average programmers". What's going to make me look at yours if you don't even have a high school diploma?

I'd need something really interesting on there to make me consider it, and even then I doubt it'd get through an HR screening.


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).

Having spent a long time in the post-9/11 downturn sending out resumes with a college degree and plenty of work, most places will not give you a shot at an interview. – David Thornley Oct 21 '10 at 14:29
I can only speak from my own experiences and that of the companies I work for. It helps if you call a few days after sending out your resume. – Rachel Oct 21 '10 at 14:59

Yes, build up that resume and portfolio. Build a name for yourself and become known within the community. These are all steps you can do that will help fill the gap of education.

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.espinal Oct 21 '10 at 10:41
Write software at home... either open source or just private projects. – Matthew Whited Mar 30 '11 at 11:26
@Matthew Whited: Most companies aren't interested in what you did at home on private projects. Open Source will be a lot easier to break into for a non-HS grad (all they're looking for is somebody who'll do the job right), and is something a company might be interested in. – David Thornley Mar 30 '11 at 15:02
I'll be sure to inform my friends that are devs and only have their GEDs – Matthew Whited Mar 30 '11 at 15:03

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.

[fwiw, I'm in the United States]


At my last job we had folks who had degrees and folks who did not have them.

At my experience there, the folks who didn't have degrees on average had more technical ability, but they didn't have the work ethic to back it up.

That's a tough one to prove in an interview but easy enough to root out after the first few months.


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.


In some minor companies in my country (Brazil) you can get a job, but due to some laws you'll get difficulty to be promoted, because to work in some positions, the laws require some education degrees.


This is what sprang to mind pretty much immediately:

  1. Start freelancing. Plenty of sites out there. (Rent a coder etc.)
  2. Document what you produce there.
  3. Keep in touch with people who've hired you. Maybe they're looking for someone to work full-time, or know someone who does.
  4. Find a FLOSS-project to hack on.
  5. Small companies generally aren't as concerned about formal qualifications as large ones. As long as you get the job done.
6. Produce software that does something dumb as rocks but hard for non-computer people, set up website, sell it. Example: Add-on to SugarCRM to integrate with QuickBooks to synchronize customers. You can do that, you'll make money. (see…) – Christopher Mahan Apr 12 '11 at 19:39

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.


Personally I wouldn't hire someone without a masters degree, unless they could document some relevant experience and had very good references.


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