Are you facing unemployment as an RPG programmer?
I don't mean to jump on the bandwagon with yet another article about how the economy is affecting the job market, but I happen to be one of the many recently facing unemployment. I want to share my views on being an RPG programmer in today's world, whether you currently have a job or not.
Early this year, I was notified that my company would be replacing its IBM i system with software and support from a third-party vendor. I worked for a newspaper company that had been hit very hard, and they needed to reduce their work force and expenses. I was fortunate to have a few months warning before I was let go and was able to be selective about who my next employer would be. It was a scary time, but I felt fortunate that I still had a job, my employer knew I was job hunting, and I was still getting a paycheck.
I had been at the company for over 10 years, and it was hard to believe that they were replacing the IBM i system. It was the core of all the business, it was a solid system, and I had helped to keep our software responsive to the changing needs of the business. I felt irreplaceable, and it was quite a shock when the realization set in that I wasn't. Every day, I worried that they were only telling me that I had a few months and that they'd suddenly drop the ax and tell me to go home. Every day was filled with that anxiety.
I spent a lot of time on the Internet, reviewing reports on average salaries, looking for tips on interviews, and searching through job postings (off company time, of course). And here is a brief summary of what I found.
Reports on Average Salaries
Broke and facing unemployment, I combed through as much free information as I could find. I don't know how accurate those reports are. I suspected that I would be lower than average because the newspaper industry has been struggling for quite some time, and we had year after year of pay freezes. But when I looked at the average pay for an RPG programmer in my location, I was more than 20 percent below the average. I guess that helped with my resolve to move on, even if I hadn't been being forced out. But that also hurt me in the beginning as well. I really disliked it when a job offering didn't post the proposed salary, instead asking you what your minimum acceptable value was. I'm a programmer, not a salesman. Of course I wanted as much as I could possibly get, but I didn't want to make it too high and be passed up because I was too expensive.
In the beginning, I simply used the average salary amount that I found for my geographical location as my basis. I was still working, so I thought I would bid high and hope for a lucky hit. But I quickly found out that there were so many other people looking for jobs that there was a lot of high-quality talent willing to work for less. So, as time ticked by, I started getting more and more modest with my acceptable minimum salary, until I hit what was my current salary. I figured that I couldn't live on any less than what I was previously making, which was pretty low anyway. You can't find a much more accurate could salary report than looking at your own.
Tips on Interviewing
I had to prepare mentally for interviews because I hadn't been to an interview in years. Most interview stuff is common sense, like being confident and positive and wearing professional and appropriate clothing. But these common-sense lists are good to review in order to have a conscious checklist in your head while you are going through it. Posture was a big one for me. I tend to slouch down in my chair while programming all day. I know it's not good, but I subconsciously keep sliding down further throughout the day.
Confidence is another big one. It is hard to have confidence during an interview, especially on your first one, knowing that you are or soon will be unemployed. You are trying your very best, having so many things to say and trying not to say anything wrong. In my first interview, I was all stressed out and talked a million miles a minute. That's OK. It was the first of many interviews. Just reflect on what you thought you did wrong and do better the next time.
Prepare your perseverance. A lot of programmers are out there looking for work, and you may or may not get the first job that you apply for. Don't let it discourage you. All those other programmers out there are going through the same thing. My trick was this: Go into the interview just being yourself and thinking that you'll be going to another one tomorrow. Be yourself, keeping all of the etiquette of your mental checklist running though your mind. Give a genuine smile and enjoy the opportunity to tell someone about all of your accomplishments, knowing that they actually want to hear about it!
Searching for Jobs
Now, let's talk specifically about my prospects as an RPG programmer. So, here I am, an RPG programmer. I've been doing it for quite a while and am feeling pretty confident about my skills. I love the system and want to continue programming on it, hopefully making more money than I was making before.
After doing extensive job searching for months in the realm of programming in my area, I found there to be a minimal number of RPG jobs available. And the available jobs were paying even less than I was already making, which made me question the average salary reports even more. The primary jobs in the programming area were in .NET and Java, with some other languages sporadically mixed in, like PHP. I found that for every RPG job posting, there were about 30 .NET jobs and 10 Java jobs. These are only estimates and are only the jobs I found within a comfortable distance from my home, using multiple search sites over multiple weeks, so your averages may differ.
The .NET jobs were basically paying about the same as I was making as an RPG programmer at the entry level. The Java jobs were paying significantly more (about 50 percent more) but usually required knowledge of Struts and Springs, which I didn't have. I applied for everything. Fortunately, I have been working with Java for quite a few years, so I thought I had a chance there. But I was focusing my knowledge of Java on integrating Java with RPG, so I didn't have a reason to implement either Struts or Springs. I had a really strong Java interview, but when they started asking questions about Struts or Springs, I had nothing to give. I knew that I wouldn't be hired, but I was tempted to go right home and load them onto my Linux box so I could get that knowledge going.
Months went by, and I did end up unemployed for a few months, but fortunately, I was able to score some RPG programming consulting work to make some extra money, and eventually my Java experience paid off. I was hired for a programming position that required using Java, C#, and C++. So I ended up in a better place than the one in which I started. I am in programmer heaven.
I am not saying that you need to drop RPG and pick up another language. I love RPG and am still programming with it today. I am saying that it wouldn't hurt to expand your skill set, either to be prepared for changes in the future or to expand the capabilities of your current system. With budgets being so tight, you could extend the capabilities of your RPG programs by integrating with Java to give your applications new capabilities without all of the expense of buying another system.
The Differences Between Java and C#
Have you ever heard that if you know Java then you know C#? Or the other way around? My initial thought was that even though they are both object-oriented and are conceptually the same, there would still be a big learning curve between them. Well, that's not the case. They are even syntactically similar! You could almost copy and paste Java code into C# source and compile it. The differences are in the usage of the libraries, which are relatively easy to change, and the class naming standards, so you would need to change some lowercase letters to uppercase letters in .NET. Other than that, it is extremely similar. My point here is that you could decide on either one to begin your learning, and the crossover truly will be minimal.
One of the biggest differences is with the Integrated Development Environments (IDEs), but even they are very similar.
Rational Application Developer (RAD) is the licensed IDE that is built on Eclipse, which is open source. Eclipse can be downloaded at www.eclipse.org/.
The WebSphere Development Studio Client (WDSc) is another alternative that you could use to develop Java and RPG in the same environment. But that's being replaced by RDi, so if you are starting out, you should probably start there.
Visual Studio is the licensed Microsoft IDE. Mono is a Novell-sponsored, open-source alternative that you can download at mono-project.com.
These are just a few of the IDEs that I have worked with. There are others out there, so feel free to discuss them in the comments section of this article.
Keeping Busy While Unemployed
Pick up a book and start learning on your free time. Download one of the free IDEs and start coding. If you no longer have access to an IBM i, you can also get free access to one at http://www.rzkh.de, which I found out from a helpful person on the MC Press Forums. Thank you!
It is always good to keep yourself busy when you are out of a job. When I wasn't job hunting online or writing articles for MC Press Online, I was writing a book called Advanced Integrated RPG. It explains how to integrate RPG with Java to do such things as send email or create Excel spreadsheets and PDFs. It may be a good starting point for your adventure into Java and open-source technologies because you can perform practical applications of the capabilities in your current systems.
Extending your skill set beyond RPG is not conceding to elimination of the usage of RPG. Integrating RPG with other languages will make it a useful player amongst the other technologies. And it will also open up many other options to you, for both development options and career paths.
Light at the End of the Tunnel
I may have covered some topics that you've already looked into yourself. But if you are currently unemployed as an RPG programmer, I just wanted you to know that you're not alone and there is light at the end of the tunnel. And even if you program in some other language, it is always good to update your skills, especially now.