Hi, I am Philip Grabenhorst.   I am a musician and computer programmer who believes that skill and ability in any given field are the product of a simple formula: time, effort, and interest.  This blog chronicles what I am learning now.  It is my hope that some small gem I uncover will be useful to another human being. Moreover, I hope that my own enthusiasm for learning will rub off on someone who feels like they have been needing it, as a gentle reminder that we should all, always, be learning.


The title says it all.  I have been playing the violin since the age of 12 and programming since the age of 15.  An instructor once told me, “at the end of the day, every musician is self taught.”  That has been my attitude toward learning, since.   This is not to devalue learning institutions, but to say that if a student has access to information and really wants to learn, they will learn and grow.   Likewise, the lackadaisical student with the same opportunity will not learn — regardless of their background, predisposition, or “giftedness.”  This website chronicles my efforts to improve my ability to solve problems by gaining a deeper understanding of fundamental computer sciences.


For a curriculum, I will be completing the following:

When asked how often one should practice, Suzuki famously quipped: “only on those days that you eat.”  I will be coding and working through a little bit of this curriculum, every day.  I will apply the following tools:

  • As I read the material, make a note of each concept I do not already understand.  After reading, I will take a thorough look at each question.
  • Record those notes in Evernote and, by way of a spaced repetition system, review said notes regularly enough to internalize them.
  • If not each day, then for each subheading/topic, find a way of building a full project that uses these new themes and elements.

As I discover concepts that deserve a deeper dive, I will create separate articles dedicated to those topics.