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

21–30 of 278 posts

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

#21
Let me start by sharing what I think is the most important advice. I would focus and really ensure you "learn" things. Don't worry about optimizing for exam scores. In my opinion, it's better to get a 75% on an exam and understand that 75% well as opposed to getting 95% on an exam but only because you "remembered" things without really understanding them.

When you study, spend time deeply thinking about the concepts. Yes you're going to learn CS, but it's not just about learning data structures, algorithms, compilers, etc. etc. College is an opportunity to think critically. It's okay to be wrong or to not understand things. Use the internet to reinforce concepts you don't understand well, or go speak with your professor or TA's in office hours.

Okay... with that out of the way, here are some other thoughts:

1. Don't index too heavily on advice folks give you on learning any specific programming language. Focus more on the concepts that translate from one language to another.

2. In the first year or two, do invest in understanding object oriented programming principles, as OOP is quite common today. You'll probably cover this in one of your introductory CS/programming courses anyway. Note: OOP is not the end all/be all.

3. If you've used Windows your whole life, great. I would encourage you to spend some time learning a Unix-based operating system. This isn't so much related to your CS degree/course work, but I will bet it comes in very handy later on.

4. Do take a compilers course if it's not required in your degree program. Many universities who have ABET accreditation require it but I recall at least one (several years ago) that didn't.

5. Do pay attention in your Operating Systems course. Take that course if it's not required. Threading, memory management, scheduling algorithms... you learn concepts here that will likely be very useful in your career.

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

#22
Skill up in the humanities. Pick topics outside of technology that interest you, and learn how to communicate about them. Take as many seminar discussion and writing-heavy classes as you can.

From a career perspective, programming skill is relatively easy to come by. Programming AND speaking AND good writing will put you on a better career path. You won't get stuck after a job or two when you know the tools of the trade but not how to handle things outside the compiler.

But also, just as a person who has to make it in this world, you need more than one frame of reference to make sense of things. Humanities students are enriched by taking science and math classes, and getting a new way of seeing things. STEM undergrads who learn to tolerate ambiguity and learn some history are rounder humans.

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

#23

My advice might be controversial, but here are some thoughts I have... My big piece of advice: Major in something useful (CS, check!), minor in something fun. A lot of the computer science classes you take will be boring AF, or you'll start to bang your head against the desk wondering why you have to know how operating systems work when you just want to make iOS apps (or vice versa!). Some of the classes will be deep…

I read through this waiting to get to the controversial part and never found it. This is good advice not only for CS but for any rigorous degree. One of my favorite classes in undergrad was Ultimate Frisbee because it ensured I got some aerobic exercise each week and I got to experience playing UF with some really good people.

There are lots of other critical points casually shoved in here that could probably be expanded to book chapters if you wanted. The point about making connections is huge. Arguably the biggest difference between a state school and Ivy League education is the network available to you. Regardless of where you’re at, establishing connections is a major part of undergrad.

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

#24
Do side projects. Do internships, if possible. Aim for A's instead of A+'s. The time-savings will be enormous, and allow you to do other things.

EDIT> Join project teams, if possible. E.g. game development club, robotics club, rocketry club, etc.

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

#25
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 beyond what you already sort-of know and hit a wall.

2. Try to double major or minor in something completely unrelated to CS and math, unless you are really into CS or math.

Programming is a tool to make computers do stuff. A pure CS degree leaves you qualified to program compilers and IR systems and computer games. If you learn about something really hard, like chemistry or biology or whathaveyou, you'll also know what sort of programs chemists and biologists and whathaveyou need and have a domain to write programs in.

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

#26
Look to other comments for short term advice. For long term, play to your strengths and work on your weaknesses. Those things you might never be good at - look around you. You are surrounded by all sorts of people with their own skills. Mingle - build a team, it will help getting thru all the ups and downs of college life and teach you about people

Jobs are mostly about connections. Volunteer. Mentor a freshman every year. Ask for help. Treat the lab guys well. Connect people.

Finally, the most important thing: screw up enough to get noticed.

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

#27
post #22

Skill up in the humanities. Pick topics outside of technology that interest you, and learn how to communicate about them. Take as many seminar discussion and writing-heavy classes as you can. From a career perspective, programming skill is relatively easy to come by. Programming AND speaking AND good writing will put you on a better career path. You won't get stuck after a job or two when you know the tools of the tr…

I'll plus one this and recommend you also try doing things outside of class. Uni is an amazing time to try a load of hobbies and new non-academic skills. I personally did a ton of theatre and event planning for fun at uni and learned a loads of useful skills such as:

- How to coordinate a team - How to write a good email - How to interview people (helps for being interviewed) - How to clearly communicate my ideas to others - Public Speaking - How to give feedback - Conflict resolution

Beyond the basics technical skills tend to vary by job. Soft skills are universal.

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

#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 where I struggled a lot. I didn't even know why for example learning about heaps or binary trees was a necessary endeavor, when I could very well build websites or make DOS games on my own. It took until high school for me to truly grok these computer science concepts, mostly about algorithms and data structures. Even then I still learned a great lot in my undergrad CS classes beyond algorithms and data structures.

Computer science is a vast field; don't think that just because you have coding experience you can afford to coast along, instead there's always something new to learn. Go find your own subfield that you are interested in and go deep in it. I personally really enjoyed learning about type theory (going through Pierce's TAPL) for example. It may not be an undergrad course but still.

As for advice, I'd say go talk to the professors more often. They are generally willing to help. And if they sense that you are so much ahead of your peers, they could very well give you new work to challenge yourself. Perhaps even ask you to collaborate on a research project they are working on.

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

#29
post #4

You should know why you want a degree in CS. Because if it's solely to get a job in software development, know that it's one of the longest and most expensive ways to reach that goal, especially since you've been coding for such a long time. There are many other reasons one would want to go to college, and if they apply to you, feel free to disregard this comment. But to reiterate, if your only goal is to be a softwa…

To be honest, I would consider finding some sort of bootcamp type thing if not for my parents being pretty dead set on college. I do have a lot of stuff I want to learn which will, in my limited experience, be a lot easier to to understand with a formal education. I've been looking for a software dev job for the past few months and almost everything I've found that's more than a WordPress/shopify job wants a bachelor…

Start with a WordPress/Shopify job and then look for ways to expand your horizons.

Struggling startups, small consulting companies, they also have more ability to bring someone in straight out of high school so even if they say "bachelor's required" still apply.

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

#30
Join your school's ACM Programming Contest or ICPC team. It will prepare you well for whiteboard coding interviews.

Also try to do at least two internships; they'll teach you a lot about what professional work is really like and once you've graduated a lot of companies will like seeing this experience on your resume.

Post reply on HN