Becoming A Code Ninja

It's time to become a code ninja.

I've been looking at the long list of technologies I need to master for work. (And quickly!) I've also been looking at the even longer list of technologies I'm interested in and would like to study in depth.

Clearly, I can't do it all. Not immediately, at least. (And certainly not at the same time.) I need to be selective about what subjects I choose to tackle. But I also need to maximize my chances of being able to tackle these subjects.

As far as I can tell, that boils down to two main areas where I need work:

  1. Time Management
  2. Life Management

This was all brought about, by the way, by an excellent article I read by Steve Friedl about the process he went through penetration-testing a web app using SQL injection. Great article, but reading Steve's site really brought home some areas where I need to update my skills.

Time Management

In poker, there's the concept of "plugging leaks in your game." Poker is a game of percentages, of making the best decisions possible given incomplete information, stress, and a variety of complicating factors. You can play well (even be a winning player) but have certain situations where you habitually don't make the optimum choice. Maybe you don't recognize the value of a certain pair of cards. Or you are easily bluffed when you're short on chips. In any case, it's a leak that, if plugged, can increase your overall win rate, sometimes significantly.

I feel I'm generally very productive, but I need to plug my leaks. I use NetNewsWire to keep up on a variety of tech news sites -- and I'll have to keep doing that, because knowing what's coming (or what's here right now) is vital to my current job performance and to my career in general. But I also have a number of non-tech-related feeds in NNW. Things like Slate.com. Warren Ellis. Others. I keep them segregated in an "Entertainment" folder, and don't read them during work hours. But I want to maximize the return on effort I get while sitting at my computer -- so I can use my non-computer time for things like hiking with K., my girlfriend. So all the non-workish feeds go. That's a start.

I'll have to work on disciplining my appetite for tech feeds, as well. Cutting out the less-vital ones, and making a list of the longer articles to read later, instead of reading an article on SQL Injection when I could be doing work with more of an immediate payoff.

In general, I'll just have to be aware of how I'm spending my time.

Life Management

In terms of optimizing my life, I need to eat better, sleep better, and exercise more. Spend more time with my friends, as well. (Although right now much of my non-work time is spent with K. -- I need to make an effort to keep my other relationships well fed as well.)

Right now I eat well on weekends with K., but my weekday diet is strictly bachelor-squalor -- cheeseburgers, burritos, and sandwiches. (I'll be sad if I have to give up Bay Cities Deli.) If I can make time to pick up some vegetables-in-a-bag before work, and perhaps some chicken or fish, I'll be able to have nutritious lunches and dinners at work. (I'll be sad again if I give up my bagel-and-cream-cheese breakfasts. Not sure what I'll do there.)

I'll need to get to sleep a little earlier too. I get home from work usually between 8:30 and 9:30 PM -- and it often takes me a while to run down before I'm tired enough to sleep. I think exercise will help with that, though.

I love taking hikes when I get home from work (I live in the Santa Monica Mountains, and there's lovely parks for hiking within walking distance of my house.) but I'm not crazy about hiking at night. I've done it, and it's quite calm and peaceful -- but sometimes a bit creepy, too. And even though I stick to fairly well-maintained trails, there is a slightly greater chance of losing my footing and breaking something, with nobody likely to come by until morning. And if I'm getting home from work at 9:30, there's just no way I'm going for an hour's hike.

So that leaves mornings. (Just hiking on weekends isn't going to do much for my overall energy level. You need exercise 3-5 times a week for that.) I get up at 7:30 normally. Tonight I’ll set the alarm for 6:30, and get a short hike in before breakfast. If I can keep that up every morning (or at least most mornings) I'll be in good shape for the rest of things I'm trying to do.

It's a pretty ambitious plan I've set out for myself here. I'll keep you posted on how I do. It took me almost two months to read a 5-page document on procrastination. Don't hold your breath. But do cross your fingers for me.

UPDATE: I wrote this last night but didn't post it until this morning. In the meantime, I went for an hour hike in my neighborhood -- on a trail straight up a hill for 40 minutes, then 20 minutes back down to home. My calves are sore but I feel great! I'll post more about my hikes and my general progress with the non-technical aspects of this plan.