What's the "right" strategy to learn Java? The "right" strategy is whatever is RIGHT for your specific situation. That's why at ebt-now, we follow a "use case"-driven approach to define the right education strategy for your company.The right e-business education strategy depends on several things, including the following:
- Your Java application needs.
- Your goals in learning Java.
- Your background.
- Resources available.
- How you will use Java.
Your Java application needs
If you work at a company, you want to focus on what your company's needs are. For example, ebt-now's "Building Java Web Solutions" process helps customers identify potential application uses for Java that have high value-add for their business. We look first at current priorities for business operations and then work to identify "opportunities for success" in meeting operational goals.
Given existing resources -- people, applications, etc -- we try to identify potential projects with real, near-term payoffs. Setting a "payoff priority" list, we define these opportunities as business use cases. Then we map various Java technologies to the use cases to focus on the technology keys for our potential projects. Finally, we help set a strategy to deliver the specific application solutions using the technologies. From there, specific projects can be organized and implemented when needed. Having a chance to apply what they are learning on a prototype or real project helps developers grow their skills quickly.
While there are reasons to choose other languages in certain specific circumstances over Java, Java is ALWAYS an option to develop any type of application today. In fact, often Java, with it's rich set of frameworks available, offers more options to address an application need than all other languages combined. From traditional iSeries server applications, to client / server, to e-business, to other systems, Java provides many options for applications.
Your goals in learning Java
Sometimes, Java projects are completely developed and implemented by an outsourcing company like IBM Global Services, EDS, etc. Usually an IT department wants to enhance its skill sets to develop, maintain and implement e-business applications. For a variety of reasons, including career growth, many IT staffs look to build specific Java skills that they can use immediately and also add to their resumes. Specific technical goals for the staff may add to the Java technologies list identified above.
Java education should take into account two key items:
1. iSeries advantages for Java and e-business, including integration of existing applications and data.
2. Your existing knowledge and skills from iSeries development.
There are many good "standard" Java courses from Sun, IBM Learning Services and other education providers. On the other hand, there are a small number of third-party iSeries education providers today that offer iSeries-specific Java education.
Good Java education for iSeries developers will emphasize rapid application development using visual development tools such as IBM's WebSphere Development Toolkit for iSeries and will draw heavily on the student's existing knowledge of object-based development using the iSeries environment and CL programming.
Your education strategy also has to take into account your available resources in personnel and equipment. If you don't have people on your team who are targeted for e-business application development and support, you probably won't need significant investment in Java education. Your e-business solutions will be delivered by outside service providers.
Do you have the equipment (hardware and software) prerequisites you need for in-house e-business work or are you limited to outside training? While WebSphere Advanced edition can require iSeries hardware upgrades for good performance, putting up a small training environment running the Apache HTTP server and Tomcat is usually just a matter of applying PTFs and configuration for most customers.
On the workstation side, most customers will use IBM's WebSphere Development Tools for iSeries for building Java applications. Those tools DO require powerful developer PCs of at least 256M byte of memory and 3G byte of disk space if the all software tools are loaded, including test runtime environments.
Do you train a few people or the whole staff?
If you are training staff, the question is do you train a small set of core developers who will probably deliver the first project or do you offer broader training to those on your staff who want it?
Training a few developers takes a smaller investment up front and has less impact on existing IT projects. On the other hand, your in-house core technical team will often need experienced consultants and mentors for a successful first project. I've also observed several companies where the core in-house team leaves for other jobs before the first project is fully implemented. Finally, some of your most capable Java developers aren't necessarily your top RPG or Visual Basic developers and, therefore, may not be easily identifiable by IT managers.
A good compromise is to select a core team that will work on the first project, usually in a support role with outside resources and provide "basic" Java training to a broader IT developer group. Other than the "basic" training, other developers will still focus on current IT projects and priorities, but you will at least have another set of new Java developers "in process" when needed.
How you will use Java
I don't see discussion on this point in many places, but it has an enormous impact on how you learn Java. Essentially Java differs from other languages in that it can be used three basic ways:
Object-oriented development -- Most courses from IBM and others emphasize the object-oriented aspects of Java as well as its use as an object-based language for building applications. Through my experience teaching iSeries developers I've found that more often than not, this approach convinces the majority of students that Java is more difficult to learn than traditional object-based languages like Visual Basic. Yes, you want to let companies know that there is more value in true object-oriented development than in object-based languages, but that is NOT a good starting point for learning how to build applications.
Object-based application development -- The overall application design can be object-oriented, but much of the development work can be object-based, especially if an engineer defines the application architecture, tool usage and a supporting component set. Here, education focuses on using Java for simple, object-based application work similar to the way languages like Visual Basic are used. Comparatively, Java taught as an object-based language is easier to learn than Visual Basic, LotusScript, etc. And it can build applications faster, especially with IBM's visual development tools.
Intelligent runtime applications -- There's almost nothing specific to the iSeries on this as education, and it's not usually relevant to normal application development. There is a very significant difference between Java and other languages that applies in tools like IBM's WebSphere, Eclipse and ebt-now's QuickWebFactory.
Shorten the Java learning curve
Get good engineering help
Get help putting together a good training plan. Usually good training classes aren't enough for a real first project. In designing and building Java applications, you can benefit using an experienced OO engineer to architect the application, specify the infrastructure, select the tools, define the development process and create any custom components needed. The engineer can produce a valid OO design for the application.
Start with object-based vs. object-oriented development
To shorten the learning curve and increase productivity of traditional iSeries developers on Java projects, focus on using Java as an object-based language with the IBM visual development tools.
If you've had an object-oriented engineer architect the application, it is object-oriented but you're not asking new developers to understand that process. Nothing slows down a new student's progress like asking him to define valid use cases or apply patterns appropriately. Leave this to the experienced engineer who is managing the project, not the new student trying to code Java application logic. Mixing object-oriented development with initial application development skills leaves students with the mistaken belief that Java is more complex than languages like Visual Basic.
What are your options for learning Java?
Your options for learning Java include the following:
- Self study using examples provided with IBM tools -- IBM's new WebSphere Development Studio for iSeries tools include application examples you can review, test and modify.
- Self study using available Internet resources -- IBM and other third parties offer free Java technical information for viewing or download. Key IBM sites to view include iSeries Development tools, iSeries Java home page and the IBM Redbooks online site. Whatever you find at the iSeries sites is iSeries-focused, which is a big plus.
- Sun Microsystems standard Java classes-- Sun offers good Java training at classroom locations around the U.S., as well as online courses from its Java Web site.
- IBM Java classes -- IBM Learning Services offers Java courses at variety of locations around the U.S. Many of the courses are good, general courses on IBM's Java tools, but they usually have little iSeries content.
- Third-party Java classes for the iSeries -- Some iSeries third-party education providers have started focusing on iSeries e-business courses that are delivered in a variety of ways: classroom courses, onsite customized courses and, at ebt-now, Internet-based, custom iSeries Java training.
- E-business project mentors -- A variety of third-party iSeries consultants now support Java technologies for customers. You can find them through a number of sources, including search400 and The 400 Group.
What is IBM doing to help improve iSeries Java education?
IBM Rochester is working to put together a new program, "an iSeries Education Services network" much like the iSeries Services Network and the iSeries Tools Network. The Education Services Network will provide a central, online place to find third-party education providers by type of education offered. That makes it easier for iSeries customers to find iSeries-specific education offerings.
Also, IBM Toronto continues to develop iSeries-specific classes on e-business technology that focus primarily on the IBM development tools for iSeries. Some of the past Toronto education work has been "best of breed" for iSeries, so new classes should also be good quality. In addition, IBM is considering licensing some of these classes to third-party iSeries education providers for delivery.
About the author: Jim is president of ebt-now.com, an IBM and Lotus business partner focused on delivering e-business application solutions for iSeries 400 customers. Jim writes, consults, teaches, designs and develops iSeries Web applications using Java, WebSphere, DB2, Lotus Domino and the WebSphere Development Tools for the iSeries.
- Secrets to a successful iSeries e-business
As with any business, there are keys to ensuring success. E-businesses are no exception. This tip looks at those essential items you need to know to develop successful e-business projects.
.26RlaSVDeTg^1@.ee84637>WebSphere/Web development discussion forum:
Post your WebSphere and Web development questions here. You'll get advice from our site experts who monitor the forum, as well as ideas and suggestions from other users.
- Best Web Links on Web Development