Live data from Hacker News

Ask HN: I'm an incoming freshman to college for a CS major, what should I know?

news.ycombinator.com

61–70 of 278 posts

Re: Ask HN: I'm an incoming freshman to college for a CS major, what should I know?

#61
CS undergrad will teach you principles and fundamentals, but won't teach you much of anything about actually writing software. Make sure you learn practical skills, like organizing large projects, deploying, scaling, tools, etc. You'll be exposed to some of this, but I've never met a CS grad who could hit the ground running unless they'd already been working as well. Get internships as early as possible. Work on large team projects and learn some structured planning and estimation skills. Learn Unix deeply. Don't skimp on the math and statistics, because while you might not need it for a decade (or ever), knowing math opens a lot of doors (NASA, finance, machine learning, and also general utility).

Re: Ask HN: I'm an incoming freshman to college for a CS major, what should I know?

#62

1. Don't assume your CS classes will always be easy. Having programmed a lot is a big advantage, but you're going to be learning a wide variety of things as a CS major that you may not have had to think about previously, and there is going to be a lot of it which isn't intuitive. Be prepared to study more than you have in the past and don't get cocky; sometimes it isn't until your junior or senior year that you get b…

double majoring is a hilarious waste of time and money. don't do it.

Re: Ask HN: I'm an incoming freshman to college for a CS major, what should I know?

#63
You just have to know one thing- cs takes more time than you think. It's normal to spend 4 hours a night, your non-cs friends are going out, you can't. Everyone's going to the game, you can't. Don't get upset because it takes time. Literally, some homework may take 4 hours. Just accept that and you'll enjoy it and you'll do well. If you think it's an hour a night of work, you will fail.

Re: Ask HN: I'm an incoming freshman to college for a CS major, what should I know?

#64
post #5

College is more than just learning a vocation. Another goal is evolving yourself into a well rounded human being. Each quarter / semester take one course outside your comfort zone. Public speaking, improv theater, drawing, photography, music, philosophy, film production, drama, writing. Join a non-tech club. Learn new stuff, and how to relate to non-nerds. Expand your abilities, world view, and persistence.

I think more people who be apt to do this if electives were pass/fail. There were tons of interesting classes available that I could have taken but chose not to because I had a decent GPA in major reqs.

My university gives certain faculties a certain number of pass/fails for this very reason.

Re: Ask HN: I'm an incoming freshman to college for a CS major, what should I know?

#65
> I'm more interested in knowing what I should do now to give me an advantage in getting a job or otherwise.

Always stay curious, challenge yourself, and have fun.

Take charge of your education, talk to your professors during class, visit them during office hours, interrupt the class to ask questions when you don't understand. I was always scared to be noisy in public, but finally discovered in a grad school math class that when I didn't get it and I spoke up, other people in the class would thank me later because they were in the same boat, and I learned faster.

Try to find an undergrad research project.

Do an internship between junior & senior year.

When you're a senior, start researching which companies you like. Read about job interviews and how to do well. Practice some job interviews! You'll be ahead of the majority of applicants if you do any practicing at all. Learn what companies want. (Hint: superior coding skills often aren't the top item in their list.)

Also, exercise (I'm not kidding, it doesn't matter how, but this will help your CS career, your life, and your job prospects.)

Re: Ask HN: I'm an incoming freshman to college for a CS major, what should I know?

#66
post #28

> I've been coding since I was young Same here, but that doesn't mean you won't struggle. If you have been coding since very young, you could very well be quite skilled at software engineering, the practical aspect of producing software, but not at computer science. I was fortunate enough that a middle school teacher found out I was interested in coding and decided to teach me real computer science instead. That's wh…

> Go find your own subfield that you are interested in and go deep in it.

Conversely, do know that this may not yield much appreciation from professors. BSc and MSc degree programs don't generally reward you for doing work that is so deep to be publishable. Even though you are at college to learn, you can't get carried away learning by yourself, if it is in the way of passing exams.

Re: Ask HN: I'm an incoming freshman to college for a CS major, what should I know?

#67
1. Sweat the fundamentals. CS isn't a coding school. Algorithms, complexity theory, databases, operating systems, graph theory, compilers, math, etc. will get you further than any coding.

2. Go for depth, not breadth. I know most US colleges make students do all sort of breadth stuff, which I don't get (I come from European undergrad, all our classes were CS/EE - coming to US for grad school, I was more prepared than others coming from top US undergrads). You have time to dive into other stuff after school. Do adjacent things like Biology or EE.

3. Find grad students and see what they're working on. This is where you'll see the value of the fundamentals. Then work backwards and fill the gaps. Try to get a tiny part in a research project (ideally one that can lead to publication).

4. Read timeless papers one each topic.

5. Hack, hack, hack - the gap between theory and practice is small in theory but large in practice.

Re: Ask HN: I'm an incoming freshman to college for a CS major, what should I know?

#68

1. Don't assume your CS classes will always be easy. Having programmed a lot is a big advantage, but you're going to be learning a wide variety of things as a CS major that you may not have had to think about previously, and there is going to be a lot of it which isn't intuitive. Be prepared to study more than you have in the past and don't get cocky; sometimes it isn't until your junior or senior year that you get b…

I strongly second both of these points will provide some more color:

> 1. Don't assume your CS classes will always be easy.

Easy or quick. Some of my worst college experiences involved putting off CS work that, while still easy, had sneaky edge-cases that took many hours to cover. Don't be lazy with your CS projects and you will be in a comfortable place.

> 2. Try to double major or minor in something completely unrelated to CS and math

Sage advice. I know a few CS/SE majors who minored in psych. Each, without exception, left college with an understanding of what drives office politics and dynamics that surpassed their peers. Computers are easy in that they work in objective ways. It is hard to overstate how valuable a diverse education can be once you are in the real world dealing with real (read: flawed) humans.

Re: Ask HN: I'm an incoming freshman to college for a CS major, what should I know?

#69

1. Don't assume your CS classes will always be easy. Having programmed a lot is a big advantage, but you're going to be learning a wide variety of things as a CS major that you may not have had to think about previously, and there is going to be a lot of it which isn't intuitive. Be prepared to study more than you have in the past and don't get cocky; sometimes it isn't until your junior or senior year that you get b…

double majoring is a hilarious waste of time and money. don't do it.

Definitely not a waste of time. Learning to think in a non-CS way can be incredibly valuable. Will it make you a better programmer? Maybe not. Will it make you a more effective employee, founder, or person? Yes.

Re: Ask HN: I'm an incoming freshman to college for a CS major, what should I know?

#70
This is more of an aside, but since you've been coding for some time, please understand that concepts you already know need to be taught to those that do not. Concepts like a nested loop are often one of the hardest initial hurdles for many students. Your first CS courses will spend a lot of time on these types of concepts.

Please be patient and not become annoyed with how "slow" the class is going. Students that struggle with that first hurdle will continue to struggle as the class moves forward [1]. I would say, if you pick up or complete the homework without any issues to reach out to your peers and offer help. You don't need to share code, but something like a small whiteboard to explain concepts would be good.

[1] http://www.ppig.org/sites/ppig.org/files/2014-PPIG-25th-Ahad...

Post reply on HN