

Ask HN: Am I wrong in advising my brother against university for programming? - mbrzuzy

My brother is deciding on schools he wants to attend. He is looking at University of Toronto for Computer Science. He isn't exactly sure what kind of programming he wants to do yet.<p>Am I wrong in advising him against going to university for computer science (he wants to code)?<p>Universities when it comes to CS are hardcore math (my brother says he doesn't mind math).  On top of hectic schedules, you have huge tuition fees.  And when it comes to coding, real world experience is king (in my experience at least).<p>What advice would HN give someone looking to go to university/college for programming?
======
aspir
My advice, though I don't have a CS degree, is that it's better to have it and
not need it, that need it and not have it. Sometimes you need a piece of
paper. I could get incredibly solid in my skills, but it will always throw up
a red flag that I don't have a related degree. It's simply harder for the
average person to prove "related experience" even with OSS contributions when
they could check off a box by having a degree.

Also, have him investigate multiple CS programs. Not all degrees are alike.
Some are heavy theory, as you said, and some place an emphasis on software
engineering.

As for debt, it's comparatively these days to get a moderate to high paying
job in CS. If you have a degree.

~~~
knieveltech
My experiences do not mesh with your assertions. 100% of the employers I've
worked for weighted OSS contributions (look ma, real code!) 10 to 1 over a
degree. Furthermore all of the hiring managers I've spoken to have freely
stated that a degree in CS proves nothing regarding competency as a programmer
and they typically turn aside applicants with degrees but no experience.

Full disclosure: I've been coding professionally for five years now. I have a
GED and 20 credit hours of college.

~~~
aspir
That's actually reassuring to hear. I have a liberal arts degree, so I
obviously can't lean on CS.

~~~
knieveltech
One of the most talented network admins I've ever worked with has a degree in
History and spent his 20's working on cars. I wouldn't be concerned.

------
d_r
I'm not sure if you're trolling or not, but it sounds like terrible advice.

Yes, most of coding knowledge comes from real world experience. But a
university is essential in building the foundation. Those theory and math
topics do matter. CS isn't just about gluing PHP code together.

Also, most non-startup jobs out there do tend to require a bachelors' degree.

~~~
mbrzuzy
I know that schools are essential in building foundation, I should have
specified in the original post that instead of university I would recommend a
college that would give him that foundation but allow for him to work on his
own or open source projects.

Rather than spending hours each day doing math proofs, he could have the
chance to explore different areas in programming while learning figuring out
what he enjoys (for example game programming vs web development)

~~~
d_r
I see. In that case, your heart is in the right place. But it doesn't have to
be all or nothing. The sweet spot is really the "formal" university education,
combined with independent/group projects.

Of course, it's absolutely instrumental to spend a lot of time coding on your
own "for fun." Just learning the proofs and such does not prepare one for the
real world at all.

This was somewhat harder maybe 10 years ago. Fortunately in modern days, there
are many APIs to play with, open source technologies, and so on. Communities
like GitHub used to be much harder to find in the past. HN rocks.

But you'd have to know the theory too, to understand the concepts on a deeper
level. Yes, some people are entirely self-taught, but it requires the person
to already have the "drive" and to already know what they want.

Finally, a good university (like UofT is) can bring life-long friends and
experiences and expose one's mind to more ideas. It's great for opening doors,
and generally establishing a foundation for learning. Can't miss that!

------
cjbprime
I think you're probably wrong. It's only a few years, it's respected for
decades after that, and it's a shortcut to telling people who are considering
hiring you that you're somewhat responsible/not totally flaky.

------
impendia
When I was in intro CS in college, my prof told us that 90% of whatever
specific skills we learned would be obsolete or unnecessary within five years,
it was understanding the principles that mattered.

I am a university math teacher. I couldn't give a flying damn whether my
undergrad students learn calculus. I do care whether my students learn to
reason both non-rigorously and rigorously, that they understand how to read
and work with definitions, that they can recognize when their solutions are
plausible, and that they learn to explain themselves clearly to others.

I am biased obviously, but I think that a college education is tremendously
valuable. Also, I know that University of Toronto is a damn good school.

+1. I respect you greatly for helping out your brother, and for soliciting
advice. I can only speak for the path I took, conceivably another is still
better, but I can testify that college education is truly valuable.

------
floppydisk
When your brother says he likes to code, what does he mean by that? Does he
like grokking out web apps, does he find hacking away on a bash terminal far
more interesting, or does he enjoy implementing algorithms in a variety of
languages?

If he likes grokking web apps, and foresees himself not deviating too far from
this career path, then lots of proven coding experience + open source commits
might work out for him better than going to college.

That being said, as someone with recent CS Uni experience in the States, I
found my time there quite helpful from a knowledge perspective. From a pure
CS/coding perspective, CS curriculum introduced me to lots of different
computing fields and concepts, as well as provided a mentor/teacher to explain
them I might not have found in the "real world", beyond basic data structures
and algorithms. Exposure to some of the upper level math also helped hone
problem solving skills. Ultimately, I think it ended up working for me, I left
with a pretty wide range of knowledge--practical and theoretical--and decent
problem solving skills I can apply to most problems.

I don't know anything about UT's program, but I will say if your brother wants
to get into lower level coding, a decent CS degree will go a long way to
giving him the basic theory & knowledge to jump into the field.

------
DyumanBhatt
What is the alternative for him? Another major, or just not going to a
university?

You can use payscale websites to judge what kind of pay a programmer that has
gone to a college gets in relation to one that has not and compare to the
costs of going to college.

In regards to hectic schedules and hardcore math... it's not THAT bad, and the
harder it is the stronger he'll be coming out.

At the end of the day its about how will he differentiate himself to other
programmers. When he's looking for a job without a college degree but with a
few projects under his belt compared to a fresh college grad with a 4.0, it
might be a coin toss on who they pick. What if the college grad also did some
work on the side, or internships? It may tip the scales out of your brother's
favor.

------
jlarocco
The question you should answer instead is "How will he get his foot in the
door otherwise?"

University -> Internship -> Employment is a good way to get started. Managers
hiring interns more or less know what they're getting.

University -> Employment is more difficult, but possible. Managers hiring
people straight out of college also more or less know what to expect,
especially if they've hired grads from the school before.

Trying to jump straight into employment will be difficult unless he has
previous employment.

If he's currently employed writing code, then 4 years of work experience will
probably trump 4 years of schooling. But there are always places that won't
even consider a person without a degree.

------
frou_dh
> He isn't exactly sure what kind of programming he wants to do yet.

I would advise both him and my younger self to take a year out and think about
what they're actually interested in doing, guided by hacking together some
simple experiments. I think going in to further education to bolster something
pre-existing* is better than going in as a blank slate and hoping to latch on
to something while you're in there. You can still change the concrete thing
you're interested in, but it should always be something and not nothing.

* _browsing_ the web and _playing_ video games don't count as professions or crafts.

------
jgeorge
I don't have a degree, and I've done reasonably well for myself in the tech
industry without one. Thankfully I've been involved in a few places that
needed the real world experience more than the sheepskin.

That said, I think telling him to do the same thing is bad advice. I've seen a
distinct difference between someone who knows how to code because they've
written a lot of it, and someone who knows how to code because they've learned
the underlying concepts and practices.

To me it's sort of akin to the old adage of giving a man a fish vs. teaching
him to fish.

------
soho33
speaking as a University of Toronto CS grad, i would recommend him going
through with it. Based on personal experience, i do agree that he won't code
as much as he would if he took a college course but at the end it's worth it.

the programming work i'm doing now i didn't learn at UofT. I learned on my
own, but i do believe my UofT certificate played a very big role in me getting
my current job.

at UofT he can expect to do a few programming courses but if he decides to go
under the software engineering program, he'll have to do a lot of algorithm
and concept works as well. for example courses to figure out how BGP and OSPF
algorithms work etc.

the way i look at it, if he goes to UofT to gets his fundamental CS and then
try and learn different programming languages on the side himself, he will be
good to go.

------
jiggity
Hi Mbrzuzy,

Here's my story that I used to answer a similar question a few days ago:
<http://news.ycombinator.com/item?id=3414135>

Hope this helps.

------
jister
Is it really that bad to be a great developer and have a degree at the same
time?

------
stray
Real world experience may be king, but it won't get you past the guards at the
gate (HR) as readily as a sheepskin.

~~~
knieveltech
A degree is a heck of a lot less likely to get you past HR than networking an
introduction to the hiring manager.

