Hacker News new | ask | show | jobs
by mcafeeryan92 2973 days ago
Anyone have thoughts on how to go about learning mainframe programming and COBOL? Honestly seems like a useful skill given its existence everywhere but I don't think very many engineers (myself included) know where to start in learning it.
5 comments

A number of people, I think in the "COBOL Cowboys" discussion, on HN have pointed out that it's not learning COBOL that's the issue. The language is the easy part. The real problem is learning the mainframe systems and concepts, and especially gaining meaningful experience with them. Emulators are available in some cases but back in the day all this stuff was proprietary, and doesn't follow the familar UNIX-a-like mould of many modern OSes. (It goes without saying they're nothing like Windows, either.)

EDIT: I think this is the COBOL Covboys discussion I referred to above: https://news.ycombinator.com/item?id=14083214

There's an emulator called Hercules that can run z/OS, OS/390, or MVS. The hard part is getting a copy of a recent version of the OS. Luckily, z/OS takes backwards compatibility very seriously so an older version won't be THAT different from a newer one for a beginner.

A lot of the big mainframe software companies like CA Technologies, Rocket Software, or BMC hire people with no mainframe experience (often straight out of college) and then train them.

If you're willing to pay for it, IBM offers classes in Dallas, TX for beginners as well. They are not cheap.

Marist College (located in New York, I think) also offers some z/OS certificates and classes. Unfortunately, I don't think they are online. I could be wrong about that though. http://idcp.marist.edu/enterprisesystemseducation/zosprogram...

Yes. I agree with this. Having command line and interactive terminal experience and actually programming your environment the more fundamental skill to have on mainframes.
I don't know -- It's been decades since I wrote any COBOL, and at the time I was pretty fresh out of a unix-centric undergrad environment. I was at home in emacs and the shell command line and familiar with unix utilities, but the mainframe was just another planet entirely. None of that experience really translated.
I've actually programmed in COBOL and fundamentally the problem is all this technology is OLD. Crazy OLD. COBOL has more in common with old-school line numbered BASIC than it does almost any other technology.

It will literally take you months to do something in COBOL on the mainframe that would normally take you a week in anything else. Trust me, you take for granted all the conveniences of modern programming environments. COBOL is very much a product of it's time and it's time was decades ago. The success of these old environments rests entirely on extremely well defined (and tedious) processes, not the technology.

No matter how much they pay you, you probably still won't want to do it -- it's just not intellectually stimulating enough and you will constantly be frustrated.

>It will literally take you months to do something in COBOL on the mainframe that would normally take you a week in COBOL on anything else.

Fixed that for you.

I disagree. COBOL itself as about as expressive as BASIC and twice as ugly.

The environment is also terrible but separating COBOL from the environment is pointless.

Is code generation too difficult for COBOL? You'd expect some more modern tools for abstraction and interoperability or something…
Every time one of these articles comes up I check out the salaries these places offer for COBOL work and it's just not competitive. Clearly they have a plenty big talent pool to meet demand. So it doesn't seem worth it to me unless you really want to work in banking.
What's not mentioned is that there is a large outsourced population of COBOL devs. Talking with a former colleague who did COBOL for years, he can't find anything in COBOL that pays well, so he's staying at my last company doing VB.net and batch processing for their ERP system
Start by installing and running the tk4 MVS distribution. There are lots of youtube videos about it. Watch everything you can find in video about mainframes. Read a lot of IBM docs. Start by the ABC's of Z/OS Programming or some older equivalent, since you won't be running the newest system on the emulators anyway.
Maybe you could mostly learn it on the job if they thought you had interest? I actually had an internship in COBOL with zero prior experience. They were hoping to convince some of us kids to give it a shot. In my experience it wasn't hard at all, but I'm not really sure what level I was operating at.