Programming in COBOL is best learned by signing up as a trainee employee in a company that has been using it for a long long time and that employs a bunch of old programmers who will be more than happy to teach you.
It's a quirky language, (omit a single '.' somewhere and you're in a for a world of hurt) has its neat parts and in general will come across as limiting once you have been exposed to other, more expressive languages. But that's probably also the reason it is still around, think of it as JAVA but then conceived in the gray past. The original intent was to make a programming language that would allow managers to program. That didn't quite work out.
Hey, apologies for randomly hijacking a comment for this question, but over the past years you've been popping up all over HN's comment section with (it seems) a rather eclectic and broad mix of experience, knowledge, and (possibly) talent. I'm almost starting to suspect you're multiple persons (but not really).
Have you ever written about how this came to be? I find myself to be similarly broad in interest/experience, but I'd judge myself much more superficial/limited in this regard because of the breadth of it all. I'm curious how you manage it all.
Hey There. Not really the place for this but I've had an 'interesting' life for want of a better description, I've written lots about it on my blog at http://jacquesmattheij.com/
If you want to take it off HN feel free: jacques@mattheij.com
MicroFocus have a Visual COBOL [1] that works in Visual Studio or Eclipse and targets the .net clr and the jvm. Trial downloads available. Or there is GNU COBOL [2] with docs and faqs [3].
I'm not a COBOL programmer, though, and not planning to be.
It's a quirky language, (omit a single '.' somewhere and you're in a for a world of hurt) has its neat parts and in general will come across as limiting once you have been exposed to other, more expressive languages. But that's probably also the reason it is still around, think of it as JAVA but then conceived in the gray past. The original intent was to make a programming language that would allow managers to program. That didn't quite work out.