My job is reading. Sometimes I write, but mostly it’s about reading. Every day I start by reading my email to see if anything blew up over the night. In the past I would spend each breakfast poring over ops reports, but these days it is rare that I need to do any production support work.
Hopping on the train, I’ll spend the next hour reading the 300+ blogs and news feeds that I actively track. Most articles are just skimmed and forgotten, but the ones that are potentially news worthy are flagged, reread, and ultimately forwarded to our lead tracker.
Showing up at work, I put InfoQ aside and turn to the needs of our clients. This usually starts by reading requirements documents, bug tracker entries, and other such task-based documentation.
I am primarily a backend developer. This means I’m constantly being tasked to deal with interoperability between our new software, existing client software, and countless third-party systems. Often this means reading through 100+ page specifications that may be accurate, but are most likely complete works of fiction. That will take me to lunch.
During my lunch break I read bookmarking sites, mostly Reddit. I do this in part to blow off steam by arguing about pointless topics, but also to find out if all those blog entries I’ve been reading are legit or bullshit.
After lunch I start reading code. You see, I’m not just any old backend developer. I’m the backend developer that’s routinely assigned to ongoing projects. While others are building new software, I find myself tasked with figuring out why the client’s 20 year-old PowerBasic application is having performance problems. Or maybe I’m tracking down race conditions in a Silverlight application that is so big it looks like it is 20 years old. I read a lot of code.
Check-in a bug fix and then read some more. I mentioned third-party systems, right. Well generally speaking “third-party” means “you don’t get a development environment”. A lot of my code never runs outside of production, even when that code deals with million dollar trades. Like a human computer, I trace through each line of code executing it in my mind. I don’t even bother with mock testing anymore; mocks just trick me into thinking that I know more about the black-box on the other side of the connection than I really do.
Signing off for the day, I’m back on the train home. (Oh fun, more half-baked blogs to read.)
Eat dinner; then pick up a book to read. Often it’s a new technology and I’ve got to interview the author. Right now I’ve got a half-complete interview for Lightswitch on my desk and a pair of books about Go on the nightstand.
Other times the book is a work in progress for APress. In publishing a technical editor is a proof reader for grammar and syntax. Once they are done they hand the draft over to me, the technical reviewer, the proof reader for code and content. I have to read and reread every line of code in a 500+ page book on C#. There are no bug patches for a dead-tree book, I’ve got to get this right or my author will look like an idiot. Fortunately I usually get soft copies so I can at least paste some of it into a compiler. Back in the 90’s I would often get printed drafts to markup in pencil and overnight back to the publisher.
Time to sleep? No. Next I’ve got to read the news reports by my reporters in training. And I’ve got to read all of their sources to make sure they are accurately reporting what’s going on.
I am a computer programmer. I read for a living.
Post script: And now that I’m actually done working for the day I find myself with a longsword in one hand and a 16th century German fencing manual in the other.