I once had this crazy idea that I might learn COBOL. COBOL developers are getting older and retiring, but there's still a lot of legacy code hanging around that needs maintaining. People have told me that this has lead to an under supply of COBOL developers, resulting in a lot of available work and could be potentially very lucrative! (not my only motivation, honest!) Is there any truth in this or is it a bit of a myth?
closed as not constructive by ChrisF♦ May 22 '12 at 10:44
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance. If this question can be reworded to fit the rules in the help center, please edit the question.
Yes, I think this is somewhat true. COBOL is being taught less and less at universities. It is not a modern nor "hot and cool" language - so the chance of people picking it up by interest/hobby is smaller than for the current "hot" languages.
At the same time, there are millions and millions of COBOL code live in critical systems, that will have to be maintained in the future.
Therefore, it might be difficult for companies to recruit the number of COBOL programmers they need, so being a good COBOL programmer could be lucrative. In my country, some big companies offer well-paid COBOL jobs to new graduates, even though they know they will need to teach them everything about COBOL and mainframes from scratch.
I would not choose my career based on this. Choose based on your interests, what's fun to do ? If you invest in developing yourself and improving your skills on the programming platform of choice; you should be able to make good money in any language.
Also, COBOL is needed for now, but I don't know of any new projects being started on COBOL. A COBOL job might be maintaining 10 or 20 years old code. My guess is that COBOL will be around and important for some years to come; but when existing systems eventually needs to be replaced, they probably won't be built in COBOL.
Yes and No. It depends on how lucky you are and were you work.
I can tell you from personal experience that there is a lot of live COBOL code out there, most of it in large banks. This code is being maintained and enhanced.
Since this is a niche and COBOL programmers are not as easy to find as Java/C# ones, and given the fact we are talking about the financial sector, chances are you will be payed very well.
But there is a catch...
Some companies started to get into this niche and offer banks their COBOL programming services. This is better for banks, instead of having people in house. Their system might need modifications for some law or something and it needs to be done, but afterwords there is nothing to do any more, but an in house person will have to be payed all year long even if she actually works just half of that time.
So the banks hire the services of these COBOL programming companies.
If you end up in a company like this your pay will be small because these companies work with fresh CS graduates.
They hire youngsters and give them a job with small pay (their speech is like this: hey... you are fresh out of school... you know nothing, so we are giving you a change to grow withing the company... this is a risk for us... bla bla yada yada).
These poor souls were scarred by C++ pointers in college and introduced to COBOL (in house complete training for a couple of months or so) find an easy to work with language which enables them to create a program that transfers money from one account to another by just Copy-Pasting code from somewhere else.
That's the main style of development, Copy-Paste. In a mater of days you create a full working 50 000 line program that does the job.
These youngsters receive specifications written almost in pseudo-code and they are transformed in code monkeys. By the time thew wake up...well... it's to late.
If you end up in a company like this you will be treated as the youngsters, no matter how much experience you have. And if you don't like it... there are plenty of young people to replace you.
As I said, it depends on your luck and were you live. I know about companies like this in both Europe and India, YMMV.
Being already skilled in COBOL is lucrative.
The problem is: you hardly write new code, you keep mantaining forever, do some integration, or port to Java/.NET/web.
That's more the profile of badass sysadmin with benefits position than that of a programmer.
When COBOL was mainstream, to make things work, COBOLds had to do many non-canonical hacks on different pieces of really outdated equipment:
There's a very strong drivers are for wimps school of though in that environment.
You'd better like serial port programming, know your postscript by heart, and whip the centronics interface beast at your pleasure. Some arcane operating system knowledge will benefit your profile, too:
No, it is not a "myth". There is a lot of COBOL code still in usage, and that code requires maintenance and updating. Naturally, there is a need for programmers who know how to do that.
Since COBOL is not really taught at universities, companies usually train their staff in-house, and keep them. If you're looking for a nice stable "quiet" job, this is not a bad way to go.
I think large companies have a strategy for phasing out COBOL systems and replacing them with other systems for many reasons, one being the cost of mainframes and the tendency of developers not to love to learn COOBL.
The great advantage of COBOL is the simplicity of the language, however, systems are usually complex. If you are the kind of person who likes to dig in tons of lines of code to extract business rules or to fix problems, then you might have a career for the next 10 years or so.
Beware of the fact that while there are COBOL jobs they may not be all in one place and some of the jobs may be on contract only basis. That could mean lots of travel. Do make searches in the job engines to know more.
A COBOL developer would need to learn COBOL II, VSAM, CICS, ISPF, DB2, JCL and possibly IMS in addition some other tools. COBOL alone won't cut it.
Edit I have removed the sentence "At the crisis of Y2K many large COBOL systems were simply thrown away" since I have no facts to back it up.
I talk to lots and lots of other COBOLers, myself included, who are out of work and just not finding it. Most of the interviews I've had over the past 10 months have NOT been COBOL gigs, and they were looking at my experience, analysis work, SQL, VBA, etc.
I have 20 years of COBOL, but only on Unisys and HP mainframes. Almost every IBM COBOL gig I find, I apply. They just are not interested if you don't have specific platform experience and several years of it.
COBOL is very much in demand. The company I work for writes a lot of it.
But strangely enough, I've never seen a C++ or C# programmer here ask to be transferred to a "lucrative" job in the COBOL department.
I really doubt that it would be very lucrative, as I don't see software maintenance as being lucrative. Even more so, that it's banking, and banking still hasn't recovered from financial meltdown, and isn't likely to recover anytime soon.
On the other hand there is very lucrative market in post-web2.0 industry. There are companies willing to pay a lot to people with skills necessary for building services from ground up, for mobile apps, web APIs, cloud backends etc. And in fact they offer much more than banks can offer.
Just compare US salaries by few keywords in indeed, and you'll see a clear trend:
I'm coming at this from a PL/1 angle rather than COBOL, but I imagine the same applies - albeit in a smaller way.
I wrote PL/1 from about 1990-2007, and prior to 2000 there was always a huge demand for PL/1 programmers. But as part of the Y2K effort, many old PL/1 systems were retired, and many existing other bugs fixed reducing future maintenance requirements. After that point there were a lot less jobs around, which led to many older programmers retiring. There wasn't a corresponding increase in rates though - the pool of developers was still too large for the number of jobs out there. I stuck it out for another 7 years (although for much of that time I was writing SQL, JCL, DFSORT and other stuff rather than any actual PL/1) but in the end I gave up. By that time contract rates were way down, not that that mattered as the only available jobs were permanent anyway.
So I switched to iOS and haven't looked back. Those who didn't move on are looking for the scraps from the table I'm afraid, or are stuck in a permanent job writing an old language that has little relevance in the outside world.