Computer Science

11:00 - I actually started my coding journey a few years ago when, out of curiosity, I started following along in MIT’s Open CourseWare offering of 6.00 (later adapted for edX.org as 6.00x: Introduction to Computer Programming). The class, as I recall, was intended for non-majors or students without pprevious programming experience looking to get their feet wet in computer science.

One of the biggest differences I’ve noticed between their approach and the approach of more development-centric programs is where the introduce concepts like recursion and algorithms. In the MIT course, these concepts (iterative vs. recursive sort, ‘Big O notation’, etc) are introduced within the first couple of weeks and are in fact considered the foundation of everything else you do within the program.

So now I’m doing it again, but this time with Ruby. The Fibonacci sequence, merge sort… it’s all really familiar and yet still super challenging. It really is a different way of thinking, and while I recognize the value in just that, flexing your brain muscles, I’m also put off by the seeming futility of this exercise: will I just lose these concepts to the cob-webby junk drawer of my mind until some hiring manager decides to make me solve a white board problem?

Who knows!!! All I know is that after I solve these CS problems, it’s on to some sweet, sweet RSPEC and, hopefully before my next meeting, the next section: Rails!

16:08 - Fibonacci and Merge-Sort complete. Boom. Suck it, recursion.

18:25 - Just started the Binary Search Tree project. The mental picture is clear, but the path to the code isn’t. It’s Friday night. I’m calling it. Time for video games.

Written on October 9, 2015