My new job’s going extremely well, having the time of my life. I’m working with a group of very competent programmers who’ve produced a whole lot of code, but without the luxury of having their own database administrator. As a result, the database is in truly horrendous shape. As an example, I spent about an hour tuning indexes for a nightly job that’s been taking 4-6 hours to run. After tuning, it takes 1-3 minutes. MINUTES.
Does that make the programmers incompetent? Of course not. They’re very good at what they do, but they’re not database administrators. They know enough to be dangerous, but not enough to scale enterprise apps.
Another guy in the company (not you, Carlos, if you’re reading this – it’s another guy) asked me how I became a database administrator. I explained that I got started programming, and eventually took on enough database administration duties to do it full time. It’s a good fit for me because I’m much better with databases than I am with programming – debugging sucks – and I really enjoy it.
The guy then asked, “So if I was going to start becoming a database administrator, what would I do?”
I was kinda caught off guard. I don’t have a good answer for that. I mean, I have plenty of good answers, but only for people who are already doing network administration or programming. If you can do either of those halfway well, then you can be a database administrator. But to start with DBA work, with no prior programming or network administration? I wasn’t quite sure how to answer that. It struck me as a get-rich-quick scheme, and further conversations with him have proven that to be his motive.
Today, I read Peter Norvig’s excellent Teach Yourself Programming in Ten Years, and it does a fantastic job of explaining my feelings on this subject. Don’t expect to jump into anything – programming, network administration, database administration, etc – and be an expert in 24 hours, regardless of the book titles down at Barnes & Noble.