My goal is to be a learner of computer science for the love of it.
Below are the curriculum that I want to accomplish. The way I want to accomplish them is through in-depth study instead of just surface level skimming. I solve almost all exercises of java programming textbook. I build projects. But learning takes time. It's slow. I've been studying java since Mar 2024(3hrs/day), and I have completed 1/3rd of the book as of now.
In java, I'm about to finish OOPs concepts. But since I love java, I want to complete entire book. It generally should've taken 1 week to finish 1 chapter(with 3-5 hrs of study per day) but OOPs is hitting hard and learning is getting delayed.
- java programming
- data structures
- algorithms
- operating system
- computer organization and architecture
- database management system
- computer graphics
- computer network
- distributed systems
You might say just start data structures and algorithms. But here's the problem. I want to implement data structures in java. For which OOPs is good to have.
I want to solve interesting problems in algorithms textbook, simulate them (So learning a gui like javafx is also essential).
Then, I plan to study OS where I solve all exercises from the dinosaur book(at least most relevant)...
I will study COA by solving patterson's books problems. Then I will learn dbms. Where I would not solve anything. Instead I'd focus on sql querying and database administration books.
Then, I will learn servers etc in computer networks, implement networked programming in java(So I need to learn network programming as well in java or any other language).
I'll study distributed systems with case study like Kafka, Redis, DNS etc.
Finally, I will do computer graphics where my goal is to make some good graphics.