top | item 5464468

(no title)

chrishenn | 13 years ago

As a Senior in high school who already works in a startup, I have another question: what shit should I being trying to learn in college?

There's a prominent attitude here that a degree in CS isn't all that practical—work experience matters more. What should I try to get from college? Just wondering if anyone can chime in.

discuss

order

thedufer|13 years ago

I graduated pretty recently, but I can tell you what I thought was most helpful.

-Lots of language exposure. Take classes in different languages (classes comparing languages are even better). I find it difficult to learn new languages, particularly new paradigms, without the help of someone who knows them.

-Low-level stuff. Assembly, basic electronics, C. These are the topics I found classes covered the best (compared to learning on my own). It's not directly relevant to my job, but I just have a generally better sense of how computers work.

-Work in groups. I didn't do enough of this, and I think it handicapped me a bit. This is less applicable to you than to most people entering college, since you are presumably doing that at your startup.

chrishenn|13 years ago

Thanks. The low level stuff certainly seems like a good thing to learn—I made an effort to read Code[0] a while back and most of it went over my head. The high level programming languages most people work in today are abstracted to a point where it's extremely hard to see their relation to the low level stuff. It would be nice to understand that link better.

[0] http://www.amazon.com/Code-Language-Computer-Hardware-Softwa...

bcbrown|13 years ago

One approach would be to take a complementary major, since you'll already have the job experience. Electrical Engineering or Mathematics come to mind. Another approach would be to indulge whatever else you're passionate about, be it Philosophy, History, Literature, or whatever.

I studied Physics and ended up in this industry without any formal CS classes. I would have liked to get the formal knowledge of Algorithms, Programming Languages, and Operating Systems. Perhaps a course on databases. I'm glad I took the EE intro course on digital circuitry, and I'm glad I took the math course on graph theory. I think taking a lot of math courses is a good idea.

So all of those in the previous paragraph are my suggestions for courses to take. The other point I'd make is that college can be a lot of fun. You're around a lot of other people of the same age, and everyone has a lot of free time and not many responsibilities. College has value outside of just knowledge acquisition. But it's not for everyone, and it's fine if you decide not to go.

rza|13 years ago

College is a good environment to learn theoretical computer science and to be in a research environment. If you intend to go into research either at university or in a big company, college is a must. To be around other bright CS students, professors, on a campus where there are is always some exciting project going on, it is an excellent place to be, especially if you come from a background which didn't give you such exposure in high school. At a job, you will not have the opportunity to invest all your time on arcane algorithms or data structures, or in any subject for that matter which doesn't directly involve your job. This is a pro or a con depending on where you want to go with your life/career.

If you want to work at a social media start-up working with hot web technologies, or already have a foot in the door in the tech industry, then college probably isn't very useful for you.