Oracle Databases: Starting a Career, Part 2So
So you want to learn "ORACLE". What exactly does that mean? What do you WANT to do?
Concurrently with learning SQL & PL/SQL, you need to start thinking about the type of work you like? Are you already a COBOL programmer and want to start programming with Oracle? Or maybe you're a SQL Server DBA and you wisely want to move to Oracle? Maybe you're an accountant, stay at home mom, secret agent or student and you aren't really sure.
Below I list some of the different areas that people mean when they say "ORACLE". It's not all encompassing but I try to give you an idea of the type of work and what's required. You don't need to decide now but you should be thinking about it.
- DBA - Administrator - Normally referred to as
a Database Administrator or Database Analyst. In my opinion, unless
a DBA is doing design work, they are an administrator. It's true
that troubleshooting requires analysis, but design is traditionally
an analyst role.
But here is a list of what I have run across in my career that are considered DBAs. Different companies may have all of these or some subset/combination of these.
- Production DBA - A support position. Maintains the production
databases. Responsible for Backup/Recovery, Space, Performance,
Replication, etc in the Production segment. Has the keys to the
city but also tends to be woken up frequently. In my experience,
the best production DBAs do not make good developers. This position
tends to work well for very detail oriented people and
perfectionists. This position can be subjected to a lot of
administrivia on a daily basis. This tends to be a high stress job
that is never "finished". Many new things to learn for each
database release. Not usually open to beginners.
- Junior Production DBA - A support position. Does the grunt work
for the production DBAs. Usually mentored by a more experienced
DBA. This job involves a lot of monitoring, research and scripting.
Only stressful because Senior DBAs are evil, wicked people. Very
open to beginners.
- Security DBA - Responsible for overall database security
including users, applications, data access and data distribution.
In the past this position was usually a production DBA but more
recently is coming into its own. In some cases, this person will
report to a CIO/VP instead of a lead DBA. This job involves a lot
of research and continual learning. Knowledge of compliance and
government regulations is required. Very paperwork oriented. Only
stressful when you don't get it right. Not usually open to
- Application Support DBA - An application support DBA is like a
production DBA but instead of worrying about the database in
general, the apps support DBA becomes an expert in the structures
and administration of the application(s). Packaged applications
like Oracle Financials, Seibel or SAP in particular require
dedicated Apps DBAs. Some larger custom applications also require
this kind of dedicated support. This kind of position usually
requires some functional knowledge of the application as well as
any custom languages used in development. This position also tends
to be less technically oriented than a production DBA but is just
as stressful. Somewhat open to beginners.
- Application DBA or Development DBA - An application DBA works
with development teams in designing, developing and deploying
applications. This DBA needs to be familiar with the organizations
production standards and will usually review developer designs and
code. This person is also normally responsible for developing
implementation scripts. A development background and design skills
are a must to be a good application DBA. Though often underrated,
this is one of the most critical positions on a development team. A
good DBA here can simplify a project and help ensure success. A bad
DBA in this position will surely doom a project. This position
tends to be less stressful than a production DBA unless deadlines
get too close. Sometimes this position gets rolled into the
production DBA job but in my opinion that's a mistake. Somewhat
open to beginners.
- Warehouse DBA - A warehouse DBA concentrates on keeping up with
the latest methods in performance tuning and data loading. This
position is not for beginners. This position is usually held by a
very experienced production DBA or a super developer. This tends to
be one of the most tedious positions and requires tenacity: this
job is all about monitoring and tuning. Low stress until the users
start yelling about slow queries. Almost never open to beginners.
- Application Server Admin - To me, even the concept of an app
server admin (in the DBA group) is a mistake. The app server
belongs in a systems support group not a DBA shop. However, it
seems to me that since Oracle Corp sells this, it always ends up
being maintained by DBAs. This is a good career to get into if
you're moving from web development but it is not a DBA or developer
role. I spent a small amount of time maintaining 9iAS. This
position is all about configuration and security. Knowledge of web
languages like Java, perl and PHP help but aren't required. Stress
levels depend on the type of installation you maintain. If you
maintain production servers, the stress level is equivalent to a
production DBA. Ideal for beginners.
- Production DBA - A support position. Maintains the production databases. Responsible for Backup/Recovery, Space, Performance, Replication, etc in the Production segment. Has the keys to the city but also tends to be woken up frequently. In my experience, the best production DBAs do not make good developers. This position tends to work well for very detail oriented people and perfectionists. This position can be subjected to a lot of administrivia on a daily basis. This tends to be a high stress job that is never "finished". Many new things to learn for each database release. Not usually open to beginners.
- DBA - Analyst - An analyst usually spends less
time worrying about the physical and more time worrying about the
logical. In some organizations these analyst positions are rolled
into DBA or developer roles but in some organizations (usually
larger ones) the are standalone positions.
- Data Modeler - The data modeler builds ERDs; either logical or
physical (preferably both). This is one of my favorite jobs. It
requires attention to detail and knowledge of the business being
modeled. That knowledge can come from business analysts or from
experience. Not usually stressful and not usually open to
beginners. This job is often incorporated into other jobs like
production DBA, application DBA or lead developer.
- Warehouse Analyst - Also called a warehouse architect. A
warehouse analyst is part data modeler and part production DBA.
While the warehouse DBA will monitor for performance and space
issues, the warehouse analyst has to plan and design for
performance and space issues. Deep knowledge of partitioning, star
transformations, bitmaps, etc is required. Where is data going to
reside, how is it going to get there and how will it be archived
are questions that are frequently visited. Never open to beginners
but not usually stressful either.
- DB Analyst - The analyst is the person who knows how the many
applications in an instance fit together and how changes to an
application will impact the others. This person needs some
database, programming and application knowledge; they need the
ability to back up and see the big picture. One of the few Oracle
jobs that stresses the macro over the micro. It's a great place for
a business analyst to move into a more technical role or for a
programmer to move to a more business oriented role. It's usually
not too stressful.
- Developer - The code has to come from
somewhere. Stress levels for developer positions generally depend
on the skills of the dev team. Good teams with good managers should
be stress free. Bwahahahaha.
- Backend - The backend developer is primarily a SQL & PL/SQL
developer although knowing java and shell scripting doesn't hurt.
This developer creates the bulk of the business rules (when the
business rules are stored in this tier ((as they should be))). This
is also the person who writes the batch processing and external
interfaces. This developer generally does not do user interfaces. A
position as a Jr developer is a great place for beginners. Many
places do require some experience even for Jr positions though.
- Forms - The forms developer is a dying breed. Companies that
have a history with forms still use it but I don't see much growth
here. Since Oracle Forms is a 4GL, a lot of the work on basic
screens is already done for you (especially if using templates). A
good place to learn PL/SQL and SQL skills but the number of
positions is shrinking. In my opinion, if you get the opportunity
for a forms gig, you should take it but plan to learn other areas
of development also.
- Reporting - As in Oracle reports, Crystal Report, SQR, etc. The
nice part about being a report developer is that for many tools you
can bounce between databases. Oracle Reports is specific to Oracle,
though. Reporting is a good place to learn and get a foot in the
door but unless you really love it, you'll want to branch out.
- Warehouse & ETL - An ETL developer is a specialized back
end developer. ETL stands for Extract, Transform & Load. Pull
data from somewhere, format it for somewhere else and then put it
there. ETL can be written with ETL tools like OWB or Informatica,
or they can be hand coded in PL/SQL, Java or any other language.
This is not really an area for beginners. A good ETL developer has
a lot of knowledge in many different areas including some complex
ones like data loading performance.
- Java - By Java, I mean inside the database. I don't see many
jobs for a pure DB Java developer but knowing Java helps almost any
database developer resume. If you know Java or are learning Java,
consider it an extra point when you interview for that Oracle job.
- Web - A web developer is someone who codes in Java or one of
the popular scripting languages (PHP, Perl, etc) and accesses a
database. Many shops are migrating legacy languages like VB, Forms,
C, and others to these multi-tier languages. In my experience this
is a great place to start for many people. You can develop
something at home or for an open source project and actually have
some links to show off at interviews. In the end, it's the ability
to do the job that's most important.
- HTML DB - I was contacted by a recruiter last week looking for
HTML DB programmers. So far, that's the only job I know actually
hiring for HTML DB but hopefully it's a sign of things to come.
HTML DB is easy to learn and since you can get it with Oracle XE,
you can hang your app on the web and show it off like a web
developer. I can't recommend making this your first choice if you
want to get into Oracle. It just doesn't have enough history yet.
But I don't see how it could hurt if you learned HTML DB while you
were learning SQL and PL/SQL.
I figured I'd list two or three different jobs and then this list just got away from me. I hope it gives you some insight into the different areas that encompass "Oracle". I'm sure I missed some important jobs or got my descriptions wrong. If you think so, let me know about it.
As always, if you have comments, questions, concerns, or suggestions, please post it here or email me at lewisc at rocketmail dot com. Put blog in the subject line to appease the spam monkey.