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

11–20 of 278 posts

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

#11
Two main points. Care about the details, but don't get overwhelmed.

1) Care about the details. Programming languages are incredibly powerful, but there is a lot of subtle effects that even a tiny change of syntax can make (`*` vs `&` in C++ for instance). Try to pay attention to these details and their implications, because that is the key to get to being more productive and also to not making costly mistakes.

That being said, there is a limit to how many details you can keep in your head at one time, so:

2) Don't get overwhelmed. Just try to focus on the problems you're trying to solve, and take a first step towards solving it. IT WON'T BE PERFECT! Just keep going, and always acknowledge that there might be a better solution if you need to go back and improve on what you have. This is what I believe technical interviewers will be looking for: "Can this individual solve problems, and know the value of the trade-offs at hand. Do they know why choosing 'x' over 'y' is the better choice in this situation, and do they also know the cost of choosing 'x' now?". You can only spend so much time worrying about details if you have a deadline to meet, so sometimes you just have to make a decision and live with it.

Good luck and godspeed.

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

#12
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…

That depends on what type of job and career you are looking for, CS is a pretty broad field.

If you are looking for one of those high paying jobs in the top companies and want them without a degree, you will need to impress much more than your graduated peers.

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

#13
This probably sounds too cheesy, but don't forget to have fun! So, try different domains of CS, and see which one excites you the most!

There are a lot of subtleties of programming, algorithms and there are enough domains to choose from. So, don't follow the crowd, try enough new things to know what excites you, and then be a master at it!

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

#14
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 deeply math heavy. It can and will seem overwhelming at times. So minor in something fun. Pick something that has no bearing on your chosen career path. Minor in Theater or Music or Art or Literature or Physical Education. The best part about minors is that you generally get to take all the fun classes and not the terrible ones! You'll meet a whole bunch of people with diverse interests that aren't solely computer nerds.

As far as the CS stuff is concerned, focus on absorbing as much as you can. Contrary to what other people said, don't sweat the details. You should have a fundamental understanding of all the big areas (databases, languages, algorithms), but you don't need to be an expert in any of those things to get a job. In fact, 90% of the subject matter you learn in college won't be relevant to whichever job you get. BUT... the act of learning is important, and the fact that you have fundamental understandings of those things will get your foot in the door

Think of your college degree as a ticket to an interview, and your first job as the real education. Your degree is proof of two things: 1) that you can learn, and 2) that you can start, stick with, and complete a large, multi-year project. Nobody expects someone with a Bachelor's degree to be an expert programmer, but they _do_ expect critical thinking skills and the ability to learn. You'll learn more on the job in the first 6 months than you will in 4+ years of college education... so don't put too much stress on yourself there.

So... take it seriously, but not too seriously. Study hard, but take fun classes too. Make connections in your computer classes, but make friends across a wide variety of interests. Learn the fundamentals, but don't sweat the details.

(Also, pro tip: nobody gives a shit about your GPA. A 4.0 doesn't get you anything in the real world except a rude awakening. By all means, try to get all A's if you can, but don't burn yourself out by trying to get perfect grades.)

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

#15
Not to imply you're not ready, but in response to "I've been coding since I was young, so I'm not worried about struggling academically":

"Computer science is no more about computers than astronomy is about telescopes."

Depending on the nature of what your department offers, be prepared to learn about, spend time on and potentially struggle with concepts that have nothing to do with coding or software engineering as you might be familiar with it, or even sitting in front of a computer.

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

#17
Some thoughts I have as a CS student right now (for context, I grew up the in Bay Area and am a rising senior at UC Berkeley):

- I started coding when I was young, and I still struggled academically. There is a difference between knowing how to code and understanding computer science. For me, I found discrete math and formal proofs extremely difficult.

- It is very, very easy to get caught up in a constant mode of grinding CS hw/projects, especially if you're around a lot of studious people. Work smarter, not harder.

- Grades aren't everything! If your main goal is to get a job, you don't need straight A's. No recruiter or manager has ever asked for my GPA.

- Take classes outside of CS. Have hobbies outside of coding. Make friends who are studying different disciplines. You need outside perspectives to better understand the impact of technology on the world. Be aware of life outside the tech industry. Recognize software engineering as a tool to apply to issues.

- You'll meet people from so many different backgrounds. Some people come from high schools that taught Java and some people come from high schools that are not able offer any technology-related classes. Remember that some people are learning to code for the first time in their life!

For getting an internship (assuming you're interested in a SWE role):

- First of all, it's perfectly fine to not have an internship!! You can take classes, do research, work on side projects, etc.

- If you don't have prior job experience, spend some time on side projects (that are meaningful to you!!) to demonstrate your technical abilities.

- Have someone who is more experienced review your resume.

- You might hear that it's very difficult to get an internship straight out of freshman year. Honestly, at that stage, it's just a numbers game–the more online applications you throw your resume at, the more likely you'll get an interview.

- Don't discount career fairs on campus! I used to think they wouldn't be helpful because they were so crowded, but I got my internship after freshman year by talking to a manager at a career fair.

- Be able to clearly and succinctly describe yourself and your goals. What are your interests, and why? How do your hobbies and/or past experience support those interests?

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

#18
In recent times I have been taking night and weekend classes to finish my CS bachelors along students half my age, so I will tell you what I told them.

One thing is we took CS classes, and also some English courses in writing. Even on the job, those writing classes are important. You will be writing e-mails, documentation etc. and being able to be clear and to the point is helpful.

Also, in my eyes, some students were not doing enough to get an IT job out of school, never mind a good IT job with an upward trajectory. One guy told me "I don't study for quizzes since they are only 10% of the grade". I studied for quizzes because they were 10% of the grade, but also because I wanted to keep up with the subject and know about it for the future. Then part-way through a semester, or after a semester, I would often manifest whatever I learned. So if I learned Java, I would write a project in Java for myself. Or at least go on Github or somewhere and fix an issue on a Java project. Or if I learned graphics programming I would write a graphics program, or at least contribute to a free/open-source one. Through this, I would take all the theory I had learned over some months and ground it and manifest it in real work.

Also you would probably do well to get on CS department mailing lists, and check the bulletin board or whatever for internship listings.

I was surprised how lackadaisical some kids took it. Maybe it was their youth. I have seen many people parlay their CS skills into everything from a well-paying job, to parlaying it into an enormous amount of money. So I went above and beyond. I recall one homework where we had to talk about process schedulers, something I was always interested in but never stopped to read about. I figure in the first half hour of work, I already had gotten an A, but I spent hours and hours reading about process schedulers before turning in my homework.

I recall speaking to a bunch of the brighter CS seniors, and I mentioned something about version control. "Version control?" one said. I said, "Yes, you know, like git". "Git?" he said. None of them knew what version control was. You should know things like that before your first job interview, taking classes is not enough. It's good to know what algorithms are linear big O, and which are exponential, but you are going to have to learn some things they won't teach you in class to get a job. I would suggest going to Github, finding a project that has merged pull requests from a number of contributors recently, and looking at contributing a pull request to that project. Then at least you'll get an idea of what work is - someone posts a bug to issues, you look at it, you fix it and put up a pull request, then someone with more (or equivalent) experience looks at it and either gives you some pointers, or merges your changes. At work you will be doing similar stuff.

Post reply on HN