As you've probably heard, most of the people working on mainframes are old -- really old. Colleges have all but abandoned teaching mainframe skills to their students, exacerbating the looming mainframe skills shortage. Big iron also suffers from an image problem, lacking in glamour and press ink. But that doesn't mean we can't take college recruits and turn them into excellent mainframers. In this column I'll outline some mainframe basics that a newbie must master.
Mainframe basics
There are substantial differences of structure between the mainframe and other platforms, beginning
with a flat file naming system that uses catalogs instead of directories. Then there the features
all platforms share that are named a little differently. For instance, a mainframe has address
spaces instead of processes, and tasks in lieu of threads. Finally, there are the unique concepts,
such as a job entry subsystem, along with its host of initiators.
COBOL and other essential mainframe languages
If I could teach mainframe beginners only one language, it would be
Requires Free Membership to View
Given time and money, I would also teach them PL/1. It looks enough like pseudo code to be easy to learn and serves as an introduction to structured programming. A mainframe programmer may also apply its concepts and structures to other procedural languages, such as Rexx or C.
Data management on the mainframe
Another interesting thing about mainframes is that data sets have built-in structures with record
formats, logical record lengths and block sizes. Indeed, it may be difficult for people used to
stream I/O to understand why block size is important, given the type of direct-access storage
device (DASD) devices we have now. We also need to teach the concept of a volume and the idea of
space management.
That's the easy part. Next comes teaching young people about partitioned data sets (PDS), both extended and foreshortened, along with all the virtual storage access method (VSAM) subspecies. Even though applications are moving away from pure VSAM, it is still the data set type underlying database management systems (DBMs) such as DB2. I would not include specific information about DB2 assuming most colleges already teach students how relational DBMs work. There should be some information about IBM's Information Management System (IMS). I don't think students are exposed hierarchical databases, and this one is important to a lot of big shops.
Mainframe programming tools
A good grounding in Time
Sharing Option (TSO) and other tools, such as Interactive System Productivity Facility (ISPF),
will go a long way to jump start a student's usefulness on the host platform. He or she will become
acquainted with the tools and methods for development as well as how to submit and review job
output. This may also be the right place to teach Job Control Language (JCL).
As a last word on this subject, I would encourage teaching how basic ISPF works without any fancy workbenches or automated tools. I say this because I've seen many cases where new programmers are trained on workbenches that leave them ignorant of what goes on behind the scenes. Then, when the workbench breaks or they have to do something out of the ordinary, they don't know how to proceed.
Mainframe systems programming
The more technically minded may want to go directly into system programming and administration. For
these folks, I would begin with a course in Assembler. Not only does it teach mainframe hardware
internals, but it also reveals what a complied program looks like and comes in handy when reading
dumps.
Speaking of dumps, an introduction to Interactive Problem Controls System (IPCS) fits into the curriculum as well. Besides problem determination, I encourage students to rummage through the dump looking for system control blocks and get a feel for how it is put together.
Finally, time permitting, beginners should learn about systems management. Here someone might learn a generic form of maintenance methodology designed to minimize downtime while enabling ease of backout. And for those who deserve punishment, I recommend a survey of SMP/E.
Conclusion
Teaching graduates mainframe skills brings up the question of whether it's easier to go from the
mainframe to another platform or vice versa. For me it seems fairly easy to learn Unix after
working on mainframes once you map out the similarities and differences, but that may be because of
my own biases and experience. At any rate, the survival of the mainframe, both short and long term,
partially depends on our ability to replace our own gray heads.
ABOUT THE AUTHOR: For 24 years, Robert Crawford has worked off and on as a CICS systems programmer. He is experienced in debugging and tuning applications and has written in COBOL, Assembler and C++ using VSAM, DLI and DB2.
What did you think of this feature? Write to SearchDataCenter.com's Matt Stansberry about
your data center concerns at mstansberry@techtarget.com.
This was first published in March 2009
Data Center Strategies for the CIO

Join the conversationComment
Share
Comments
Results
Contribute to the conversation