The National Association of Computer Trainers (NACT) is organizing the World's first International CyberConference on "How to teach Java" from 29-31 May, 1996. To be held in Mumbai (formerly known as Bombay), India, the 3-day conference proposes to address the various issues involved in making Java work for us.
All around us, people have been rather raring to pick up their foghorns and start tooting about this great new product called Java. In fact, if one were to catalog the number of tie-ups that have ensued its release, you should not be surprised if the paper spans from here to the bright, ol' moon. Go Java-hunting in Cyberspace and you will hit hundreds of sites that have Java splashed across their expanse, maybe some even sport the most fertile imagination when it comes to writing code. But honestly, very few can yet boast decently understandable code or any other work, still fewer that tell a person how to learn Java in the best possible way and perhaps none really sheds any light on the aspect of how best to teach Java.
For instance, no one is bothered about the poor MIS guy who is all confused how to go about executing his plans of introducing a Java turnabout in his company. Just about how much Java does he need to know to make sure the team of 200 computer programmers under him is doing the right job? No body cares a whoop about the guy who runs the Computer Training Institute down the road and wishes to start teaching Java but does not know exactly how to go about it, especially if ardent people come to him with no former knowledge of C/C++.
These people, in their own distinct ways, need to be clear on how Java has to be so they can chase their respective ideas to the hilt. Luckily, we have an active support of Sun Microsystems , India and Videsh Sanchar Nigam Limited (VSNL) , the only Internet Access Providers in India.
- The professionals. This would include trainers, professors working with educational institutions,
- The people who are looking for a credible source of corporate training. This could be a company like Levers who has a large in-house project on Java or, say, Microsoft who wants to develop in-house Java talent
- People who want to be trainers, whether freelance or otherwise, and who want maybe to open a Java Consultancy etc
It is just fair here to offer a few insights into Java that our grappling with it have unraveled. While these might not be universally agreeable as the final word on teaching Java, we furnish a sample of the questions that make a marked difference when it comes to training at a professional level...
Who must be taught Java ?
Java has to be one's third language, not the first. If a person has no former command over C/C++, he probably might not be a suitable candidate. It is not really a nightmare to write a working applet. Infact we have had a Russian housewife telling us that after she read our tutorial, she wrote her first Java applet. That might be very touching as a compliment, but then being creative and productive with the language takes a firm grasp over the fundamentals.
For instance, if a person does not understand the way in which classes and interfaces work, it is difficult to understand how Java works. There are some things that are better learnt in C++, e.g. the this pointer can be understood in C++ because it has pointers. Unless one is conversant with programming under windows how is he/she going to understand events? So the questions that arise are ...
What must be the steps in learning Java ?
- Who is the ideal person to learn Java ?
- What must be his former skills?
- What must he carry to the party?
- Can u take a fresher who knows nothing? Or does he need to have a certain back ground? What is that back ground?
When you are learning something, the learning and the teaching process travel in pairs. What is the most fitting way to initiate a person into the Java environment. For instance, does it suffice to cram the person's head with all the best properties of Java in the same definition (as the definition of Java at the Sun site so immaculately does).
- What are the first programs to start with? Is it fine to start directly with applets or should stand-alone programs be taken into account too. If so, why? Is the myth that with Java you can only write applets required to be dispelled?
- If one wants to learn applets, how much of HTML does he need to know?
- How is he to be convinced that the applet that works from his hard disk will function exactly the same way had it been on any other hard disk in the world? Or in other words, how much Internet does he need to know? Is it enough to tell him only about the applet tag or does he have to know the intricacies like http and ftp etc.
- Would it make more sense to have the guy try an applet from his local hard disk or put it on the net, download it to see how it works?
What must be taught?
What matters ?
- Quite how essential is it for a Java programmer to know about bytecodes? Does it really matter that the code is compiled at one end and executed at another. Is that sort of overview essential or will that make programming hazy?
- Are you teaching Java specifically or just plain computer programming? For instance, if you are teaching them C, you have to tell them about the if and for statements. But if you teach them Java and want to get them involved, then none of all that is required.
- Is it really significant to bother about people's subconscious reactions to Java as a paradigm wringer, or as being a whole new powerful concept? In plain English, that goes to say that if one uses Java to write a program that displays the first 100 prime numbers, no one will be interested. Many tutorials begin with AWT, but frankly, Windows 95 has better looking interfaces up its sleeve than Java can offer as yet. Given that nugget, should one still introduce Java with its AWT? At the same time many concepts like image handling, implementation of threads etc. is to a great extent much cleaner and simpler than anywhere else. So should not the first applet that you teach a person be directed towards, say, animation so that they can compare C and C++ with the functionalities offered by Java. That's an issue we very often choose to overlook.
- Is it required to take into account the legacy traits of the programmers? For instance, being an MFC programmer, the concept of practically everything being a component in the AWT is more than a little boggling. Likewise, when a C++ programmer starts tinkering with Java, it would come naturally to him to begin the functions names with a Capital letter because in Visual C++ we had functions like InitInstance() , CreateWindow() etc., while in Java they happen to begin with a lower case like showStatus() , getImage() etc. Then again, there is the difference of environments. In C/C++, or more specifically the earlier versions of Borland C/C++ and Turbo C, we had a provision for step-by-step error check and debugging. As yet, Java does not have something on those lines to offer. Not to forget the global variables and functions that one will undeniably miss . Are these issues relevant in any way?
- Do we really need the Witches and the Wizards, the GUIs or the IDEs for programming in Java? As regards me, well I have never used the AppWizards that came bunged with Visual C++ and I would never recommend the use of one. That's for the simple reason that when one begins working with them, there is the inevitable apprehension of landing up with a trillion line code. A Wizard that generates a decent code is still a mystery to mankind. Furthermore, Java is what it is today because of its unprecedented concept of feature-specific programs called applets that will wriggle down to your machine, execute and then decently get back. Do such simplistic genre of programs require monolithic Wizards that will have know-it-all click-freaks drawn into the Java world?
How many types of Java training ?
It might not be common knowledge but atleast a dozen companies in India are providing rigorous training to their staff for developing in-house talent in Java.
- What should these training series actually include.
- How long must the training period optimally be?
More surely than not, many people will be using the language for enhancing and enriching the existing content on their web pages at one level. A very handy example is the simplistic animation mechanisms that Java offers if you are willing to have the images ready. But that throws up a whole new set of questions:
- How do you get the creative artists to understand what exactly you are looking for?
- Java has some goodies for everyone in its bag, but how does one explain what it can do for the people like your dad and mine? Would it be a good idea, for example, to have a series of 10 small applets that showcase the caliber of Java from its most rudimentary feature to the most intricate one.
- Does the kind of training that a senior executive gets with Java to be able to decide what he wants be similar to the kind of training that a computer programmer gets?
- What are the different kinds of Java training courses that are possible?
Please note that since this is a CyberConference, we see no reason why you will have to come over in person to India and deliver your ideas. If distance is a snag, your contributions could be advanced through e-mail, or better still, as Real Audio files if you want them played live in the conference. On the other hand, if you are willing to pay India a visit, the necessary things can be worked out.
In any case, we will be putting all the conference papers on the Internet when it gets over. If possible, we will concurrently cybercast it as it takes place. Please remember while sending in the papers that the focus will be on teaching Java, not just learning it.
It is not even a year old now and still people love to refer to it as "The Microsoft killer". Well the question whether a year old sibling commit murder might be a good topic for an Oxford rebuttal contest, we are concerned with the ready-made explanation it offers for our conference dates from 29 to 31 May -- Java will officially be one year old on May 22, 1996.
Maybe Gates retorts with yet another powerful technology by then. One fact that everyone is willing to overlook is that Billy did not become the kind of enviable billionaire he is by playing second fiddle. If the whiff of coffee can take the world by a storm, he might come up with a still stronger condiment. To believe the interest generated by Visual Basic script, well, it is the next weapon in Microsoft's armory. If it indeed is, we must be most willing to give it a shot. Finally, it is the technology that matters, not who brought it in.
But the one thing that stands clear through all this is : With Internet and Java, technology is no more the call-girl of America or Japan or Germany, it is now an international realm. And that's the reason we wish to have the people of the whole world meet at one place, whether physically or otherwise, and discuss how the technology can be offered to the people on a global platter.
That is NACT's way of bringing Java to the world.
Besides the above enlisted members, Ms. Sonal Kotecha and Mr. Shashank Tripathi are actively involved in the orgainzation of the whole thing.* Mr. Vijay Mukhi as The Chairman * Mr. A.D.Narula, Director, DataPro * Mr. Atul Nishar, Aptech * Mr. Suresh Bharwani, Jetking * Mr. Rege, Edit * Mr. Firoz Pradhan, Network * Mr. Amin Virani as The Secretary General of NACT * Mr. K. Pandyan, CEO, Microgiga as a special invitee