Thursday, August 17, 2006

BAHBC: Day 1

Day 1 of 10 in my self-imposed experimental Becoming A Hacker Boot Camp (not really a full day, actually 5.5 hours). Report back:

Living in the Real World:
Another category I added; my brain is often too far into abstract theory, so I neglect my body (I've had it for 20 years and I'm still awkward) and forget to be present in what I'm doing. Today I rode my bike for 2 hours, pausing every 20 minutes or so to read a book chapter (~7-8min) and then came home and made a (vegetarian) dinner. Oh, yeah. I'm experimenting with not eating meat this week. So far I haven't missed it at all.

We also have dehydrated bananas going (assuming Jason and I don't finish them all before they're done) and a soy milk making machine that's getting used several times a day now. That's one advantage of living at home; everyone here understands my craving for soy milk. It's called comfort food, folks. If you grew up on soy milk and rice porridge, you'd love them too.

Random stranger:
I took a break from biking (note: Glenview is even less bike-friendly than Boston) to swing in a playground next to a Russian grandmother and her 3-year old grandson. Talked to the grandmother, as the little boy didn't yet speak English; made funny faces at the kid instead. He laughed and even waved a shy goodbye when the two went home for supper.

Nontechnical book(s):
Linux and the Unix Philosophy by Mike Gancarz. I belive many unix/open-source development tenets are useful in engineering and business in general, namely small is beautiful, choose portability over efficiency, and use leverage to your advantage (meaning "don't reinvent the wheel" and "build on / stitch together the work of others whenever possible").

Getting Things Done by David Allen. Great theoretical system - now I just need to pick a platform to implement it on (paper? computer? web?) If anyone has suggestions for a good implementation, I'd like to hear them. Right now I'm experimenting with Webnotes on Netvibes as well as Hiveminder, but neither of them quite fits in. iCommit is promising, but requires too many mouseclicks. And none of them are exactly portable. For those of you wondering what GTD is, Merlin Mann's 43folders is a good place to start.

Started in on The Art of UNIX Programming by Eric Raymond. Didn't finish. Normally I'm a more prolific reader, but I can only read so many books in 6 - [timespent.biking + timespent.cooking + timespent.eating + timespent.helping(mom, mom.computer)] hours. Hopefully finishing this tomorrow (although Learning Python takes precedence).

Technical book:
Almost done with Learning Python, which I started on the plane on Sunday. I'm going very slowly through this but am hoping to get through chapters 3-7 tonight (102 pgs) and finish tomorrow (80 pgs). I'm coding two projects in Python at the moment, so everything I'm picking up is being used right away.

I can't believe I've never used exec()before. It's insanely useful. Or at least fills a nagging "I wish there was some way to do this!" gap that formerly existed in my mind. This is why I read so much, and why I need to read more.

Minor project:
Not the one I intended to finish, but I got some Trac and documentation work done for Grrlcamp (planning for a weeklong coding marathon in which we'll be building a complete open-source project from scratch. I'll holler if more information goes public.)

I also decided on the whole BAHBC thing, set up my laptop so I could tolerate using it (read: hooked it to a real monitor, keyboard, and mouse - I love my laptop, but I also love my spine), and started the "mom, you're not doing anything with the old desktop, are you?" plea, so it's not like it's been an entirely unproductive day.

Report card:
A little light on practice and heavy on theory, but a good start. I like the things I'm learning from this. I need be braver at finding Random Strangers to talk to. I also need to produce Real Working Code tomorrow. Today's grade: B+.

No comments: