This month I’ve been working through CS50. I’ve also managed to get into a semi-routine, which is a big first and surprise to me. I learn/code for the first 1.5h of my day (whenever my waking time might be) before moving on to my work obligations. This might not work for everyone as I happen to be privileged enough to work from home + have a really understanding supervisor who gives me autonomy regarding work hours and recognises that learning is part of my job.

This month I’ve coded on the following days in Oct: a = [6, 7, 8, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28]. The dev console tells me that means it’s been 21 days (used a.length because I was too lazy to count it manually). Which means I’m almost halfway through the 100 days (in total, not in a row).

I restarted CS50 for 2 main reasons:

(1) closure

Partially to get closure on the fact that it was the first thing I ever touched relating to code, but I never finished it because I was very new and not at a state where I have the kind of will and faith to finish it. But it’s been a good month so far – I’ve learnt a lot, and also feel like I can see how I’m very different from the kid 4 years ago touching Scratch and C for the first time.

(2) improving my foundations

My data structures & algo knowledge is really weak and I wanted to get a better handle on things like pointers, hash tables. After going through the first 5 weeks of content in C, I can appreciate why they force us to use C – you’ll understand memory allocation and the relevance of linked lists a lot better when you understand the kinds of problems faced by storing stuff in contiguous slots of memory.

Anyway, strongly recommend doing the course. And also would like to remind anyone who’s been discouraged by the course that it’s okay to take a step back and learn other things, then return to it.

Things work out in the fullness of time.