"The sad news is, nobody owes you a career. Your career is literally your business. You own it as a sole proprietor. You have one employee: yourself. You need to accept ownership of your career, your skills and the timing of your moves."
--Andrew Grove, Co-founder and Chairman of Intel Corporation
How apropos is this? With IBM's electrifying announcement on the 24th, this is the perfect time to take stock of where you are now, where you want to be, and how you're going to get there. And while I'll do a little reminiscing in the first couple of paragraphs as I so often do, I promise to get right into the topic of this column, which happens to be how you can use WDSc to move your career forward.
I'll show you how WDSc can help you advance your career by giving you a head start in a number of skills, including these:
- Eclipse and WDSc
- Thick-client Java
- Servlets and JavaServer Pages (JSP)
- Back-end server design
- Web Services
Welcome to the Millennium
It's been tough, and for those of us with a long time in the business, quite an adjustment. During the heyday of the '80s and '90s, careers in IT were pretty much given to anyone with the aptitude; basically, it was suit up, show up, and move up the wage scale. It wasn't that hard to get to $100,000 a year in a salaried position, and if you were willing to live the lifestyle, consulting jobs were pretty much a license to print money. $500 an hour was not unheard of, and expense accounts became an art form.
All of that ended at the turn of the millennium, the last gasp being the massive greed-fest that was Y2K. (Millions or even billions of dollars spent on code that added no actual functionality--can you say Sarbanes-Oxley?) And after the industry cannibalized its clients, it had no problem turning around and devouring its own as well with the Great Outsourcing Flimflam. Add to that the legitimate issue of businesses needing to be Web-enabled and the great push of Microsoft into the server market, and suddenly a strong knowledge of subfiles and CL was no longer enough to land that six-figure job; in fact, it's barely enough to get a low-level consulting gig these days.
So What to Do?
Well, even though the job market is beginning to look up, and it seems that employers are willing to start hiring again, you still want to be as well-positioned as possible. In today's market, there are a number of technologies that are ancillary to the iSeries, including these:
- Network administration
- SQL and ODBC data access
- Java programming and JDBC
- Thick client application design
- Browser application design
- Back-end server design
- Web Services and/or Service Oriented Architecture (SOA)
Nowadays, most iSeries shops have a need for applicants with skills in one or more of these areas. Some of them are outside the purview of this article because WDSc won't really help you; for example, WDSc is unlikely to be much help with network administration. But you'll be surprised to learn just how many other areas you can get started with using WDSc.
As I just mentioned, there's just not much in WDSc to give you a leg up on a career in network administration. If you like applying PTFs and patches, hot-swapping drives, and configuring PCs, then network administration is a great area to expand your knowledge in, and it's one that is always in need. It tends to pull you away from programming, but at the same time, it often gives you the opportunity to play with the latest toys. MC Press has a wide variety of books in its networking and systems administration sections.
SQL and ODBC Data Access
This is a growing field, and there is a ton of documentation available on the Internet. Like network administration, it's a field that WDSc doesn't provide a lot of help with. But that's OK; if you have access to an iSeries with the STRSQL command, then you can learn everything you need to know about SQL by trial and error. You can execute SQL statements like SELECT * FROM CUSTMAST WHERE STATE = 'IL' and see the results immediately. ODBC is simply a programmatic way of sending an SQL statement to the SQL engine and getting the results back. The engine can be on the same machine or on a different machine.
Please note that I have reservations about SQL and especially about ODBC. It is my belief that SQL syntax is the wrong thing to use to communicate between machines because it defines table and column names, and those should be hidden from view. Otherwise, it becomes very difficult to make changes or assimilate other databases. But that doesn't mean it's not a good career skill choice. Tons of products out there use ODBC to create forms and reports and even to manage their SQL database engines, and knowledge of those tools is always going to be a plus on your resume. Just because I don't like it doesn't mean nobody uses it.
Another SQL-related skill is something called "embedded SQL," also known as SQLRPG or RPG-SQL. With embedded SQL, you "embed" SQL statements directly into your RPG program. These programs are then compiled with a special compile command, which invokes a pre-processor to analyze the embedded SQL statements. With this technique, you have the strengths of both SQL and RPG together (you can even use traditional native I/O in the same program!). I highly recommend this skill, and although WDSc doesn't have a ton of support, MC Press does have an SQL section in its bookstore.
Also, WDSc comes with a few tutorials for its Data Perspective. As I mentioned in my previous "Weaving WebSphere", the Data Perspective is quite limited. First, fire up the Help tool (for lack of a better word). It's called the Information Center, and you access it via the Help index (Help/Help Contents) as shown in Figure 1.
Figure 1: Bring up the Information Center using the main menu option Help/Help Contents.
The Information Center is home to an enormous amount of documentation, including tutorials. In this case, you will see a section entitled "Tutorial and Samples." Expand that section to find "Data tools tutorials," and expand that to locate a number of tutorials on the Data Perspective, including "Creating an SQL Query," shown in Figure 2. This is a great place to begin your journey into SQL.
Figure 2: The Information Center provides access to a large amount of help documentation.
Java and JDBC Access
JDBC is ODBC's ugly little Java cousin. Oh, how I hate JDBC. I hate it with a passion. I despise it. I loathe it. I'm also pretty good at it, and as it turns out, it's getting to be a powerful way to get data from a database into a Java program. It has its faults; it's certainly not native access. But as it has evolved, JDBC has provided an interesting view into the state of Java as a business development language. To me, the closer a JDBC query gets to an RPG logical file, the more useful Java is as a business language. JDBC 2.0 allowed you to update a result set. JDBC 3.0 added the ability to move backward and forward. Once JDBC 4.0 is released (along with the associated changes in Java for the Tiger release), Java may finally begin to resemble a business language. There is a good chance that you will be able to, with relatively little work, read a file and get an object with accessible attributes, rather than having to waste a lot of time and cycles using the ResultSet as an intermediary.
So JDBC is becoming a skill that you can use to your advantage. It takes only rudimentary Java skills to use JDBC to connect to and dump results from a database. Unfortunately, WDSc provides about as little help for JDBC programmers as for SQL-RPG programmers. Most of the Information Center is focused on something called SQLJ, which is sort of like embedded SQL for Java. While there was a big push for this a few years ago, it doesn't seem very popular anymore, probably because it was database-specific. You get a bad feeling for a technology when its Web site (www.sqlj.org) no longer works.
So, SQLJ seems to have a small and dwindling support base but lots of information in WDSc, and JDBC has a huge support base and no information in WDSc. Luckily, there are tons of resources on the net for JDBC. You really can't do worse than starting with Sun:
The reason I think WDSc can help you when learning JDBC is that it's a great Java development environment. For an RPG programmer to move into Java, it seems that one of the best ways would be to access some data and print it out or show it on the screen. Well, with just a few lines of Java code, you can use JDBC to access a database and then dump the results to the console. That's as good an introduction to business-level Java as I can think of.
Thick Client Application Design
To me, there are three directions available for iSeries developers wishing to move into thick client design:
The first and perhaps most straightforward path would be VisualAge for RPG (VARPG). Available as part of WDSc, VARPG allows you to write thick-client applications that access host iSeries data--very powerful and a great option. There's also a ton of help text in WDSc's Information Center.
Second is the Visual Studio .NET direction. I freely admit ignorance here. Many people are on that particular bandwagon, and you can search the MC Press Web site for articles, but neither I nor WDSc can provide you much guidance.
Finally, there's the Java/Swing/SWT path. Java is the true cross-platform development language, so if you plan to support multiple desktop OSes, then Java is your best bet. Once you decide on Java, you have to decide between Swing (Java's native GUI, which runs everywhere Java does) and SWT (the Eclipse GUI, which is better-looking and faster, but OS-specific). Either one will require some additional research on your part, because neither Swing nor SWT has a lot of help documentation in WDSc. Swing has simply tons of information available on the Web, and SWT is slowly getting some of its own. But you can find lots of great examples on the Web and then import them into your WDSc workbench, at which point you can develop and debug them using the great debugging tools available in WDSc.
Browser-Based Application Design
This is where WDSc can really help. First off, there is an entire multimedia tour (menu option Help/Web Development Tour) on how to create Web pages using WDSc. It walks you through a lot of the workbench, so this also helps you understand how the workbench operates. You can then move on to servlets and JSP.
One caveat about the tour is that it focuses on the Struts technology, which in my opinion has already passed its peak and is on the wane. Instead, I'd prefer that you use pure, unadulterated JSP, without special tag libraries that may or may not be the same version from site to site. The good news is that the Information Center has plenty of help documentation on plain JSP technology, mixed in with information on Struts and JavaServer Faces (the technology that is already supplanting Struts).
And once you have your application in place, you can begin to access data on the iSeries. You can start by using simple JDBC calls and then progress to the native I/O capabilities of the Java Toolbox and eventually to direct program calls on the host. This is made especially easy because you can deploy your Web-based application right on your desktop using the WebSphere Test Environment. This scaled-down version of WebSphere gives you the ability to set breakpoints not only in the Java code of your servlets but even in the source of the JSP.
Back-End Server Design
One special thing about WDSc is the extra help it gives in designing server programs on the host. Most Web application design tools can do some or all of what WDSc does up until this point, but only WDSc then allows you to debug the server programs on the host. You can actually add breakpoints in the source of your RPG server programs and debug the host programs right from the workbench. This is a great way to see the process run all the way through from user to server and back.
This is one of the few places where I actually suggest you take advantage of one of the many wizards available in WDSc. The jury is still out on the acceptance of Web Services. One can only hope that cooler heads will prevail and the bloated nature of the protocol will be revisited. But until that time, you may find yourself in a situation where you have to generate at least one Web Service to act as a gateway to your data.
The cool thing about WDSc is that you can use it to create a pure-Java service (using JDBC), or you can access a back-end server program using the same techniques I outlined in the previous section on back-end server design.
But in order to get quickly acquainted with Web Services, I suggest using one of the Web services "Cheat Sheets." A Cheat Sheet is sort of like a whole set of wizards linked together. It's really like a complete hands-on lab. I suggest the Cheat Sheet on creating a Web Service based on a Java Bean. To run it, select menu option Help/Cheat Sheet and then the option "Create a Web service from a Java bean."
So what should you do today? Well, if I were you, I'd first look over the list of technologies and see which ones would best help my company and which ones would appeal to me if I should have to leave my present position.
Then, I'd start playing with those technologies within the bounds of the workbench. Since most iSeries shops should have free access to WDSc and should be able to distribute as many copies of WDSc as they need, then you'll have a leg up on the competition--or on your own expectations of yourself!
And keep looking. Word is that there's even more coming in the next release of WDSc, due out this summer. There's a hint that all of the COMMON lab booklets may be included; if that's the case, then WDSc will become even more of an educational and career-building tool.
Good luck. The future is in your hands!