Joanna is director of Regis University's distance learning undergraduate program. She can be reached at email@example.com. Ellen is the university's director of the distance learning graduate program. She can be contacted at firstname.lastname@example.org.
Sidebar: Distance Education at Carnegie Mellon University
What do you do if the computer-science program you just graduated from emphasized Pascal and C, while (unfortunately) most of the want ads you're looking at require C++ experience? Or what do you do if your company has decided to replace its UNIX servers with PCs, and all new application development must switch to that platform? For that matter, what if your organization has caught the World Wide Web bug and wants to implement a company-wide intranet and you've been assigned to lead the development effort using Java?
In a climate of rapidly changing technologies, lifelong learning is clearly a necessary professional development objective for professional programmers. To stay current in your field, you have to be willing and able to continually "retool" your knowledge and skill base. The need to be a perpetual learner is especially important in the computer-science domain because of the overwhelming explosion of technological advances, if the more than 6000 scientific/technical journal articles written every day are any indication. Overall, there's currently a 13 percent per year increase in scientific and technical information, meaning the amount of such information doubles every 5.5 years. According to D.A. Nash, this rate of increase will soon jump to 40 percent per year due to the increasingly powerful information systems and the growing population of scientists. These increases will cause the scientific/technical database to double every 20 months ("The Life-long Learning Imperative...Ends and Means," Journal of Dental Education, 1994).
Employers need programmers who possess contemporary skills and knowledge and who proactively update their abilities to meet the ever-changing needs of the organization. Programmers who are able to keep up with the information explosion are valuable assets; those who fail to "grow with the flow" are restructured out of their positions. Whether you're a recent college graduate or seasoned veteran, lifelong learning is essential to staying current, competitive, and in demand.
Lifelong Learning for Professional Programmers
As defined in A Model for Lifelong Learning, by N.V. Overly et al. (Phi Delta Kappa, 1980):
Lifelong learning is any purposeful learning that an individual engages in throughout the life span...it is an activity engaged in...to gain greater individual self-fulfillment and to improve the quality of life for the individual and the emerging society. To achieve this requires moving away from a view of learning that is controlled outside the individual to a view of learning that is internally controlled by the individual.
The knowledge and technology explosion requires professional programmers to engage in this kind of lifelong learning merely to stay current, let alone evolve, advance, and remain competitive. Some companies support employees' professional development activities, such as training, by allowing comp time or time off. However, many companies leave the responsibility for professional development in the hands of individual employees. It's getting harder to send employees to training because of the expense, and release time is hard to schedule because of project deadlines. Since many computer programming professionals work anywhere from 45 to 60 hours per week (see "Strategies and Tactics for Getting a Job," by Ann Cary, Dr. Dobb's Special Report on Software Careers, Spring 1997), it is hard for them to find personal time to schedule formalized lifelong learning activities.
Luckily, the same emerging technologies that require lifelong learning have made it possible to provide excellent alternative learning options for professionals. Using distance learning and computer-mediated communications (CMC) technologies, you can now meet your learning goals by:
Enrolling in university courses via video, compressed video, multimedia, or Internet/World Wide Web.
Participating in professional training via video, multimedia, or Internet/World Wide Web.
Creating your own web-based performance support system (WPSS) using available online resources.
University Courses at a Distance
Higher education has become responsive to adult students who cannot attend traditional classroom-based programs. Many people have major job and family responsibilities that just do not allow for the time it takes to go to campus-based classes for skill development. Distance education, like that described in the accompanying text box entitled "Distance Education at Carnegie Mellon University," has become a viable program delivery option for these learners.
Distance learning generally means a learning environment in which the instructor (or facilitator) and the student are removed from each other; instructional communication is accomplished through technology. The concept of distance education is not a new one. For many years, students have been able to take self-guided, distance courses that use print-based materials with some faculty evaluation process and get academic credit for their work. With the advent of sophisticated electronic media, distance learning programs have become prolific. Courses that are specifically designed for distance learning are now available from many accredited universities and colleges. The delivery options are extraordinarily diverse and can be configured to fit the learning styles of most students.
Flexibility is one of the greatest assets of distance learning. Students and teachers are not required to be in the same place at the same time during the course. Communication via e-mail, list servers, and web-based threaded discussions allow you and your professor to post comments, questions, and work at any time and in any place (as long as you can access the Internet). Very often, adult students work during the night or early morning hours, which is easily accommodated with asynchronous interaction technologies. Some courses include synchronous interaction as a planned part of a course using Internet chat capabilities.
Distance learning courses now are widely available. Understanding your own learning style and schedule is key to getting the right learning experience. Options for course delivery include video tapes, audio tapes, CD-ROMs, text-based, and combinations of these. Some courses are also available via live interactive television, where you are in a class with other students, but your instructor and other students are in a classroom at different location. Two general sources to help you find college programs at a distance are Peterson's Guide (http://www.petersons.com/) and Bear's Guide to Earning College Degrees Non-Traditionally, by John and Mariah Bear (Ten Speed Press, 1997). [For a review of the Bear book, see "Nontraditional Education Alternatives," by Jonathan Erickson, Dr. Dobb's Electronic Review of Computer Books, September 1995; http:// www.ddj.com/ercb/ddj/9509.html.] The University of Texas World Lecture Hall is an online source for computer-science courses and programs (http://www .utexas.edu/world/lecture/). Under "Computer Science," you can find computer-science courses covering a range of topics including C, C++, Perl, Java, UNIX, and object-oriented analysis and design.
In evaluating and selecting a distance course, consider these issues:
Course content. The course learning objectives should be clearly stated and the content specifically outlined so that you know it will cover what you want to learn.
Level of interactivity. How much you will be able to interact with course material, with an instructor, and with other students is an important consideration. You want to know if the program provides a level of interactivity that fits your learning style.
Level of study. Undergraduate or graduate academic credit, academic or nonacademic certificate, training, and skills upgrades are options. Credit only matters if you intend to go on for a higher degree in an academic institution, skills training can accomplish what you need quickly and specifically.
Quality of teaching materials. There should be a student guide that provides a clear outline of the course and tells you exactly what is expected of you to successfully complete it. It should also include information on how to contact your instructors with questions, what technical support is available, and how to interact with other students. It should provide you with all the information you need as a distant student. Other required course materials should be provided or easily acquired from a distance.
Professional Training at a Distance
Similar in structure to university courses at a distance, some professional computer-programming training courses are also available at a distance. Using videotape, CD-ROM, computer-based training, and Internet/web technologies, you can participate in training courses that help you develop specific computer programming skills. Here are a few examples of training companies that deliver computer programming training at a distance:
Bluestone (http://www.bluestone.com/bluestone.html) offers C, C++, Java, and Perl courses over the Web.
Hatteras Software (http://www.hatteras .com/) provides object-oriented analysis and design (OOA&D) and Java training via CD-ROM.
MindQ Publishing (http://www.mindq.com/) provides C++ and Java training via CD-ROM.
Prentice Hall (http://www.prenhall.com/) has an interactive multimedia cyber classroom series in C, C++, and Java.
Mix Software (http://www.mixsoftware.com/) provides C and C++ training via videotape.
Learning Tree International (http://www. learningtree.com/) offers OOA&D, UNIX, Oracle, Java, and networking instruction via computer-based training (CBT).
Developing Your Own Online Performance Support System
Sometimes, a distance-delivered university or training course may not be the best solution for your lifelong learning needs. If any of the following scenarios describe your situation, then creating your own web-based performance support system (WPSS) may be the best way to address your lifelong learning needs:
You've been developing applications using C++ with a relational database. With the release of new object-oriented database (OODB) engines, your company has decided to adopt OODB technology. You don't need much instruction to move from relational to object-oriented database technology.
You haven't programmed in Perl for over a year, and now your new project assignment requires some Perl programming. All you need is a refresher to hone your existing skills.
You've been assigned to a Smalltalk project. For the most part, the application requirements will be fairly easy for you to implement. However, there are a couple of functionality requirements that you've never been exposed to before. All you need is some just-in-time training or mentoring when you get to those more complex components of the application.
You are a self-directed learner who prefers to structure your own learning intervention.
As these scenarios suggest, sometimes the learning intervention needed to "retool" your skill base does not require an 8- to 16-week university course or a 3- to 5-day training session. All you really need is a support structure to get you up-to-speed on a new technology or language. A performance support system (PSS) integrates resources and tools that facilitate working on complex tasks. Like an electronic performance support system (EPSS) (see Electronic Performance Support Systems, by G. Gery, Ziff Institute. 1991), a WPSS uses the Web to provide on-demand access to integrated information, guidance, advice, assistance, training, and tools to enable high-level job performance. Using the Web to create your own performance support system for a specific computer-programming topic is a perfect fit because the Web has been actively used by computer programming professionals as a forum for the distribution of references and guidance-the components of a WPSS!
Learning on the Web
To illustrate, we'll use Java to demonstrate how easy it is to find quality lifelong learning resources on the Web. Because of emerging web technologies and the need to develop applications that interface with and take advantage of web capabilities, the ability to develop applications using Java has become a highly demanded skill. Assume that you've been assigned to a Java project-such as developing a corporate intranet-and need to get up to speed as quickly as possible. Are there any resources on the Web that would help you learn Java and support your performance throughout the Java project?
You bet. However, you have to be very selective when looking for learning materials on the Web. Because you want materials that will help you fulfill your lifelong learning goals, you need learning resources that are accurate and relevant. So, the best places to start when searching for quality computer programming resources are the language, development kit, and tool vendors' web sites. Sun, for example, has a number of resources available via its web site (http://java.sun.com/). Likewise, professional organization web sites, such as the ACM (http://www .acm.org/), and professional magazines such as Dr. Dobb's Journal (http:// www.ddj.com/) and JavaWorld (http:// www.javaworld.com/), also provide Java resources. Use "triangulation" to verify a web site's value; if many Java-related web sites refer to a specific site, chances are it is a valuable site.
Using these guidelines for finding appropriate lifelong learning resources, your Java WPSS might include the following components and links:
Information. For general information on a programming language or tool, try searching the Web using the keywords new, read, report, newsletter, and directory.
"The Source for Java" from Sun (http://java.sun.com/) provides a variety of information about the Java programming language, such as available development tools, Java uses, standardization, and products.
JavaWorld from IDG Communications is an online magazine for Java developers; http://www.javaworld.com/javasoft.index.html.
Guidance and Advice. For guidance and advice resources on the Web, try using the keywords FAQ, source code, how-to, help, Q&A, demo, tips, hints, and wizard.
"The Java Developer FAQ" from DigitalFocus includes the Java Developer Network, Java Conference Room, Java Resources, and How Do I...? sections; http://www.digitalfocus.com/digitalfocus/faq/index.html.
"Java Workshop FAQ" from Sun provides answers to questions concerning configuration, installation, IDE/usability, HTML, applets, and GUI builder; http://www.sun.com/developer-products/java/technical/FAQ.html.
"Source Code for Dr. Dobb's Journal, Java Q&A" from Dr. Dobb's web site (also available at DigitalFocus' Java Developer FAQ web site) provides source code solutions to common Java programming problems. http://www.digitalfocus.com/ ddj/code/.
Assistance. Newsgroups provide a forum for developers to ask and respond to questions, participate in discussions, and collaborate on solutions. There are a number of online Java newsgroups available, including: comp.lang .java.advocacy, comp.lang.java.announce, comp.lang.java.api, comp.lang.java.misc, comp.lang.java.programmer, comp.lang.java.security, comp.lang.java.setup, and comp.lang.java.tech.
A current list of Java-related newgroups is maintained by JavaSoft at http://www.javasoft.com:80/aboutJava/newsgroups.html.
Training. For training needs, search for resources using training, tutorial, course, and white paper as keywords.
"The Java Tutorial" available from Sun covers object-oriented programming for the Internet, general Java programming, applets, user interfaces, networking and security, native interfaces, and JavaBeans; http://java.sun.com:80/docs/books/tutorial/index.html.
"The Java Language Environment: A White Paper" from Motiv Systems, provides a detailed discussion about the design goals, merits, and attributes of the Java programming language; http://java.motiv.co.uk/intro/javawhitepaper_ 1.html.
Tools. When looking for programming tools on the web, useful keywords to use for searching include tools, utilities, and resources.
"The Official Directory for Java" from Gamelan, Earthweb, and Sun provides access to a variety of tool and utility resources for Java programmers; http://www.gamelan.com/pages/tmp-Gamelan.html.
To create an organized, easy-to-use WPSS, there are two easy ways to combine and coordinate your web resources. You can use the Bookmark feature of your browser to organize your links or, if you know some basic HTML, you can organize your resources on a personal web page. (Check out a web-based development tool that enables you to create an organized, searchable WPSS at http://www.cudenver.edu/~jdunlap/wpss.html.) By collecting in one location the types of web-based resources just described, you create a WPSS that will not only help you learn a new computer programming language or tool, but will also support you throughout your development efforts. Whether you need just-in-time training or simply need to refresh or enhance your current knowledge and skill base, using the Web to create your own customized performance support system is an excellent solution.
The distance learning options and resources we've described here will help you develop a plan for achieving your lifelong learning goals. Lifelong learning goals will, in turn, enable you to fulfill your career goals. Distance learning options may very well be essential elements in your continued achievement and success as a computer programming professional.