The past week has been Week 2 of my Ultralearning experiment in which I attempt to teach myself web development, with the goal of being good enough to get a SWE internship next summer.

What’s gone well:

  • Consulting w/ peers on Telegram. The community is helpful and has saved me time.
  • Accountability. I share my time-tracking spreadsheet with someone close to me.
  • Managing my psychology. This undertaking has become daunting over the past week. School’s begun, and it won’t be easy; the course will now involve more debugging (NOT a fun prospect); and I better appreciate what it will demand over the coming months. I’ve countered this by instituting psychological guardrails: association, variable rewards, measurement, affirmations, managing inputs.

Managing my Psychology


Lectures are online and public spaces are restricted, so I’m confined to my room. Thus, it’s important to have explicitly delineated and mutually exclusive areas for work, play and sleep. The desk is (only) for work, the top of the dresser is where I put my laptop if I’m doing something mindless (e.g. YouTube), and the bed is for sleep (no devices). Obvious interventions, but powerful; my environment is now a user interface for my mood and energy levels.

Variable rewards:

Every time I start a work session, I roll a die; if it comes up even, I get a treat (typically candy). The idea is to addict myself to getting started, and to associate working with a rush. Seems to be working so far.


Taking advantage of Drucker’s maxim, I log what I do with my time (in half-hour increments). It prevents despair and Panglossian delusion, and gives me metrics for input (hours worked, intensity of hours) that I can aim to optimize.

Managing inputs:

I try to avoid media which isn’t energizing. Stuff like sad music, all news, TV shows (anything that’s not lighthearted comedy), etc. I don’t receive notifications on my phone except actual calls. I use a Chrome plugin to keep me honest on desktop.

This experiment is still in its early stages (struggling to break free of YouTube’s vicelike grip), and I’m open to further changes (no music at all, no lyrical music, only upbeat songs, watch some stand-up every day, etc.).


The most woo-woo thing I do. Don’t assume that I believe in magic/voodoo/animal spirits, though.

What’s gone poorly:

  • Focus and intensity: yes, that old chestnut — tough nut to crack. I’m not paying attention to my energy levels, so I will do that and see how it impacts my focus.
  • Pure volume: while I spent 22.5 hours on course activities (including 30 mins of blogging) last week, this number is at risk of dropping off a cliff as school ramps up (this number was buttressed by time spent at the start of the week, before school had started). I aim to spend 2.5 hrs/day (17.5/week) on the course. The best approach will be to wake up early and get it done before the day starts.
  • Optimism: this has recently seemed like more of an onerous obligation than a chance for me to self-actualize. I think this is a normal fluctuation, though.
  • Monitoring energy: see above.

What I’ve built in the past week:

Notes (content from Part 3 of course): An app using React (frontend) and Express (backend), deployed to Heroku, that allows the user to add notes to a list of notes, and change the type of note that’s rendered (important notes/all notes). Changing importance functionality not implemented yet.

Phonebook (assignment from Part 3 of course): An app using React and Express, deployed to Heroku. Allows user to add contacts (name and phone number) to a phonebook, view the contacts currently in the phonebook, search for a specific contact (rendered contacts are dynamically filtered via search), and delete a contact.

Repos with all my work for this course so far:

Heroku websites (interactive):

Going forward:

  • Deadline: after being reminded of the importance of deadlines recently, my deadline for finishing this course is Saturday, the second of January, 2021. I have 8 modules left in the course, and 16 weeks to complete it, giving me a healthy(?) two weeks per module.
  • Energy. I will figure out a system for observing how my energy levels respond to certain inputs/food/experiences, and then I’ll use these observations to improve my energy.

Student @ UBC (Vancouver, BC).