Wednesday, May 29, 2013

The path to becoming an Oracle DBA

For those of you keeping count, this is the third article that I have written on this basic topic. As with the second (written less than a week ago) this one was born of a question sent to me by a reader. He just completed a Computer Science degree and obtained his OCA in the Database Administration track. Ultimately he wants to be an Oracle database administrator. However, right now he has a job offer from a company using Oracle's Enterprise Resource Planning application. He asked whether I thought that taking this position would help him to be closer to his goal in five years. Would it help him to gain experience with Oracle that could help him to get hired as a DBA? Alternately would it have a negative effect, moving his career further from the administration track?

Barring some sudden influx of wealth (winning lottery ticket anyone?) careers tend to last a really long time -- forty to fifty years. Every job you have during your lifetime will move you along that path. However, you have to provide the steering. If you do nothing except the work required by the position you are currently in, there is nothing to provide direction that could shift your career to a new path. If you are not in a job you want to have in five years, then this is a problem.

Working with Oracle ERP would not have been my first suggestion for a job to gain experience that would lead to a DBA position. The commonality between the two is not hugely significant. That said, you would be working in an environment using the Oracle database. Depending on the company, you might well have contact with the DBA that supports the database. Also, there are job postings that specifically request DBAs that have experience with Oracle systems running specific applications. In a few years you might become the DBA for a company running Oracle ERP. If you decide to work for the company, see if they will pay for the Oracle hands-on training required to earn your OCP certification and/or for the certification exams. There are many ways that you can use a job to advance your career in the direction that you would like. It is your responsibility to find those opportunities and make use of them.

Above I indicated that a job working with ERP would not have been my first suggestion. I should expand on that. Otherwise it is almost certain that someone will ask, and I will be writing about it anyway. I would generally suggest that becoming an Oracle developer, either in PL/SQL or in Java, would be the best 'first-Oracle-job' for someone looking to become a DBA. Applications such as ERP that run on top of Oracle interpose an interface between the user and the database. Users may never log directly in to the database to view the low-level objects that are maintained by DBAs. However, developers that work with PL/SQL or Java will be working directly with tables, views, and other low-level objects. They will almost certainly be exposed to a great deal of SQL as well. The normal routine of people in these jobs will gain them more experience that is directly relevant to the work of a DBA. In addition, there are many companies that specifically hire DBA-Developers when they need both skills. Because developers have a much lower level of privileges in a database than administrators (unless the database is being run by a very bad DBA), it is easier to get a developer position without having significant real-world experience. The bottom line is that a bad DBA can destroy the database while a bad developer can only damage it (and a good DBA would be to repair that damage). While working as a developer, you still need to look for opportunities to direct your career towards administration, but they will be a more natural extension of your job.

If you have just graduated and are entering the workforce, essentially any employment can provide at least some assistance towards becoming a DBA. Even if a job has no relation to the Oracle database, it can help you pay your living expenses while you learn more about the Oracle database, gain more certifications, and watch local job listings for a position that will move you a step closer to your ultimate goal. There is no one that can (or should) do more to guide your career than you.

Saturday, May 25, 2013

Oracle Certified but not Oracle Employed


I see variations on a common story fairly frequently on forums and Linked In groups. An individual decides they want to become an Oracle DBA. They are told (often by an instructor for a training course) that Oracle Certified Professionals find positions easily and rapidly. They take the course, they pass the exams, and they get their certification. However, the story derails at this point. No employer rides out of the mists on a white horse to offer a great job with an incredible salary (after a brief glance at the shiny new certificate).

I wrote an article several months back with some tips on getting your first job as a DBA. If you have not read it, you might take a look: I Just Got an Oracle Certification - How Can I Get Hired As a DBA? An individual who is living the story above read that article and wrote to ask me if I could provide any further assistance. Frankly, I’m not sure that I can. I looked at the article this evening and I think my tips were reasonably comprehensive. I decided to take a somewhat different approach in this post.

I worked in tech support for various companies (including Oracle) for many years. One of the things I learned from that is that once you completely understand the problem, you are eighty percent of the way towards finding a solution. Anyone who believes having an Oracle certification without having Oracle experience will always lead to rapid employment does not yet understand the problem.

Anyone that goes to fast food restaurants much has encountered 'The New Employee'. This is the employee on their first day of work being trained on the register. Your order will take three times as long as it should and either the newbie or the trainer will apologize and note it is the cashier's first day. You never get an apology about someone's second or third day.  This is because it takes less than one day to learn the job of a cashier at a fast food restaurant. This is also why these employees are paid so little, which is why fast food restaurants have such high employee turnover rates, which is why we encounter so many employees running a cash register on their first day. A job that can be learned in a day will never provide much job security or income.

This post is not targeted at prospective fast food engineers, but prospective Oracle Database Administrators. The paragraph above is to point out that what makes Oracle DBAs valuable is the amount of time required for them to learn their job. It is simply not possible to learn to be an Oracle DBA in a single day. If it cannot be done in a day, then how long does it take?  Would it make sense to measure the time in weeks? No, I do not think anyone would accept weeks. If not weeks, then would measuring in months make sense? Frankly, I think any experienced Oracle DBA would not accept that either. The rule of thumb is that it takes three to five years of experience with Oracle to become a reasonably knowledgeable DBA. Senior DBAs would be expected to have more experience than that. Companies will often hire junior DBAs with less experience, but they would be expected to work under the supervision of a more experienced administrator.

The question then becomes how Oracle certification compares to Oracle experience. To do this, it makes sense to compare time spent studying to time spent working. When talking about ‘years of experience’, specifically the assumption is that the years are for a full-time job with a forty-hour work week. The amount of time a candidate needs to study in order to pass Oracle certification exams varies widely. I wrote an article here that deals with some of the variables. As a general rule I spend about a hundred hours studying for exams. This is not a hard number. Some exams take more time and others take less. I’m also a fast reader and very experienced with the exams. I would expect most individuals to require more study time. To be reasonably conservative, I will triple that figure. Three hundred hours of a full-time job would be seven and a half weeks. On this timetable, the three exams required for the OCP DBA track would take about five months assuming forty hours per week. However, time spent specifically reading documentation or other study materials is more valuable in many ways than an equivalent amount of time spent working as a DBA. On the job you tend to do the same things multiple times.  You are not constantly learning something new. If I were comparing two candidates for a junior DBA position – one with an OCP and one without, I’d probably grant the person with the certification as having the equivalent of an additional year of experience, possibly as much as eighteen months.

And now (finally) we have the problem defined. Most companies expect a DBA to have three to five years of experience before they are placed in charge of a database. I doubt most people have given as much thought to it as I have, but no one with knowledge of Oracle will treat someone with an OCP but no experience as equivalent to someone with three years of experience working as a DBA. That does not mean the certification has no utility.  The equivalent of twelve to eighteen months of Oracle experience is a great deal more than zero months, which is what you (presumably) have without the OCP. However, it is generally only enough by itself for a junior DBA position.

As I indicated in the article mentioned above, the one thing that you must not do is sit back with your certificate in hand and wait for the job offers to roll in. Implement the suggestions from that article on making yourself more visible to employers. Keep in mind that what makes Oracle professionals valuable is the knowledge contained in their head combined with their experience using the database. Being visible is good, but if you want to be recognized as valuable, you need more knowledge and more experience. You also need a way to demonstrate that you have it. One of the things that make Oracle certifications valuable is that they are one method of demonstrating knowledge. Find others.

Oracle XE is free. Download it. Build databases using it that are well designed and actually do something. Document what you have done. Build an ERD for your system. Create (and document) a backup strategy and a disaster recovery plan for your database. Create a website using Application Express and build an application that showcases what you have been doing in Oracle. You can build one for free at http://apex.oracle.com/ or you can get a professionally hosted one for as little as ten dollars a month. My OracleCertificationPrep website is hosted with MaxApex but there are many others out there. One thing that you can do with a hosted Apex instance that you cannot do with one at Oracle’s free site is point a custom domain name to it. Registering a domain name for a year costs about twenty dollars. This means that for less than the price of one certification exam, you can purchase a year of a website with a domain meaningful to you showcasing your skills with Oracle. You can then put that URL on your LinkedIn page and your resume.

The above suggestions are off the top of my head. There are countless things that you can do to increase your knowledge of Oracle and your experience with the database. Pick one and do it. Anything that adds to what you know right now can only be beneficial to your Oracle career.

Wednesday, May 22, 2013

Which Oracle Certification is the Best?


A few days ago I received a question from the contact page of my OracleCertificationPrep website. An Oracle professional had recently earned his Oracle PL/SQL Developer Certified Associate certification and wanted advice about the next step to take. In particular, he asked whether it made more sense to pursue the "1Z0-141: Oracle Forms: Build Internet Applications" exam to become an Oracle Forms Developer Certified Professional or to study for the "1Z0-146: Oracle 11g Advanced PL/SQL" exam in order to become an Oracle Advanced PL/SQL Developer Certified Professional. He did not mention the third option which is to take the exam “Oracle Fusion Middleware 11g: Build Applications with Oracle Forms” to become an Oracle Certified Professional, Oracle Fusion Middleware 11g Forms Developer. Oracle Education recently scheduled 1Z0-141 to be retired (and then issued a temporary retrieve). For this reason, choosing 1Z0-151 might be the better option for professionals with a goal of becoming a Forms developer.

Both of the Forms certifications are for individuals who will be doing primarily client-based PL/SQL supporting Forms applications. The Advanced PL/SQL certification is for individuals who will be doing primarily server-based PL/SQL development. I cannot get deep into all of the differences between the two without turning this post into a novel. However, I’ll note that Forms PL/SQL development will be within the confines of the development environment and tends to be small blocks to provide specific functionality to a given page. Server-side PL/SQL is often (although not always) considerably larger blocks. These are normally stored in packages and perform a wide range of functionality.

The actual question asked (and one I see a great deal on the OTN certification forums) was “Which certification is best?” (hence my post title). Unfortunately, that is a question without an answer. If one certification was the best option in every case, then all other certifications would be irrelevant. What he really meant by the question was "Which certification is most likely to get me hired?" Now that question there is an answer to. Unfortunately I do not know it. He is in India (although he did not indicate which part). I do not keep track of the job market in India, but common sense says that the job market is not the same in all parts of the country. One city might have a need for Forms developers while another might need server-side PL/SQL developers. 

The best way to find out is to do some research on job openings in the desired area – preferably over a period of several months. Unfortunately, it is sometimes hard to tell what type of PL/SQL developer a company is seeking. This is largely because the Human Resources people writing job descriptions don't understand the difference. If the job description for a PL/SQL developer mentions Forms or Oracle Fusion, you can be reasonably sure that the position is for a Forms developer. If it doesn't, then the position is probably for a server-side developer. That said, you can start as either a client-side or server-side PL/SQL developer and move to the other at a later date. The hardest task for professionals just starting out is getting their first position working with Oracle.

For candidates who already have jobs and who are developing in server-side or client-side PL/SQL (and have no desire to change), choosing between the exams is much easier. Many years ago, I did some Forms development, but the vast majority of my development experience (and my interest) is in server-side PL/SQL. When I pursued my OCP in the development track, my intent was to improve my programming skills in server-side PL/SQL. With that as a goal, the Advanced PL/SQL certification was obviously the better choice. I may take 1Z0-141 or 1Z0-151 at some point in the future simply to continue expanding my skills. However, the more relevant exam for gaining my OCP was obviously 1Z0-146.

If you have no personal or job-market related reasons for choosing one over the other, my own suggestion would be to go for the Advanced PL/SQL Developer. Some of that is certainly bias on my part, but it also seems to me that Oracle Forms is on a down slope in usage. I don't think that it will go away entirely for quite some time – certainly not in the next five years and probably not in the next ten. However, I suspect that its usage will steadily decline. By contrast, neither Oracle nor server-side PL/SQL is likely to decline in use any time in the foreseeable future. Whichever option you decide to pursue, good luck on the exam.

Friday, May 10, 2013

What is Certification?


A couple of weeks ago I read an article on LinkedIn entitled "What is College". It was an interesting read. While the article did not contain anything profound, the author provided a reasonable template of the goals that attending college is meant to provide. I thought about the same question as it applies to Oracle certifications. Many people do not really spend much time thinking about why they are pursuing certification. Over the years I have found that individuals pursuing certifications fall into two distinct classes. 
  •  The first class, usually new to Oracle, is focused only on the piece of paper. Getting the certificate and adding a line to their resume is the extent of their goal. They assume that getting a certification is an easy means to get hired. As a rule, they are looking for the easiest, fastest, and cheapest means of doing so. It is this class of individuals that is most commonly interested in using brain dumps. I have written articles before on my opinion of people who use brain dumps so I will not go down that path in this post.
  • The second class of candidates is focused in the material covered by the certification. Whatever the subject of the exam, their goal might be to learn about it from scratch, broaden their existing knowledge of it, or to demonstrate that they have already mastered it. Regardless, passing the exam is vindication that they understand the information. The certificate is an afterthought and will probably be put away in a filing cabinet and forgotten.

I wanted to discuss the two before getting into some ways to think about certification. The five points below really only apply to the second class of individuals. For the first class, the only way to think about an Oracle certification is: "A fancy piece of paper with your name on it." If you are part of the second class, you might consider the following points:

A planned learning agenda. The topic list was designed by a team of people very knowledgeable about the Oracle database. The subjects covered are intended to provide a broad cross-section of the information that might be needed by Oracle professionals. Not every topic will be applicable to every individual that pursues the certification. However, understanding that a capability exists can be valuable even if you are not currently using it.
A path for staying relevant. Information technology changes constantly and rapidly. In this field, if you are not learning, you are falling behind. It is certainly true that a motivated Oracle professional could increase their knowledge without having to pursue Oracle certifications. It is possible to learn continuously and keep up with the changes introduced by new releases by reading white papers, web articles, third party manuals and the documentation. That said, using Oracle certifications as a method for learning new technologies takes a similar amount of effort, but provides professional recognition of the time you spent.
An incentive to learn. As with the prior point, Oracle professionals can read articles or books, view instructional videos, or take classes to improve their skills. However, it is all too easy to do any of these things without actually retaining anything. Everyone has had the experience of reading something (especially something technical and boring) only to realize that they cannot recall the last three paragraphs (or pages... or chapters). When I am studying for a certification, the certainty that there will be a test at the end helps me to stay focused on absorbing the material rather than simply skimming over it.
A indicator of commitment. There is no reason to obtain Oracle certifications if you have no interest in pursuing a career as an Oracle professional. That is not the same thing as saying only people with certifications are interested in their Oracle career. However, earning certifications requires a commitment of time and money from the candidate. I have spent many nights and weekends reading through Oracle documentation and other sources while I could have been doing something much more enjoyable. When someone puts a significant amount of their personal time into professional certifications, it is a reasonable indicator that they want to be good at their job.
A means of networking. There is no club house, no silly hat, and no special handshake. However, earning a certification makes you part of a huge group of Oracle professionals in the world. Quite often they (we) are in senior positions at companies and are influential in making hiring decisions. I will not claim that I would recommend a candidate with a certification over a more qualified candidate without one. However, candidates that hold Oracle certifications will positively influence me -- unless their answers to my interview questions scream 'brain dump user' at me, of course.

Oracle certifications only reflect the value that the candidates earning them put in. When used as a means of continuously improving your knowledge of Oracle, they can be quite valuable indeed over the course of your career.

Sunday, May 5, 2013

Using Gap Analysis when Preparing for Oracle Certification Exams


Gap analysis is a technique that can make your study time more efficient and can significantly increase your chances of passing an exam. However, many (possibly most) candidates do not specifically include this step in their study process. In a nutshell, gap analysis is the process of going through each of the test objectives and determining which of them you do not know, or do not know very well. Joel Goodman, a senior trainer with Oracle University, gave a free webinar recently: 'Top 5 Preparation Tips for your Database Certification Exam'. He talked a bit about how the exams are created, discussed the kinds of questions seen on the various exam types, and gave some insight into how the beta process worked. For me, one of the most interesting portions of his discussion was when he talked about identifying knowledge gaps when preparing for an exam. I might note that all of this was in addition to the five tips. The tips themselves were not actually the highlight of the session for me, but it was definitely worth attending. Oracle University is making Joel's presentation available again on May 16th and you can register for it free of charge here: Top 5 Preparation Tips Registration.

Performing Gap Analysis
The very first step everyone should perform when preparing for an Oracle certification exam is to visit the topics page for it on the Oracle Education website. This is an ideal time to make an initial gap analysis. As you are reading through each of the topics, make an assessment regarding your knowledge of it. For people new to Oracle or to the specific genre of the exam, most or all of the topics will be ones where you have a significant gap. However, if you are experienced with Oracle and the subject of that exam, then you should only have gaps on a subset of the topics. When studying for the exam, you should make an extra effort on the topics where you have significant gaps. Ignoring the topics where you feel there are no gaps is not advisable, but certainly you should budget a smaller amount of your study time for them.

Later in the process when you think that you might be ready to schedule the exam, you should go back through the topic list again and perform another gap analysis. On this second assessment, you must really work at honestly gauging what you know about it. It can be tempting to write off a topic because you find it boring rather than because you really understand it. You should recognize exactly what each topics refers to and be able to recall a significant amount of the information about it. If you cannot do this, then you probably still have a gap that should be addressed.

Difficulties in Performing Gap Analysis
While performing the initial gap analysis is fairly straightforward, the same cannot be said of the second one. On the first analysis, it is relatively easy to decide that you do not know enough about a given topic for the exam. On the second analysis, you will have studied the subject and know something about it.  The question on the second assessment is not whether you know something about the topic but whether you know enough. This is the nail-biting concern that everyone (including me) has in the final stages of exam preparation.  Have I prepared well enough for this exam? Breaking the question down to the individual topics rather than the entire exam can make the question a bit easier to answer.  Stepping through them can help you to locate areas of weakness.  Some exam preparation materials can also assist in identifying gaps.


  • Practice tests are designed almost entirely to perform gap analysis. Many have a 'study mode' where the answers to questions and a brief explanation are shown.  However, once you use the study mode, the test becomes less useful for identifying gaps. You will have learned to answer that specific question, but not necessarily another on the same topic. Retaking the test will make it seem as if the gap has been closed, however.
  • The Oracle Certification Prep study guide series that I write is largely targeted at helping to identify gaps. They also contain information that can assist in preparing for the exams, but should be supplemented with more comprehensive materials such as the Oracle documentation.
  • The Oracle Press series is an excellent resource for closing knowledge gaps. The information contained in these books is at a level of granularity equal to or exceeding that of the Oracle documentation. I have found that the self tests at the end of the chapters, however, are geared more towards ensuring reading comprehension (i.e. did you read the chapter) than to reproducing the types of questions you will see on the actual exam.


When I first started taking IT certification exams, I used practice tests regularly for gap analysis. In recent years, they are no longer part of my process because I am better at assessing my knowledge gaps. It is impossible to know the specific questions that will be asked on any given exam.  However, with enough experience, it is possible to guess with reasonable accuracy the likely subjects, types of questions, and the level of detail that may be required. After you have taken a few Oracle certification exams, you should also be able to make use of past testing experience to assist your study process. Until you have that experience, you may want to make use of a self-test near the end of the study process to assess your gaps.

When choosing a provider, you should be aware that the vast majority of 'self tests' that you might locate on Google are not legitimate study materials but rather are brain dumps that can endanger your certification status. Listing all of the names is not possible because they change all the time, but if a test provider indicates it contains 'Actual Test Questions', then it is a brain dump and should be avoided. The two best options are Transcender and SelfTestSoftware. Both of these are recommended by Oracle and make a quality product. You can also use www.certguard.com to check if a given company is considered to be a brain dump provider.

Whether or not you use practice tests, or perform a manual assessment of your knowledge, adding gap analysis to your exam preparation schedule can help to increase your chances of success.