Fruit Shopping

For the past two weeks, I’ve been making smoothies on average, twice a day. That’s probably 4x more frequently than I previously was. The best part, I’ve found, is shopping!

That’s remarkable for me, because I hate shopping, and I hate spending money on things. Occasionally I get an urge to buy some books on Amazon or to get some computer parts. But I feel guilty about it; I furtively sneak a few items into my wishlist. When I buy food, I feel guilty, too. It’s usually cheap stuff like ramen or eggs, but sometimes I’d indulge in ice cream or candy or diet soda. Sure eggs are healthy, but I don’t really feel great buying them. Most of the food I end up getting is stuff that’s bad for me, and bad for the wallet.

Since I started eating smoothies I’ve looked forward to grocery shopping. I enjoy thinking about all the fresh fruit and vegetables I’m going to pick up. Maybe I’ll find some deals, or maybe I’ll try a new fruit. Today I bought for smoothies: 2 cucumbers, a bunch of bananas, 4 pears, a container of yogurt, two containers of cottage cheese, 6 bags of frozen blueberries (33% off), 4 bags of frozen peaches (33% off), a cantaloupe. For consumption outside of smoothies, I picked up pomegranates, onions and green onions (with root). I had kale, carrots, ginger, already. This food can be a little pricey (berries in particular), but I know it’s great for me, and also that it’ll taste great. I spend 15 minutes walking home thinking about what smoothie I’ll try first.

It’s strange to me to feel so good about shopping. But I love unpacking all this healthy fruit and vegetables, thinking about how good it’ll taste, thinking about what combination I’ll try in a smoothie. I enjoy dicing it up and filling up the freezer. And of course I enjoy preparing and drinking smoothies.

Minimalist Goals for 2013

Last year, I really went overboard with goals: I had a lot of goals, in a lot of areas, and then I kinda just ignored them. That’s been an unfortunate trend for me. I like setting goals more than working to achieve them.

At the end of 2012, I’m pretty happy with the trajectory I’m on (I’ll probably write another post about this). I post regularly on this blog – not as much as I like, but every week or two. I’m learning new skills, becoming a better programmer, continuing to improve my finances – all things that are important to me.

The one area where I only managed to maintain status quo was my health. Sure, I lifted weights a bit, but the sad fact is that given the amount of free time I have each day, I can’t regularly work out. (I mean, I do literally have enough time to work out, but not enough slack that I can stick to the habit). Although I’ve sporadically started working out,every six months or so over the past few years, it’s just been too brittle a habit to stick with it. So, I’m changing tactics.

They say that most of being healthy is what you eat, and less about going to the gym. Eating better doesn’t really require that much more time than eating terrible food. And it can be combined with other interests I have – being more self-sufficient, and being more frugal. My weakness has always been sugar and starches, and not so much fats, so I’m going to focus on reducing intake of sweets.

I’m making a very simple resolution for 2013. The only processed sugar I want to eat is stuff I’ve made myself, or when I’m at a restaurant with friends and family. No buying candy or ice cream or soda. No going to the vending machine for snacks. No gorging on the seemingly endless cakes and cookies that people bring into work. But if I make a pie or a smoothie or cookies myself, that’s ok.

My goal initially is to re-adjust my taste buds. I’ve seen before that apples and bananas can actually taste really sweet – if my taste buds haven’t been sated with sugar. I have a super-powerful vitamix blender that I use regularly. Although I use it a few times each week, I can lean on it much harder and have a shake or two almost every day, and put a lot of healthy greens in those shakes as well.

After a month or two of that, I’ll also look to cut down on bagels, breads and pasta.

Finally, I’m going to be more active. That doesn’t mean working out all the time, but I will get out and do things more often… particularly hiking and camping… maybe some pickup games and biking. Again, I’m killing two birds with one stone: doing something enjoyable and enriching, while getting healthier.

The overall goal: have a more trim, fine-tuned body – which should make me happier, more energetic, and more outgoing.

2012 in Review

Another year now in the books. Was 2012 a good or bad year?

A year ago I was looking to change apartments. I was very unhappy with the team I was working for, and how politically isolated I felt at my company. But I enjoyed the work I did. I was happy that I’d put my financial life in order, that I’d started a blog, that I’d finally started traveling.

Not too much has changed on a macro scale – I’ve moved to a new apartment. At work, I asserted myself and transferred to a much better team, but I’ve become unsatisfied with my work – it feels as though an alarm is going off telling me “now it’s time for something new.” I feel a tension between the desire to embark in a new direction, and my desire to ride the job I’ve got to financial independence. I’ve continued increasing my savings linearly – by 50%, in fact – while building up a pretty strong dividend portfolio (even if that portfolio has suffered some in the past month).

But on a micro scale, a lot has changed. I’ve managed to write semi-regularly. I’ve downsized in meaningful ways: disposed of a bookcase worth of books, eliminated a sack of unnecessary clothes, and given away some furniture. I’ve learned to cook a lot of new dishes, and to experiment in the kitchen. I’ve become comfortable programming in vim, learned to sharpen knives, air-dry my clothes, switched from Windows to Linux full-time, revived my interest in web programming, and built a few cool toy games. I play European boardgames and watch less TV. I’ve traveled to Iceland, and the Netherlands, and Bavaria, and I’ve seen and done exciting new things there. I’m more comfortable with my looks and dress better than a year ago. I keep a somewhat tidier apartment. Some very nasty, tension-inducing family troubles are behind me.

On the other hand, I’ve become less healthy than I was a year ago, as stress and sedentary life bury me further. I do some new things, but never as much as I want to. I still waste time surfing the internet, and I haven’t reduced expenses by nearly as much as I want. I haven’t been as outgoing or adventurous as I’d hoped. I still have room to downsize and streamline my life. I’m less satisfied with my work than ever.

Peering into 2013, the future is a bigger mystery than ever. I don’t know where I’ll be working or living, what my passions will be, what projects I’ll have completed, or what relationships I’ll have built. There are question marks entering every year, but more this year than most. I do know that if I grow and change as much in 2013 as I have in 2012, I can count it a successful year.

Switching Jobs

Over the past four years, I haven’t (ever) considered changing jobs. I’m still at my first job outside of college; my planning was constrained to one degree of freedom: “how many more years do I have to work at my current job, before retirement is feasible” rather than “what would be best for my career/sanity – and also lead to financial independence?” I earn quite a bit of money; I naively assumed that it was probably more than I would make elsewhere. Furthermore, I recognize that I have terrible interview skills; I don’t have a good memory for algorithms/data structures and my knowledge of languages is mostly restricted to a proprietary language where I work.

But things have changed, due to the following:

  • I’m increasingly unhappy at my job. I’m under a ton of stress, I’m working 10+ hours every day and 12+ hours two days per week. I’m no longer learning as much as I was a year or two ago, and although over the coming months I might pick up a little bit of java knowledge I’m certain that it’s not as much as I’d learn in a new job. And java is hardly the sexiest programming language! (Scala or Python look like fun).
  • I had a frank conversation after work, with a few co-workers who felt that staying at my job another year would hurt my career. They said “whatever raise you get this year is probably not going to be as good as switching jobs,” and “you’re reaching a point (4.5 years) where switching becomes increasingly difficult.” And I think they’re right.
  • I don’t really know my value on the market. Without interviewing, I can’t establish how much I’m “worth,” or understand whether I’m over/under paid.
  • At this point, I think I can find another job where I’m happier. Ideally, in such a job I would: be learning more broadly applicable and marketable skills, in a more socially useful profession, while working fewer hours and earning more money. Is it optimistic to assume all of the above would be true? Yeah, but I know jobs which fulfill these criteria are out there, so why not try to find them? I’d consider switching for the same salary if I knew the other three things would be fulfilled.
  • Although I think that it’s unlikely that I’d be laid off, my known weakness in interviewing is something I’d feel more comfortable remediating.
  • I’ve been programming professionally for 5 years but sadly, my knowledge is so narrow I can’t do cool projects I want to. I’m no longer thinking outside the box.

In the end, the fundamental problem is that I don’t have enough information: I don’t know my value on the market. I’m also intimidated by an obvious weakness: although I think I’m an excellent employee, my skillset is almost entirely disjoint from the skillset required to interview well.

So, the first thing I need to do is practice my interview skills, and go out and interview as much as possible. There’s no reason not to do so. I build up important skills, might get a good offer, and start to get a better intuition for whether I’m underpaid. My plan right now is to start working on code katas and little interview-style puzzles to learn a new language, and then start exploring other options in January/February.


So… I keep meaning to “get fit,” with the best intentions… and I keep putting it off. So I’m going to post a lot more frequently – small posts, with basic nutrition intake/workout info. This is for the social pressure. I’m also counting calories. I did this and found it very effective in the past.

My reasons for focusing on fitness, in short, are:

  • I’m tired of feeling “fat.” I put quotations because I don’t think I’m fat, but I’m definitely overweight, enough that I think it’s noticeable – which makes me self-conscious. It limits the clothing I want to wear and the things I want to do.
  • I think I’m more tired than I should be, and I suspect this is due to poor fitness. Good fitness is a force multiplier.
  • In none of my dreams or aspirations do I envision myself being fat. When I think about traveling to Nepal, or Thailand, or Sweden, I don’t imagine myself being overweight or weak there. Same for hiking, or playing frisbee, or even hanging out with friends. My weight and fitness will have a huge impact on whether I enjoy myself or not.

My short-term goal is to be in better shape for my trip to Germany (about 50 days away). Longer-term, I simply want to be in good shape: strong with low bodyfat. My first “number” goal is 170 pounds. I’m probably 190 now but will have the exact number tomorrow.

I’d prefer to keep this short rather than pontificating. For the next two weeks, on the nutrition side I’d simply like to track what I eat. On the exercise side, I’d like to get into the weight-lifting routine. This Friday I’ll have to substitute something else – running or biking probably.

Today, my nutrition breakdown was as follows:

Ate 2500 calories: 85g fat, 270g carbs, 120g protein. The worst was eating oreos & a beer; I also ate both homemade mac&cheese and egg+ramen. The mac&cheese is actually pretty healthy, but together they’re simply too many carbs; the ramen also adds quite a bit of fat.

So there you have it. Tomorrow I’m planning on lifting. For the first two weeks (5 sessions), I’m planning on only doing squats and bench, with some light cardio thrown in. Then I’ll add in rows, deadlifts, overhead press, pullups, and some heavy cardio sprints (HIIT).

2011 in Review: Part II

In Part I of this update, I reviewed 2011. Now I’d like to look ahead and plan for 2012. At first I was overly ambitious and wanted to change ALL OF THE THINGS. But that’s neither wise nor achievable. I’m going to set goals in the following areas: Health, Finances, Adventure, Programming, Writing

2012 Theme

I want to brand 2012 as The Year of Excitement. I don’t want it to simply be a repeat of 2011, and I’ve overall felt very lethargic – due to poor fitness, sleep deprivation, stress, boredom, etc. I want to get excited again about programming and writing and I want to explore and have adventures. Strong health and strong finances are key to achieving this.


My single highest priority for 2012 is transforming my health. I firmly believe that health is a lever which can influence each area of a person’s life. I could go on at length about my motivations, but I’ll spare you.

In a comment on Part I, someone suggested I run a triathlon. I think that’s a bit beyond what I can commit to training right now. However, I do like the idea of training with a goal in mind. Running is cheap, requires very few supplies, is relatively effective, and opens doorways to other activities I’ve held off on (playing ultimate frisbee again, and trying soccer).

So, in the next week, I will be signing up for a 5k, 10k, or half marathon (or some combination of these). There are a few reasonable options in mid-February.

For 2012 in general, I will track all my macronutrients, lose 20 pounds, cut junk food out of my diet (except for once a week), and develop a maintainable (for me) bodyweight training routine. More details to follow.


2011 was a financial success for me, and I expect 2012 to be the same. My overall goal is simply to reduce spending and increase dividend income.

I will be moving to a new apartment, and I’m hoping to find something cheaper than where I currently live. I’m already checking out a few places, but there aren’t many which represent a good compromise between comfort and price. Currently, housing is a whopping two thirds of my total budget. I’m also looking to become a more sophisticated investor, to continue contributing to the financial independence community, and to reduce some of the most egregious expenses (such as stopping by the grocery store every night after work).


As detailed in Part I, I simply didn’t take advantage of living in NYC. I also have some savings and it doesn’t make sense to entirely defer my travel dreams until retirement.

After my last trip, I dreamt of returning to Germany, to see the Rhein. I was thinking of taking a week to travel. I typically waste a lot of my vacation doing nothing – on Monday morning I wake up and decide that I just don’t want to go to work. It’s totally ludicrous: I feel guilty and don’t really enjoy these days.

Fortuitously I started checking airline prices and noticed I could stopover in Reykjavik – I’ve always wanted to see Iceland – and then I made the commitment to stockpile vacation days. I sat on this decision for a few days and was practically salivating at the thought of the two week vacation I had planned. So, I bought airline tickets – one way – to Europe. Right now, the plan is to go NYC – Reykjavik – Amsterdam – Köln – Mainz – München. I’ll get to see parts of three kickass countries and it will certainly be an adventure. There’s no turning back now, with the tickets purchased.

Closer to home, I would simply like to try something new each week. One week that could be trying a new restaurant in my area, but it could also be something more ambitious, such as visiting a new neighborhood or restaurant, a museum or concert, or a meetup, I don’t particularly care. As long as I can do it on a budget, I’ll be happy. I’ve been stuck in a rut.


I did precious little programming on my own in 2011. I’d like to focus on three languages in 2012: Java, Python, and Clojure. Python, I simply enjoy programming in. I like it as a web development language (using the Django framework). I programmed in Java for most of college, but I’m very rusty; it seems competent for game development, which I want to get into. And finally Clojure, because it’s a lisp dialect that can harness java libraries.

I’m currently running through some Clojure code katas, of which there are 130, ranging from basic syntax through complicated tree parsing or list operations. It’s fun, because I’m doing some Code Golfing to familiarize myself with the syntax.

In 2012 want to participate in 3-4 Ludum Dare-like challenges (not necessarily official, I can do them myself). I’ve done next to zero game development, so these would be starting from the very basics. Finally, I’d like to develop and publish a moderately complex Django site.


I’m satisfied with the way things are going on this site and elsewhere. I just want to be more regular. So I will be committing to posting three updates to this blog per week. They don’t have to be long. I just want to get in a steady routine of expressing and refining my thoughts.

2011 in Review: Part I

This is a two-part update. I will review 2011, and plan 2012. My focus will be my (m741’s) personal goals, and overall what I did during the course of the year. In Part I I’m going to review what went well (or didn’t) in 2011.

This is a relatively personal look at things. But personally, I enjoy reading about people’s progress, so hopefully you find it useful or at least entertaining.

What Went Well In 2011

I made progress in many areas, but three stick out.


Although I didn’t anticipate it working out this way, 2011 became my Year of Finance. In one way or another, most of my biggest achievements were tied to personal finance. I went from semi-frugal but clueless to frugal and driven. Now I am totally in control of my financial destiny. A few highlights:

  • Started the year with 28 months of expenses saved. Finished it with 80 months
  • In January, I was spending $3000/month. Currently spending $2200/month
  • Quadrupled monthly investment income
  • More than doubled savings
  • Tracked every expense and source of income
  • Developed routine to tabulate and check various savings accounts monthly

These are all huge, but most important of all is that I now have plans. I know that on my current trajectory, in 2-5 years I will have the financial resources to do whatever I want.


In 2011, I began to actively participate in an online community for the first time. Funny, given that I’ve been online for almost 15 years at this point. Part of that included writing regularly about things that were personally meaningful to me I would estimate that I wrote a paragraph or two every day. However, I didn’t edit or stop or write as consciously as I could have.

I also started this blog in the fall and have been relatively consistent with updates – I’ve published about 23 so far. I feel like my writing style has progressed, and I’ve begun to experiment and write less formulaic essays. I’m satisfied with my progress and will seek to develop further in 2012. Experience and deliberate practice are the only way to improve.

‘Personal Development’

I don’t know how to quantify or categorize it, but I feel that I learned and internalized lots of little skills or knowledge while at work. I have a better idea how to conduct myself intelligently in a business environment, and developed various skills for project management, personal interaction, planning, mindset, etc.

Not everything went my way – there were 2-3 projects that I feel objectively were failures. In other cases, I didn’t handle myself well or did something that in retrospect was foolish. But I’ve learned, and might be a little smarter in the future.

I also had to deal with a series of family problems, and I’m proud of how I conducted myself under stress.

What Didn’t go Well in 2011


This was a busy and stressful year for me, and my health fell by the wayside. Currently, I’m not in terrible shape. But relative to where I was 3 years ago, there’s no comparison. I don’t have a working bathroom scale, but I believe I gained 10-15 pounds over the course of 2011. Basic things are more difficult than they ought to be; clothes are beginning to feel tight; I’m more self-conscious; I’m frequently exhausted. Overall, I simply don’t feel comfortable. Regaining my health is my number one priority for 2012.

In 2011, I made sporadic attempts to exercise and eat well. But I didn’t allow myself enough slack, and when my routine got disrupted by vacation or became congested, I stopped.


Exploring, and having spontaneous adventures is kinda the point of life. Otherwise, you’re just counting down the hours and making time pass. Opportunities to explore kept presenting themselves – and I ignored them.

After all, I live in NYC, and one of the things I should have done was to explore each neighborhood. This is a huge city and it has so much to do – the museums, sights, restaurants, activity groups, etc. I won’t be living here forever, but I’ve spend 3 years here and know very little about the city. Most nights and weekends, I stayed in my apartment and slept or watched TV.

I did travel outside of North America for the first time, to Germany for a week. It’s something I could easily have postponed or put off. Instead, I planned and executed, and everything went better than expected. It was a great experience. In 2012, I want to travel more.

Various Skills

I was far from dedicated or consistent enough in my pursuit of various skills. Among them: learning German, practicing various musical instruments, programming for fun, etc.

I made various desultory efforts in each of these, but none was consistent enough to pay dividends. Was I too ambitious? Mostly I overestimated my resilience and energy. Too frequently, I dallied and wasted time watching television, movies, or surfing the web.


Overall, 2011 was a very positive year in terms of personal development, skill acquisition, and money saved. I would rate it as a 7/10: definitely good, but I didn’t execute as well as I could have and I’m excited that 2012 could be even better.

Unusual Metrics

First, I apologize for the lack of updates – the holidays have kept me busy!

If you track your personal finance numbers they can get a little bit stale. Typically people track monthly expenses and income. They can break these expenses down by category. These are very cool metrics if you were previously in the dark about your finances. They’re your bread-and-butter, meat-and-potatoes metrics. But there are other zesty, spicy metrics you can easily track. Essentially they’re just the output of a formula, but the meaning they convey is immense.

Daily Expenses

Tracking monthly expenses is fine, but suppose you like to travel? Typically people will not have consistent expenses for a month when traveling. It’s not normal to rent an apartment when you’re visiting another country (though it may be the rational thing to do)! Instead, the typical expense tends to be on a daily timeframe.

Let’s try a thought experiment: you always wanted to visit Thailand. The awesome cheap food, warm weather, exotic culture, ancient temples, rainforest and beaches had you daydreaming during office meetings.

The only problem? It costs $2000 to fly from the US to Thailand (this is just a rough number). Suppose you can pack up everything you own and leave it with friends or family for a while. This means you won’t pay rent at home. How long would you need to stay in Thailand to make up for the cost of the flight? Let’s say you assume that all your expenses will be a wash, except that lodging will be much cheaper for you.

You’ve put in all the effort to track your monthly stats. Take your average monthly expenses, multiply by 12, and divide by 365. Let’s say you live in Boston or NY, and share an apartment. You’d probably be spending about $1000 a month, or about $35/day. You do some research online and determine you can get a private room in a hostel on backpacking mecca Khao San Road for about $8/night.

Doing the math: 2000/(35-8)=74 days. In other words, lodging per night in Bangkok is so much cheaper than where you live now, you’d make up the intimidating cost of that flight in a little over two months. And that’s ignoring the cheap food and entertainment. Very cool!

ROI to Retire Today

When you start tracking everything, you can sometimes feel like you’ve got a long ways to go. To be honest, you probably do. It’s a journey you’ll have to embrace. But sometimes you want to daydream. you’ll think “how lucky do I have to be in order to retire today?”

While you’re unlikely to win the lottery, other things could happen that are at least a little remunerative. The magic formula here is:

Monthly expenses * 12 / Total Savings * 100

This will give you the percent you’d need to make to retire now.

Suppose you’ve been working for a few years and accumulated $50,000. You’re relatively frugal and spend $1000/month. In order to retire today, the formula says you’d need to earn 25% on your investments. That’s a lot, but it’s not unheard of. It might be possible to find a great rental property that gives you a 25% return. Or if you found a particularly volatile stock, you might make 25% in a year.

Each percent your required ROI goes, the more conceivable it becomes. Some REITs return 20% in dividends annually. Some MLPs will give you 12%. Or the market could easily have 3-4 big days in a week and end up 10%. Or maybe inflation could stay at 0 and you could earn 8% on safe corporate bonds.

Are any of these plausible? Well, not initially. But they’re not outside the realm of possibility. So they’re great for daydreams. They’ll help you stay optimistic as you approach the magic threshold of 3-4% ROI, generally considered sustainable.

So – numbers are useful. And some numbers you’d want to check every day. But each number is more than a metric, it also tells a story if you just listen to what it says.

m741’s Goals: Part I

It’s very easy to fall into this trap: you spend all day fantasizing about what things *will be like* when you have different skills. For instance: when I can play guitar, I’ll be able to tutor people and show off at parties, and all my friends will be incredibly impressed at how awesome I am!

And then, you practice guitar for a week or two, and then get sidetracked by another dream: when I have six-pack abs, chicks will be all over me, and then when they find out I can speak French, and have also published research papers on quasars …

As an introvert, self-improvement is more of a focus for me than going out drinking, but I’ve never had enough focused to achieve my goals. So, here, I will formulate goals in two areas that are important to me: speaking foreign languages, and reducing monthly expenses.

Goal 1: Learning German

Why? I enjoy traveling, and I enjoyed my time in Germany and want to return; I’d also like to see Austria, Switzerland, Belgium, etc. I think knowledge of German would also be a big boost if I wanted to visit the Scandinavian countries. Furthermore, knowing German would open up the possibility of being an English tutor. And there are other languages which I’d like to speak where English tutoring would make even more sense, and having practical experience learning multiple languages would be great. Examples: Thai, Spanish, Hindi.

Milestone 1: Intermediate Comprehension

Timeline: 3 Months
I will consider this milestone achieved if I am able to:

  • Hold a general (unspecialized) conversation in German, with 50% or better understanding of exactly what my conversational partner is saying, and with the ability to express myself without resorting to English.
  • Be able to understand 50% or more of random German sitcoms/comedy TV shows (either German or English with dubbing).
  • Be able to read pulp/non-technical literature (on the level of Crichton, Grisham, Cussler, etc) with only occasional reference to a dictionary or translation.

Currently, my plans aren’t specific, but they include: reading Haruki Murakami’s “Kafka on the Shore” (Kafka am Strand) side-by-side in English and German. I have several pulp-grade books as well. Download TV shows or watch movies with German dubbing or English subtitles. Talk to German-speaking relatives more frequently. Join groups in my area which have German-speaking members. For now, I’m studying about 1 hour a day.

Milestone 2: Advanced Comprehension

Timeline: 6-8 Months
I will consider this milestone achieved if I am able to:

  • Pass the Goethe-Zertifikat C1-exam

The C1-exam is a level on the Common European Framework of Reference Languages and corresponds to “Effective Operational Proficiency”. I would estimate my current level as about A2 – basic communication.

Can understand a wide range of demanding, longer texts, and recognise implicit meaning. Can express him/herself fluently and spontaneously without much obvious searching for expressions. Can use language flexibly and effectively for social, academic and professional purposes. Can produce clear, well-structured, detailed text on complex subjects, showing controlled use of organisational patterns, connectors and cohesive devices.

Yikes! But I think it’s best to have ambitious but achievable goals. I’ll start for the first few months with the plans for Milestone 1 and then see if I need to do any specific studying for this exam.

Goal 2: Reducing Expenses

Why? Because reducing expenses is the quickest way to Financial Independence (FI). Because I feel my expenses are still too high. Because reducing expenses means consuming less, which is good for the planet. Because reducing expenses will help me achieve other goals.

Timeline: 6 Months
I will consider this achieved if I am able to:

  • Reduce expenses to rent+$500, for two of the next six months, without stockpiling the month beforehand or otherwise ‘cheating’.

I’ve been trying to reduce expenses for quite a while, and my previous best was rent+$610, give or take. I think rent+500 is achievable, I will just need to be careful. My first attempt for this will be November, which is a relatively light month for me, in terms of anticipated expenses.

I will be posting updates once per month. I have a few other goals in mind, in other areas, which I’ll introduce in the next few weeks.

Learning Vim: Current Steps

How do you learn a new skill? I don’t know what the optimal way is, but I can discuss how I’ve done it historically, and use a skill I’m currently developing as an example. As an engineer, I always want to improve my efficiency, and establishing a baseline is key.

One of my (m741) goals is to improve my programming skills. I’ve long developed in a custom environment, and I want to get familiar with standard development tools. One of those tools is called vim, and probably every computer person has heard of it. It’s a text editor, like Notepad, and is one of the two main text editors on Unix systems, the other being emacs.

To give an idea of why it’s difficult to learn: Notepad basically has no ‘special features’. You can search, replace, open, save, quit. And that’s basically it. If you want special features, and you want them to be easily accessible, you must be able to perform them with keystrokes rather than a mouse. One option is to use ‘meta keys’, such as alt, windows or ctrl to modify normal keystrokes. For instance, ctrl-s might save. The other option is to have a modal editor, whether one mode allows you to edit, and another allows you to perform unique actions. Vim is a modal editor. In command mode, pressing ‘w’ will skip forward a word. Pressing ‘dd’ will delete a line. The problem is, by default vim probably has over 100 shortcuts, many unintuitive. That’s a steep learning curve, but the end result is massively increased efficiency.

How have I approached this daunting task? For three years, I knew only 6 hotkeys: how to change modes, how to save, how to quit, how to search, and how to get to the end of a file. That’s it, for three years! Embarrassing. I treated the editor as a more obnoxious version of Notepad.

The first step, then, was convincing myself of the power of vim, and why I wanted to learn it. Then, I had to educate myself. I searched around on some popular websites, such as Reddit and StackOverflow. This led me to several tutorials: Derek Wyatt’s Vim Tutorials and Vimcasts. Now I’m watching those tutorials, at a rate of roughly 3/week. Periodically I pause them and try the various keystrokes that have been demoed. After each video completes, I edit a sample file and try to remember all the commands that might seem useful. All of this might be considered active learning, the type of learning that you experience in high school or college: I’m learning, I know I’m learning, and my attention is focused on it.

I also discovered that my IDE at work has a ‘vim mode’. Vim is popular enough that this is an option for many systems. For example, there is Vrapper for Eclipse. I believe emacs also has a way to emulate vim! So, I’ve experimented with this new mode. In a few days, I will permanently enable it in my work IDE. I’m also trying to use ‘optimal’ keystrokes when I open vim itself. For instance, I could press the right arrow 45 times, or I could press ‘$b’ to go to the end of the line and back a word. I would categorize this as passive learning. The idea behind passive learning is to force yourself to learn something by changing your environment – but otherwise not seeking out actual lessons. A similar example might be changing your operating system language when learning a new language, or moving a few miles from work, selling your car, and biking everywhere to get in shape.

These are the current steps I’ve taken. Stay tuned for more updates.