Seven years ago I sat down at a Unix terminal in a dark, stuffy, tiny computer lab in the old Computer Science wing at RIT. Coming from a non-programming but computer-enthusiast background, the whole command-line environment was quite foreign. I was tasked with implementing a few Java methods as part of a weekly lab and, though looking back it seems trivial, was rather overwhelmed. How many lines should this algorithm require? Are there naming conventions I should be following? How should I format my code?

I’m a perfectionist. I got it from my Dad. For a while I thought it was a bad thing and that it was preventing me from getting stuff done. I don’t think that anymore; rather, I think that in order to be a competent programmer you must be a perfectionist.

This isn’t to say I’ve some sort of rock-star programmer. Far from it, actually. Writing code is hard. There are so many variables to consider when writing the simplest of functions it makes your head swim. What if the database server goes down? What if, after checking for a user’s existence, another thread creates that user right before you try and create it yourself? What if all the parameters are null?

Every day, I find myself making incremental improvements in my code. Realizing new error conditions. Documenting more thoroughly. But what am I still leaving out? A lot, undoubtedly. But only through constant re-analysis do I even come to these small realizations. Re-reading methods and comments. Refactoring constantly. Writing girl code. I can’t imagine what a less-obsessive developer is leaving out. Frankly, it’s scary. But, then again, programming is hard. It’s not going to get easier any time soon, and there’s no silver bullet. For now, I’ll just be my anal self, which, luckily, comes rather naturally. Some aren’t so lucky, and, arguably, perhaps shouldn’t be writing code.