In my job as IT consultant for the banking industry I sometimes have to do some work on an IBM Mainframe, which means the z/OS operating system, formerly known as OS/360, MVS, and OS/390. Yes there are other companies selling mainframes but most of them are “IBM compatible” and there are other mainframe operating systems including Linux but z/OS is the main one.
But how are you supposed to learn how it works? Most people don’t have access to one at work, and even if you do you probably shouldn’t use a client’s expensive mainframe time to play around.
The way I learned was to first pick up some theory from this excellent book, freely available in a variety of formats: Introduction to the New Mainframe: z/OS Basics
Just from skimming through the interesting chapters you can turn up to work and not be completely lost when performing your mainframe tasks.
So with a book, and limited access to a real machine you can get started. But what if you don’t have access to a mainframe? Can you download and install z/OS on a VM? Sort of. There is an emulator available called Hercules. But it isn’t that easy to get going. You still have to hunt down the operating system on your own in most cases, and install it yourself which is a bit much for a beginner. The latest freely available operating system version is I believe a version of MVS from the 70s. Don’t worry it is not actually that different to the latest version. The best way to run it at home as a beginner with minimum hassle is to find The MVS Turnkey System. I did this and was able to play around a bit with the help of the previously mentioned book but it is not the best way.
IBM has a contest for students called Master the Mainframe. They give you access to an internal z13 and provide you a tutorial. Students get their work marked and can maybe win a prize or something. If you are not a student however you can still take part, but your work will not get marked and there will not be any prizes.
If you register here anyone can get an account on the mainframe and complete the tutorial style challenges. It takes a couple of days though. When registered you can find the tutorial challenges here: http://mtm2016.mybluemix.net/index.html
Click on Connectivity Guide to get started on the first steps.
I was able to get about halfway through Part Two in one weekend, to give you an idea of how much work is involved. It does get more challenging though so I expect Part Three to take a bit longer.
Once you do it, you can rightfully claim z/OS experience on your C.V. which might increase your worth if you are already involved in IT, consulting or banking. There is a shortage of talent as the older guys retire so there should be good opportunities for people with basic skills to move in and replace them. Even if you don’t want to specialize in the mainframe you will be surprised how often basic skills are required on banking projects even in management roles.
Here are some additional points related to the mainframe:
Some people say you can’t do Agile on the mainframe. This is completely false. There are no technical issues to doing Agile on the mainframe. You can unit test COBOL. You can refactor it. You can run automated tests. You can do DevOps and deploy several times per day. The barriers to Agile are usually cultural and bureaucratic rather than technical.
Mainframe teams don’t need Agile for the same reasons. Getting new products on the market quickly is less of a priority. However Agile is critical to manage other risks: Old legacy code with technical debt and knowledge gaps as people leave without training replacements properly.
The mainframe guys were using NoSQL not just before NoSQL was invented but before SQL was invented. In fact trendy modern ideas like event sourcing look a lot like how mainframes have been storing transactions in systems of record in “NoSQL” DBs like IMS since the 70s.
The mainframe is and always will be great for batch operations and transaction processing and anything requiring very high levels of reliability. IBM seem to be moving away from z/OS and towards Linux for the new economy, supporting mobile applications and hosting web services etc. They also have a vision of replacing the scaled-out data center approach of lots of cheap x86 servers running VMs, with single mainframes running thousands of Linux VMs. I don’t know about this. I think you end up paying for levels of reliability that are not required. For me the future of the mainframe will always be a niche oriented around z/OS and not an ideal way to host e.g. Java web services on Linux VMs.
After you finish reading the previously mentioned book. There are whole series of books covering mainframe topics in depth: ABCs of IBM z/OS System Programming. Here is a link to Volume 1.