In this post I’m going to use website construction as an example of how to apply the Tim Ferriss DiSSS framework for rapid learning. This post will not give a great deal of detail about the technical elements of building a website – for that I’d recommend codecademy.
So why am I suddenly talking about website construction? For good reasons: personal development and entrepreneurial reasons! I have a “muse” project which I am looking to develop and launch in 2013 (more on this in future posts). In order to execute it at a *much *lower cost, where I am able to do a lot of the work, I will need to learn web design and web development.
For n00bs (which I make no claim not to be), generally speaking, web design is the stuff which involves the aesthetics of a site, whereas development is all about the functionality. Depending on the scope of the project, there can be massive overlap between the two. Before we go any further, I’ll just clear up a few terms:
- *HTML: *The basic language in which all websites are written.
- *CSS: *Is used to style HTML so that it looks pretty.
- *JavaScript: *Is used to make websites do interesting and dynamic things (like interact with you to tell you you’ve filled a form in wrong, or make something move on the screen).
- jQuery: Is a JavaScript library, which means that it does really fancy JavaScript things in simple, elegant ways.
Web development, in particular, is complicated. It can be split into two broad categories: client-side and server-side. Server-side is stuff that gets done by…a server…i.e. far away from you. Server-side development involves proper computer programming languages such as Perl, ASP or PHP. That’s pretty much all I know about server-side coding, it’s a murky and complex world. Client-side coding gets done by…the client. Who’s the client? You are! What that means is that client-side code deals with operations a website will get your computer (specifically, your browser) to do. Client-side code is written in JavaScript (not to be confused with Java, a totally different programming language).
So what? Well, I’m on a schedule. I want to get good at this web stuff, fast. And I’m hoping it’s starting to emerge that we at LLB take time-management damn seriously. In this post, I’m going to explain my plan for accelerating my learning, and where I’m up to right now. First the preamble:
My Brazilian Jiu-Jitsu coach recently interviewed Tim Ferriss, a man who we bang on about a lot here at LLB. Check out the full interview here (highly recommended). As SJ has discussed, in *The Four Hour Chef, *Ferriss talks about his system for rapid learning. In this fascinating guide he uses cooking a vehicle to explain his method for accelerating progress from average to “world-class” (top 5% of the relevant population) in six months. This approach led him to set a world record in Tango dancing, him winning the San Shou world championships, and deadlifting some 500 lbs (about 260kg). Key fundamentals are leveraging what you are already good at – Tim has a background in wrestling and break dancing, so for his Tango world record, he focused on moves which allowed him to capitalise on his ability to spin fast. For San Shou, he won by pushing his opponents out of the ring, using wrestling control techniques, and also rapid weight-loss (now a regular fixture among competitors, but 10 years ago very cutting edge).
So, what is this system? It’s DiSSS:
Deconstruction: Figure out the “components” of the skill you are trying to learn. Cooking is made up of a number of components: shopping (actually very important for finding the right ingredients), preparation, a range of cooking techniques (sautéing, baking, grilling etc.), hosting (potentially), and clean-up. It is important to be clear what the main components of a skill are, so that you are able to complete **selection. **
Selection: Apply the Pareto principle to the deconstructed components of the skill. Briefly, the Pareto principle states that 80% of your success/sales will come from 20% of your techniques/customers/efforts. You must identify what this 20% is, and then focus on it so you do not waste time on the lower-yield 80%.
Sequencing: Once you have identified which “components” will result in the greatest skill increase, you must then figure out the correct order in which to learn these components. Many times people learn great techniques, but are not able to execute them because their sequencing is off.
Stakes: Without stakes, you are setting yourself up to quit. Create a bitter pill to swallow if you quit. Make it humiliating for yourself, make it painful, make it something that makes you shake your head when you imagine it. The stick is mightier than the carrot.
So…how do we apply this to Web Construction?
I am going to go through this process for myself, step-by-step. You can do the same, simply replace Web Construction with a skill you want to acquire/improve, and replace my strengths/weaknesses with your own!
DECONSTRUCTION
What are the main components of Web Construction?
On the design side, we have HTML, CSS, Photoshop (or similar), writing skills, and the ability to formulate and execute ideas. In terms of development, we have JavaScript, jQuery (and other libraries), and a myriad of server-side programming languages.
SELECTION
Having deconstructed the components, I now need to select the components which I believe are going to offer me the greatest “return”. In order to do this I need to analyse my strengths and weaknesses.
Strengths:
- Disciplined
- Creative
- Enjoy problem solving
- Good instinct for form/function/utility balance
Weaknesses:
- Not a born “techie”
- Careless when faced with repetitive tasks
- Not good at “traditional” art
- Highly inexperienced
So what does this mean? Well, as someone who basically falls in the middle of the spectrum between ultra-geek and arty-flaneur, I have elected to choose a mid-range coding curriculum. I have chosen JavaScript (and by extension jQuery, which is a JavaScript library) as my primary focus, with HTML and CSS as secondary enablers. This will allow me to harness certain strengths of mine (such as enjoying problem solving, and balancing form/function), whilst not requiring me to create masterpieces in Photoshop (I’m not arty enough for this to be sensible), or learn a hardcore programming language like Perl (I’m not geeky enough for this to be efficient).
Anyone who knows anything about web development will recognise that I am simplifying things here – “learning JavaScript” entails numerous sub-categories such as variables, functions, objects and more. Depending on the skill you are attempting to learn, you must decide about how deep you go when defining the parts you wish to select. I’m now 3 months into my training, and am now getting a much better feel for specific functions which I should focus on – however, initially I would not have been able to make such judgments.
SEQUENCING
The next thing to consider is **sequencing. **Which order should I be learning these? To put it bluntly, you can’t do much in JavaScript or jQuery without having basic HTML and CSS. So I needed to learn the basics of those two first. As you can probably guess, it’s not that easy, and there are newer versions of both HTML and CSS, so I’ll need to learn those next. Then it makes sense to learn JavaScript. jQuery comes last, because it’s based on JavaScript, so knowing what it is based on is useful – kind of like learning to drive on a manual before switching to an automatic. So my sequence looks like this:
- HTML/CSS
- HTML5/CSS3
- JavaScript
- jQuery
STAKES
All that remains is the setup some stakes. I will be designing a dedicated website for LLB. If, on September 01, 2013, the other members of LLB do not think it is up to scratch, I will be donating one month’s rent to an anti-charity, i.e. an organisation I really don’t want to give my money. MM, as our most stringent personal finance junkie, will be keeping the money. I know that if I fail, there will be no bargaining with her.
This is the first the team at LLB have heard of this. Now they know.
And there we have it, DISSS applied – I’ll keep you posted on how it goes.
Over to you.