19 May 2020

I just wrapped up the last of the course content in CS50 a couple days ago, and this is a good time to put down some thoughts on re-cap, and where to go from here.


Last I posted, I was wrapping up pset6 covering Python, and since then CS50 ran through SQL in week 7, and I went through the web track for week 8.

In terms of the work, it wasn’t particularly challenging- most of it was learning methods and functions and syntax. Broadly speaking though, a lot of this was stuff I’d covered a few months ago when I was going through the Django project in Python Crash Course and the app I was building at work.

What’s interesting about learning while doing projects, is that a certain balance has to be struck. I find that I have to decide whether I want to learn a topic, or learn enough about a topic to implement it. I typically favored the latter for two reasons:

  1. It’s faster. If you’re trying to solve a problem like how to center a div, it’s typically fairly quick to muddle your way to a StackExchange answer that will put it together. At that point, I need to decide if I want to figure out why it works, or just to keep going. The latter tends to win since results tend to talk. However, this leads to the other point.
  2. It’s easier. The other difficulty is that a solution is described in words that require further research. A sort of recursive search of a linked list of unknown length where I don’t know how many topics I have to research. More of a tree I suppose.

The problem is, of course, that I end up doing a lot of voodoo programming and don’t understand. The other issue is that I’m completely useless when I run into a problem I can’t StackExchange.

So it’s a long-winded way to say that I’ve enjoyed learning it from the ground up. Also nice has been seeing how Javascript works in code.

It’s been fun and very satisfying course. I think in hindsight there was value in almost every week, but strongest in weeks 4, 5, and actually 8.

I still have the CS50 Final Project. This I’m going to delay- I’d rather put together a higher quality final project, but in order to do that I’d rather have more in-depth knowledge.

Going Forward

I think based on what took me longest is also reflective of where I’m weakest and where I should spend the most time going forward.

In that respect, I’m going to stop doing the Galvanize prep course. It was great for learning Javascript basics, and the exercises were good practice- but as I continued the practices didn’t seem to add any utility in teaching concepts or complexities. It was mostly just using basic looping, manipulation, etc, in various permutations. It’s just frustrating that I’m leaving something unfinished.

Two part plan going forward. Part 1: Mixing in leetcode problems going forward. I need the practice with general CS concepts. Part 2: Going through the Web Developer Bootcamp course on Udemy. I need a more in-depth run through of web dev languages.