IBM’s Mainframe Certificate Course Is Full of Surprises, Even for a ‘Grayframer’
Veteran mainframer Bruce McKnight discovers the value of re-examining platform fundamentals with fresh eyes
Last night, I completed IBM’s Mainframe Developer Professional Certificate program on Coursera.
The surprising part isn’t that I finished it. The surprising part is that I completed the entire seven-course program in three days.
Before anyone thinks I’m bragging, let me explain. While the bulk of the course was review, those three days uncovered gaps in my knowledge that I didn’t even know were there.
The Mainframe Basics
The certificate program is designed as an entry point into IBM mainframe development. It walks students through enterprise computing, COBOL programming, testing and debugging, data management, software development practices and the software development lifecycle. It’s intended to prepare someone for an entry-level role as a mainframe programmer.
I’ve already had that career.
In fact, COBOL was one of the first professional languages I learned. For years it was simply part of the way I thought. Later in my career, I migrated into systems programming, enterprise architecture, modernization and technical leadership. Somewhere along the way, COBOL quietly became something I used to know really well.
I decided it was time to renew the acquaintance.
My original goal wasn’t to earn another certificate. I simply wanted to spend a few evenings writing COBOL again.
Mainframe Memory Lane
The first couple of courses felt like opening an old photo album.
IDENTIFICATION DIVISION.
ENVIRONMENT DIVISION.
DATA DIVISION.
PROCEDURE DIVISION.
PERFORM statements.
Sequential and VSAM files.
Tables.
Structured programming.
Some of those old memories had faded, but they all came back far more quickly than I expected.
After the second course, I realized something. Most of the material didn’t teach me anything new. It refreshed things I had known for decades.
So I changed strategies.
Instead of watching every lecture video and reading every article, I began taking the graded exams in each course first. If I missed something, I’d stop, go back to the lectures and labs and spend time learning it. Otherwise, I’d complete the required learning objectives and move on.
With that approach, 95% of the certificate program let me quickly rediscover what I already knew.
But speed isn’t the story. The story is what I found hiding in the remaining five percent.
The First Surprise
One topic introduced something I’d never seen before:
LOCAL-STORAGE SECTION.
When I learned COBOL, the DATA DIVISION consisted of the FILE SECTION, WORKING-STORAGE SECTION, and LINKAGE SECTION. LOCAL-STORAGE wasn’t one of them.
Taking a pause from the video lessons and labs, I turned to the IBM Enterprise COBOL guides. It turns out LOCAL-STORAGE has existed for years. I had simply never encountered it because it was introduced after I had moved on to non-COBOL roles.
I don’t yet know where it fits into my programming style, but I already know it’s worth experimenting with.
Then I sat back and laughed. After all these years, an old friend had introduced itself all over again. And it had learned a few new tricks of its own.
The Second Surprise
The course briefly mentioned object-oriented COBOL.
OO COBOL has been around for more than 30 years. I was aware of it but had never experienced it.
Again, curiosity sent me into IBM’s Enterprise COBOL manuals, where I discovered an entire object-oriented programming model that had quietly evolved while I was off solving other problems.
While many of us weren’t looking, COBOL kept growing. I have a feeling this discovery deserves an article of its own.
The Third Surprise
The final surprise wasn’t about COBOL itself. It was about how we develop applications with it.
After decades of comfort in ISPF, I experienced COBOL development using Zowe extensions inside Visual Studio Code. I knew VSCode from other programming projects, but this seemed somehow new. And somehow strangely different.
VSCode and Zowe don’t replace the mainframe. They provide a framework to make interaction with it more like what today’s developers are accustomed to using. With the specter of ISPF removed, COBOL is just another language to learn.
Modernization isn’t always about replacing proven technology. Sometimes modernization is about giving proven technology better tools.
Why I Took the Course
You may wonder why someone with 40 years of experience would bother taking an entry-level training program, especially when it isn’t part of their immediate responsibilities. You may assume I was looking for validation, but that wasn’t it. I was looking for surprises.
While I learned what has changed about the mainframe in recent years, the course also taught me that curiosity has a longer shelf life than expertise. Sometimes the best way to stay current isn’t chasing the newest technology. Sometimes it’s rediscovering an old one with fresh eyes.
Maybe that’s one of the advantages of becoming a “grayframer.” Your experience only grows, and you get to keep your curiosity.
Grayframer Reflection: Where Can We Go Next?
To satisfy my continued curiosity, here’s what I’d like to explore next as I build on my experience with IBM’s Mainframe Developer Professional Certificate.
Experiment #1: LOCAL-STORAGE SECTION
Where does LOCAL-STORAGE genuinely improve a program over traditional WORKING-STORAGE? I have a feeling there are practical uses that simply weren’t available when I first learned COBOL.
Experiment #2: Object-Oriented COBOL
Object-oriented COBOL has quietly existed for decades, yet many experienced COBOL programmers have never written a single class. I’d like to build a small proof of concept and discover where it provides practical value and where traditional structured COBOL remains the better choice. Plus, I’m looking forward to seeing what kind of assembler code the compiler generates to support object-oriented code.
Experiment #3: COBOL Development with VS Code and Zowe
After spending most of my career inside ISPF, developing COBOL with Visual Studio Code and Zowe feels both familiar and refreshingly different. I’d like to compare the two environments side by side and understand where each one excels.
A Final Thought
One thing I’ve learned over the years is that the most interesting discoveries usually begin with a simple question:
“I wonder what happens if … ?”
It’s the kind of question that keeps this old grayframer learning new tricks. And if those experiments uncover a few more surprises, I’ll be sure to share them.