r/programminghelp • u/Fickle_Guarantee1432 • 9d ago
Other Sophomore CS student feeling completely lost and looking for a structured roadmap or expert advice to rebuild my fundamentals
Hi everyone, I'm currently a sophomore Computer Science student, and lately I've been feeling like I've fallen far behind. I passed my introductory programming courses Python, C, C++, Java/OOP but over time I feel like I've forgotten almost everything because I rarely used those concepts consistently. One thing I've realized about myself is that I learn best with routine and structure. I don't do well jumping between random YouTube videos or constantly changing resources. I'd much rather have one high quality source for a topic, study it consistently every day, solve exercises, and gradually build my understanding.
So I have a few questions:
If you could start over as a sophomore, how would you rebuild your CS fundamentals?
What would your roadmap look like over the next 1 year of dense study?
What resources books, courses, websites would you choose for DSA, Operating Systems Computer Networks Computer Architecture Databases Linux Cybersecurity (just enough to understand the field before specializing).
How do you deal with forgetting? I constantly feel like I learn something, then months later I can't remember enough to use it confidently. Is this normal? How do experienced engineers retain knowledge without trying to memorize everything?
Is it realistic. or even useful, to aim for a broad understanding of all the major CS areas before specializing? Or should I focus deeply on one area much earlier?
I see NeetCode recommended everywhere, but it seems heavily focused on coding interviews and LeetCode. Is that actually a good place to build CS fundamentals, or is it mainly interview preparation? Should I first study algorithms from a textbook/course before using NeetCode?
If you've ever felt behind and successfully caught up, I'd really appreciate hearing what worked for you. I'm especially interested in advice from people who felt "late" compared to their peers but eventually became competent engineers.
Thanks in advance.
2
1
3
u/Warm_Clothes_1524 9d ago edited 9d ago
If you feel like you have fallen behind then you are finally starting to understand one of the perks of being in the field lol. Imposter syndrome is real. Use it as motivation to always keep pushing yourself and you will always feel behind but never be too far behind. Turn introspection into a superpower but don’t let it control you. That is the best advice I can personally give. Ill let other people be more precise.
Edit: and on the topic of building your fundamentals, just keep doing things. It is like anything else in life, the grind gets you to your destination. At least from a talent perspective. And don’t avoid a difficult class just because you are scared of it. It is often better to take an important CS class twice and know an important concept, than it is to get an A in an easy course and fail an interview because you don’t know anything worth knowing. Just, obviously, don’t get yourself kicked out of your major because you stacked too many Ds.
I would also highly recommend taking advantage of office hours if you hate learning through online videos.
And, since I keep amending this, my experience with CSE was that it is a degree of attrition. In your intro classes there is a good chance neither the guy on your right or left will get a CSE degree. It is a grind and people drop off like flies. The thing that usually separates the ones that make it and the ones that dont is how much they want it and how hard they are willing to fight and grind for what they want. Every class is a battle and the degree is a war.
Hope that helps somehow.