Interview Tips for Aspiring Junior DBAs
August 3, 2006
Finally, after countless hours of scouring the Internet, you have come across a job posting for a junior Oracle DBA position, which includes the words you have been waiting for all this time: 0-2 years experience (zero being the operative word or number here). Armed with your fresh, just out of school knowledge of Oracle (and combined with virtually no workplace or on the job experience), what can you do to improve your odds of being hired? Obviously, no one expects you to be the world's next Oracle Certified Master, but on the other hand, if your academic background includes several database administration courses, no one expects you have a blank stare on your face when asked to name five types of constraints on a table. If you find yourself going off to la-la land, try to minimize the damage by not drooling and hope everyone else stumbles on that question.
Believe it or not, some companies do go out of their way to hire what can be considered less than junior DBAs. What do junior DBAs grow up to be? No, the answer is not "bus drivers" (assuming no layoffs, going out of business, etc.), but senior DBAs. In other words, companies need a mix of experience levels in order to grow or groom workers into more senior positions. An applicant with 10-plus years of experience applying for this position is going to raise some concerns (i.e., desperate for a job, and will bail when a better one comes along). Someone with 3-5 years experience and armed with a decent amount of experience, especially if the company knows it can get that person at a reduced salary (compared to what would otherwise be commensurate), is likely to be whom you are up against.
What you lack in experience can be countered with a demonstrable understanding of basic concepts and fundamentals. I would say it is better to have a decent mastery of core items as opposed to knowing a little bit about many things but at the price of not being able to go into detail about of any of them.
What are some strategies available to you to increase your odds of being hired? Answering this question is fairly easy because there are published documents or material at your disposal. The source repository covers two areas: what's in the job description, and exam objectives listed in the candidate guides for Oracle's certification program.
Examining the Job Description
When an employer posts a job opening, what message do you get? To me, it means, "We have a job opening, and this is what we would require or prefer that you know ahead of time." What is listed can be as telling as what is not listed. A line stating "knowledge of tables, views, and objects" (whether actually listed or not) should be intuitively obvious to the casual observer. A requirement of "knowledge or understanding of partitioned tables" implies "we expect you to already know basic table types." Let's peel back the layers of what this requirement includes.
Which one object drives every major relational database? You should know the basics of tables backward and forward. For example, if you don't know the basics of constraints, you can pretty much count yourself out of the running. Giving an answer such as, "Oh, I had that course two years ago, let's see, the only one I remember is referential integrity" is a showstopper. This answer is only marginally better than having a blank stare on your face. If the interview seems to suddenly end after an answer like that, you only have yourself to blame for coming into the interview expecting a gift (i.e., a job offer). Knowing the basics is expected. Not knowing all the details and options behind more advanced table types is not only understandable, but forgivable. After all, there is a practical limit on the amount of material that can be covered in a quarter, semester, or term.
Be able to define what a view is. For bonus points, be able to differentiate between simple and complex, key preserved and non-key preserved. Is a view updateable? It's not a simple "yes or no" answer, but rather, more along the lines of "it depends." Why or when would you use a view? Being able to describe what functions, procedures and packages are (and their differences) will put you ahead of the pack. Because the underlying code behind these objects involves PL/SQL, no one is going to expect you to have coded a procedure containing hundreds of lines. Experience with SQL is expected for obvious reasons. Experience with PL/SQL, unless you took a course in it, is not as critical. However, it would be fair to expect that (if hired) you will be learning it in fairly short order.
What about other areas, which go to concepts and fundamentals? Can you describe the difference between cold and hot backups, consistent versus inconsistent backups, and user versus server managed recovery? Again, due to lack of experience, there are not any expectations of you having devised a trans-continental disaster and backup/recovery plan, so when asked "How do you take a backup," don't shoot yourself in the foot by saying, "I take two steps away from the server, right? Or is it just one step?"
Become familiar with a tuning methodology, Oracle's or otherwise. The following is a fairly typical interview question/scenario: A user comes to you and says a query has been running four hours now, and it normally takes 20 seconds. How would you solve this problem? In other words, what is your plan of attack to help the user? Knowing the outline of a methodology, even though you don't know exactly what an execution plan tells you, earns high marks.
For a junior-level position, chances are the job description will contain basic requirements. If the list is long and detailed, your study or preparation plan is already laid out for you. A sparse listing of requirements leads to the other preparation strategy.
Using the OCP Exam Objectives
Some non-test oriented text books come out and say it up front: using this book in your course of study will assist you in passing exams in the Oracle Certified Professional program. The exams, by and large, hit on the basics, so being able to provide intelligent answers about basics makes you look that much better. On the other hand, if you are serious about pursuing a career as an Oracle DBA, and we all know how hard it is to get the proverbial foot in the door, being (at least) certified at the associate level is a huge differentiator. Putting forth the time and effort to get certified is a clear indicator of your interest and intent. Certification for more senior DBAs can be looked at in different ways, but there are only positives things to be said for certification at the most junior of levels.
The Bottom Line
Come into the interview prepared to answer questions centered on the basics. Having a Master's level computer science related degree may put you ahead of someone else with only a Bachelor's degree, everything else being equal. However, if you cannot accurately describe what a primary key is and does, having a doctorate in computer science won't be of any help either. If you are serious about becoming a DBA, what effort are you putting in towards being prepared to ace a technical interview? Learning the intricacies of Oracle database administration is not something you can cram for overnight. You can liken it to learning how to play a musical instrument. Time, practice, discipline, and dedication are key to being proficient at both.
Being an Oracle database administrator is a challenging and richly rewarding job. The best jobs in the world are the ones where you are paid to do the things you like. Personally, I can't wait to get to work in the morning. But, is "job" the correct word here? Actually, I would characterize it as a profession, and what is common to many professions is an ongoing personal effort to stay abreast of new features and technologies. There is a line, perhaps blurred at times, between what you are willing to spend to learn new things and what your company is willing to spend for sponsored training. If you are of the mindset that you expect your employer to be 100% responsible for your education, I can assure you that your name will be at or near the top of the "who gets laid off" list when times are lean. That type of attitude usually spills over into other areas of your work.
Being certified is an example where a line can be drawn. It is relatively inexpensive to obtain the associate's certification (OCA). Because of the instructor-led training requirement instituted a few years ago, obtaining an OCP certificate requires a serious amount of money. A fair proposition to present is this: "If I get the OCA certification on my own, will you (the company) pay for the ILT course so I can get the OCP certification?" Then you go into the "here's how being certified helps make me a more valuable employee" rationale to help sell this value-based proposition. But, since this article is about the aspiring junior DBA, what is your reason for not being an Oracle Certified Associate at the time you sit down for an interview?
Oracle database administration is an evolving field, and what you learned two years ago may not apply today (see "Segments, rollback"). When the time for an interview comes, will you be ready? Have you done everything you can to put your best foot forward? You know which foot I'm referring to: the foot you're trying to get into the door. Which answer do you think sounds better in an interview: "I studied that in one of my classes" versus "I studied that in one of my classes and this is what I've done since to learn more about it." There are plenty of resources to make you a better candidate. Are you using them to your full advantage?