Principles over Procedures

October 29, 2020

Recently, I’ve been going through a lot of new material, and just wanted to jot down some of my thoughts of the learning process. Both top-down and bottom-up approaches to learning are equally important when trying to understand concepts on a deeper level. For example, reasoning through mathematical proofs in addition working through the mechanics of algebra and calculus, learning music theory in addition to learning songs and playing with others in a live setting, and reviewing different plays/strategies in addition to conditioning and repeated practice of specific motor skills in specific sports. Given enough time, I tend to prefer the bottom-up approach as I really enjoy understanding and figuring things out from first principles, but I also find the top-down approach very helpful in getting the “big-picture” perspective on things. The rest of this post will somewhat be a product review of several different things I’m learning at the moment, but I think whether it’s the bottom-up or top-down approach, the underlying thing I really have found useful is to identify the underlying principles over specific procecures and examples - with an understanding of the underlying principles, it gives a way to organize your thoughts around a new subject.

Designing Data-Intensive Applications - Martin Kleppmann

This book is all about data, and the different approaches to how data is stored, processed, and managed. Early in my career, I was a DBA and had a lot of experience with relational databases (I was already very familiar with the material in Chapter 7 - transactions - of the book). However, I never really looked much into other types of database systems and did not really understand the solutions other database systems provided. This book begins with describing how database systems store and encode data at a fundamental level, then works its way up to describing replication, partitioning, transactions, and distributed data. Although this book is over 500 pages long, I found it hard to put down and finished it quickly. The chapters are laid out in such a logical and organized way if you read it from start to beginning - each chapter builds up and smoothly leads into the next. You can tell that the author clearly knows the subject incredibly well, and put in a lot of effort in organizing what seems to be a lot of unrelated concepts into a well-structured set of inter-related topics. All in all, I think this book should be required reading for anyone that wants to build any software systems today that needs to store state of any kind (e.g. this pretty much includes all web apps). This has quickly become one of my favorite technical books that I’ve read in the past few years.

Go Further Faster - John Danaher

This is a series of Brazilian Jiu Jitsu (BJJ) instructional videos that aim to teach fundamental principles of the martial art. There have been many other BJJ videos that I’ve watched in the past, but this series is different in that they focus more on the general principles rather than teaching a collection of techniques to memorize. For example, these series describe what the general goals are for the practitioner in each position/situation in regards to grips, weight distribution, and body placement and alignment, rather than repeating step-by-step instructions on how to perform a specific technique. I’m very new to the martial art, but I’ve found this series incredibly helpful when trying to learn and internalize specific techniques, in addition to giving me an idea of what to try to aim for when rolling with others.

Mark Lettieri Master Course

I’m a huge fan of Mark Lettieri’s - he an great musician and guitarist with an amazing sense of time and rhythm. I was looking to improve my time feel and was interested in his course to get ideas on his approach to music and rhythm. It turns out that this course consists of four entire different modules, starting with a whole section on harmony (a section on rhythm starts in the second module), and I’ve already gotten so many ideas of the first three lessons of the course. Again, to continue with the theme of this post, the course really goes through general concepts and ideas, rather than specific techniques. I’ve only gone through the first couple of lessons so far, but have picked up new ideas on how to create new chord voicings, as well as the endless possibilities of applying those same voicings under different circumstances to create a completely different effect.


For anyone interested in databases, Brazilian Jiu Jitsu, and/or guitar, and want a more “big picture” perspective and framework for understanding these subjects, I definitely recommend these resources.