I have made a search on a Hong Kong job seeking website. There numerous of jobs titled "Computer Analyst". These are the requirements of the job:

Over 3 year experience relevant working experience in IBM Mainframe environment.
University degree in Computer Subject.
Proficient in system analysis, design and coding for the banking systems.
Application knowledge of Core banking and Card applications is definitely an advantage.
Sound in using IBM CICS/COBOL, and VSAM for both online and batch application systems.
Good communication skills with internal users.

Quite a number of jobs are similar: They requires candidates to have the following qualities:

  • Computer Subjects especially Computer Science
  • 3 years above experience
  • IBM Mainframe COBOL
  • Proficiency

Then it comes to my question:

  1. It makes it hard for new programmers to enter the industry. How should someone enter the industry, i.e. making him/herself suitable for this kind of position?
  2. Do they still want new programmers in this field?
  3. How should one learn to operate IBM Mainframe(Or any kind of Mainframe)?
  4. Is knowledge in finance required or crucial?
  • 2
    Long long time ago and I have chosen Python are mutually inconsistent statements, Python is a beardless youth standing next to COBOL. – High Performance Mark Dec 10 '13 at 15:09
  • I mean at that time, I just want to learn any programming language, solely for the purpose of being able to code. Long time ago should be a better statement. Thanks! – Johnson Dec 11 '13 at 1:21

Every now and then I see one of these, and I think of how long I spent trying to purge COBOL from my resume. It boggles the mind. I'll try and answer the questions in order.

1) It's very hard to get one of these jobs, because the paradigm is so outdated. There are no new systems (effectively), so you're competing against people who've been doing it forever. Fortunately a lot of them are dying, so occasional positions do open up.

If you get one of those positions, prepare to be hated. HATED. Because this stuff is so old, you're going to be dealing with incredibly hard to maintain code. Tons of customization. Very old development models. The learning curve is steep, and you will not be as responsive as the person who just retired/died. You will spend years trying to overcome this.

2) A lot of this stuff is financial code, and financial code has to change to reflect changes in the law. Changes in tax law will keep you in new code forever.

3) Step 1, get a mainframe. No, seriously, there is practically no way to learn. Fortunately, most companies don't really expect you to have experience. They just want it if they can get it (which they probably can't). If you're dealing with a "standard" OS, you may be able to get some classes (HP-UX, AIX, etc). Most of the mainframes still in production will probably be using much older versions of those, however, and you won't be able to get classes. God forbid you find a job where the mainframe is running something really bizarre (MPE/iX leaps to mind). There are barely even books for that.

4) Absolutely not. Your job is to talk to the accountants and make their math into code. You shouldn't ever be doing your own math. The auditing requirements on the code are unbelievable...Prepare to have to justify every change you make to every program you touch. Spend an hour trying to understand a piece of code, and then feel the desire to add a helpful comment? KILL IT. Every change has to be extensively documented.

I don't know. I sort of fell into this (Y2K got me COBOL experience), and I've been fighting it ever since. It's no fun. You're always working on systems that everyone hates, systems that have been slated for replacement for decades. Nothing is ever new or fast or easy.

  • +1 for 'Fortunately a lot of them are dying' It certainly feels that way :) – paulkayuk Dec 10 '13 at 16:15
  • @paulkayuk: Well, some do retire. I've noticed that a lot of them stay on the job forever though, and just kick off in the traces, as it were. I've dealt with an unfortunately large number of ~70 year olds..."New" is not in their vocabulary, and if you go to them with a problem, they'll make you sit through a long rant about the state of the industry (doesn't matter what industry) before they give you some cryptic advice that will make perfect sense once you solve the problem yourself. – Satanicpuppy Dec 10 '13 at 18:44
  • 1
    For #4, it should be noted that this is a requirement of the financial industry rather than of any programming language. The language could be COBOL or C++ or JS or anything else. (In many cases, it's far easier to document changes in COBOL than in some more 'modern' languages, though today's mainframe COBOL is quite a way beyond COBOL of 20+ years ago.) – user2338816 Jul 24 '14 at 12:17

Not the answer you're looking for? Browse other questions tagged or ask your own question.