I can learn COBOL from a book in general terms, but where would I practice with real-world legacy COBOL systems?
It's not as though I can do a COBOL side-project to learn... or can I?
How does one go about learning COBOL in 2022 (from "scratch", while already being a working dev) in order to niche down as a COBOL specialist dev?
In my experience the well paid COBOL devs are those with 20+ years of experience, often in one specific system, often bumped by being re-hired a bunch of times for the same position. I've been doing COBOL since 2018 and younger devs my age (late 20s, early 30s) with a few years of experience make decent money, but the average is bumped by the teams having a lot of devs near retirement age.
If you want to learn:
The language isn't very complicated. I'd recommend grabbing the Visual Cobol for Windows trial just to get coding (and then shunning anything MicroFocus when you are done ;) ) https://www.microfocus.com/en-us/products/visual-cobol/overv...
If you want to/will end up tinkering with IBM systems, check out Jan Sądek's Mainframe Playground: https://mainframeplayground.neocities.org/
For running COBOL on VMS, comp.os.vms is a common place to hang out https://groups.google.com/g/comp.os.vms?pli=1 A dev named Remy documented his first steps on OpenVMS and it was a great help when starting out: https://raymii.org/s/tags/vms.html
There is some actual training material from firms specializing in COBOL training floating around, but they are mostly IBM and/or MicroFocus documentation with some suggested example programs.
I hope the resources above are useful and good luck!
This is Hercules, an emulator for old mainframes. They also have COBOL and other important languages like JCL, the job control language.
Here the "turnkey" distribution that installs everything for you: https://wotho.ethz.ch/tk4-/
A mainframe community from youtube: https://www.youtube.com/c/moshix
Have fun.
Learning COBOL, even in a "real" environment, isn't going to be the jumpstart that you're hoping for by itself.
After getting some confidence you will be ready to begin your first COBOL job where you will open up the codebase to try and get familiar and immediately realize with shock and horror what you have committed to do. The hell and chaos of real world legacy COBOL all consuming.
You then sit there, day after day, counting characters and cursing your predecessor for not having that foresight to realize that a number might grow beyond 999. Daydreaming of a time when you didn't know so much about fixed length records, a time when you were happy.
If you just want to have fun with older tech that's totally fair.
Then, learn about mainframes since most of the COBOL in the wild is running on z/OS or the like. IBM use to offer a free Mainframe course. You would also want to learn JCL, REXX, and a few other mainframe related tools.
The apps are no different then most things now (inventory, accounting, etc.) is is the legacy processes that will most people that biggest problems.
And checkout a YouTube Channel by moshix. Lots of great mainframe info there.
That would get you started on the path.
https://www.reddit.com/r/learnprogramming/comments/g5zvpa/ps...
It doesn't cover COBOL in great depth but does touch on various pieces of the zOS ecosystem and gives you some access to a real mainframe.
There's also this COBOL course: https://github.com/openmainframeproject/cobol-programming-co...
I haven't tried the later and I'm not entirely clear on how you get access to a mainframe environment for it.
That said, I will N-th the caveat that knowing COBOL isn't the job/hard part; it's knowing the extensive ecosystem that COBOL orchestrates.
[1] https://catalog.columbusstate.edu/academic-units/business/co...
My first job out of college - around '94 or so - was working for an accounting software company that sold an accounting package written entirely in RM Cobol for DOS. The entire UI and the backend were all written in Cobol. Poking around a bit, it does look like GnuCobol (https://gnucobol.sourceforge.io/doc/gnucobol.html) allows for some screen I/O… so you could put something together on your own machine.
There are a few issues with this idea. One is that there is some new Cobol code being written where necessary, but the big firms are trying to get rid of these people. The companies still with a lot of Cobol do want to get off of it, and while this is probably a 20-40 year project, this is not a growing industry, which I think is risky. There are a lot of cobol devs being trained up by the contracting services, which are used by the types of places that still use cobol, so I don't think salaries will ever compete with just being a developer in tech. There is a ton of bureaucracy in the orgs that use cobol, and especially around mainframes in those orgs, so that drives a lot of developers away. Since Cobol devs are often supporting 1-5 systems that they are the only ones that know how they work, and cobol mainframe jobs are typically batch processes, expect to be woken up pretty often in the middle of the night as you are supporting flaky 20 year old code that breaks often, the cobol devs I work with were all doing middle of the night work 1-2 weeks a month.
Even if Cobol salary is great I don't think its worth it. The only point I could see it would be good is as a consultant that specializes in moving off of Cobol. I think a Consultant that could sell to these banks that you know how to migrate systems off of Cobol / JCL / DB2 / Sybase / Oracle -> Java / C# / Postgresql, Now that is where the money would be.
Tell that to all the people in outsourcing Firms (e.g. Infosys) who end up coming to the US from India to work on COBOL Mainframes as contractors. The large companies hiring those outsourcing companies are doing that because they don't want to pay top dollar for a COBOL devs. I don't think they even want to deal with evaluating and hiring COBOL Devs.
I know somebody who was in that situation. Was paid decently, but nothing special you couldn't get from any other Dev job.
(I regret not taking it when I was an undergraduate. That, screenwriting with the guy who wrote snakes on a plane, and a creative nonfiction class are things I'll be forever regretful I skipped to take infosec courses that simply certified things I'd known since before I had finished puberty.)
We think COBOL will still be around 30 years from now, so we're training college grads.
No cobol experience? I don't think it will be a problem if you already know another language well.
https://www.indeed.com/jobs?q=Healthcare%20Mainframe%20Cobol...
I work with these industries, not directly for them, and seemingly the people that work in them seem more miserable than those in other industries. You are dealing with large amounts of regulations and inner organization bureaucracy. Coding, unless you're a contractor is a tiny part of the job, and process is a huge part of the job.
Check it out: https://github.com/openmainframeproject/cobol-programming-co...
http://opencobol.add1tocobol.com/gnucobol/
Note that web page is truly massive, it may take some time to load completely.