This month’s T-SQL Tuesday is brought to us by newly-minted MCM Argenis Fernandez (blog | @DBArgenis), who I had the pleasure of meeting in person for the first time a few weeks ago. Argenis is asking if we specialize or not, why we do (or don’t) specialize, and why we feel that’s a good thing.
For a very long time I’ve been interested in the internals of the database engine and how data gets stored on disk. Back in junior high and high school I spent a lot of time trying to do things like figure out how to extract data from MS Access files without actually opening Access. I never had a whole lot of success because I didn’t understand exactly what was going on (and I was almost always looking for values in plain text), but it never stopped me from trying. So long as there wasn’t any encryption involved I was convinced I could get my data out via other means, if only I knew everything about how it was stored. Unfortunately for me I didn’t have a whole lot of options for figuring that out at the time.
Fast forward to now where the internet is much more helpful, I’m part of an amazing community, and I have an income with which I can purchase books and other materials. I definitely consider myself to be a specialist in database engine internals, but I don’t feel like I’m a master and probably never will – I think there’s just too much going on to ever completely understand it all. The deeper I dig on a particular topic the more there is at a lower layer. I’m ok with all this because I think it’s nice to know there’s always something else to learn. And even if I did know everything, I certainly wouldn’t feel comfortable saying that.
Similarly I don’t consider myself to be a jack of all trades either. There’s an awful lot of SQL Server topics out there, some of which I’m just plain clueless about. That’s not to say I don’t want to learn them, just I’d rather concentrate at being the best I can be in other areas first. To me there’s more value in knowing a lot about a few things than knowing a little about many.
Is this a good or bad thing? I guess it depends. If I’m working on a project that can benefit from having some pretty in-depth knowledge of how the database engine works such as performance tuning or general DBA tasks, I think I have a lot to offer. If my assistance is needed for something like BI development, I’m much less useful. I’m not completely inept and can definitely fumble my way around, but anyone can sit at a piano and bang on the keys to make sounds come out. To make beautiful music takes a lot more skill and knowledge, and if you’re making beautiful music with a piano, a database, or anything else, you’re probably a specialist.
So to sum it all up, I believe I’m a specialist but not a master, and I believe that is very much preferable to being a jack of all trades. Thank you Argenis for the most excellent and thought-provoking topic!