Self Learning and The Illusion of Mastery
Internet friends, hello again and welcome to CS2DAY blog! where I document (sometimes) my journey of self-learning Computer Science. In this post I will share some thoughts about Self-learning, mastery and learning things deeply, post-word about the Data Structures and Algorithms course CS61B, and What am I currently doing and up to. Let’s dive in.
Content
- Self Learning
- Illusion of Mastery
- CS61B Postmortem
- Let’s Go Higher Level a Bit
- Deep Down to The Bit
- A Promise.. AGAIN!
Self Learning
Back to 2018 when I moved from Saudi Arabia to Sudan, depending on the traditional ways of learning became useless and fruitless due to the primitive environment and the denial people have to the fact that life is changing.
Before the 3rd year of highschool, Corona virus, after that, riots, and after that a whole war! so that’s about 2 years in home, doing nothing, and can’t learn because the knowledge is in schools and universities. Here is where self-learning shines.
It’s 2025, if you still wait for someone to teach you something, or think that you can learn only by going to school or college, you’re irrelevant. I belive that I am a blessed human being for being born at this period of history, alos cursed for the same reason, and I am willing to take this bless to its fullest.
That being said, let’s talk about the obstacles I have faced so far, because life isn’t strawberry yoghurt.
Laying down the curriculum and the resources you will be studying from can be a bit cumbersome, so take your time in searching and asking. Take a look at my previous posts and my github repos if you are curious about CS resources.
Discipline.. yep. If you are the one that search for the courses, prepare to take them, take them, do the labs, read the material, do the projects, put the deadline for finishing the course, knowing that the arrival date for your goals is by your hands, belive me you will be under consistent pressure for a long periods of time, but hopefully the goal will be worthy.
I wasn’t studying that much in the past month, nor writing here, I wasn’t at my best state, but it’s fine, I know that I am a human, not a machine, my prgress isn’t linear, rather a sine funciton ∿. The important thing is:
Keep going
Illusion of Mastery
During the time of the first hard course, CS61B, and by the time when I reached Graph lectures, I felt that I don’t understand the material deeply enough, that I don’t master them. Looking back, that was due to the lack of graph labs and implementing the graph API and graph related algorithms, but also it wasn’t right that I thought I could master the material from the first iteration, from the first exposure to the subject. The thing I learned is:
Do not seek mastery from the first iteration, it will come after enough repititions
CS61B Postmortem
CS61B, Data Structures & Algorithms, the second course in the UCB triology introduction to computer science courses.
The course was more focused on the practical part of DSA rather than the mathematical and proof based part, that’s CS170 job, and was programming heavy, the labs were varied and the project2: Gitlet will make you reconsider your decision in pursuing computer science, but will make you get the confidence that you can do anything with code.
My self study material can be found here
Hours taken: 140 hours, over 3 months and a half
Overall course rating: 7/10, would appreciated if they had more labs for the graph data structure.
Let’s Go Higher Level a Bit
Ever heard of the web? I did, it’s this magical thing when you open chrome, type the thing you want, and the rest is absolute sorcery!
So after CS61B I decided to take a different approach this time and take a look at what the market is doing, so of course the traditional gate to software engineering market is Web Development, so let’s do fullstack web development!
After a quick search I found a great resource, which is Full Stack open course by the University of Helsinki. It’s a great course especially for a vast field like web development, it teaches full stack web development with javascript (MERN stack). I love the way of teaching concepts through incremental app development, which reinforce the learning. The only caveat is that it’s a text-based course, which can get exhausting sometimes.
I have reached chapter 3 at the time of this post, and I am Enjoying it!
My progress has been halted for the past month, I stopped at MongoDB module, I shifted my focus towards JavaScript learning, because it’s a corner stone in modern web development, so I have to become more acquainted with it.
Deep Down to The Bit
Will.. my geeky, want to learn everything self couldn’t let me just do high-level web development, so I have to have some side, bit-level studying. So, CS61C it is.
CS61C is the last of the three UCB introduction to computer science courses, which takes down of the levels of abstraction, and let you speak directly to the computer, using, of course, the C Programming Language and RISC-V assembly. The labs are great and the projects (so far I have done 2 projects) are innovative. The second was kinda hard, not as hard as Gitlet of course :-(
check out my progress here.
Why learning computer architecture? Liveoverflow said it:

A Promise.. AGAIN
Shall try to be more periodic writing and posting, I think having some kind of a draft is essential for weekly writing, instead of squeezing my mind trying to remember what I have achieved through the week.
As always, until the next time.