The past few days, I’ve achieved the perfect blend of productivity and enjoyment. Lots of programming, lots of different projects, lots of things I’m interested in, it’s all great fun.
Personal Development
“When you don’t create things, you become defined by your tastes rather than ability. Your tastes only narrow and exclude people. So create.”
The unexamined life is not worth living.
I’ve been thinking about diet as a metaphor for the things I do every day. There are good and bad things I can eat, the same way that there are productive tasks that nourish my life as well as unproductive or even harmful things that diminish me.
Lean meats and vegetables are equivalent to work, study, organization, errands. Fruits might be enjoying the company of friends and loved ones, or working on a fun hobby. Watching TV might be a nice rack of BBQ ribs, and sitting on the couch playing video games like a zombie would be akin to stuffing doughnut after doughnut down your gullet.
Lately, I’ve noticed that keeping a steady, monotonous diet of one or two foods will kill my appetite. I eat less overall. This matches pretty closely with a study that shows a correlation between increased variety of foods and greater food consumption.
It seems to be the same with my daily tasks. If I spent all day watching TV (which I wouldn’t), I’d feel sick in the same way I’d feel after cleaning out a bucket of ice cream. If I worked and studied all day, I’d feel healthy and proud of myself the same way I would if I’d eaten lean meats and fibrous vegetables, but I’d also be dreaming about that bucket of ice cream.
The problem is that too much of one thing will kill my appetite for that thing. That’s not a problem with ice cream, since I don’t want to overeat empty calories or watch TV all day. However, if I want to be very productive at one thing (e.g. convert ColorMyWorld to iOS 7), eventually I get fatigued of the lack of variety, which isn’t too dissimilar from eating grilled chicken breast day-in, day-out.
I think the best productivity hack to keeping a healthy diet is to keep a wide variety of foods so that you don’t get tired or bored of any one meal. Different proteins, different preparations, different sauces, different vegetables. There’s room for fruit, of course; that’s important. There’s also room for occasional indulgences, if only to give yourself a mental break and not feel deprived. But if you want to eat healthy foods consistently, you can’t let yourself get bored, frustrated, or tired of healthy foods.
I’m feeling the same way about work and productivity. Doing one task for eight hours will fatigue anyone. I’ve found that switching between different productive tasks is a great way to keep productivity up while combating monotony. It’s important that I don’t get sick of ColorMyWorld, so I might switch to interview questions or learn about Auto Layout or watch Coursera lectures.
I’m learning the value of plugging away on a task without judgment instead of obsessing about progression.
Progression isn’t linear. Some problems remain shrouded in a thick fog until you put in the time and work, and suddenly the fog is lifted and you break through to a new level of understanding.
If you’re worried about your progress or lack thereof, you won’t have the patience to wait for the breakthrough.
This Coursera class on Algorithms that I’m taking is a good example. It’s a tough version of a basic course on algorithms and data structures, and not so different from the one I took at UCI a decade ago except that the video game difficulty setting has been jacked up a few notches. A lot of the exercise problems I’m facing are novel in presentation and concept.
Thankfully, I’m armed with the best that Adam Robinson, Toni Krasnic, and the XMind mind mapping software have to offer, and putting in the effort is easier when there’s a framework that you can put your faith into. Yes, I have faith in these systems, and these systems have empowered me to take control of my own education.
Instead of forcing myself to memorize how to use a union-find data structure, I ask myself a series of questions. What is this data structure trying to solve? What’s the naive approach? What are some optimizations? How might I use this in other situations? On and on, I ask myself better questions and am rewarded with better answers. I map these concepts, stare at them, ask more questions, draw relationships, and constantly edit and reorganize until they make sense. I flex those muscles with exercises, and reinforce them after some time has passed.
It works, oh miracle of miracles, it does. I wish I’d known earlier that learning is about asking good questions, wanting good answers, and having the mindfulness and patience to enjoy the ride. Still, I’m thankful that I know now what I couldn’t before.
These days I don’t experience much dread when I run into an obstacle, I experience bemusement. “How will I get past this,” I wonder. And off I go.