28 December 2014

30 websites in 30 days

In any particular skillset, there is the distinction to be made regarding the difference between depth and breadth of skill. Breadth concerns the range and diversity of knowledge you have. Depth concerns the level of internalization you have attained. After taking Harvard's Data Structures and Algorithms class I determined that depth was by far more important than breadth. This class was the most intense course I have ever taken in my life. This single course was basically a part time job, with each homework assignment taking the average student between 20-30 hours.

After I completed finals for the semester, I went off and began doing other challenges in my spare time during Christmas break such as completing JavaScript koans and rewriting Underscore.js. I realized while doing these other projects just how much I learned in class. I was able to come up with solutions that before the class I would have never been able to come up with. And yet interestingly enough, none of the content was similar in syntax or form. It wasn't that I simply attained more knowledge, rather it was more so that I had internalized universal fundamentals of software engineering at a deep level. The principles I have mastered are now spilling over into all areas of my work and allow me to produce greater results than I ever thought possible.

Depth is more powerful than breadth because depth is universal. It is not universal in content, but rather it is universal in the underlying forms and patterns. For example, when you learn enough programming languages, learning another one is just a matter of learning new syntax. When you have already internalized the fundamentals of object oriented programming, you have mastered that set of patterns, so switching programming languages is as easy as learning new syntax.

The tendency in humans is to pursue breadth over depth. Humans want breadth over depth for one fundamental reason: Human's are biologically programmed to preserve time and energy. Going for depth is usually more difficut; it is easier to learn new material than to internalize your current knowledge base at a much deeper level. The reason breadth is more enticing is because our brains crave variety and novelty.

How is any of this relevant?

I have an entire month off before going to my next intensive software engineering school. When people get timeoff they usually take it easy, because as stated above- our biological tendency is to perserve time and energy. I am going to use this time off as an oppurtunity to defy my evolutionary programming, and spend the entire month coding my own projects.

Massive Action Plan

  1. Make one static website a day for 30 days
  2. Make one blog post every other day for 30 days


So that's it! That is my new personal standard for this month. A lot of people of neat ideas, but without following your cool ideas up with action they are pretty pointless.