Get started Bring yourself up to speed with our introductory content.

What can I do to gain Java skills and leave mainframe programming?

I have two years of experience in mainframe technology, currently working as a mainframe developer. I want to change to Java technology.

Some mainframe programming knowledge might translate into learning Java.

First, what do you know about object-oriented programming (OOP)? If your mainframe development has been restricted to procedural languages like COBOL or PL/1, you will need a foundation in OOP concepts such as classes, encapsulation and inheritance. You will also need to understand how OOP influences program structure and logic.

Classic procedural programs basically crank data through a more or less linear transformation process. OOP programs, in contrast, manipulate classes, which require programmers to analyze a problem as a way of herding objects. Half the struggle in developing Java skills is breaking an algorithm into classes and then assigning attributes to those classes along with methods to change their state.

Your company may offer resources if you're interested in pursuing a Java programmer job. For instance, many corporations will pay for college classes. Go get your bachelor's or master's degree and learn Java in the process. Larger companies' training departments might offer in-house courses. Look for a pipeline class designed for trainees.

If you're on your own during this skills transition, there's a wealth of information in books and online. Cay Horstmann's Core Java 1 – Fundamentals helped me a lot, as both a reference and tutorial. My copy included a CD-ROM with examples.

Once you've developed some Java fundamentals, write some programs of your own. I have developed Java code on the mainframe, but not on Windows or Linux.

Find out if your company owns a development environment like IBM's Rational Developer for System z. This Eclipse-based platform makes it easier to create, compile and debug Java.

Without a developer platform, coding Java on the mainframe is primitive but not impossible. Interactive System Productivity Facility can edit Java programs, but if you want to use highlighting to identify language elements, you have to set the edit profile to C++. Not perfect, but it works. You will also have to get familiar with z/OS UNIX System Services for compiling and executing programs.

Next Steps

Java 9 due for release in 2016 with variety of new features

Five Java programming tips for junior software developers 

Greenfoot programming highlighted by Java expert Barry Burd


This was last published in August 2015

Dig Deeper on IBM system z and mainframe systems



Find more PRO+ content and other member only offers, here.

Have a question for an expert?

Please add a title for your question

Get answers from a TechTarget expert on whatever's puzzling you.

You will be able to add details on the next page.

Join the conversation


Send me notifications when other members comment.

By submitting you agree to receive email from TechTarget and its partners. If you reside outside of the United States, you consent to having your personal data transferred to and processed in the United States. Privacy

Please create a username to comment.

Are you also considering a move from one IT field to another? Why?
I made a change about 2 year ago. I went from the RPG/ILE world if i-Series programming to the VB .NET side of the world. I still work for the same company, just a different department. I just saw so much new and powerful methods for coding and mobile service that I made the change. I want a challenge that was lacking in my old position. Now I am in the middle of trying to tie both together. Providing mobile webservices to front end the core i-Series programs and make some of the standard "green screen" programs more user friendly and flashy and even more important MOBILE !.
Not sure if you meant 'domain' by this. I think, being a tester gives me advantage of doing this since that adds to my experience of testing in different domains that in tern helps me gain more exposure, experience on related techniques, problems, key ideas etc that I can utilize to enhance my existing knowledge of testing.
Sometimes it feels very limited - with respect to the kind of work  we do in testing. In those moments I do think of going more towards product development !!
I don’t consider moving from one field to another. I like what I do. Rather, I work to find opportunities to apply my field across new and different fields, expanding the scope of what I do.
A phrase that has become a bit of a punchline, thanks to Alan Page and Brent Jenson's "A/B Testing" podcast, is the idea of "generalizing specialists" or "specializing generalists" but both lead to the same place. The idea is less what area will you choose to work, but instead, how can you make yourself more value to the organization. Sometimes that means specializing in a key area, and sometimes that means broadening your skills to do additional things that are not currently part of your job focus and needs. In my experience, those willing to spread their winds and take on roles outside of their traditional areas have more opportunities.
With technology evolving so exponentially today compared to 5,10,15+ years ago, the most successful in IT will be those that understand the changes that exists and those that are coming and grow with them.  I myself have held roles in tech support, development, PMO, managing development teams, all aspects of software testing, environment management, service virtualization, etc.  And even with those skills developed, I have interests in so many other areas (e.g. marketing, CRM, etc).  We can always learn something new, and it most always helps us to grow in our fields if we plan it correctly.
There are different kinds of moves in testing - I especially love my job for it!

One can move horizontally domain wise - test different products and services. One can move horizontally specialty wise - master security, performance, accessibility, and other quality aspects. Move from Waterfall style orgs to Agile and backwards (you won't believe, there are so mutated implementations of Agile - you'd wanna go back). Of course, move from permanent to contract - it's quite easy with project-based job nature in IT. And yeah, move vertically.
Are you kidding?
Here are the steps:
1. get a job where they are porting COBOL to Java
2. get on that team. Do what they do
Otherwise, all the training in the world will be null.
Take a course or two in Java. When job searching, your past experience will show that you have work ethic and technical aptitude, but the mainframe programming skills will count for little, so you may have to start over at basically an entry-level position. If you think it's something you would be happier doing long term, then I think it'd be worth it.
Nothing beats training at a school for this. The fact that you can ask questions and get answers quickly and work with others going through the same helps a lot.  You can take specialized training if you are not looking for a degree, These classes may cost more but in the long run they are cheaper than the degree.
Another option is to start working with Selenimum Webdriver on your own time. That helps with learning the basics of the language while, at the same time, providing valuable experience with automation tools.