Ask HN: Is it possible to get a tech job without a degree?

45 points by rblion ↗ HN
Serious question. If you have a story, success or cautionary, please share.

91 comments

[ 4.3 ms ] story [ 165 ms ] thread
I have two degrees.

http://www.templeos.org/files/ASU_Transcripts.pdf

B.S.E. computer systems engineering

M.S.E. electrical engineering

-----

I had 5 courses in assembly language. CSC226 CSC326 CSE421 CSE422 CSE523

I had no course in algorithms.

I had a course in compilers and operating systems and computer graphics.

I had courses in digital logic and digital signal processing.

I am an expert in system programming, like operating systems.

I think the best answer you're going to come away with from here is this: Yes, it is possible, but it is more difficult. YMMV.
That's probably true.

Also: Just saying "tech" makes it hard to discuss. Tech ranges from IT (Helpdesk throughout very advanced network architecture), to Software engineering (Websites (html) to integrated systems, to application development), to many more obscure and loosely-related fields.

And not all "tech" relates to computers traditional "engineering" has non degree entrance options.
I think it's possible if you can prove your knowledge with very good references. In my opinion, it's more important to get the job done instead of having a degree but no clue about the work you are supposed to do.
I'm occasionally a hiring manager for engineers, and yes, it's very possible to get a job without a tech degree. Tech interviewing usually has four major steps: 1) sourcing candidates, 2) filtering resume candidates, 3) technical phone screen, 4) in-person interview.

For most companies, having a degree only matters in the first two phases, and ability/interviewability matters in the last two.

Experienced engineers avoid getting filtered out in the first two phases by working through their network, which allows them to skip those phases entirely. If you're trying to break in without any experience, it's much harder because you probably don't have a network and degrees are often used as a filter during candidate discovery and resume filtering (especially when the engineering manager is working with a recruiter).

My thought would be to proactively send your resume directly to a bunch of job postings, especially ones which go to a "jobs@$company.com". Anecdotally, I know I don't get many direct resumes these days, so I'd end up reading them, skipping any explicit filtering.

I've been working as a web developer since I was 17. It wasn't hard for me, but I had an incredible good luck by then, getting my first freelance clients out of nowhere.

I'm about to get a master in computer sciences, and I really think it is worth the time (no money in my case, I'm from Argentina). It teaches you the foundations of CS and that normally improves your way to think about technological problems and problem solving. Also, it generally qualifies you for different kind of jobs.

Another great thing about studying is that you get to know a lot of clever people interested in the same areas of technologies that you are. And also, depends on your personality and the school maybe, a lot of possible business contacts.
I have one semester of college, in which I took psychology and political science.

I've worked as the lead network architect for a large ISP, as a developer and then lead developer of a network security tool, as a security researcher (I have a pretty decent cite record and a fun list of universities with courses that have taught papers I wrote), as a 2-time startup founder, the first of which was VC-funded, as a lead developer for a large-data Internet backbone monitoring system, and as a product marketing manager for several years. The shortest of these roles was 2 years; the longest 8 (and counting).

No. You do not need a degree. Early on in my career, I was asked for my GPA and then my SAT scores, by HR, after passing a job interview on Wall Street; I declined to continue the process. I've walked from all similar requests ever since. Not only do I think it hasn't cost me, but I think it has also helped me, by keeping me out of jobs at companies that suck.

If you're going to skip college, be very serious about your craft. Opt for difficult jobs. Tune your career so that you are always on the verge of being overwhelmed. Read like crazy; particularly, read papers, not blog posts. Learn a systems programming language and a functional language, then stop with the languages and start building things from papers. Be careful about getting wedged into things that are just barely programming, like CRUD web apps and iOS design. You can do good work in those settings, but the median project is (technically) boring. You know something is going wrong when you start promoting your unit test or A/B testing tools.

Watch out for IT. IT for people without a degree is a trap.

Consider staying in school long enough to pick up math. Math didn't matter much in my first 10 years or so, but it matters a lot to me now, and doing it on my own is a slog. I would pay a lot of money to be taught serious linear algebra and calculus instead of hacking and slashing my way through the subject on my own.

>Watch out for IT. IT for people without a degree is a trap.

What do you mean? You just talked about being in IT without a degree.

(comment deleted)
IT pays well out of the gate but offers virtually no path for advancement --- not in the sense of "are there better titles to be had" (sure, "Senior IT", "Manager, IT", "Director, IT") but rather in the sense of technical challenges and opportunities for learning and specialization. 5 years down the road, developers are doing significantly better on compensation and have essentially boundless opportunities (including, if one burns out, doing IT work); on the other hand, having 5 years of IT on your resume and no degree means it can be very hard to get a job outside of IT.
Sounds to me like the difference between IT and IS. You're either "the IT guy" or you work in IS doing real things. Not just rebooting a managers PC and installing printer drivers.
(comment deleted)
Are you posting from the 90s?
Helpdesk, desktop support/field service, and Geek Squad still exist. You tend not to see developers or architects doing that work for a living.
Wait, so people think "IT" means desktop support? Network architect is IT. Sysadmins, network admins, "devops" (remember when they were called sysadmins?) are all IT.
IT is about the technology. IS (information systems) is about the system as a whole, which includes the people. IT is focused on making technology work, IS is focused on using technology to improve a process.

IT is a part of IS, but IS is bigger than IT. If your job focuses on fixing technology (such as computer repair), you're working IT. If your job focuses on processes and people (such as software development, information security, business enablement, etc), you're working in IS.

For your website, the IT portion is the server it runs on. The IS portion is the IDE you use, your development environment, the server, your language/framework, the browser, your developers, and your customers. That's the information system as a whole that allows your website to work.

But yeah, when I hear "IT guy", I think desktop support. People in IS outside of support tends to refer to themselves as something more specific than general IT: I'm a programmer/developer/software engineer. I'm a network administrator. I'm a systems architect. I'm a security engineer. That's just my experience, and that's what I interpreted the comment "stay out of IT" to mean. Desktop support doesn't tend to have much room for growth compared to careers in IS.

Ok, but your perception of IT as desktop support doesn't change reality.
Language is a reflection of the idea being presented. If your audience perceives IT to be desktop support, then using IT to mean desktop support is absolutely correct and does reflect reality. This is my interpretation of tptacek's comment, and from his posts afterwards it seems I am right. Other comments here are saying the same thing, that IT is a "computer janitor".

This might be different in other English-speaking markets, but at least in this thread, that is what is being expressed. It doesn't matter what term is being used, that is what the parent was trying to get across. Don't become "the IT guy". The definition of IT guy he was using is "computer janitor".

Nobody said anything about "IT guy", he said "IT". A field, not a person.
"IT" is now being used more often to mean "computer janitor" than all the jobs related to computer/system operations. It's a bit of a shift in the terminology.
I run an IT shop for small construction companies - and I'll cheerfully reboot PCs and install drivers.

Frankly, it's fun:

It's a good way to meet interesting people... and if I listen very carefully I'll find an unmet business need that I can help with a custom database or an app.

It sounds like you're more of a businessman than an IT guy. I used a job in IT to leverage my way into my current role of information security by listening to the needs of my company and offering my services doing way more than security work.

I don't think anyone would disagree that being able to find a need and sell yourself as the solution are two of the biggest assets in finding success.

If I were asked for a GPA or an SAT score at any job interview, I would walk as well. It's completely irrelevant, and highly dependent on the school you went to (is a 4.0 at DeVry better or worse than a 3.0 from CMU?)

It sounds like you're a little older than a person who would be debating going to college, though. I had a coworker that trained me at my current job who only had a few classes at a community college. Being hired a decade after him, it was required that I have a bachelors degree. Things have changes rapidly in the past few decades in terms of HR expectations at larger companies. I'm not trying to detract from your advice, because I think you're absolutely correct. I'm just wondering if you would be able to replicate your success today.

Maybe it's hard to get a job at Google without a degree (at least, if you're not a software security person). Don't work at Google. There's an industry full of small software startups and an open war for talent right now; start your career at one of the shops smart enough not to pay attention to college records. For every successfully-executed role in your resume, it becomes progressively more and more insane to screen you out based on your degree. Since the starting state on screening by degree is already "pretty crazy", it doesn't take long to make college irrelevant.

But again, to make that work, you need to be serious enough about your craft that you can demonstrate ability clearly.

"If I were asked for a GPA or an SAT score at any job interview, I would walk as well. It's completely irrelevant,"

Its highly relevant if they're going for the stealth ageism thing. GPA is an age proxy. Due to grade inflation, the "respectable" GPA I earned in the 80s would in the 10s mean I was at least highly unmotivated if not outright mentally impaired. There was a time, a long time ago, when mid three something was a respectable accomplishment.

Superficially, if you ask an accountant job applicant how much their first car cost, after getting their first real job, that sounds wise. After all, the more expensive, the better they must have been at budgeting and money management, or at least they were ambitious when filling out loan paperwork, and that sounds like a great skills for an accountant. However obviously due to inflation all it will do is prioritize cheap young meat ahead of older more expensive. My great grandfather's first postwar 1946-ish caddy was only about $3K, therefore by numerical metric definition he'd be only 1/10th the accountant compared to a 2013 grad buying a modern commuter car.

One thing I would add to that, before walking away talk to the hiring manager about it. HR is just following some set of guidelines, and in many cases a good manager can work with them to make the problem go away. Think of it as a test for your prospective manager as much as anything else.
I found calculus tricky until after I had read Neal Stevenson's Baroque Cycle. Once I knew why there were two different notations and had a bit more of the history behind it, I found it a lot easier.

I often think history departments should get more involved in the other subjects taught at school so that you get a bit more perspective on why things are they way they are.

"start building things from papers."

Really liked what you wrote and found this particularly interesting. Can you elaborate on why you think this is important and how you generally go about it (finding papers, choosing what to code, etc)

There are rapidly diminishing returns for picking up new languages for the sake of having multiple languages.

There are accelerating returns for knowing one or two languages so well that you can build nearly anything in them.

There aren't diminishing returns for learning new concepts, new algorithms, new distributed systems protocols, new problem domains. You can keep implementing things from papers indefinitely and you will keep getting better and, potentially, more valuable.

How should one go about finding interesting white papers to implement?
Go to the websites of well-respected university computer science programs and browse their research groups; for instance, go to MIT's site, and then check out PDOS. University research group sites usually have indexes of projects, each of which has a bunch of papers backing it. Read the web pages to see if the project is interesting, then read the first paper, then decide whether you should get your hands dirty with the concepts.
Awesome advice, thanks.

> Math didn't matter much in my first 10 years or so, but it matters a lot to me now

Can you please expand on what kind of math matters a lot to you and your work now?

> I would pay a lot of money to be taught serious linear algebra and calculus instead of hacking and slashing my way through the subject on my own.

Why not just take it at a univ. then?

My schedule isn't compatible with a university math class, which is what I think a lot of people who skip college are going to find out when they try to pick things back up. I can dedicate the requisite number of hours to a course, but not in the structure a course demands.

Regarding the importance of math to my career now: cryptanalysis, signal processing.

> I can dedicate the requisite number of hours to a course, but not in the structure a course demands.

This seems like a common situation, and I am almost surprised it is not adequately addressed yet.

I'm ready to shell out for it; I'd pay more for linear algebra than, say, a MacBook.
What doesn't work about courses that are already online and complete (say, Open Courseware, most of the Coursera stuff)? Any that do work? I run into the complement of your problem reasonably often - trying to point technical people to material to help them fill some mathsy gap they need filled for work.
> Learn a systems programming language and a functional language

Not trying to start a language war or anything but would really appreciate learning what you (would have) started with especially on the functional side of things.

Read and implement papers is extremely good advice. It also applies even if you have a degree. I have a BA in math but in the last 6 years have found myself in positions that usually require a phd. And that is not an option with a family and no university nearby. The ability to read academic papers and understand them and turn them into something useful is very valuable.

One thing I would add is to learn how to write, as tptacek obviously has. And like the reading material, not internet comments or blog posts. Learn to write real technical reports and proposals. Many engineers, in particular software people can't write worth a lick.

I have to agree about going for the difficult jobs. I too do not have a degree and I prove myself by killing the hard ones.
Without a degree? Sure, but you're going to have to put the time in either way.

I know lots of developers, great developers, who don't have a degree. The degree may be required some places but most it's just "required". One of the best devs I know misspelled his main tech (at the time) 3 different ways on his resume. You're going to have to know your stuff but it's completely possible.

Absolutely.

When hiring, i'm much more inclined to take someone straight out of school (or someone currently, I dunno, working in a bar or not working at all) who has some good code up on github or some personal side projects over someone who has a degree and no other apparent interest in coding.

Here's my advice.

First, some context. I have degrees in math and experience in computing. I am now part-owner of an established company, and occasionally we recruit. The following is my experience based on some successful hires, some unsuccessful hires, and many, many CVs and interviews.

When I look as a CV I want to know what value you'll bring to my company. I want to know why you'll be worth the money I'll pay you, and how well you'll fit. Yes, there was a job description, but your role will change, develop, and in the end you may be doing something completely different from what we originally thought we needed.

So I want to see, quickly, what value you claim you'll bring to my company. That means you'll need to have thought about that, and tailored the CV to match not just the job description, but the homework you've done on what we do. In particular, that makes it hard to get a job via a recruitment firm.

After that, I want to see the evidence that your claims are true. Do you claim to write clear, usable, effective code? Show me some code. Do you claim to work well with others? Tell me of specific occasions that I can verify.

Sometimes you can't provide evidence, and I understand that. Make it clear that you understand that I will somehow need to verify your claims. Be sympathetic - put yourself in my place, and help me see you as a potentially valuable asset.

And all this is true even if you don't have a degree. State that you know things, and then provide evidence. I've employed people with and without degrees, and it's been interesting to see how different people have worked out.

tl;dr - No, you don't need a degree. Yes, you can get a job, but you need to provide evidence of value other than by quoting that you have a degree. Sometimes that's better.

Edited for typo and word-crafting.

Interesting! I'm building a way for people to apply for tech jobs by showcasing their experience, and skills backed up with evidence (www.accredible.com - just posted a Show HN after seeing this thread. Edit: reached the front page!). It sounds like your hiring thought process matches this philosophy!
The challenge with all these things is to make sure that the evidence hasn't been faked. That's why we end up asking people to do some simple tasks in house, before then even considering proper pairing sessions on real work. We had a candidate who actually surreptitiously did a "phone a friend" wile allegedly producing some trivial code to do something FizzBuzz-like.
Absolutely! I would reach out directly to startup companies hiring that you're interested in working for, who are more apt to base your application on coding projects and a technical interview. Large, older tech companies with HR departments are probably a lot less likely to look at an application without a degree.
I suspect ~50% of HN could confirm that but.. just one cautionary point, not having a degree could make it significantly harder to work overseas, if you were to want to do that. For example, if you were outside the US and wanted to go to the US on an H-1B, it's possible without a degree but somewhat harder.
It goes the other direction too. Canada, like many countries, has a point system. Its been a long time since I considered an offer in Canada but its a simple game theory optimization puzzle, to get the same number of points I could either get a degree, or become fluent in French, or work X years in some field or another. Programmer types tend to be pretty good at numerical optimization, think of it like a RPG game with various tradeoffs to level up.

One interesting thing to research for either immigration or jobs in general is do you get a CS degree or any STEM degree or any degree at all in any topic?

You're probably more employable if you're better rounded, so even if you are going IT instead of bench work, a Chemistry degree might help you get a job in IT at a pharm company more than an actual CS degree. Ditto finance if you want to work at a bank, etc. Employers love already trained subject matter experts.

WRT immigration this is a gross generalization but you get more points for "any" STEM degree... so if you're not going to learn anything in an IT type degree, why not get the physics degree you always wanted, immigration isn't going to care.

I've been employed as a software engineer since age 19, and I'm almost 33 now. I've worked for companies like MetLife, Tommy Hilfiger, Yahoo!, and IMVU, and my lack of a degree has never been an issue.

It helps that I was always a hobbyist (I started playing with my dad's Commodore 64 when I was 6). For the most part, everything I learned I learned by building stuff. I dropped out of college when I was 19 because my financial aid fell through, and instead of continuing with my bachelor's degree, I decided to enroll in a 9 month program at a technical school. That allowed me to fill in some of the gaps that my own tinkering didn't really cover -- things like object-oriented programming.

After that, I got my first job programming online surveys in Perl, and I've been employed ever since. Getting your foot in the door is the most important thing. You only need to find one person who believes you can do the job, and if you're intellectually curious enough, you can easily learn by doing. My first job was with a small business that didn't have anyone doing any programming, so there was nobody to tell me I wasn't good enough during the hiring process, so I was able to fake my way into having a job that gave me the employment history to work my way into bigger companies and higher salaries.

The Tech industry is one of the few industries where you can do very well without a degree. I know people off the top of my head making > $50k without a degree in the Midwest US. (so, say, $91K in San Fran using WolframAlpha's cost of living adjuster.)

Like most things there are some caveats.

It will be harder to get into the top tier tech companies, Amazon, Microsoft, Google, etc, hire people without degrees, but not nearly as much as other organizations on the other tiers. Similarly, there are certain high frequency low latency trading firms that won't look at your resume without some MIT connection.

Some places will hire you with no problem, but have rules that will eventually cap your salary. These are usually government offices, state-run universities, etc. (For example, I know of universities where no programmer without without a master's degree can get past tier XYZ)

I just helped start LaunchCodeSTL.com with Jim McKelvey and a few others here in Saint Louis. Many of the people we talked to came from random backgrounds and the people who have shown they really want a tech job have been absolutely successful with it.
Serious answer: Yes, experience matters more than credentials.
I support this. If you got past projects to show you can get a job even with largest companies out there. They might be pushing you towards eventually getting a degree once you work for them though.
I would hire any developer who could point to his or her prior work. Build something I can see for fun, contribute to open source. I would ask you why no degree in the interview just so I don't hear something like "I ain't into no book learning."

One more bit of advice. Own the "no degree" mystic. Make me believe it was by choice, not by happenstance.

Absolutely. However, be mindful that along with a degree comes a certain amount of potential networking/professional relationships that you may need to push to replicate as well outside of the university environment.

Demonstrate you are a creative and tenacious problem solver and you will be valuable, degree or no degree.

Yes, but I've seen cases where companies use said fact to their advantage and dock the employee's pay compared to those who did have a degree. At least in the US, there are many places where having a degree not only helps in finding a job but provides a salary baseline.
I stuffed up my education for one reason and another and never got a degree. When I eventually had to do work I started out de-stapling things so that they could be scanned in. I did this for about 9 months - after 3 months my boss actually got me a destapler so I didn't have to use my fingers.

BUT, I saw that he had an Issues list in Excel that he would spend hours fiddling with. I wrote a bunch of VBA for him to make it easier to deal with and he was ecstatic. I managed to use this as a sort of portfolio and got a job that was all Excel and MS Access.

I convinced those guys to let me do their website, and used that as my next portfolio to get into an actual software shop. I worked my way up the ranks there until I was the highest paid guy, before moving to where I am now as head of development.

All you need to do is:

- work hard, which is easy if you're actually interested in it.

- continually think, "how does this benefit me in getting my next job / further my career?" This is a constant exercise.

If it helps, I do have a degree in mechanical engineering but am working in software. For all its problems, a Github portfolio is a very good way to show what you know.
I got a graduate position earlier this year in an ad-tech company, coming from 10 years in a completely unrelated industry and without a degree (I'm 33 and in the UK).

I worked through some Codecademy courses, developed my own site and blog and got to grips with things like Ad-Sense to get a feel for the ad-tech side of things. I pushed my self-taught achievements and motivation in my CV as well as my 10 years prior in a stable corporate environment.

I had to take a pay cut to get my foot in the door, but within 6 months I was picked for another team and was back up to my old salary. I'm now in tech support, but not IT specific (it's more APIs, datafeeds, SQL and site debugging). I get plenty of exposure to the underlying company tech and there are a lot of avenues for advancement in the future so I'm really happy I made the career jump.

I know two people who are excellent programmers and have stable jobs. One of them started a Math degree, but dropped out after the first semester. The other one has a degree, but in Philosophy.
I'm a self-taught programmer, started aged 10. Didn't go to university because by the time I'd finished school I'd had enough with education and I'd already started getting freelance work.

That was nearly 20 years ago now (I'm 38), and in that time I've worked as a developer on 3D graphics engines, real time physics engines and core tech in the games industry (for about 10 years, one project with Shigeru Miyamoto!), and then left that to start my own medical software company (8 years ago).

I now employ developers. And whilst I don't ignore the 'qualifications' section of a CV/resume, I really don't see it as remotely vital. I'm far more interested in whether you have a passion for the job, past projects etc.

So yeah, it's possible to get a tech job without a degree. Some places will insist on it. But they're not the places you want to work.

I'm technically a high school dropout (one gym class shy; they required 4y and I didn't have a chance to get third-party credit for those, unlike other classes,...), as well as an MIT dropout. (I dropped out of HS to go to MIT early, then ran out of money and couldn't pay for MIT, and also had a chance to do an anon ecash startup if I dropped out, so rather than doing ROTC, I did the startup, and never submitted any paperwork to the HS on the degree.

It's never really been an issue. I variously say "some high school", "some college", and "some grad school" (due to later classes...) on demographics forms, depending on context.

I still vaguely want to get something purely for immigration-points reasons in various countries. There are European programs at ICL and LBS to get an MBA without reference to undergrad; there are exceptional cases where one can get into a PhD program without reference to undergrad. To finish undergrad itself would have a high time cost (since it's been so long, potentially 2-3y, especially if I wanted to do aero or nuclear eng, and would need to refresh heavily on calc/physics), but maybe.

Startups generally don't care for any individual role, but it might influence the overall arc of your career.