views:

1518

answers:

19

After reading this:

http://www.codinghorror.com/blog/archives/001294.html

...I'm wondering if I would be well-served to learn COBOL so I can replace the COBOL programmers as they retire. Some people in the comments point out that as the old programmers retire or die, salaries might well increase in that field.

If I'd like to position myself to take jobs like that, what can I do? Where do I start?

I'm 33 years old, and thus a long way away from retirement. If I could position myself as a COBOL programmer able to maintain these old systems, I could have decades of potentially lucrative work in front of me. Any suggestions? Is this a path I should follow?

+1  A: 

yeah, if you think you will like it.
I'm not 100% sure if it is the best use of your time, but it is definitely an option.
i would start by buying a high ranked book on amazon.com

Justin S.
+11  A: 

I personally would run away from the idea of actively trying to learn the language as a career choice. Not that your idea in general isn't a good thought but I honestly think that as the need arises if you have the opportunity or wish to take on the opportunity the hiring agency will be willing to train you since everyone else has died or retired. :)

I also believe you will be better served to keep learning newer technology / languages to further the career path or keep your career path open. It would be easier if you decided I want to take this COBOL job than to say I have no choice but to find a COBOL job....

klabranche
A: 

Yes, it's a great idea. I hope you get richer than all us folks who had to study smalltalk at university.

grenade
A: 

I read this relatively interesting blog on COBOL today.

Kragen
You did see that there's a link to said blog in the question...?
R. Bemrose
I think the OP did, too.
Chris Farmer
Well I though that the unspoken conclusion of the blog was the answer "no", even without the other valid reasons given here.
Kragen
A: 

I wouldn't even consider it. There are far better languages out there, C# for one.

Bryan
+33  A: 

Not a good plan. The problem withn these old COBOL systems is not so much the COBOL code itself, which is normally pretty straightforward, but the relationships between the COBOL programs and the other system components. So to be a COBOL programmer in an IBM mainframe environment (for example) you will need to know about JCL, the various IBM mainframe operating systems, CICS etc. etc. and these things are very difficult to learn about without access to an IBM mainframe or similar running VM, which I take it you haven't got. The same, or similar, issues apply to other environments, like VMS or AS/400 , of course.

anon
+1 that is the crux of the problem. COBOL as a language is trivial to learn, as long as you can count 7 spaces...
Remus Rusanu
and spell "environment" correctly, as I discovered after an hour or so's cursing
anon
scavenging scrapyards, looking for old hardware, hoping for a better future.
Stefano Borini
The problem lies with all those add-ons. I started with COBOL on ITL machines (very obscure) and couldn't get a job elsewhere because they want IBM or ICL experience; not because the COBOL was different but because of the difference between the different JCLs and so on.
APC
+1  A: 

If your goal is to get skills that are required but are in short supply then I'd look at becoming a specialist in a modern product like sharepoint rather than a vintage programming language.

Charlie
The thing is: the "modern" product may either turn out to be not as successful as hype predicted, or lots of people will pick it up and your skills are suddenly worth very little. The thing with COBOL is that the growing gap between a quickly declining supply and slowly declining demand is pretty much guaranteed.
Michael Borgwardt
Well there's always "waves" that you can ride, which is what this question is about. There's risk if you go off learning something that hasn't proven itself in the marketplace. However, I think there's products (like sharepoint) which have proved theirselves but still have a shortage of skills. Furthermore, working with a new product can keep your skills fresh using modern languages and frameworks, as well as new versions of the product increasing the lifetime of your skill. These benefits outweigh learning a language that's old.
Charlie
+2  A: 

I'd get hired on as a COBOL programmer to be trained up. If you read the comments on the blog, most of the 'young' COBOL programmers seem to start that way. You would then get paid to learn.

Lance Roberts
In the IBM world as an entry-level person you basically have to be hired and trained on the job. From what I've seen it has always been this way though. IBM touts its "mainframe" education programs, but they effect only a few at a few schools. There are few ways for a mid-career professional to simply learn z/OS or AS/400 on their own time.
Dr. Watson
+4  A: 

It would definitely take a special kind of personality to think that you'd enjoy a career of maintenance programming. I think you risk being pigeonholed as the COBOL guy, and even if you are a smart person who can learn quickly with the best of them, you'll have a hard time escaping from COBOL's evil clutches. You see that now with people on the tail end of VB6 maintenance, and it's often hard for some of them to break out. I can only imagine that the COBOL effect would be even more dramatic.

Chris Farmer
A: 

When I was in undergrad for CMIS (about 5 years ago), COBOL was still a required class. However, they taught more how to maintain and enhance code rather than writing new code. Apparently, many of the local (St. Louis) companies still have tons of apps written in COBAL that they are not replacing anytime soon.

Although, since I have graduated, I have heard they no longer require COBOL, and it is now an elective...

chad
I was in college almost 30 years ago and there was only one Fortran and one COBOL class. The opinion at the time was that those languages were almost dead. Hanging on a bit longer than I expected them to. :-)
Nosredna
A: 

I think this is going the same way as petroleum. My father got his start as a petroleum engineer, and was recruited directly out of college in the 70s for a pretty competitive salary. I don't think he even did a job search. Now, he is in his mid 50s, and said the average age of a petroleum engineer is about his age... thus most of his field is going to retire along with him, and being a baby boomer that's going to be significant.

At the same time, these oil companies are recruiting like mad out of colleges to get people into their companies. Granted, American oil exploration is significantly lower than it once was, but demand for petroleum products doesn't really correlate to the amount of engineers employed to extract it from the earth.

So my answer to you would be the same as my answer to people going into college for petroleum engineering: you'll find employment in this industry, yes. But there's a limit to how much longer the industry will continue to exist in the way it has... will we need people to repair old COBOL systems for the next 100 years? Probably. Is that industry going to grow, and can you even guarantee that people won't refactor their existing machines and phase out COBOL soon? No. But who knows? I'd say your only motivation should be based upon how interested you are in maintaining and developing those systems. Otherwise the crap you have to put up with for the pay will never be worth it, even if it's exponentially higher than the average.

NateDSaint
+2  A: 

since most of current code is written in COBOL - I think it's useful to at least know something about this language, especially since everyone tries to get rid of systems written in it. Even a general knowledge of COBOL is often plus in combination with the new generation cobol language - called "java".

Personally, if you're concerned about job security for decades to come - go learn java.

sheeshkebab
+2  A: 

Another point to add to the others here is that a lot of these programs written in COBOL in Banks/Insurance Companies/Government Departments run as part of an overnight batch process. Once you've skilled yourself up in COBOL programming and the JCL etc mainframe skills you're then on-call potentially 24/7 to support the running of these critical systems and resolve problems before business opening hours.

As someone who's done the on-call thing and tried to solve issues at all hours while continuing with the BAU day stuff it does affect your life and is another downside to be considered. You might start off on a support rota but as the others head off you're in danger of being the only one left.

MadMurf
+1  A: 

It's true that mainframe shops have a hard time finding new developers. However, most developers would not want to invest time in learning a technology which decreases year over year. In ten years, you could be a very experienced COBOL developer/maintainer, but if you choices in jobs will continue to diminish.

If you're 33 now, you'll be about 62 when the 2038 problem roles around. If you know C today, you'll be well suited to be in demand to go fix legacy systems when your close to retirement. That's my plan anyway.

brianegge
A: 

Learning a language is not a complicated task, even when it's COBOL. If "COBOL programmer" position gains value at a point in future, suddenly there will be plenty of people around with decent COBOL knowledge before you know it. It's not like COBOL books have been burnt or tutorials have been removed from the net.

And besides the obscurity of learning COBOL "now" as an investment, keeping the knowledge alive requires you to build a career upon it, not just learning it. And it should be relatively hard as those people aren't retired yet.

Regardless if I noticed that the technology that my own company was based on had been slightly turning into ancient lore, I would definitely have a plan in hand to switch to mainstream rather than merely hope the one who studied COBOL in the prophecies to come.

ssg
Well most of the people writing those legacy problems now didn't think that their work was going to last to 2000. And that code is still around. Once a system is place, it is hard to switch to another technology.
Hugo Estrada
A: 

If you're interested, learn enough to put it on your resume. Then you'll get picked up by resume sorters.. as people will value some skill in a area rather than no skill. That way you'll get that job with minimum time spent.

I've seen a lot of COBOL programmers who are good. But i've also seen a lot who are very poor programmers kept in well paid jobs because they know COBOL and some major applications that are written in them. So it lends credence to your idea of whiling away the rest of your productive years supporting it. However, i don't think it would be that challenging or interesting.

My preference is to minimise reliance on COBOL development and outsource it when needed.

Mark Nold
A: 

Do what you love and the money will follow.... can't imagin that is COBOL. If you are doing what you love you will be making way more in 10 year than if you are doing something because today you think it is "lucrative work". You are planning for the next 30 year, life is too short to do something that isn't what you love.

JBrooks
A: 

Most people on forums are from startup or students, in corporate world there are a lot of Cobol and SAP, I'm not at all cobolist I meet them everyday, experienced Cobolists earn much more than OOP programmers.

Rebol Tutorial
A: 

The problem to be a cobolist is not to learn cobol, it's to cope with old code with no documentation, spaghetti code, business requirements users themselves have forgotten :)

Rebol Tutorial