

Ask HN: What universities are good? (Undergrad) - gamechangr

I have been reading an unfortunately large amount of articles here on Hacker News seemingly deterring prospective students like myself from entering a university, especially from the field of Computer Science. They cite large tuition/living costs and "wastes of time" as not worth the potential four year education gained. These articles and blog posts claim that jumping straight into industry is an acceptable and perhaps even favorable alternative.
I refuse to buy into this idea as I crave the challenge that I feel a good computer science program can bring as well as want to experience the good ol' college life. Are there still places out there that offer a diverse undergraduate Computer Science program that goes beyond teaching Java and C++ and focuses on the application of these technologies to create things? Are there schools out there that will let undergrads touch research and tackle the problems that current computer scientists face today? Or is this asking too much of a pre-graduate program?
======
zerohp
The assumption behind all the "college is a waste of time" advice is that
you're smart enough, and willing enough to teach yourself. I am like that, and
I'll assume you are too. Being smart enough isn't enough, you have to expose
yourself to a variety of ideas.

I started programming in basic in 3rd grade. I graduated high school in 1996,
spent three years in tech support and started programming professionally in
1999. According to my salary I never missed anything by skipping college, but
I always felt like I missed out. Two years ago, while working as a
telecommuter, I decided to pursue a degree and started taking classes at
community college. The math and physics courses opened my mind to ideas that I
never really put much thought into. College opened my eyes to ideas that I
never would have studied on my own. I quit my job and enrolled at University
of Illinois this spring.

While I have not yet pursued research, I know that there are many
opportunities for undergraduates to research in computer science. Professors
typically want junior or senior undergrads because they have enough coursework
in the fundamentals to be useful. Right now there is a huge push from the
school to get experienced freshman and sophomores into research. They have a
funded mentorship program that pays graduate students to work with one or two
undergrads on their research. The problem is that they can't get enough
underclassmen to apply to the program.

Many of the people that post on Hacker News that post a low opinion of the
college education were educated in college themselves. Only a very small
minority of posters have seen both sides of the coin. I have become a
completely different person in the last two years since I started college.
This experience has been far more costly for me, at 35, than it is for a
typical college-age student. If I add my tuition, fees, and expenses to the
opportunity cost, due to lost salary, I am paying $140k a year to go to
college. I have no regrets; this has been the best experience of my life.

You've probably heard the old saying that youth is wasted on the young. I
think college is also wasted on the young. Those that denigrate college were
not yet self-aware enough to realize the benefit they gained from that
experience.

~~~
gamechangr
Excellent post. Exactly what I needed to hear. I am a little older than the
average university student and have wondered exactly what you posted.

The fact that you have "seen both side" is exceptionally helpful.

------
mindcrime
Pretty much any accredited university that has a CS program should be fine.
It's not the school, it's the student. If you want to optimize for value, go
to a small state school in your home state (assuming US). Then take the
initiative to expand your education beyond what you get from your school,
based on your interests. There's TONS of free educational material available
online, a zillion dead-tree books out there on every topic imaginable, all
sorts of great stuff at Coursera, Udacity, etc. There are all sorts of open
source projects to participate in, forums to ask / answer questions in,
research papers to read, code to study, etc., etc., etc. You can become as
good as you want to be, and you don't need to go to Stanford or Harvard to do
it.

Also, if there is a hackerspace near you, find it and join it. Get involved in
all the crazy stuff that's probably going on there. I can't speak for any
other hackerspace, but at SplatSpace, the range of projects people are working
on is mind-boggling. You have a guy doing a system based on Inductive Logic
Programming in Prolog, to generate candidate molecules for new drugs, and then
reason out the metabolic interactions and try to proactively find compounds
that will be useful. You have several people building and operating 3D
printers. There's a guy building a coilgun (OK, that's me). You have a guy
working with a researcher at UNC doing "forced evolution" research. Another
guy is doing something with an interactive fiction platform. Somebody else
just built a Raspberry Pi based tabletop form-factor game cabinet. Somebody
recently built a Mantis PCB mill. One guy is working to fully automate his
home brewing setup. Seriously, the knowledge, the vibe, everything available
at a hackerspace can be awe inspiring.

 _Or is this asking too much of a pre-graduate program?_

Don't ask it of the program, ask it of yourself. Of course, talk to your
professors and see if they can help. I imagine many (most?) will be VERY happy
to help a motivated student who wants to go beyond the standard curriculum and
do interesting stuff.

------
caw
Take a look at US World News & Reports and their top 10 list. Any of those
would be good choices. There was a syndicated article featured on Yahoo a
while back about best value colleges, and Georgia Tech was top value (cost vs
avg salary when you get out). I know they are in the top 10 for undergrad CS.

There are undergraduate research opportunities available, where you basically
take research as a class. At GT it's called UROP (Undergraduate Research
Opportunities Program). I know a few people who did it for CS, and they offer
it in their other programs of study as well.

As far as language goes, I think I had 2-3 classes at most in a particular
language. Some didn't have a language requirement, it was whatever. In no
particular order, I used: C, C++, Cg, Java, Smalltalk, Ruby, Bash, Perl, PHP,
HTML/CSS/JS, Matlab, Python, Processing, and SQL (if you count that). I also
didn't know how to program before I went to college.

As far as paying for colleges go, you may want to check into reciprocal in-
state tuition agreements between states. I think most of the time it's for
bordering states if your state doesn't have a good program of study.
Otherwise, I'd highly recommend work-study, co-op, or internship programs
since you'll earn money and get experience as well.

~~~
gamechangr
I am tried to avoid looking at college rankings, as I know that doesn't really
measure learning...just prestige.

I have looked at GT and heard from friends that it was hard (in a busy work
negative way), but well priced. It's on my list of potentials.

~~~
caw
About the prestige - Why do you think they're considered prestigious? Is it
simply word of mouth, or is there something behind it? Not saying you can't
find something on the top X list that provides a good learning experience
without the prestige.

I never really felt that my classes at GT were at busy work. Definitely
difficult, until you look back later and ask yourself why you ever struggled
with that, it was so easy compared to what you're doing now.

~~~
gamechangr
Good to hear that you thought the work was useful. GT just went up a few
points! I hate to make generalizations with so little data.

~~~
caw
Feel free to email me questions or whatever about GT. I graduated not too long
ago, still have friends who haven't yet graduated, and I won't necessarily
give you the politically correct answers they give in the tour.

------
aaronz8
Remember, there are multiple ways to accomplish things, and some are more
suitable for some than others.

1\. Some people learn theory first, and from this discover more advanced
theory that helps them eventually apply knowledge.

2\. Some people learn applications first, and learn theory as necessary.

In the software industry, it's very easy to fall into the trap of #2. I
mean... it's way more fun to build something that people can use, than read a
textbook and hear a professor talk.

However, you should keep in mind that if you choose this path, you are
starting at the same starting line as everyone else. Learning the theory
behind applications gives u the advantage of having a starting line that is
ahead of most people.

Consider this scenario: You are an incandescent lightbulb assembler. When you
first started, you did not make them very well. Some of them didn't light up,
some of them were dimmer than others. However, as time went on, you made
better and better lightbulbs. Soon, you become the world's best incandescent
lightbulb assembler. But, someone invented LEDs. You don't know what's wrong
with your bulbs, since there is nothing inherently ~wrong~ about incandescent
bulbs. But you know nothing about why it works, only how to assemble it.

~~~
aaronz8
But, to respond to the original question... Carnegie Mellon is pretty cool :)

------
logn
Just about any school of any sort with a CS program is good enough. The point
of all this writing on college not being worth it is that the expected value
of a $200K education is not much higher than a $50K one, or maybe even $10K.

>"Are there still places out there that offer a diverse undergraduate Computer
Science program that goes beyond teaching Java and C++ and focuses on the
application of these technologies to create things?"

You won't find much of this taught in the classroom. Seek out schools with
strong co-op or intern programs. Many community colleges even have co-op
programs. Co-ops are basically forced internships and the college does a lot
to get you hired. But it's really not much different than spending your
summers interning.

------
michaelkscott
There are lots that are good.

MIT, Stanford, Caltech, Berkeley, CMU, Harvard, Princeton, UCLA, UCSD, Cal
Poly, and hundreds more.

~~~
gamechangr
Any recommendation I couldn't read about in every top twenty list?

Or are these really the best for LEARNING (VS JOB POTENTIAL)

------
ig1
I think your view has been skewed by a relatively small number of anti-
university articles, the reason you don't get pro-university articles is that
it's the status quo so people don't feel the need to argue for it.

The majority of successful professional software developers (if you look at
say Google or at YC founders) hold degrees.

~~~
gamechangr
Good point. I just kept reading very vocal people strongly against it. You're
right, the others probably just didn't comment.

------
SpikeDad
What state? You're not likely to get a good value from an out of state schools
considering the cost.

What's your GPA? If it's top of the class, then you don't have a problem.
Otherwise, you'll need to look in state again.

And if cost or GPA isn't an object then michaelkscott comments are the most
valid.

~~~
gamechangr
Missouri. I have looked at Truman State , a pretty good LAC, but I expect to
relocate. I am thinking Texas or California for the good and hopefully
affordable options. I would go to CC and transfer.

Grades a good 3.8 SAT/ACT don't remember (I think I had a 31)

------
Skywing
I think I now understand why the naivety of a high school student is a good
thing. Wish I could go back to those days.

