Being Good in General
I decided recently that I like being a generalist when it comes to programming. I feel like I’ve had the “does someone need to be able to work on both the front-end and back-end of a project in order to be a good programmer?” debate with coworkers every couple of months. At least for me, I figured out the answer to that question has been yes.
I do think it’s cool if someone wants to be an expert at making websites look beautiful and usable, then do that all day. I prefer doing a lot of different things instead. A good day for me would be helping write some Sass, then make some Puppet changes, and think about potential man-in-the-middle attacks.
However, working this way means I’m never going to be the best at anything. I am pretty good at a small set of things (like Ruby), but I am just okay at a lot more things. I’m fine with that. I may not be a Javascript expert, but I can ask intelligent questions and manage to learn something new almost everyday. These days I’ve improved my VIM skills immensely thanks to Matthew Todd.
I’ve applied this thinking to the rest of my life too. I took ballet and tap when I was little, but stopped dancing around my mid-teens. I avoided taking dance classes later in life because I figured the opportunity to be a great dancer had passed. But then I thought “So what? I can still enjoy learning how to dance even if I’ll never be a professional ballerina”. I’ve gone to a bunch of different dance classes for the past 6 months and it’s more fun now than it was when I was a child, since there’s no pressure to excel at it.
So as of now, I’m a good programmer, I’m a decent knitter, I’m a novice dancer again, I’m a better baker than I was before, and I’m a beginner at yoga, among other things. I look forward to adding more stuff to the list.