Help Finding Resources on Programming/CompSci Based On Jon's Suggested Curriculum (Repost Because I Forgot To Verify My Account)

Hi, my plan is to spend the rest of this year spending as much time as I possibly can studying compsci and programming, as well as making at least ten small games using SDL/GLFW before I make one big project completely from scratch, which I plan to take three months starting at the start of October (I already know exactly what it's going to be, and it's fairly small, so I think I'll be able to pull it off.)

Long story short, this is going to be my last year where I have an abundance of free time. I realize that this is my last chance to really learn all the things I've been saying I want to learn and do for so long, and would really love to get advice on it.

I'm going to take the OSSU series of courses on GitHub alongside the stuff below. Whenever I start feeling like an OSSU course is just teaching me BS I'll just not take it, and read through the syllabus to see what I was supposed to learn instead and find out on my own by using short reading sources.

I was also planning to go through most of the books listed here, and am going to be using a desktop running OpenBSD as my daily driver during this time (I'll be making my actual games on a Linux PC, lol): https://www.openbsd.org/books.html

I've looked through some stuff I can use to study the specific stuff Jon said to learn in this video: https://www.youtube.com/watch?v=I0s1MXRxPLw

But haven't found stuff for everything. Please give me more suggestions as to what your favorite resources are for these subjects, as well as any others that you think need to be filled in. I would especially appreciate good, beginner friendly resources on compilers. My plan is to try and learn everything Jon listed within the next three or four months, but OSSU has to be finished by the middle of december at the least.

Time Complexity - Introduction to the Theory of Computation by Michael Sipser
Understanding different programming paradigms - OSSU has a three part video course on exactly this.
Understand recursion - I could have sworn I found a well-reviewed resource on recursion but can't find it again. Help?
Understand boolean logic (very well) - Need suggestion
Algorithms (Sorting and Popular) - Half of Algorithms and Data Structures by Niklaus Wirth
Operating Systems - OSSU has a course on this.
DataStructures - Second half of Wirth's AaDS.
How floating points work - Need suggestion
- Databases - Need suggestion
-Data races - Also suggestion.
-Implementing Malloc - Need suggestion.

And obviously the one and only K&R C.

I'm also gonna be using Game Engine Architecture for gamedev specifically. Also an assortment of some other books. And also the reference documents for all the compilers and tools I'm using.

PS: I know Jon said that you don't need to learn a lot of the stuff you learn in compsci courses, but I want to take OSSU anyways just to be safe and to make sure my education in the subject is well-rounded, and to be able to hold convos on programming with people who actually have just learned programming from such courses.

EDIT: Huh, I don't know why my account hasn't been activated still. But I'm a real person, lol.

Edited by Andrew on Reason: Commenting on the fact I haven't been activated even after clicking the activation link I was sent.
I know Jon said that you don't need to learn a lot of the stuff you learn in compsci courses, but I want to take OSSU anyways


Thanks for pointing out to the OSSU. This is a great resource supply. Taking a peek at it, it looks it will be very useful. I wouldn't recommend stopping on learning things. The more educated you are the better.

I don't know what they teach in typical compsci courses, but I'll comment on one thing: don't throw away maths, that is important. Linear algebra will be especially useful if you want to do games and 3D rendering.
Hey Andrew! Here's a few books I keep coming back to while coding:



Others that I use digitally are:

- Introduction to Algorithms (3rd Edition)
- The Elements of Computing Systems (Noam)
- [Intel/Arm/AMD] Architecture Manuals
- Transaction Processing (Jim Gray)
- Real-time Rendering (4th Edition)
- Computer Organization and Design RISC-V Edition (David/John)

I rarely read them from first to last page. Usually, I skim them and read the chapters that sound interesting. Then, while coding, I try to keep them in mind so that if I ever need a more in-depth analysis on the subject, I'll turn to the page and start reading. For example, if I'm doing Windows virtual memory stuff, I'll open the Windows Internals book to the Memory Management chapter. If I'm doing TCP stuff on Linux, I open The Linux Programming Interface to the Networking chapter. Bit-twiddling? Refresh my memory with Computer Systems bits chapter. Etc...

The hard thing is avoiding Edu-tainmnent, where you're just learning for the sake of learning. I try to only learn things introduced by my projects and deep-diving ("why is this needed?", "how does this work?", "where did this come from?") on every little detail until I reach my arbitrary bedrock.
Cool books pic :)

Thanks for sharing these info guys!

I second about math, learn all the math you can. If you love it, much better.
You can have a look in the handmade network library.

One book that was often recommended in the forums was Computer Systems: A programmer's prespective. But I haven't read it myself and it's quite expensive.
One book that was often recommended in the forums was Computer Systems: A programmer's prespective. But I haven't read it myself and it's quite expensive.


I'm not gonna say it's right, but there is always libgen.
andy

I was also planning to go through most of the books listed here, and am going to be using a desktop running OpenBSD as my daily driver during this time (I'll be making my actual games on a Linux PC, lol): https://www.openbsd.org/books.html


Just out of curiosity, why are you using Linux to make your games? Is it to work with other Linux devs? Is there some software on Linux that you can't do without? I just noticed Jon has a lot of fans who like Linux. Wow. I used to use it daily and left for a BSD, so I have no advice to offer him.

Edited by Aphetres on