Can programmers without CS degrees find jobs?
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?
58 comments
[ 4.6 ms ] story [ 1458 ms ] threadIt's very easy to get tech jobs with no degree.
We teach Ruby, by the way.
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.
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.
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
This is the key point to remember I think. Well put.
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.
Good luck.
Very few poets and writers have a degree in literature.
== 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.
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 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.
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.
People who are self taught and self motivated tend to go futher than CS graduates. Reputation is the key thing - get a good one :)
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.
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.
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)
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.
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.
These are total costs, not just tuition.
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.
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"
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.
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.
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.
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.
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.