freeCodeCamp – Part 3: Stanford CS101

Time for another update on my freeCodeCamp progress: I am now close to completing the CS101 course on Stanford courseware, which are the challenges 18 to 23 on freeCodeCamp – one for each week of the course, bascially. The content is quite easy or basic, at least for people that have been interested in – although not necessarily super-knowledgeable about – computers for a while, like me. This surprised me, because I remember trying to do a Harvardx course a longer time ago that was considerably harder to really get into. Might have been because my motivation was different, or because it was actually a slightly more advanced or ambitious course. As I do not remember which course it was, I can’t really find out easily now. Anyways, here are the things I like, want to criticise and found interesting about this part of freeCodeCamp, starting with the negatives.

The (somewhat) confusing parts

If CS101 did not use JavaScript, it would make not much sense to integrate it into freeCodeCamp. That much seems clear. What is a bit odd, however, is that CS101 uses a handful of functions extending JavaScript, like a for-loop, .startsWith and .endsWith etc.. Implementing these extension functions is probably not exactly “beginner’s level”, so you will write some code here that is often not directly usable “in the wild”.

The best parts

Stanford CS101 starts out with image manipulation examples to code around. At first I thought that this was a bit silly or unnecessary, but it is actually a very good way to show what your code does – and what your code does if you change some parameters slightly. Other courses should follow this example. Much more interesting than adding two numbers together, or concentating two strings. The type of example maybe overemphasizes the RGB color scheme a bit, but at the very least, that’s one thing everybody should remember well, after completing CS101.

The interestings (or fun) parts

In challenge 21, you learn about some basic computer networking things. One part, to show how a connection hops through the network, is the command line instruction traceroute (or tracecert, for Windows). If you want to see some interesting, slow hops, you can try that out with URLs from the North Korean Website List*. I usually got stuck in China. 😉


* The North Korean Website List is maintained by North Korea Tech, one of my favorite “obscure” tech blogs. Always keeps you updated on Red Star OS, the Juche-followers’ favorite Linux distro, and which Android devices now get imported from China etc..