I’ve always loved books. I remember the vacation between 5th and 6th grades, my mother took me to the local library to get a subscription. I used to read 3 books a day during that vacation.
Later on, I still loved books, and used that to learn a lot about things I was interested in. As a mostly self taught coder, reading was the major way of learning new things.
Nowadays I keep reading as one of my most important hobbies. I read both technical books and “regular” books. My friends find it amusing to see me switching between Harry Potter and the Pragmatic Programmers.
For the past 2 years I’ve been keeping a king of book log. It started as a to read page on my laptop’s wiki since I always had so many to remember I want to read. Every book I finished I crossed from the list, sometimes even giving it a small review. Now, more than 2 years after starting this I did a little count of the numbers of book I’ve read.
Turns out my average is 2 books a month – one technical and one “regular”. That means over 50 books since I started that log. And you can be sure that’s the number one habit in helping me “up to it” in my industry. I’ve recently finished reading Chad Fowler’s “My Job Went to India” which made me realize that this is one of the major edges I have that differentiate me from your average Joe Programmer.
I can hear you saying “So he reads! Big deal!” Well, it is a big deal! I usually drop by my work place’s library every two days for a quick look – see if anything interesting pops up. This, overall, gives you an edge for a few reasons.
First of all, simply looking at your library is helpful. There is a great number of books I haven’t read there, but I know by title most of them, so whenever someone asks a question I don’t know the answer to I usually know where to point them (and, of course, that works for my own problems as well). Furthermore, every book you read usually mentions quite a lot more, and, like Google’s Page Rank, once I see a book referenced a few times I know it’s probably a good read and add it to my to-read list. See, good book-writers do social-networking in their books apparently and happen to appreciate other good book-writers.
Another advantage to reading, which is quite obvious, is that every book you read makes you smarter. Whenever I have to work with some new technology I try to get my hands on The Book for it (every topic has one, like Rubi’s PickAxe, C’s K&R, the Gang of Four’s Design Patterns book and so on). That of course makes me comfortable with the technology. But my work doesn’t require me to learn a new technology every month. What do I read in those oh so boring months? Well, usually, a random interesting-looking book from the library. Yes, even if it is about a technology no one uses in my workplace any more or about something that has absolutely nothing to do with your work that you wonder how it got to the library in the first place. Because, as I said earlier – every book you read makes you smarter. Reading books on other programming languages gives you another angle from which to look at your current favorite. About a year ago I read a book about steganography (hiding information inside other information. Take for example all those songs you play backwards to hear hidden messages). Why did I read it? I really don’t know. But a few months later it helped me quite a lot when I needed some background with error-correction algorithms which, prior to reading that book, I had none. If I haven’t read it, I wouldn’t even know I was in need of error-correction. That is one lucky coincidence, isn’t it? Well, it isn’t.
And, a final nice side effect of reading books is that it makes you a better writer. It’s like working with a guru, some of it is bound to stick to you (I hope my writing skills here don’t offend any of my favorite writers, eh?).
So try it. Keep a to-read list. Read a book a month.
I bet you will see it pays of quite quickly.
Have a nice weekend,
Aviv.