How to Keep Up With Java

类别:Java 点击:0 评论:0 推荐:

Keep Up Without Losing Sleep
So much to learn, so little time—make intelligent choices on maintaining your expertise

by Peter Varhol

Posted October 10, 2003

The flood of new technologies, specifications, Java Specification Requests (JSRs), APIs, tutorials, proceedings of the Java Community Process (JCP), and early access downloads are enough to boggle the mind of a technologist trying to keep up with all things Java. As an individual, whether part of a larger development team or an architect directing the efforts of others, the ability to follow the diverse threads of Java and provide forward-looking value to an employer depends on the ability to quickly understand emerging technologies and put relevant ones to use.

But it's hard for a number of reasons. The sheer volume of emerging technologies is only one of the obstacles. The ability to understand where these technologies are in the standardization process, and when they will be supported by commercial software products and on what platforms, is another challenge. And identifying which technologies can be useful immediately to current and future application development efforts requires not only the ability to comprehend how to use technologies but also the strategic acumen to apply them to improve application development in support of business opportunity.

And there's still more to it than that. Other standards, such as those promoted by the World Wide Web Consortium (W3C) and the Object Management Group (OMG), directly impact the value and technological progress of the platform, yet add still more complexity to emerging aspects. Following these technology standards' progress, figuring out how to integrate them into the framework of Java software, and using them in your unique environment raises the bar yet again. In many cases, you also have to keep up with the open source movement, experiment with software from SourceForge, and make sure you're up to date on the latest Apache projects. Good luck doing all this and still writing code on deadline on a daily basis.

I wanted to address this topic because it's a problem I have. Seemingly every time I check the W3C,, and similar sites, I spy a new draft that just begs to be examined in detail. I'm not personally involved in any of the standards efforts, although my employer has interests on several fronts. And while my own bias lies in JSPs and servlets used in J2EE applications, I am interested in a wide variety of other technologies, such as J2ME applications used on connection-limited systems. While some of these technologies are applicable to my day job, it is usually in addition to that work, done mostly in the evenings and on weekends.

As a result, I find myself spending several hours a week doing nothing but reading. And the additional thinking time needed, not to mention the time necessary to try out code samples, manages to fill more than the amount of time I can allot to the task. And for most software professionals, squeezing in enough time to write code, architect components, or coordinate one or more development projects can be added to that mix.

The result is a conundrum. Because of the vast range and detailed nature of the advances of the Java platform and associated technologies, there is simply not enough time to perform the tasks that you are motivated to do, and in many cases are required to do. Is there any way to reach an accommodation to both your professional and personal responsibilities?

Make a Plan
I've come up with the following battle plan to help set priorities while still making sure I keep up on the advances that are important to me. While it may not apply directly to your own unique needs, it may help you plan how to approach your own balance. Focus on the value. You have to accept that you can't stay current on all aspects of Java technology, despite an overriding interest and despite even a legitimate business or technical need. Doing so is possible only if staying current on these technologies and standards is your primary job. If it's not, however, you have to select those technologies and standards that have the most impact on your assignment within your current organization.

Once you have selected the subset of technologies, you have to focus on keeping up with only that subset. If you find that there's still too much to cover, you may have to narrow your focus still further, and if you find yourself spending an increasing amount of time in areas that you didn't define as your focus, perhaps you should go back and revisit your priorities.

Graze the field occasionally. Don't completely ignore the technologies that didn't make the cut for your attention. Instead, scan the universe of new literature every once in a while. Every couple of months, set aside a few hours to review the relevant technologies that you can't keep up with on a regular basis. Skim through new draft specifications, find out where new versions of J2EE are in the approval process, and check out the progress of JSRs.

Grazing helps you discover things before they become general knowledge, without spending a significant amount of your time digging it up and studying it in detail. It doesn't put you in a position to implement these technologies, but it gives you an indication of where you should be turning your attentions in the future.

If you find yourself spending too much time grazing, it may be time to review your priorities again. That's not necessarily a bad thing. For example, before Web services became a key technology, specifications for adding Web services technologies to J2EE started making the rounds. If you were grazing the early Web services specifications, you were in a good position to refocus your attention onto Web services when it became apparent that they were going to be central to future development projects.

Make it a group effort. If you have the luxury of working with like-minded individuals, form a study group and parcel out areas for each to focus on. Then meet, perhaps over lunch or dinner in a restaurant or function room, once a month and have two or three present the results of their efforts since they were last able to do so. Make it a social as well as professional gathering, with time to exchange information in an informal atmosphere.

A team approach accomplishes a number of goals for you. First, it keeps you up to date with emerging technologies while reducing the time you spend doing so. Second, it enables you to maintain professional contacts that may be useful in advancing your career. And if your social opportunities are limited, this strategy can provide an important outlet for your free time, while still promoting your need for professional information.

In some cases, you may find people with similar needs and interests within your company, and perhaps even use company facilities as your meeting venue. In many areas of North America, there are already active Java user groups where participants may want to exchange information on emerging Java technologies. Colleges, especially those with active adult learning programs, have many people excited to learn and share information on emerging technologies too. During my time as a college professor, I helped form several such groups, some of which still meet today.

Rely on the trade press and other third-party accounts. Press and analyst sources get maligned for a number of reasons, but on average still represent the most complete and unbiased source of high-level currency information on new technologies. You won't get the detail you might if you worked with the technologies themselves, but you'll get an overview of what is coming. If some of the early technologies have been implemented into product, strong product reviews still conducted by a few publications can show you how ready they are for actual use.

Find Your Focus
Focus is important in this endeavor, too. There are a wide variety of publications available, and few are shy about promoting their value to their readership. Select only the few that best present the information in a way that is organized and logical to you. There are many journalists who are well grounded in technology and have established reputations for even-handed descriptions and well-reasoned analyses of Java, and they should be at the top of your reading list.

Often it's possible to receive publications either through e-mail (with links to specific articles on the Web site), or in print form. I prefer e-mail publications, which have the benefit of wrapping a neat, two- or three-paragraph summary in the text before requiring you to jump to the Web site to read the entire article. However, choose the format that best suits your reading style and time commitments. A paper magazine is still more portable than a computer, although with wireless access and the ability to download and scan an entire issue online, the advantages of paper are less dramatic than they were a few years ago.

The state of affairs surrounding Java and associated technologies that can be applied to Java applications is likely to continue for at least the next several years. As the Java platform fills out and gradually reaches maturity, new and enhanced technologies will continue to stream into the public domain and into general use.

You have to manage your time and efforts to get the most out of emerging technologies, while still staying current in both the knowledge and the implementation expertise in the areas that make you a valued and valuable employee or consultant. Only by focusing yourself on core technologies and limiting your exposure to other areas can you hope to remain on the forefront of the Java wave.

About the Author
Peter Varhol is a technical evangelist for Compuware Corporation. Contact Peter at [email protected]