My Week 5 Journey: Insights and Lessons from CS50
Week 5 : an Interesting Journey
Today is a special day I am not going to be teaching some concepts like I previously did, more importantly, I will be talking about my experiences and the challenges I faced and mainly about my journey of this week of Cs50.
For those of you who are unfamiliar with what I am talking about, Harvard offers a course called Cs50
which any noob like me can take and learn about computer sciences from scratch. I have been taking this course for some time and so far I have reached week 5 which is all about data structures.
This week really made my head hurt, I hated almost every second of it as soon as I got introduced to linked lists, deep down in my heart I knew that I was going to suffer. Today I will be taking you guys through my journey, discussing the problems I faced, how I tackled them, things I learnt more importantly how I learnt them.
Personal Experience
First challenge
Some lore:
So when I started this week, I was excited that I was finally going to learn about something as important as data structures because they are one of the most fundamental of computer science. Anyways At the start ,we were introduced to concepts such as Stacks, queues and Why linked lists are needed.
I learned about why linked lists were needed in the first place and why arrays cannot do everything and I know it might sound so easy but I had to spend days to understand all this. I could not grasp this concept from David, lol I actually had to go consult some Indian YouTubers and my boy GPT (which got ditched by everyone recently).
How I tackled it
So the YouTuber named codewithharry
I had to watch him which did help a lot in simplifying things.
I started breaking down the problem. Taking one step at a time and most importantly I never forgot to take notes of all this. I literally have different sections related to linked lists in which I go about explaining all the concepts that challenged me.
The code related to that concept, I practiced writing that code a few times, I tried to understand everything that was happening, I explained itself to me in detail and finally I went back to watching David explaining it, then my brain cells starting doing its job and boom It clicked.
Felt good , conquering the first challenge
Second challenge
Some lore:
When I was continuing my CS50, Due to my final exams I paused the CS50, I had to study all the time, there wasn’t much time left for the first exam and I knew nothing about the subject lol. Anyway this period did affect my consistency in self-learning.
After my exams finished I had literally forgotten everything that I learned earlier, I didn’t get dishearted, I started learning stuff again. So the real challenge started when the linked lists were introduced and the code started getting a bit more complex. A pointer to pointing to another pointer ahhhhhhh my mind was going crazy, I couldn’t understand it.
How I tackled it
I consulted my boy codewithharry
again, I beat the shit out of GPT (jk) both of these helped a lot. Other than that taking one step at a time, going slowly along with explaining all this in my notes, staying consistent all that combined and I finally ended up understanding the linked list section lastly the hash map and hashing section did trouble me a bit.
I started mixing the hash table and hashing algorithms (sha256) but I took the same approach again and boom week 5 finished.
Problem sets of week 5
There were 2 problem sets in week 5 which included Inheritance and Speller.
Inheritance was pretty easy, did not face much issues in solving it but the speller was a bit different, there is a function called load
in the speller that we are supposed to implement which is the only thing that really challenged me although after using some of my brain cells I did end up completing it.
Speller was really long too and I had to debug it at the end as well, Stupid colons I always forget to put them at the end of each line.
Personal Advice
There were a lot of moments when things were hard and I wanted to just quit the week and jump on to the next one mainly for 2 reasons->I had no interest in topis being taught and On top of that It was hard.
Some of you might also face this situation and my advice is to just keep going, take pauses go slow but dont quit because without these basic concepts, you will not be able to go far in the field of CS. Keep pushing your limits like a true Saiyan and never give up, It is going to get much harder in the future both in life and learning-wise, If you start giving up now, It will become a habit and your life will start moving in a downward spiral instead of upward.