Are there reasons why I wouldn't want to do Oracle programming for the rest of my life?
March 13, 2012 1:37 PM   Subscribe

I think I'd like to be an Oracle programmer when I graduate (soon). What are some of the upsides and downsides of this as a career?

One thing in particular that I'm worried about is having forgotten how to work in OOP languages if I change my mind 2, 5, 10 years down the road. Or even being unable to get, say, a C# job down the road if I wanted to. If this is going to be the case, I'd like to be sure I know what I'm getting into. I really like Oracle programming, but I'm not sure if that's the kind of programming I'd like to do forever...Really, anything you can tell me this as a career would be helpful.
posted by kitcat to Work & Money (21 answers total) 6 users marked this as a favorite
 
Don't Oracle instances have a JVM, with the option of doing some things in Java? You can keep at least some contact with OOP languages that way, perhaps.
posted by thelonius at 1:50 PM on March 13, 2012


I'm not familiar with Oracle: are you talking about the Oracle superset of SQL?
posted by phrontist at 1:54 PM on March 13, 2012


when you say oracle programmer, you mean working for oracle, or writing code that gets data out of an oracle DB, or __ ?

Generally, any programmer should be able to get data in/out of a DB, and most DBs are fungible.
posted by k5.user at 1:54 PM on March 13, 2012


Best answer: There are several reasons, but most of them would equally apply to "Is there any reason I wouldn't want to be a programmer for the rest of my life?"

To highlight the 3 most significant that pertain to Oracle, which is mostly used in enterprise, so I'm assuming you're considering you're classic work-9-to-5-at-a-big-company position:

1. No one outside of your group will actually understand what you do. Sure they'll know "make computer work," but they'll have no real idea about what kind of effort goes into what type of result.

2. Because they won't understand what you do, they won't respect what you do. They'll treat you as some of black box into which they pour their requirements, and out come results than can only disappoint them, because again, they don't understand what you do or the limitations of it.

3. If you get lucky, and you have people in the business who do actually respect what you do, it's in their best interests to keep you doing what you're doing. There are limited advancement opportunities strictly within programming.


All of this will affect your job satisfaction. Not that you asked for it, but I'd suggest doing something within the realm or programming (even oracle) that isn't strictly a stale corporate job, whether that's work at a real tech company, a startup, some kind of consulting, you decide.
posted by Patbon at 2:02 PM on March 13, 2012 [2 favorites]


No programming language position is going to stay the same for your entire career. You'll always want to be learning and always sharpening your skills in new stuff. So why not go into Oracle stuff now?
posted by advicepig at 2:12 PM on March 13, 2012 [1 favorite]


advicepig: I'd argue Oracle is in decline, long term. The opensource DBs won.
posted by phrontist at 2:15 PM on March 13, 2012


Response by poster: thelonius: yes - thanks, that's a good point.
phrontist: I don't know what you mean...
k5.user: writing code that gets data out of the Oracle DB, creating Oracle forms, reports, and other things as yet beyond my imagination

I'd argue Oracle is in decline, long term. The opensource DBs won.
I don't see how that can be the case. The big corporations and government rely on Oracle.
posted by kitcat at 2:25 PM on March 13, 2012


Response by poster: I should say, as a high-anxiety person and an above-30 (mom, in fact, with a young child) who's quite nervous about starting a real programming job straight out of school, I actually think it's a good idea for me to start out at a stale corporate 9-5. I can always move on to something more exciting and demanding when I'm more steady on my feet.
posted by kitcat at 2:41 PM on March 13, 2012 [1 favorite]


Totally unsubstantiated opinion based on looking at programming job listings: it seems like a fairly significant amount of Java programming jobs also involve heavy database work. More than, say, C++ jobs. So you could probably find a job where you write object-oriented Java code that does Oracle database manipulation.
posted by scose at 2:54 PM on March 13, 2012


Best answer: I would say "Oracle programmer" - in its broadest sense - is one of a fairly short list of job titles from today which will still be around when it comes time for you to retire. That means it really is as close to "Something you could do for the rest of your life" as it is possible to get in computing. There are lots of people with Oracle systems at present - these people have deep enough pockets to keep paying you if you can do something useful for them - and the systems are normally long lived and business critical. Knowing a great deal about Oracle databases for IT people is also a bit like knowing accountancy for finance people: it can act as a springboard for a wide range of more specialist career options that might catch your fancy.

In particular you have the choice of a regular 9-5 career or more varied jobs such as training or freelance consultancy.
posted by rongorongo at 2:56 PM on March 13, 2012


Best answer: There's an entire ecosystem of Oracle products. Oracle started as a Database company and it is still one of their core strengths, but they are now an enterprise application company. They own Java and MySQl. They run their own Linux build. They compete in business applications with SAP. And they recently acquired a hardware company.

My point is that working with Oracle won't box you in if you keep your eyes open. People who know how to move data around in huge companies are in high demand and highly paid.

Agreeing with Patbon, though on the caveats to a career in enterprise software.
posted by vacapinta at 2:57 PM on March 13, 2012


Because [people outside your group] won't understand what you do, they won't respect what you do.

To be fair this applies to almost every job function there is. No matter what you do, somebody somewhere with different priorities will try to minimize your contribution when it is to their advantage, and/or out of plain ignorance.

As others have pointed out, the programming world is ever shifting, with new languages and platforms coming into favor every few months. Try to keep your skills current somehow, even if it isn't in your core job function (help somebody out with a project or something).

I actually think it's a good idea for me to start out at a stale corporate 9-5. I can always move on to something more exciting and demanding when I'm more steady on my feet.

Just so you know, this is far from the normal job trajectory in high tech, kind of the opposite in fact, and while it's not impossible, it is very difficult and you will have to work really, really hard later in your career to even stand a chance at shifting from something old and stodgy to something up and coming.

More realistically, be prepared for the possibility that you will not be a programmer forever. It's stereotypically a young person's game, and as time goes on it becomes easier to move on than to stay in it. So get to know the business, on a broader level, of whatever place you work, with an eye towards going into some sort of management after 5-10 years.
posted by rkent at 2:57 PM on March 13, 2012


Are you talking about being an Oracle DBA? Or maybe an Oracle Business Intelligence Analyst? When I hear "Oracle Programmer" I think either of a software developer who actually works for Oracle or someone who writes code in a different language (C#, C++, Python, whatever) to interface with an Oracle database.

If you're talking about just writing SQL queries to get data out of an Oracle database, but not doing things advanced enough to be a DBA or BIA, I'm skeptical as to who is going to hire you to do that to begin with.

There are lots of places to go in Business Intelligence, and you can make a nice career as a DBA. Being a programmer with a lot of oracle experience can be really useful (though you'd be well-served to branch out to other data stores) but yeah: if your job is really inserted between actual software developers and DBAs/BIAs, I'm not sure I'd count on that long-term, as it seems like an "overhead" position that could be eliminated by hiring more DBAs/BIAs or more experienced programmers.

But, yeah, bottom line: I'm confused about what you are expecting your job to actually be if it's not going to involve programming in anything other than SQL but it doesn't fall within one of the other two career-paths up there.

Granted, it's been a while since I've worked at tech a humongous company, but that lack of clarity would be concerning to me.
posted by toomuchpete at 2:58 PM on March 13, 2012


I'd work on Oracle but also look for opportunities to bone up on Hibernate for Java. Understanding not just databases but the myriad ways to get through the object/relational impedance mismatch will only make you more valuable.
posted by rouftop at 2:59 PM on March 13, 2012


Re-reading my above post, it sounds a little dark. I don't mean to terrify you, I just wanted to give you "reasons not to." The right company came make all the difference
posted by Patbon at 3:12 PM on March 13, 2012


Best answer: Oracle's built a big ecosystem, and that ecosystem has evolved. SQL databases are interchangeable parts, but Oracle's extensions are not. Algorithms and design patterns work in any language, but optimizations and adaptations aren't all that portable. Oracle's set of front and back office applications are even more esoteric still. Moving from the database through the tools spectrum and into the applications is like any other form of specialization: fewer people will have use for your skills, but those that do will need them more.

I agree with Patbon's assessment of common enterprise IT working conditions. Since Oracle is expensive, it's generally only seen in larger organizations, but people working on Microsoft and IBM technologies at large companies and institutions experience the same thing. The growing popularity of outsourcing and software (et al) as a service means the previously lauded stable IT jobs can now disappear just like manufacturing and customer services ones have.

Depending on how important your work is to you (think about the "work to live" vs "live to work" continuum), you can choose between corporate IT, working in the software development industry, working in the internet space, and consulting. Each offers different kinds of challenges (corporate politics, employment stability), opportunities (travel, management potential, working on emerging technologies, working on really big systems), and different kinds of work/life balance. That's what now guides my career choices more than the specific flavor of buttons I'm going to be pushing.

In terms of how the Oracle products have changed over time: in the Oracle 7 days, the DBMS product was considered a gold standard for good reason. They added a lot of interesting features in the late 90's, even if they weren't all game changers. Now, in my opinion, Oracle is more focused on its applications business because it produces more revenue, and their product growth comes from acquisition rather than organic development.

Personally, earlier in my career, I spent 5 years or so as an Oracle DBA and a developer/analyst/administrator of the Oracle back-office applications. I switched areas of emphasis for many reasons: didn't like the problems I was trying to solve, didn't like the people I was solving them for, dissatisfied with the quality of the products and support, and the network was broken and no one else was fixing it. Most of my colleagues from that time are still in those trenches, though, so this says at least as much about me as it does about the work.

Despite my negativity, I do think being a computer geek is a pretty good career choice. Nothing in terms of work is going to apply for "the rest of [your] life". Keep learning new things and seeking out ways to use that knowledge, find people you like to work with in places that treat you (and hopefully the rest of the world) with respect, and try to be mindful of your priorities.
posted by jaredg at 3:55 PM on March 13, 2012 [1 favorite]


If you're talking about just writing SQL queries to get data out of an Oracle database, but not doing things advanced enough to be a DBA or BIA, I'm skeptical as to who is going to hire you to do that to begin with.

. . .

I'm confused about what you are expecting your job to actually be if it's not going to involve programming in anything other than SQL but it doesn't fall within one of the other two career-paths up there.


First of all, you need to know PL/SQL, a proprietary Oracle language, in order to write such things as stored procedures and triggers. Knowing SQL is necessary but not sufficient for this. Second, I have been hired for just such a thing, only with a DB2 system. I was there simply to write queries. Yes, I stepped in and helped with some ColdFusion code, javascript event handlers, testing, etc. but my primary function at that assignment (that ended up being about 10 months) was to write all of the queries for a new government web app. So yes, such jobs exist.
posted by parrot_person at 3:58 PM on March 13, 2012


Response by poster: For those who are confused, here is an example of a job I might get upon graduating.
posted by kitcat at 5:19 PM on March 13, 2012


Best answer: The best long-term career option in the software field is to be good at each of the three disciplines: software development, database development, and operations (i.e. systems engineering or networking). People who know all three really well are golden. People who know two out of three are really well positioned.

Unfortunately, in my experience, people who only follow one of these paths end up having a limited career. The limits will depend on what you choose; for the database world, you'll start off perhaps doing some application development (on the SQL side), but end up doing nothing but reports. At some point, you may get sick of reports, though.

I would also set your sights wider than Oracle. It's a great ecosystem, no doubt. However, it's really not seen as an "up-and-comer" of the software world. It's more of a dinosaur whose size, importance, and historical penetration guarantee that it'll keep on making money for a long time to come. Making money, though, is not the same thing as doing anything truly innovative: there are still companies that maintain 1980s era mainframes. I've got an acquaintance who writes COBOL code for a living.

You need to ask yourself whether you are comfortable having just a job in 5 years time, and a job that may not change substantially for the majority of your career. If you are, then an Oracle programmer is a great job.

If you're not then I recommend thinking of other jobs too. It doesn't mean you can't take an Oracle programming job for a couple of years, especially if you're still learning stuff on the side (or as part of the job) that sets you up for other jobs later on. But it means that at the very least you should think of yourself as a _database_ programmer, and thus later on be open to taking a job doing SQL Server development or DB2 development or MySQL DBA work or whatnot. You may also want to take aggressive steps to move into application development to gain control over that second discipline: take on projects that let you write procedural non-SQL code.

From your past question I think that you are perhaps aiming for the right place to start your new career. You can even postpone really making a decision on the long-termness of your choice for a year or so, as you learn an Oracle job -- your software development skills won't evaporate that quickly. But they probably only have a shelf life of a few years, so make your decision reasonably quickly.
posted by haykinson at 12:22 AM on March 14, 2012


Best answer: tl;dr: I wouldn't take a job where the primary responsibility was maintaining (rather than replacing) an Oracle Forms/Reports-based system. It's a dying technology and it's easy to get pigeonholed.

Based on your link to that job posting, I realize I didn't actually answer the question you asked.

While I've been away from corporate IT for a long time, the anecdotal evidence I do have is that places aren't picking up the Oracle Developer suite and using it for new stuff unless it's in the context of working with Oracle's packaged applications. Almost all the work you'll see will be maintaining legacy systems that the organization would deprecate if it wasn't so scary, expensive, and tedious to do so. Oracle keeps Forms around because of these code bases, including their own. "Fusion Middleware" was supposed to be about moving their packaged apps off Forms to whatever Java framework was popular around the time they snapped up PeopleSoft several years ago (I think the migration was actually underway before that). I don't know how far along they are in the process of converting everything.

I liked Forms more than some of the other client-server RAD tools of the time (PowerBuilder, Borland's Delphi, you might throw VB in there) because it integrated well with the database and I actually like PL/SQL as a language. But the web paradigm displaced that UI model.

Every place has legacy code, and every developer dreads keeping it on life support. Forms and Reports will be around for a while, but they're starting to look a lot like COBOL. COBOL still runs some pretty big and important transaction processing systems, and very few people want to work on them. When people and organizations feel trapped, it can and almost always does create a toxic environment.

When evaluating positions, I'd make sure there's other work on the table besides dealing with Forms and Reports. If you can handle it, migrating systems from Forms/Reports to another platform could be lucrative and will keep your skills up.

Poke around ODTUG, the Oracle Developer Tools Users Group. They should know what's happening in that part of the IT world far better than I do.
posted by jaredg at 12:39 AM on March 14, 2012


Response by poster: These are really superb answers. I might go for it, but keep my eye on the door. Java and Oracle are a good pairing. Even being a DBA far down the road is appealing to me. And I've got a summer job working with C# and VB.NET (in a stale corporate environment :) ) which will sharpen skills and give me a sense of things. I may get to do stuff with Oracle there.

I look forward to the day when I can answer these types of questions for others. Thanks.
posted by kitcat at 9:34 AM on March 14, 2012


« Older Looking for stories of space programs interacting...   |   Landlord has told me my room is already... Newer »
This thread is closed to new comments.