
Can programmers without CS degrees find jobs? - tommaxwelll
Hi HN,<p>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?<p>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?
======
malux85
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

~~~
user24
> 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.

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

~~~
lutusp
> 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.

~~~
jessedhillon
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.

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

~~~
jessedhillon
Allegedly, yes: <http://students.berkeley.edu/finaid/home/cost.htm>

These are total costs, not just tuition.

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

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

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

~~~
tommaxwelll
I've heard about you from friends. Applying.

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

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

------
OnesAndZeros
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?

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

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

------
ibdknox
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 :)

------
benkross
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

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

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

------
eckyptang
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 :)

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

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

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

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

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

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

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

~~~
matthias_k
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.

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

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

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

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

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

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

~~~
fritzvd
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.

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

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

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

------
albumedia
Yes you can! Just build something to show :)

------
darknoon
Yes.

------
kichik
Yes.

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

~~~
Nathandim
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?

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

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

Very few poets and writers have a degree in literature.

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

