

Ask HN: Software Engineering with no post-secondary degree? - jamesbrewer

So here's the deal: Right now I am in college and due to a maelstrom of recent events including difficulty in non-cs and -math related courses, I'm really not sure that I want to continue studying at a university next year.<p>While I thoroughly enjoy my computer science and math courses, I find that I just can't keep up with the class. Take my calculus-based physics for example. I'm sure that, given enough time, I could make it through the course and learn everything I need to know; but because I am working and taking 4 other courses, I just don't have that time. I feel that I would benefit a lot more from teaching myself these courses one at a time, i.e. finishing Calculus before I take calculus-based physics. I probably should have registered for the algebra-based course, but it's too late to do that now.<p>What kind of repercussions (career-wise) would there be if I decided to drop out of school and learn on my own? I might consider coming back after a few years of working full-time, but I really don't know. Is it worth paying for school if I don't feel like I'm gaining as much as I can from it?
======
pcvarmint
I have no college degree, yet work in jobs surrounded by Ph.D.s. My expertise
is valued just as a much as theirs is, and we don't throw titles or degrees
around as status symbols. I've been mistakenly addressed as "Doctor ..." on
several occasions, either by professional societies or by colleagues who
didn't know I didn't have a degree.

I'm 41 and started programming when I was 10, doing assembly language by the
time I was 15. I have played with digital and analog electronics since I was
5. I taught myself calculus and numerical analysis at 12. I was, and would
still be, interested in computing, whether I got paid or not. If you have that
level of passion and self-learning, you can succeed without a degree.

I dropped out of college after 2.5 years. I worked at a gas station for 5
years while continuing to do research and programming at home or during
graveyard shift. I finally got a job at a computer company due to a friend.
Once you get in the door, if you're good, you can make it.

I've had bad managers in the past who've kept my salary down because I didn't
have a degree, and said so in the performance review (one actually used the
word "glass ceiling"). I've had other managers turn around and pay twice as
much and not care at all about the degree. Given my age and 15+ years of
experience in a very specific field of computing, the degree issue doesn't
come up much anymore like it did when I was in my 20's and 30's.

Some will not consider your application because you don't have a degree. Some
(especially HR types) do it because they don't trust people without degrees.
Others do it because they must put a degree requirement on the job due to
obscure clauses in labor regulations, e.g., H1B visas, NSF or other grants,
or, under some interpretations of US Labor Law, even the "professional"
designation for salaried (overtime exempt) positions. Still others do it
because they want to set the bar high for candidates, and even if you're more
experienced than a Ph.D. fresh out of college, they cannot consider you
because then they would have to consider everyone without a degree or face
discrimination charges.

That happened to me once -- the hiring manager checked references and knew I
was legit, but said that since the originally posted job description said a
degree was required, they could not consider me because their HR department
was strict on anti-discrimination laws. Another company was working out how to
get around the degree requirement but I got a position at another company
before they could get back to me.

Someone said "if you don't finish undergrad, you can't go to grad school".
Actually that's misleading. You can get honorary Ph.D.'s, or get hired as
research staff, if you've demonstrated enough contributions and have a
professor who will be your advocate. Not saying it's easy though.

Given the growing backlash against college education (see College Conspiracy:
<http://www.youtube.com/watch?v=VpZtX32sKVE> ), and the economic climate,
employers seem more willing than before to consider non-degreed candidates who
are perfect matches for the job. But they must be very good matches. A
computer generalist who is just out of college or never finished college, and
doesn't have any special skills related to the job, faces a much harder time
now.

~~~
jamesbrewer
You know, it's stories like this that inspire me but are, at the same time,
somewhat depressing. They make me think of all the things I WISH I had done.
I've always considered myself to be capable of doing whatever I want to do,
but I've also been pretty lazy. My mom never made me do my homework while I
was growing up and it took me until my second year of university (this year)
to realize that I really do have to work to get what I want. I like math and I
frequently hear stories about people who leaned calculus when they were 11,
12, or 13 years old and I wish that I had even bothered to take some AP math
courses while I was in high school. Now I am, quite literally, paying for my
mistakes.

Kudos to you friend.

~~~
pcvarmint
My drive was intrinsic, not extrensic. I could have cared less about my
parents' and teachers' approval. I did it because of interest in the subject.

Full disclosure: At age 40, I was officially diagnosed with Asperger's. So my
case may not be normal.

And by mentioning those "accomplishments", I am not intending to brag. To
those like us, the predictability and order of math/CS way more than offsets
any difficulty in learning it. And I had problems in English too. History too.
Political science was easier, since it was framed in discrete terms
(left/right), although personally I am an independent small-l libertarian.

It depends on a large degree of luck, to land where you do. Not everyone in my
position will land the jobs I did, due to chance luck. But it is not totally
due to luck -- developing connections and establishing a reputation is
important.

I wish you the best.

------
willpower101
First, Let me say that chancing out of my eecs degree after putting in all the
pre-reqs and entry level classes was one of my biggest regrets. While years
ago I was coined as a true autodidact by everyone I know, learning on my own
is indeed slower than class because life distractions make it MUCH easier to
stretch something out into months instead of weeks.

Second, unless you have a plan don't drop out. The best advice I've ever
received, which I routinely ask myself all the time, is simply, 'Do you have a
plan?'. If you've some clear cut goals that you don't need college to achieve
then by all means pursue them. But if you don't, that degree will help you lay
down the foundation for a path. More specifically, it will open doors for you
and is a great networking opportunity.

Lastly, you sound like you are in calc based physics and calc I at the same
time? I did this too. Go to the tutoring center in your physics department and
get a grad student to help you. The amount of calculus you need to know for
physics I is really simple stuff. Don't bother yourself trying to learn _why_
it works, but rather simply learn exactly when and where you need to apply it.
By the end of physics I was integrating velocity into position on tests
without any clue why it worked.

------
zubr1768
Define your goals and passion. What is it about "Software engineering" that
you like the most? Not every kind of software engineering work necessitates
all the things you are required to learn over the course of a CS degree. But
of course, some do, and some jobs will require you to have a degree. Some
won't.

I don't have a great answer for you other than, 1) focus on becoming more
efficient at your studies and/or 2) realign/cut back on your course load so
that you can actually learn and retain the information. Short of that and
you'll just be wasting your time and money.

BTW I have posted a similar question here, coming from a slightly different
perspective of one without a CS degree who has somehow wound up in
programming. I create some excellent solutions that are valued by others, but
wouldn't presume to call myself an "engineer," and I'm fine with that.
<http://news.ycombinator.com/item?id=3063828>

------
jfb
tl;dr: You can make a go of it.

I've done really well for myself with 2 1/3 years of a degree (in Chinese!) I
started off dropping out of Chicago for money reasons, and lucked into a
sysadmin/programming job with the University. I was able to move laterally
until I found something that fit me better than my original gig; I stuck it
out for a few years until the private sector started returning my calls.

I am largely self-taught, which has its advantages and the obvious
disadvantages, particularly as how I am the sort of learner who needs the
social aspects of classroom interaction to really pick stuff up fast. But I
discovered that taking jobs with people who are much smarter than you, and
then taking the time to help them with shit work, is almost as good a learning
environment as a classroom.

I've bounced around a lot; but not since the first couple of jobs has anybody
asked about my incomplete degree. It's a results orientated business; I know
that there are jobs that I won't be able to get -- and, to be honest, that I
wouldn't be good at -- because of my lack of a formal CS education; but the
jobs that I get, I work hard, learn new stuff, and _get shit done_.

But I've worked on really cool stuff, learnt _a lot_ about digital video,
started a company, and now am comfortably employed in a position where I can
use the social and technical skills that I've developed to really make a
difference.

 _EDIT_ : One important thing you need to figure out is how you learn best.
Some people clone a github project and just learn Lambda Prolog by reading
source; some peruse books; I've meet some wizardly hackers who seem to know
every possible thing already. As I said above, I need to talk about stuff to
really get it to stick, but that's me. Know how you learn and put yourself in
a position to maximize your opportunity to learn, because everybody is dumber
and less knowledgable than someone else.

------
mathattack
This sounds dumb to someone dropping out of school, but if you don't finish
undergrad, you can't go to grad school.

Can you get a tech job without a degree? Yes

Can you advance without it? Yes

Will there be non-tech folks that skated through easy majors that look at you
askance without it? Yes

But something to consider.... Undergrads are cattle in Most schools. They pay
the bolls that keep schools going, but aren't what the professors care about.
In grad school I learned and enjoyed the coursework 10x over undergrad. But
you need that undergrad paper first. If you can't afford undergrad, do it at a
public school.

~~~
jamesbrewer
I think I might want to do a grad degree at some point, but I think that is
mostly coming from the part of me that wants to impress everybody else.

~~~
mathattack
It's a lot of time and money to impress people. Buy Italian sports car
instead. Grad school should be about intellectual curiosity first, connections
second, and brand third. Unless you get an MBA, in which case the order is
reversed.

------
tjr
Some jobs artificially demand a degree, as in, the HR department will file
your application in the garbage if you don't have one. There may be other ways
into those jobs, but to a first approximation, you "need" a degree.

And some jobs flat out don't care about degrees, just so long as you can do
the work.

You might consider transferring to a different school. Cornell College, for
instance, offers a one-class-at-a-time schedule, so you could do your
proposed, "study calculus, then study physics" sequence. And Olin College is
reputedly very good for teaching engineering-oriented subjects.

------
shithead
Depends on what you want to be. An artist or craftsman needs a good
apprenticeship, or perhaps to build a good portfolio, and can easily blow away
academic credentials.

But an engineer should have the chops one gets from doing the academic
obstacle course.

Good luck.

