Best resources to deeply learn OS, DBMS and Computer Networks?
Posted by Truthseeker6002@reddit | learnprogramming | View on Reddit | 11 comments
Hi everyone,
I’m a CSE student currently finishing my 4th semester. I know a bit of Python, Java, C and some DSA, but I want to properly understand core CS subjects deeply — especially Operating Systems, DBMS and Computer Networks.
I’m interested in understanding how systems actually work internally, not just studying for exams.
Could you recommend:
- best books
- courses
- YouTube channels
- practice resources
- project ideas
that helped you learn these subjects well?like I want to understand how the things actually work the feel of it
Truthseeker6002@reddit (OP)
Thanks .Also how is opinion about odin (top) if you have heard about it ,I am learning full stack from here .
Legitimate-Eye-5733@reddit
Never heard of odin but if it's working for you then keep going with it - for the core CS stuff though you really need to get your hands dirty with actual implementation rather than just tutorials
PainGlittering3702@reddit
Hey checkout https://github.com/ossu/computer-science🎓 Path to a free self-taught education in Computer Science!
Select-Reporter5066@reddit
For OS, OSTEP is the best starting point imo. For DBs, CMU 15-445 is great, and for networking I’d pair Kurose and Ross with a few tiny socket projects.
More_Ferret5914@reddit
for OS, the OSTEP book is honestly amazing. probably one of the few CS books people actually enjoy reading voluntarily
for DBMS, CMU Database lectures on YouTube are really good. same for Computer Networks by Kurose & Ross
but honestly the biggest thing is building tiny projects around the concepts. simple shell, mini database, socket chat app, stuff like that. otherwise the theory just floats around in your head disconnected from reality
and don’t rush through all 3 subjects at once or your brain will turn into soup pretty fast
Truthseeker6002@reddit (OP)
Ok so which one to focus on first
Sn00py_lark@reddit
Nand2tetris, then OS. Then any order.
More_Ferret5914@reddit
I’d probably start with OS first honestly
once you understand processes, memory, threads, filesystems, scheduling etc, a lot of other CS topics start making more sense too
and OS feels the most “computer science-y” out of the three. you actually start understanding what your machine is doing instead of treating it like magic boxes stacked on top of each other lol
Sn00py_lark@reddit
Nand2tetris first. Then this
SensitiveGuidance685@reddit
For deep understanding, I’d honestly focus more on building things alongside theory instead of only watching lectures.
For OS:
For DBMS:
For Networks:
The biggest shift happens when you stop asking “what is a thread/socket/query” and start implementing small versions yourself. That’s when CS starts feeling real instead of memorized.
Civil_Set6074@reddit
If you want to go beyond just passing an exam, for OS, nothing beats "Operating Systems: Three Easy Pieces" (it's free online and actually readable). For DBMS, check out the CMU Database Group's Intro to Database Systems lectures on YouTube. Andy Pavlo’s energy is unmatched and he makes the internals actually stick. Best advice: don't just read—try to build a tiny, primitive version of a shell or a B-tree in your language of choice to see where the theory hits the wall.