28 points NotParth11 3 hours ago 52 comments
jschveibinz 2 hours ago | parent
Learn how to learn. Get really good at that. That is the essence of your college experience. Perhaps consider a minor in a life science, hard technology, or other field that has good employment prospects.
Everything is software these days--it's going to be about applying software rather than pure programming skills.
Take a physics class or two. Learn how and why things work.
If your school has co-op work--do it. It raises your employment prospects at graduation.
Expect to have to consider multiple options/tracks in your career ahead. Adaptation and flexibility will be important. The world is changing quickly.
You can't study everything in college, but you will need to be ready to study and adapt in the years ahead. Good luck and do well in school.
One more thing: be social. Your network of friends will be extremely valuable to you.
RhysU 1 hour ago | parent
SoftTalker 1 hour ago | parent
This is really important. I didn't appreciate it at the time. Get to know people in your classes, not just your roommate. Join a club, or check out greek life if that appeals to you. If you weren't very social in high school, now you're in a new environment. Nobody knows you, and nobody cares about high school anymore.
If you're introverted it can feel awkward but you're rarely, probably never again, going to be in such a diverse group of people who are all about your age and stage in life. Certainly not for four years.
ThrowawayR2 2 hours ago | parent
Knowing the CS theory that college is trying to teach you well enough to apply it will put you ahead of your fellow co-workers when you are a senior developer. Don't neglect learning it. The people who say "I never needed to use CS for my entire career, lol" are the people most easily replaced by AI.
Don't neglect understanding how to use AI to create code but don't become dependent on it either.
Don't neglect your writing courses. Reading and writing clearly is how you interact with your fellow developers and, of course, AI. Too many developers are lousy writers and wind up stuck in the lower ranks because of it.
gcheong 2 hours ago | parent
jleyank 2 hours ago | parent
And as others have said - do it yourself, put off using crutches such as AI until you understand the process.
WalterGR 1 hour ago | parent
You mean in addition to, I hope.
If you want a developer’s career, studying CS in college is the best way to get there. Full stop.
If you have the time, financial, and emotional resources (school isn't stress free!) then having a minor or double major in a specialized field will (obviously) make you more attractive as a candidate for a development role in that field.
bluefirebrand 1 hour ago | parent
I have had a rocky but reasonably successful software dev career built off a CS degree, it's definitely possible
That said I don't think anyone should try and be "just a developer" anymore. The skills are too easy to learn for anyone who is motivated. The most successful dude I ever met in software was a tradesman that thought up a way to automate a lot of the work that went into providing estimates for his clients as a sales tool, taught himself C# and built it.
The code was garbage, it was buggy and messy and half the calculations were probably wrong in the end, but he still sold it to a competitor for millions. :)
I think a lack of experience outside of CS and Software really holds a lot of software devs back from building great and/or valuable things, because you can't have great ideas if you don't have a variety of experiences to draw from
armchairhacker 1 hour ago | parent
- If you don't like programming, try to switch to a degree in something else
- If you genuinely enjoy programming, do not try to switch
- Explore specialty fields, if you're interested in one get a combined degree
gnok 1 hour ago | parent
int32_64 1 hour ago | parent
Grades are important but in today's AI-driven job application processes having a 4.0 is less important than knowing somebody at the company.
recursivedoubts 1 hour ago | parent
https://htmx.org/essays/yes-and/
TLDR:
- Knowing how to do things with computers will likely remain useful in the future
- Learn fundamentals using AI as a TA rather than code generator
- You must write the code
- Learn skills beyond just CS, such as communication & business
- Plan on using personal contacts for a future job, the hiring market is busted
WhyComboNadir 1 hour ago | parent
I'm sure that during your studies, through serendipity, you'll find great opportunities to pursue that you couldn't possibly imagine right now. Give yourself the greatest surface area for luck to find you.
Since you posted this here on HN I can already tell that you're the type of person who will not be short of opportunities and already has a good surface area for luck to find you.
Good luck!
TACIXAT 1 hour ago | parent
qazxcvbnmlp 1 hour ago | parent
Focus on meeting real people and understanding their problems and how you can help. Your connections during college will probably matter more than a particular test score.
Get a job (any job) during college, it shows you're employable and can navigate with the unpleasantries of being employed.
Oh! And dont’ stress too much! Enjoy the ride. Think of it all like a fun new video game. Take in the new levels with curiosity. Have fun! Many people who have jobs now would love to be in your shoes again. Embrace it, enjoy that time of life!
tester756 1 hour ago | parent
on programming forums (actual forums, not reddit/hn like) we've had very experienced people like
1) world class / top CTF competitors
2) nasa/esa
3) HFT @ hong kong
4) people with experience across FAANGs
Those can give you many very valuable advices that your average college friend or coworker will not be even close to be aware of.
> People who aren't successful tend to spend their time complaining online whereas you rarely hear stories of normal people success online.
That's true, that's why you need to filter out bullshit.
Aurornis 1 hour ago | parent
I recommend keeping your eyes open and getting diverse viewpoints, with some caveats. Universities can be both fast and slow to adapt to changing trends. Your professors will undoubtedly be trying to integrate LLMs into the courses, but what they teach you will probably not entirely hit the mark about where the industry is going. You need to be gaining your own experience with something outside of classes, even if it’s useless little projects that you throw away. Remember to have fun in college, too, but balance that with doing a little more than just trying to get passing grades.
Avoid spending too much time in cynical spaces online that have turned into echo chambers about how we’re all doomed, this career is a dead end, and other negativities. Hacker News has a diverse set of opinions represented but it’s easy to get swept up in the hyper-negative views where we’re all going to be out of jobs and relying on UBI in a couple years. Online spaces have been excessively negative about this career for as long as I’ve been doing it, with the exact reasons changing from year to year. I knew a few people who enjoyed computers but talked themselves out of CS due to job market or online negativity things when they started college and all of them discovered that every career path has its pluses and minuses. It gets easier when you have some affinity for the work, though.
jdw64 1 hour ago | parent
The ACM curriculum focuses more on kernels, OS, and compilers rather than the application layer. It's great for understanding principles, but making money often happens at the application layer. Everyone's aptitude is different.
Programming has many layers. Don't get discouraged if you hit a wall in one area.just move around and explore different layers. You'll definitely find one that suits you
danans 1 hour ago | parent
merelydev 1 hour ago | parent
Because AI is trained on the web, expect the fundamental building blocks of Software Engineering to not change in the next decades. Git, Linux, HTML, JavaScript etc etc all the abondoned code on the web. Familiarize yourself with these fundamentals and you'll always be relevant.
deadlast2 1 hour ago | parent
SoftTalker 1 hour ago | parent
sajithdilshan 1 hour ago | parent
I've graduated college like decade ago and still I learn new things with the help of AI. I'm a visual learner, most of the time I ask AI to create a one page HTML with animations to explain me concepts so it's easy to remember for me. Further, there are so many great video and shorts that explains algorithms, DB internals, computer security, cryptography, etc. on youtube.
Always think critically, ask questions and never take anything as truth just someone says so or it's written in a book, it's very important to develop critical and logical thinking and clear and good communication skills and that would help you to find a job easily. Wishing you all the best and success.
ok123456 1 hour ago | parent
By the time I graduated, computers were cool again.
Predicting the job market is like predicting the stock market. You don't necessarily know where things are going to end up, and simply being reactionary will lead to sub-optimal outcomes.
Learn things that are hard to do, or you wouldn't finish if you weren't coerced with a final grade.
One positive in the current environment is that people who actually know computer science won't be forced to toil endlessly on what are essentially CRUD systems, and can move on to solve second- and third-order problems where their actual computer science skills can pay off. We can stop reinventing (slower and slower) webpages and 3270 terminals.
bloudermilk 1 hour ago | parent
Mostly, focus on meeting good people, building relationships, and expanding your mind. These opportunities are timeless and besides practical skills, will allow you to continue growing as a person for years to come.
add-sub-mul-div 1 hour ago | parent
jsyang00 1 hour ago | parent
nolamark 1 hour ago | parent
Focus on learning to express yourself clearly, in English and in code.
Focus on learning how to learn, how to acquire new knowledge, and how to enjoy the process. Focus on learning how to work with others, especially those you don't agree with or like.
Don't forget to have fun. There is plenty to be had if you avail yourself of the opportunities.
devdude1337 1 hour ago | parent
8note 1 hour ago | parent
the most important things employability-wise tend to be joining technical clubs and doing internships.
the job market in 4 years time will probably look very little like todays, so keep your ear to the ground on whats going as time goes on. CS is incredibly valueable for being able to think about how things are done, so its going to be a pretty well respected degree no matter what
id also suggest joining whatever community garden setup is around your university
hnfong 1 hour ago | parent
AI is definitely going to shape the industry, and while I agree it's hard to see how it can create more job opportunities for junior positions, since you're already decided to do CS, just learn as much as you can about anything that interests you.
It's better to be really good at an unpopular niche, than to have average skills in the hottest trend.
toast0 1 hour ago | parent
Today's job market sucks, yes. But, you'll be entering the job market in 4ish years, and it will be different, hopefully better.
Hard work, investigation, and problem solving are transferable skills, so even if there are no jobs for CS degrees in 4 years, you should be able to find something that just needs any science or engineering degree (there's a good amount of these types of positions).
One thing to pay attention to is building your network / address book. When you leave college, you're going to want to find a job, presumably. The best way to find a job is through someone you know who is hiring / working for someone who is hiring.
You will interact with many students... when you have a good experience with someone you think you might want to work with or who might be likely to find good jobs, be sure to get their personal contact info and put it in your address book along with some notes about what you did together. Especially be sure to get contacts for people in grades ahead of you, since they're likely to be employed when you're looking.
You want to be sure to get their personal contact info, because schools are cutting off email access pretty quick these days.
If you get an internship etc, be sure to build your address book of people there that you enjoyed working with, including other interns. Again, personal contacts, cause work emails will stop working if the person moves.
Try to cultivate the relationships by sending an email at least once every year or two.
Hey X, I was thinking about that time we did [whatever] together in [class name] with [instructor]... That was [fun/horrible]. What are you up to these days? I'm still grinding on my cs degree at [school].
It helps if you have notes about what you did together.
If they respond great, maybe have a conversation, and next time you email after a big break, mention things that came up. If not, try again in a year or two.
A few months into college is a good time to send messages to high school friends and see how they're doing, etc.
Mc91 1 hour ago | parent
Had a conversation with the other seniors in a CS 300 class one day, I would say a few of them were in the top half of the class. Was talking about software version control. "What's that?" they all said. "You know, like git", I said. "Git?" they said. None of them knew what software version control or git was.
I would suggest that if you have a class where you learn say C++, toward the end of the class, or right after the class, write your own C++ program - doing whatever you want it to do. If you take a graphics class where you learn OpenGL, write your own program using OpenGL - doing whatever you want it to do. You tend to learn these things more doing it.
A lot of people are flooding open source projects with AI right now, but that aside, also if you just learned C++ or Java or whatever, look at actively maintained open source projects on Github or Ubuntu or Debian or freedesktop.org or whatever. Look through bug reports. Try to reproduce them. If you reproduce, you can reply to the report with what versions you are using (latest is best usually) and that you reproduced it. You can try to fix the bugs too. One thing with this is - it's similar to what an intern or associate/junior SWE would be doing at a company. If you submit a pull request and it gets accepted - it is like what you are doing at a big company.
Years ago I went to a Debian bug squashing party. I didn't know if I'd know anyone there, but getting there I did know one guy who did IT work in my city. Anyhow, a lot of the people there were pretty good. I remember a fellow named Daniel talking and he seemed to know a lot. Plus others. Then someone else walked in and everyone started saying "Pablo is here". It was a fellow named Pablo who was doing a doctorate in computer science at Columbia, They were all looking toward him and curious what he was working on. It seemed like they thought he was one of the most knowledgeable person there, among a group of knowledgeable people.
The point of this is - it was a group of people who were pursuing technical knowledge, and who respected technical knowledge. This guy Pablo from what they said was very devoted to this, and they respected him for it. This kind of social reinforcement is important too - it's talked about all the time, how being in San Francisco or YC or whatever with like-minded people pushes people ahead. I have seen it in many circumstances. Being part of one or more social groups like this focused on getting technically good and eventually trying to get to be a SSWE in a FAANG or whatever is something that helps. It can be easier to find in some places than others, but there are hackers everywhere.
Retr0id 1 hour ago | parent
Put the required effort into the course to pass it, but not much more. Except for the topics that genuinely interest you - go deeper on those than anyone expected. Prioritize your own understanding of a topic over external metrics.
Email or visit your lecturers to ask questions. Email the authors of papers you read.
Start building a portfolio and/or [micro]blog. Even a "hello world" github repo acts as a proof-of-humanity when you're applying for jobs in a few years time.
biggestriverman 1 hour ago | parent
Interns that I have seen be successful at Amazon do the following:
1. Show interest in the process.
2. Work really hard to unblock yourself. (You should feel like you're stuck a lot of the time. If you're not the project is too easy)
3. Learn when to get help to unblock yourself.
4. DO NOT tell anyone on the team or adjacent to the team you are on that you are not interested/ would not accept a return offer. This will guarantee no offer. Our best intern did this. (If you are skilled everything will turn our fine but it is nice to have options)
SoftTalker 1 hour ago | parent
Your GPA is harder and harder to change (for better or worse) as the years go by. And the courses get more demanding and/or academically challenging, so set a solid foundation early.
kooi 1 hour ago | parent
Sure, prompt studying in the right was is useful. But the temptation to spit something out you don't fully understand is huge. Part of learning is simply struggling.
Its tough, but for many of us it was a gauntlet of projects, internships, feeling like we're over our heads in a huge code base.
Focus on 1 code base at a time.
More useful to add to an existing code base than to code up some one-off project and name it "Jasper" (idk why CS student love derp names from their microprocessor. "I made a SSH wrapper and called it Turtle" )
Find mentorship from people who can teach architectural concepts.
Good luck!
mck- 1 hour ago | parent
Job markets are inherently uncertain, even in good economies. Holding a job is also uncertain; Your future is in the hands of the executives and their decisions. Being a founder allows you to have control over your career, and yes, bear full responsibility over it all. Get ramen profitable and you are immune to layoffs.
Even if you graduate and decide you don’t want to go down the (very tough) path of a founder, you will be much more employable.
cityofdelusion 1 hour ago | parent
Jobs, internships, networking, and software engineering courses are critical. They let you speak like someone with much more experience. You don’t want to come into a questionable market with only raw CS skills. You will learn the CS, that is a given by your degree, so hone the critical people skills and how to work in a team. In a downturn no one wants to hire an unknown, so you need to be able to show that you aren’t green.
Internships with companies that are known to hire their interns are also a very good idea, even if it’s a “boring” company. These can be competitive, you gotta put that effort in.
Another good route in your later college years is also underpaid work assisting grad students or professors doing grant work. It shows you can apply what you learned, no one really wants to do it, it builds professional relationships, and it’s real job experience.
atum47 1 hour ago | parent
Arubis 1 hour ago | parent
All of which to say: the market is frothy and irrational, but you have a lot of optionality around timing your entrance.
nilamo 1 hour ago | parent
dehrmann 57 minutes ago | parent
Turns out I bought what's probably the largest investment in my lifetime at the bottom.
The industry will change in the next four years. What I didn't realize in 2002 was widespread broadband internet would arrive and change everything. Revision to mean is a thing, and I wouldn't expect the 2010's boom where tech moved to take over every corner of our lives, but it will still be there, and the systems take proper care and feeding. Remote work is equalizing global tech wages, but the talent's gotten better and the pie's gotten bigger.
If you don't have a passion for tech, pick a different major because you'll spend the next few years questioning your choice. If you stay with it, look for other areas in your life you enjoy so you can plan out a minor or double major. If you plan it right, you'll be able to reassess in three years and possibly pivot to math, actuarial science, electrical engineering, or mechanical engineering with only an extra year.
openasocket 39 minutes ago | parent
Learn data structures and algorithms. Understand finite state machines and context free grammars. Learn at least some mathematics. Discrete math, Boolean logic, and statistics. Learn how operating systems work, networking, databases, compilers, machine code, low-level details like registers and the cache hierarchy. Learn more obscure programming languages: like Lisp, Prolog, Haskell, and Forth.
You probably won’t use those in your day job, but they will open your mind to fundamentally different ways of thinking about problems. Honestly, just try to learn as much as you can about as many different areas of computer science as possible. Don’t worry about learning version control, the latest web frameworks, or working with AI, at least not until the very end.
You want to come out of college with two things: the ability to learn new things quickly, and having a wide breadth of knowledge to draw upon. As someone who regularly interviews candidates, that’s what I’m looking for more than anything else.
OutOfHere 24 minutes ago | parent
gopher_space 7 minutes ago | parent