Hacker News new | comments | show | ask | jobs | submit login
Can programmers without CS degrees find jobs?
25 points by tommaxwelll 1725 days ago | hide | past | web | 53 comments | favorite
Hi HN,

Just a few months ago I started teaching myself how to program (JavaScript, JQuery, HTML, CSS, so far), so I'm nowhere near experienced enough for a job, but I was curious -- can developers without CS degrees find jobs? Is there a stigma in, say, the Silicon Valley around people without degrees, or is it lax?

Also, if I were to try and get a job in the field down the road (still, without a CS degree), what would be the best way to apply? With a portfolio/Github profile with my work?




Yes. I started off learning PHP/JS/HTML/CSS in my own time. It took me 6 months and I got my first webdev job.

You have probably heard that it takes 10,000 hours to master a craft. That's about right. I realised that without going to university I was probably missing about 6,000 hours (4 years?) of experience. So I worked double overtime and built products so that I could get 6k hours under my belt.

Then in the job interviews I said "Look what I've built"

My lack of degree has instilled an exceptionally strong work ethic, because I'm constantly trying to prove myself. I'm always over compensating my learning new things and having a real drive and hunger for development.

I'm now a tech lead at a developer company. I have an iPhone app in the app store (Insider Guide), 2 weeks ago I setup a Java (Red5) video server for live broadcasts for a billion dollar company. In my spare time I'm working on a Python ( + websockets) prediction engine.

You can get a job without a degree, but you gotta do the same amount of work.

Good luck friend, never, never, never give up


> You can get a job without a degree, but you gotta do the same amount of work.

This is the key point to remember I think. Well put.


This is very inspiring. One of the better replies to encourage OP to continue on his current path


As a developer without a CS degree (or any degree) my experience has been mixed. Unfortunately, I'd say the cons outweigh the pros...

Pros:

-It's proof-positive you are capable of learning on your own; a very desirable trait.

-No/fewer student loans to pay off. A bigger plus than you could imagine.

-Less debt, faster hands-on experience, and the general experience of being scrappy leaner might mean you're better founder material. Take that with a grain of salt tho.

Cons:

-It will make getting past HR screens more difficult

-It will be used as an excuse to pay you less money

-It will make it harder to obtain a promotion

-Lacking a strong theoretical foundation will likely mean you're under-qualified for some interesting jobs. This one is more subjective- maybe jobs like that require core CS skills aren't that compelling to you.

-Another subjective one: A lack of undergraduate math may make learning about certain topics more challenging. Certainly not impossible but definitely more challenging (3D, ML/AI, physics come to mind)


> Another subjective one: A lack of undergraduate math may make learning about certain topics more challenging.

You're making a common but often mistaken assumption -- that "unschooled" equals "uneducated". The fact that a person doesn't have a degree doesn't mean he knows no math or physics.

> It will be used as an excuse to pay you less money

That's certainly true. The unanswered question is whether the increase in salary accompanying a college degree equals the cost of student loans to get the degree in the first place.


This is my back-of-the-envelope speculation:

Suppose you go to UC Berkeley for CS. A nice, round, accurate number for that is ~$52,000/year. Suppose you work during for two of those years (I did, not everyone can), and your overall obligations are $208,000 for four years, less your wages -- say a meager $18,000/year. Also, you would have had to pay rent whether you went to school or not, so that is not truly a cost of the education. Let's say your rent is a $900/mo, so ~$11,000/year. Plus books and supplies, which may be as high as $2,000/year.

So we have roughly $140,000 for four years of education at a top notch program.

The other part of the equation requires more voodoo. I don't know off-hand what the numbers are for educated v. unschooled programmers. My anecdotal evidence for Cal alums is that entry-level offers are mostly in the $80-90,000 range, with a few as high as $100,000. Within five years, everyone I know of is solidly within the $120-$150,000 range of pay. Unless they've gone the startup route, in which case they are electing for minimal pay.

Personally, my expectation would be, having done hiring in the past and now, that there would be very few unschooled devs who could break $120,000. If you are very conservative in your estimate then, let's say the unschooled and the educated dev are separated by $10-$20,000 until year four -- so little advantage for the first four years. After year five, the educated dev pulls ahead, and by year ten is earning $160,000 whereas the unschooled dev has maxed out and is receiving only $120,000 plus COLA pay increases. So conservatively, by year ten, the gap in pay has already covered or will soon cover the cost of the education.

This also does not reflect the fact that because getting into the front door is not even possible in many places unless you have a degree, you cannot access any of the opportunities for startup equity. In my opinion, the gains in opportunity are far and away the more valuable win with a degree.

And yet, my favorite programmer, John Carmack, only attended university for two semesters.


By your numbers, someone going straight into the workforce could save about $50,000 each of the first four years the peers are in school, amounting to ~$2M by the time the person approaches retirement age. That is compared to the ~$3M that could be made by the gains in post-graduation income by retirement. However, the cost of the $140,000 education by the time you reach retirement is ~$1M so you have really only just compensated for the education with the higher income. And all that assumes that you will be able to earn more with said degree. While it certainly happens, I am doubtful that it holds true for all graduates. There is a lot of financial risk there, for what appears to be little to no monetary reward even when you do win.

With that said, there are a near infinite number of positive reasons to partake in a post-secondary education. It doesn't need to come with better jobs and higher incomes to make it worthwhile. I find it rather sad that many feel we have to resort to showing higher future incomes to even justify going.


> In my opinion, the gains in opportunity are far and away the more valuable win with a degree.

It is a very simple question of cost versus benefit. And tuition rates are rising so fast that any conclusion arrived at by calculation is necessarily a temporary one:

Washington Post: "Chart of the day: College tuition is out of control" [2011]:

http://www.washingtonpost.com/blogs/ezra-klein/post/chart-of...

A quote: " ... since 1978, college tuition and fees have been getting expensive at a much, much faster rate than even medical care"


Your choice of school greatly changes how fast you'll repay your schooling.

http://www.marketwatch.com/story/which-colleges-help-grads-s...

Additionally, going to school doesn't have to saddle you with debt, because it doesn't preclude you from working at the same time. I think it says a lot about a person if you're able to work and keep up your grades.


Does UC Berkeley really cost $52K per year on tuition? I thought it's a state funded public school. Just curious.


Allegedly, yes: http://students.berkeley.edu/finaid/home/cost.htm

These are total costs, not just tuition.


You can learn almost everything you listed as a "Con". It's not always easy, but you learn as you go. I've picked up a lot on the go and for everything else I have to be honest with myself and spend more time on it (e.g. evening, weekend or take a course).

I don't have a degree either. I just never stop learning. I'm sure it would be similar with a degree. All in all, I am doing pretty awesome. I could have a lot of different jobs if I felt like it. And no one has asked me for a degree in maybe 10 years (I turned 30 last year).

The promotion part and the HR part – I think it depends on what kind of company you want to work for.

I don't see a reason to waste away my talent in an environment which doesn't appreciate what I bring to a table. If they would rather promote someone else because they have a degree, then I am in the wrong spot.

If those are your challenges, you might work for the wrong people. Reading this makes me a little sad.


> If those are your challenges, you might work for the wrong people. Reading this makes me a little sad.

No need to be sad :) I'm actually well-compensated and have a job I enjoy. It's just that I have "been around the block" and wanted to share my trials and tribulations.


My degree is in fine art printmaking. I've had 2 jobs programming in research labs. I'm looking for work right now, and my interviews outnumber the applications I've submitted. No one has ever asked about my lack of CS degree -- instead, they ask about my art.

Be good at your work -- that's primary. Then, write well. Speak well. Do interesting things. See your varied background as a strength, not a weakness.


Why yes, yes they can. I would say 95%~ of our graduates at Dev Bootcamp do not have CS degrees. We have an incredibly high placement rate, so I can say without a doubt, programmers without CS degrees can find jobs.

We teach Ruby, by the way.


I've heard about you from friends. Applying.


Three years into your career (and even less if you're great), formal credentials will matter very little compared to demonstrated aptitude/performance.

But still: you may want to self-educate on some things that a formal CS education was sure to cover, like algorithmic complexity, advanced data structures, metaprogramming, some extra stats/discrete math, etc. – so that you don't have blatant gaps in your mental toolset that mark you as a purely improvisational/'raised by wolves' coder.

Once you do, and know your skills are comparable to peers with a formal degree, feel free to apply to jobs that may explicitly request a degree: just be ready and open with the case that you have equivalent experience. (That is: even if a listing doesn't say 'BS CS or equivalent experience', assume that it does.)


> can developers without CS degrees find jobs?

Yes, of course. The demand for qualified programmers is high, and skill and good work habits rank high in the minds of recruiters. Some places require a degree, some don't. I don't think the absence of a degree will hinder you if you're qualified to meet the demands of the position you're applying for.

If the market were full, if no positions went begging, the outcome might be different. But there's an unmet need for skilled programming talent right now.

To put this another way, being educated ranks above being schooled.


I don't have a CS degree, and I turned out all right. Ran my own company, worked at Microsoft, a startup or two, and back to my own company again.

That said, I would encourage anyone to get a degree if you have the opportunity. Sure, you can learn stuff on your own, but directed learning can save you time down the road. And the paper can help sometimes.

On the other, other hand during the times I was a hiring manager I never really cared much whether someone had a degree or not. Demonstrable experience and chops are worth more to me.


True story of what I did....

Went to college for 2 years while doing projects on the side (web apps in 98). Dropped out because I got two offers on monster.com working for internet companies and noticed that what they were offering ($52K) was more than the starting salary for my CS degree (they hired me for my experience).

After two years at that co I moved on, rolled over the 401K from there, about 10K and bought AAPL at 29 and AMZM at 40, then GOOG at 200 (if any of my kids want to go to college its paid for already, they are 10 and 9).

Moved on to work for a university (I still have no degree) and am there now making a good salary supporting my family and have lots of time off and get to work on new tech at job whenever I want with the projects I get (I keep my customers happy).

During the last two years I made 4 games for WP7 in the evenings, was first to market with them (free) and made a killing. http://CheeseZombieGames.com

My advice....FUCK THE CS DEGREE! Unless....you really really want to learn all that math and theory and other specialties (AI, OS's, Networking etc etc etc) because you are a geek at heart and constant learning is one of your passions (it is for me).

But you CANT do both, you will be horrible at both if you try. Pick one route, go with it, stick with it and do the best you can with it. Either will pay off immensely in the end, just be prolific (github sure, mobile, web etc anything).

Which will you choose?


I don't have a degree, and I've working as a web developer for 12 years, with a steady improvement in wages and benefits from year to year. Worked first in start-ups, then in SMEs, and then in IT consultancy, now a freelancer.

Absolutely no lack of work, no wage discrimination from employers either - just a few large institutions that I can't apply for because they filter candidates on the basis of a degree. I get a fair number of spontaneous offers on the strength of my LinkedIn profile, even though I'm living in a backwater.

As others mentioned on this thread, the first 2-3 years are the hardest, as you struggle to view yourself as a developer, and to make others see you as such. At that point it is quite important to have a clear vision of where you want to go, otherwise you will easily get sidetracked into alternative career paths with some CS content (helpdesk, networks, analyst,...).

Lately I've begun to feel some disadvantages from not having a degree. My theoretical foundation is patchy, and the mathematics are lacking for certain areas. I don't have a clear overall vision of CS which a degree would have given me. I do spend time studying, almost every day in fact, but it's given over to new technologies which I need on the job, not to more theoretical topics, so I'm not making much progress on the CS front.

To find a job, your best bet is to start participating now in open-source projects, and later try to get an internship somewhere for a few months (maybe even just helping out at a friend's shop or company), in order to bolster your CV. Unfortunately IT jobs are very much a catch-22 thing: you need experience in order to obtain experience. So getting the first couple of professional experiences in there is crucial to landing your first proper job.


Absolutely! At Qype we have a few very good Ruby on Rails freelancers who did not study CS (one studied design) or didn't even study at all i.e. are self-taught.

You should definitely also consider doing freelance work, because no-one would ask for your degree anyway, all that matters is your skill. From my personal experience, however, it's unusual to find A-people in software who do not have a CS degree. They exist, but I think they're the exception rather than the rule. Often people without an academic background in CS lack the understanding of some fundamental concepts that underly almost everything in computing. They know how to write code and perhaps even what code and architectural patterns are, but they apply them without understanding the inherent principles that underpin them (there's only a handful of rules for instance to which all object oriented design patterns can be reduced to, such as abstraction of change.) On the other hand, I interviewed many people with university level degrees in CS who were not good at all. So a fancy degree is definitely no guarantee for skill.

If you apply, as you already mentioned, show proof of skill e.g. by linking your GitHub account. Good companies will make you do some sort of code or technical challenge anyway, so degree or not, all that matters is that you're good at what you're doing. I would also strongly encourage you to not only read books on programming language or frameworks. Bad developers focus too much on implementations rather than concepts. Technology will be replaced after a few years anyway, but if you have a good grasp on a few fundamentals of software engineering and software architecture, you will soon realize that every new technology introduced is usually just building on insights that have been around for decades (MVC frameworks for instance) and just take a slightly different angle at things.


I've worked at tech companies of virtually every size, from MSFT to startups with < 5 people, as a dude with a German degree. Having been involved with hiring at many of these companies and now hiring for my own, I can say that it matters very little what your degree is in. Just focus on showing that you are capable in other ways. Github is certainly the easiest one to start with :)


Yes, more than ever, startups are ok with people without CS degrees or degrees altogether for that matter. There are always the startups that will have a bias toward Ivy League and top tier only comp sci, but those are generally run by biz focused ppl vs techies. It is easier in the beginning of your career to get hired without a CS degree, b/c the general quality is lesser than good startups and the headcount demands are higher. It is nearly impossible at big firms to get hired early in your career w/o a degree b/c the gatekeepers are not technical and have no understanding what they are looking at on a resume. If you have a degree in Math, Physics, Statistics or something else quantitative, it is not that difficult, but if you have an english degree or music that could pose a bigger challenge. This is my perspective as a headhunter supporting everything from small startup to enterprise firms. Just my 2cents


I'm not a CS grad and have landed a spot as the technical co founder of a company on a UK accelerator. Hustle and always learn and you will pretty much get where you want to be!

Another tip is to contribute to GitHub projects and attend hacks to build mini projects that showcase your talent. And of course write a blog.


As anyone mentioned before, if you're good and hard working you can easily find good jobs.

Besides the cons mentioned by others I would like to add that not having a CS degree or any degree at all can make it really hard for non-US people to obtain a working visa in the States.


Yes. Half of our guys have no qualifications at all or even dubious ones. What matters is that they can prove themselves and deliver stuff.

People who are self taught and self motivated tend to go futher than CS graduates. Reputation is the key thing - get a good one :)


Having a CS degree doesn't really matter.

Now more than ever you can teach yourself everything there is to know.

And showcasing your skills is easy too. Build up a good GitHub profile, contribute to open source projects, build a product and put it out there.


It'll be hard to get past HR, since non-techs attribute CS jobs to people with CS degrees. With your skill-set you can end up on the front-end. Take it little by little, start building websites for your friends for a start.

Best way to apply with your current skill-set? Be radical, a simple project suggestion: rebrand/redesign things. Take a look at how minimallyminimal got the eyes of many people with his rebrand of microsoft.

As for your question on the best way to apply for a job? Assuming you're applying for a position with your skillset: redesign their website. bring it along with your github profile on your interview.


I knew nothing about web dev 2 years ago and am now a senior sw eng at a successful company. Self taught.

Do everything you can for free, experiment with all at your disposal, and get passionate about the stuff that you don't know that you never think you'll understand. Then find a lower level eng job somewhere with kind smart people, and shadow the hell out of them every day :)

Some of the best developers I know aren't CS majors. If anyone has stigma, it's b/c they either need someone with skills to handle some insane new architecture or data handling at big scale, or they're just misinformed.


"and get passionate about the stuff that you don't know that you never think you'll understand." I went through this phase when I started out. Now I'm just fascinated by all the different languages/libraries I can learn.


I was a hiring manager and lead developer for a very well known tech company in the valley - now working at my own startup. I can honestly say that unless you have a CS degree from a top 5 school, which only earns you brownie points, I really don't care if you have that piece of paper or not. The proof is in the pudding, my friends.

I would suggest you keep learning as much as you can by building projects and learning from your mistakes. Work on things with programmers better than yourself. Contribute to open source projects.


I've not got a CS degree (or any degree actually) and I've never really had trouble getting a job in IT. I started as a junior developer and worked my way up. I'm currently 35 and working as European Director for a large company.

As people have said, the trick is learning in your own time and learning quickly in your jobs. I agree with whoever said it that there's somethings that will be a challenge because you might not have the right level of Maths (etc) but you should be able to get by as long as you're committed.


My experience is the best coders ive met who get shit done, dont have CS degrees. If they do have a degree then its either in real engineering(building hardware) or pure math/physics.


Just that coders who get shit done are often not the A-people. We had a few people that get shit done, and their code was shit. So in the end they cost us more time and money since we had to refactor large parts of their code.


I'm doing okay working as a developer here in Australia without even a high school certificate. Granted I'm working in enterprise, so I'm not exactly doing the sexiest stuff on the planet. But the money's good, and I love the work. I learned to code a couple of years ago, starting with PHP then Python, and, after putting together a few websites for my team, I managed to transition from a Operations role to an Engineering role, developing a few in house monitoring products.

Good luck.


I've spoken to several people at the large south bay area company where I work about this. They are in senior positions and all have said they would be willing to hire a person without a CS degree provided they did well in the interview and had an appropriate background other than their education. The hard part is getting into the interview room, I suppose. Feel free to email me at douglas.treadwell@gmail.com if you want to talk further about this.


Worked at Google, startups and various other places for the last 15+ years. No CS degree but over two decades of programming experience.


As a fourth (and final) year CS student, I wouldn't be surprised if a non-cs grad accumulated enough real-world programming knowledge/skills to get a job. If I were a non-cs grad looking for a career in programming, I'd just read up on some of the theoretical knowledge (algorithms, discrete math) so you can swing some of the more selective interview processes.


Yes , you can do it. As other people here mentioned degree has brownie points. But you should know about certain CS concepts like Algorithms, data structures ,databases and networks and some maths. I think all this can be done by self learning. Plenty of resources like OCW,edx or coursera available for videos lectures. Best of luck buddy.


Yes, but they must write something first. Something like nginx or redis..)

Very few poets and writers have a degree in literature.


tl;dr - Yes, it opens more options.

== Long version == Depends on: (i) the job, (ii) quality of CS degree, (iii) career ambition/plans, and (iv) companies/people/culture, (v) project, and (vi) your ability/motivation/persistence.

A lot of basic programming can be picked up over time if you are keen. For many people, structured education is helpful when learning more complex material -- concurrency, compiler construction, advanced data structures, optimisation.

Some companies insist on a CS/SE degree (esp. consulting). Some projects state that all engineers must have formal qualifications.

There are a lot of Dilbert bosses out there -- they do not know/care/will-ever-know about Github profiles. There are bosses that just want stuff done. If you ever have to work for them, a paper with shields on it helps.


Exactly. The more technical and broader hollistic look of a computers, performance is something I think a CS is expected to be mindful of. But it does not mean they all are.

I think it also depends on your drive and your niche. I am in a GIS world and am very enthusiastic about programming. Where most people are more interested in the application than in the backend. If you know your target group you can cater for them specifically and understand their problems better.

So of course it depends (as always), but to be able to program and know another field is VERY valuable I'd say. To have a CS grad in the group too, but it would serve a more specific purpose.


I never went to school and am completely self taught and have had a very successful career as a programmer. However, I started in the late 80s and things may be different now. The hardest part is the first job. Once you have experience, college doesn't matter.


Depends. If you want to work at Google, you'll probably need one. If you want to work for a startup, then you don't need a degree.

If you're a really good programmer, all of this doesn't matter.


There are a lot of CS students that can't program.


Yes you can! Just build something to show :)


Yes.


Yes.


Do realize, that even if it is harder, this is only initially. Once you have 3-4 years of experience in the field, the CS degree (or lack thereof) is irrelevant. I've had, on more than one occasion, bosses be surprised that I didn't have a degree when it came up, long after hiring me. No degree is mentioned on my resume and it never comes up in interviews-- in fact, it the last time anyone mentioned it was when I only had 2 years of experience, but I spent 2 years at my first job so it was no big deal.

The candidates I'm seeing with CS degrees are not really benefiting from that money. They still need a couple years in entry level positions to be useful. This will be the same for you... though you can start 4 years eariler than them.

Or put another way, if you just graduated from high school, if you go get a programming job-- any programmign job-- after 4 years you'll be a veteran and you'll be able to get higher level jobs than someone who goes to college and then, 4 years later, is getting entry level jobs.

The only situation this doesn't work is elitist institutions (like google) which have snobby hiring practices.

Alas, the lack of a CS degree doesn't stop google recruiters from constantly hounding me. (Each time I tell one I'm not interested, they wont' take "no" for an answer, but then when they go away a few months later a different one contacts me.)

Frankly, any company that won't hire you because you lack a degree, is a company not worth working for... because they have supplanted process and procedure for thinking.

Once you have enough confidence in your abilities to realize that, you'll stop worrying about it.


Do you believe that it gets harder by age? I mean, I'm at the same spot as the original poster but I'm 30 years old. Does it matter?


You should learn more server-side programming, pick up Java even though its loathed around here. The stuff you'll learn from it is x2000 more than JS/Jquery, html/css and such web-browser programming. Its a steep steep learning curve, but its so much more worthwhile than merely making fancy web pages.

To answer your question, no you dont need a CS degree to get a job, but you do need something to show for, and a web app like all the startups are, is not something to show for. You need to make your own full-stack application, from the back to the front, and it has to be more than a blog or todo list, and you have to setup your own server from scratch with all the configurations. Can you do that? Then you can get a job.


No, it's illegal in every state except Vermont to hire a programmer without proof of a CS degree. President Obama has promised to support a Federal law to make it illegal for states to discriminate against the self-taught but it's been stalled in Congress.




Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | DMCA | Apply to YC | Contact

Search: