In Part 1 of this article, I examined some of the decisions you'll need to make when embarking on your DBA career and some the character traits and skills that will help you succeed and progress. Here, in part 2, I move on to discuss the hard-earned knowledge and experience that you'll need to gain in order to stand out as a and professional and exceptional DBA.
There are also certain knowledge elements that are useful to have before you enter the DBA role. In fact, some of them are required.
Although I have a formal education, I believe that knowledge is knowledge – it really doesn't matter how you get it. You might take a class in college, read a book, perform the task and take notes, or even have a friend or mentor teach you. If you know the subject matter, you know it, regardless of the source.
That isn't to say that one method is just as good as another. Your individual learning style has a great deal to do with your ability to absorb new information. And some businesses require a college degree to even interview for the position. Others require not only college, but a certification of some type as well.
So, where should you get your information from, if you want to be a DBA? One path that many people take is to attend formal training. For some, this means starting with college or university. In most countries, this means a fairly common set of classes to get a lower degree, and then adding more specific classes to your career as you progress through the degree programs. In most colleges Computer Science classes are readily available, with multiple choices for various disciplines within a Computer Science degree, such as programming or management. What you won't find as quickly is a degree in database administration or database theory. If you do have that available then this degree, along with some experience, will put you well on your way towards being a qualified DBA.
More often you can get lots of Computer Science classes, but you are steered either towards programming, hardware or management. Those degrees are certainly useful, but they leave you without the day-to-day knowledge and skills you're going to need to be a good DBA. My suggestion is that if this is the choice you're faced with, then take as varied an amount of subjects as you can. If there are courses with "database" or "data" in the title, make sure you include them if you can.
If you're faced with this choice, or you choose not to go to college for your knowledge, there are still classes you can take to be a DBA. Microsoft, Oracle, IBM and other vendors offer a certification program, which involves either in-classroom instruction or computer-based or paper manuals and materials. Of the classes I've taken, I've found the Oracle training to be more intense, but the Microsoft Certified Database Administrator (MCDBA), which I also hold, is good training as well. At this writing, Microsoft has a split certification: one for the Database Administrator and one for the Database Developer.
Another fantastic source of knowledge is conferences. Most of the conferences I've gone to, from Oracle World to Microsoft's TechEd, have a wealth of information in the sessions and on the DVD's they give you, as well as training and certifications they offer during the conference. Even in the smaller conferences I've been to there are several "hands on labs" where there are guided tours that walk you through various features in a database platform.
Whether you get your degree at college or from a certification program, you need to supplement it with real-world experience. But that has always been the perennial problem – you need a job in the technology to get experience, but you need experience to get the job. In the next section I'll give you some strategies for getting experience even when you can't get a formal DBA job.
What types of knowledge do you need from all this education? I'll list a few concepts and subjects that I've found to be very useful for the DBA. This list isn't meant to be comprehensive, but it has some elements that you should be familiar with to be successful:
- Basic computing theory (hardware and software)
- General computing algorithms
- General logic (theoretical and mathematic)
- Basic computing hardware
- Advanced computer hardware
- Programming (become familiar with at least one structural and one non-structural language)
- General desktop operating systems
- General server operating systems
- General networking hardware and software theory and practice
- Data and database design
- Basic database systems administration
- Computer systems security
Of course, there are lots of other concepts you'll need to learn, but if you cover the subjects in this list, whether through formal school or independent study, you'll be well on your way.
It seems unfair that to get a position, you need experience. But you can't get experience until you have the position. Often, that holds true for the DBA role as well.
But you can get experience with a database system even before you formally obtain the position, especially if you're willing to put in a little more time and take more responsibility.
If you're new to the job market or perhaps still in school, you can still work with database technology. At the most basic you can download one of the free database systems from the web. Microsoft, Oracle, MySQL, Postgres and many other vendors have no-cost offerings that work just like their larger, for-cost editions. In the purely commercial vendors you'll be limited to a certain number of connections or hardware resources (or both), and you may be missing a few of the more complex features. It's not a bad idea to experiment with more than one vendor, both for the experience and so that you can choose the one with which you are most comfortable. Remember, you're goal is a job as a DBA, so you may want to investigate which platform is most in demand in your area.
Once you've downloaded the software, keep a log of how you're installing and configuring the system, along with how you made those choices. All of these offerings also have sample code for an application, usually a web-based application. Follow the tutorials for those, but then strike out on your own for an application you care about, such as a music collection, contact list, or other personal application. Keep a log of this experience as well.
When you're done, add some users to the system, set up a plan to do the backups and other maintenance, again described in free sites like this one and from the vendor's online documentation, once again documenting how you're learning. When you're done, edit your notes into a running narrative. This is something you can give a prospective employer when they ask about your experience.
Next, join a user group and get involved in the database community. The locations for these groups are listed on the vendor's website, usually under a link called "community" or "user groups". Explain when you get there that you are new to database technology and you are interested in breaking into the business. More than likely you'll find someone there that will help you, and you may even make contacts that will help you get a job. You'll certainly be able to ask questions of a lot of experts. Most of these user groups don't charge a membership fee, and in those that do the fee is normally small. If there isn't a user group in your area for your chosen platform, then start one. I've done this many times. You don't have to be an expert in a platform to run a user group – just someone who has a lot of desire.
If you feel like you need more experience to break in, then you can take what you've learned and volunteer. Many churches, shelters, rescue facilities and other places need DBA talent but can't afford it. If you offer to bring what you know, you'll often find an environment ready and waiting.
If you are already in the technology field, you may find it easier to find a DBA role in your own organization, even if it is outside your department. DBA's often come from hardware, system administration or programming fields. You will have to be willing to take on extra responsibility. You can use the same strategies that I've mentioned above, but instead of volunteering outside the company (which is still a wonderful thing to do), you can normally find some need for a database within your immediate job. You may even be able to get the organization to pay for training, or at least books, if you offer to fill a need. Remember, you will probably have to volunteer for jobs that aren't as glamorous at first in order to be trusted with larger tasks and responsibilities.
Along with everything you learn along the way about the technology, it is vital that you also learn the business. The DBA is responsible for the company's most intimate data, so it is important that the people who trust you with that data believe you understand how important it is to the organization. There is no better way to become a good DBA than to thoroughly understand the business.
Progressing to Professionalism
After you get your initial job, work in as many areas of the system as you can. Stay "broad" in your knowledge, rather than "deep". There are a couple of reasons for this. All modern database systems store and retrieve data – but they differentiate themselves from each other in the features they have. These features are often highly interdependent, where a setting in one affects another. Also, as the DBA, you're expected to be the expert not just on one feature, but all of them. While that may be unrealistic, you need to have a high level of knowledge in as many features as you can, and be conversant with the rest. You can pick an area to specialize in later; for now, immerse yourself in each area.
Being a DBA has been one of the most rewarding positions I've had in my career. You never outgrow it, you have a great impact in your organization, and it doesn't pay badly, either. If you have the traits, skills and knowledge, you can often name your terms.
You can read part 1 here of this series.