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

41–50 of 278 posts

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

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

I graduated from high school in 1982, and already knew how to program. I was keenly interested in programming, and my mom was teaching intro CS courses at a local community college. Now her advice may be outdated, but it was that programming per se is too easy to justify 4 years of college study, if that's what you want to do for a living. Also at the time, many of the colleges didn't really have full blown CS departments.

I ended up teaching myself programming (and electronics) while doing a double major in math and physics, which led me to develop enough of an interest that I continued in physics through grad school.

I had a summer internship at a computing facility, which led me to think that a pure programming job would actually be kind of boring. Again, this was long ago, and is related to my interests and not yours.

Today, I program. A lot. In fact, if you walk past my office (my basement right now), you've got a 50% or better chance of seeing a code editor up on my screen. But I use programming as a problem solving tool, and am not employed as a programmer. Good programming skill is a "force multiplier" for virtually any occupation.

One thing about college is that many students change their majors. College is a place where you can be exposed to a whole variety of fields, and where you can soak up the vibe of a field and get excited about it. I don't know where I'd have found my love of physics at a coding boot camp.

CS attracts a lot of students who are interested in computers, or who hear that it's lucrative, but are not necessarily interested in computer science as an end unto itself. But, figuring this out is part of the college experience!

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

#42
I'm trying to decide what the right call is if school is online-only in the fall. On one hand, a lot of what you're paying for is in-person instruction and all the other experiences you get in college. If it's online, it's not worth $5k-$10k for a semester. On the other, if a college says you can defer, there might not be room in a year because of how many people deferred, and the longer your break between high school and college, you're either less likely to actually go to college or less likely to graduate.

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

#43
(Some general advice in the last few paragraphs)

One thing you should absolutely put on your radar: are you at all interested in grad school?

You have plenty of time to actually make the decision to go to grad school (plenty of people don't decide until years after graduating), but if you think it might even be a remote possibility, there are two things you absolutely need to do:

(1) Get STELLAR letters of recommendation. This is the most important thing to know, and you should consider that you'll need between 3 and 6 depending on your program.

(2) Keep your GPA above ~3.5 (landing something lower won't break your application, but it will make your life harder).

Lots of the career advice I've seen maps to getting SWE jobs in industry, where things like your undergrad GPA, research experience, and letters of recommendation don't matter as much. You can be a phenomenal engineer at a "prestigious" company (whatever that means to you) with a huge variety of undergrad track records (including not even going to college!). But just like getting a referral from someone who works at a certain company is a higher-signal (and easier) way to select an applicant to interview than trying to sort through a stack of resumes, getting a "referral" from a professor in the form of a letter of recommendation is a higher-signal way to filter applications than basically anything else. For research, grad school admissions committees tend to not care too much about internships / work experience, unless they're tied to research in some way. If you're interested in this, read the link at the end of this post [0].

Also, considering COVID-19's impact on engineering hiring right now, if you're having trouble finding an internship, doing a summer of undergraduate research can be a great backdoor to getting some hands-on experience, work with a professor, and

Generally, on the career side of things, I'd say spend a good chunk of time exploring what types of work you enjoy and find engaging. It's hard to predict what this will be when you're coming in, so do lots of small experiments to try to figure this out. Build small projects, reach out to professors and try your hand at research, join clubs and find other students who share your interests.

The last thing I'll say here is realize that there might be a whole set of career options you didn't even know existed coming in. Amongst my friends, the most common "discovered" post-graduate plan was (management) consulting, which virtually none of my friends knew existed coming into college, and many ended up getting excited about while there.

Overall, you'll be hard-pressed to find another space where you're surrounded by thousands of other people your age who are excited about learning, meeting each other, and working on ambitious stuff. There's way more to do and discover than there was in high school, but you'll also have to be much more active in finding and leveraging opportunities instead of waiting things to come to you. Work hard and explore, but also remember to make friends, let loose, find some parties, go on dates, stay healthy, and keep an open mind throughout. It's a wild ride, and it can be an incredibly rewarding handful of years. Good luck!

[0] https://www.cs.cmu.edu/~harchol/gradschooltalk.pdf

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

#44
Keep writing programs, that's the ultimate skill and what you need to demonstrate at interviews. Second, if you are shy like a lot is us, take communications, meet other people. Try new things. You can find friends, ignore the cool kids if you have no connection. Also, this pandemic and violence will pass, hopefully we can improve society - but society will still be there.

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

#45

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.

Doing side projects is so key and very underrated. The downside of a CS degree is it tends to be heavily theory-skewed (which can be really great!), but it doesn't take much to forget the practical side of the craft.

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

#46
For your non-CS electives - fill them up with classes that are much easier to learn in a college environment.

If there is an intro to law class (preferably one meant for non-lawyers, for example Intro to Business Law), you may find that useful.

Take 1 or 2 business classes. It doesn't have to be a minor or double major - just the basics of marketing, finance, economics, and entrepreneurship.

Get better at "presentation" - speaking and writing. Public speaking (or debate) would be helpful. This could be an extracurricular like Mock Trial, it doesn't have to be a class (though if one is offered and fits in your schedule, that could be great).

Oh. Machine Learning. Make sure you know the basics of it, even if you don't want a job in ML.

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

#47
post #40

Earlier quoted context omitted.

Disagree. Skip a CS degree and be instantly skipped over for coveted jobs. Sure you’ll still get a job. Ask me how I know.

I think these are good times for this theory of not needing a CS degree to be tested. I am thinking of Google's recent rescinding of offers to thousands of contractors, or the latest from https://layoffs.fyi/tracker . Lots of companies have frozen hiring. I know I would not want to be among the "I did some coding on my own, and a bootcamp for a few months" brigade. Also someone is of this age and is not thinking of i…

> I know I would not want to be among the "I did some coding on my own, and a bootcamp for a few months" brigade.

Especially when the resume next to yours is someone from a top-20 CS program who's been at AirbnUberLyft for 4 years.

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

#48
Here are a few things that either I regretted not learning/being taught in my CompSci course, or that I see lacking in new juniors who start on my team:

- How to actually build something entirely from scratch and host it somewhere so others can use it. I.e. do something 100% top-to-bottom where you not only design & write a bit of software then hand the assignment in, but actually set up a server, install what you need, deploy the software, monitor it etc etc - bonus points for getting your friends to try and use it have them file bugs for you to fix. Some suggestions - write a clone of Wordpress/StackOverflow/HackerNews or whatever and do the whole thing yourself, right down to database schemas and installing and configuring nginx yourself. You will learn so much if you have never done this. Too much at school was compartmentalised so that you only had to "focus on the problem" and the other stuff was provided for you.

- Source control: Git/Mercurial and other distributed ones, plus also still-in-use dinosaurs like Perforce/SVN. These days with Github everyone probably knows this, but I'll say it anyway since at school it is often just you working on your own.

- Unit testing :-) Bonus points for continuous integration/deployment.

- Basic project management: how things are run in teams, code reviews, bug handling etc.

- web + networking fluently (answer the "what happens when I enter example.com in the browser" question from the initial DNS lookup through to the DOM rendering and everything in between)

- fundamental *nix familiarity. Don't need to be l33t, but at least be able to get basic grunt work done with pipes and the like instead of having to resort to dumping data to excel and filtering it there. Sed, awk, grep, wc, uniq, sort, vi etc etc etc.

- the obvious algorithms + data structures stuff.

- These days: Cloud: the 12 Factor App thing is quite a good thing to read and internalise - it may change your perspective of how you think about approaching things. Probably worth having at least a basic understanding of docker + k8ns, as well as using at least one of the major cloud provider's services (they're all largely the same for the basics)

Otherwise my advice would be to just generally get stuck into stuff and just keep messing around with as much different stuff as you can to keep your horizons broad and experience varied. Don't try to focus too much on specific areas - there might be stuff you didn't even think about previously.

Have fun & good luck!

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

#49
Find Friends to work with. You will help them they will help you. Exams are not like coding they need practice despite how well you know the topics. Sitting down for hours by yourself is near impossible. Sitting with a group helps to maintain focus and gives you someone to explain this. It also gives you someone to explain things too. Nothing will sharpen your ability to clearly answer an exam question more than teaching someone that concept.

Those same friends will be the start of your professional network. The more contacts you have the better for you career.

Finally try to intern during your holidays. Work experience will help you land a job.

Post reply on HN