My regular Sunday brunch habit for the last month or so has been to go through Michael Hartl’s Learn Enough series. Although it’s been more of a refresher for me, I think it’s a great resource for anyone who’s just starting to learn to code.

(And if you’re an all-round nerd, you’ll also enjoy his writing style and pop culture references.)

One thing I love about Hartl’s materials is that he regularly emphasises on the importance of “technical sophistication”. 

Perhaps the most important aspect of technical sophistication is an attitude — a confidence and can-do spirit in the face of confusion that is well worth cultivating.

– Michael Hartl, Learn Enough Text Editor to be Dangerous

Learning to code is more than just learning syntax. It’s about knowing how to put together the syntax that you’ve learned. Or if you’re like me, you’ll know how to look for answers or play around until your algorithms work. 

The other thing I love is that I often find myself laughing out loud while reading. Unlike many other learn programming materials, Learn Enough has so much humour in it (or maybe it’s just #nerdhumor). 

For example, in one of the passages on making choices, there’s a link to an Indiana Jones clip on YouTube in which a character disintegrates after drinking from the wrong chalice. The clip then cuts to a Templar Knight who says, deadpan, “He chose poorly.”

This combination of serious technical instruction with dry humour is exactly what I need after a long week. This is my idea of “infotainment”.

It’s something I look forward to all week!


Today I finally sat down to work on a couple of my own projects. The aim was to build a bit of a directory of the cocktail bars in Malaysia (that I like or would like to visit).

This serves a dual purpose — to document, as well as to pick up Vue.js where I left off. The goal was to build an app with Airtable as the database and Vue.js to handle the frontend.

However, like the trumpet, coding is something that’s rather unforgiving. Stop practising for a while and you get rusty.

I gave myself a deadline — get the website up by today. But after reading, learning how to use Airtable and trying to set up my local environment for two hours, I was getting nowhere. I ended up with a plain HTML page (without CSS even!) and an embedded iframe.

It’s a start, I suppose. The website is up, and it’s a skeleton of what I imagine it to look like in the future.

The reason I gave myself a deadline was so that I would focus on what was necessary in the present. Right now.

And also because the other part of my day was meant to be spent on my documentary pitch, for which I had blocked out time for as well.

One of the best things about time-blocking is that there’s no such thing as writer’s block. It’s just unacceptable when you’ve got a task to complete within a specific timeframe.

In the midst of all the chaos, I’ve discovered order.