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:
- 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?
- Do they still want new programmers in this field?
- How should one learn to operate IBM Mainframe(Or any kind of Mainframe)?
- Is knowledge in finance required or crucial?
2
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.
3