The phenomenal success of object-oriented languages such as Java and C# as enablers of enterprise-wide, Web-deployed applications has compelled countless numbers of organizations and individual professionals alike to seek proficiency with such language in recent years. Many of these are drawn like moths to a flame, however -- and in fact go “down in flames” -- because they are ill prepared to harness the power of an object-oriented programming language, due to a basic lack of understanding of object concepts. (Copyright 2004 by Jacquie Barker – all rights reserved. Reprinted with permission of the author. Excerpted in part from Beginning Java Objects: From Concepts to Code, by Jacquie Barker, ISBN 1590591461; published by Apress LP.)
The object crisis is by no means insurmountable. Quite the contrary: by observing a few basic guidelines for how best to retool with objects in general/Java or C# in particular, an individual or an organization can quickly be off to the right start:
Invest in object training before Java or C# training: it's like learning how to hold a golf club properly before strategizing how to play a particular golf course. But, choose wisely: ensure that whatever object training you select does not teach objects in isolation but instead illustrates how one bridges the gap from UML models into Java or C# code.
Craft your own Java or C# code using a bare-bones IDE (or a simple text editor) so as to master the concepts of the language before relying on a drag-and-drop GUI-builder to churn out code automatically. This way, you'll ensure that an application is sound to its very core with respect to its object structure.
Engage an object mentor who is also Java- or C#-proficient to work with a fledgling Java or C# team throughout the project lifecycle.
Tackle a reasonably small project for starters -- don't attempt to conquer a mission-critical enterprise level application as your first application. And, ideally, cut your teeth on an in-house project versus a project-for-hire for a key client.
If you are responsible for managing such a project, realize that there'll be a hefty learning curve for first-time .NET or J2EE developers, and factor that into the project schedule. Not only must they conquer the language of choice, they must also come up to speed on: (a) the web programming paradigm, (b) the myriad of .NET or J2EE component technologies - each with its own particular conceptual hurdles and challenges.
The object paradigm is intuitive and powerful ... nonetheless, mastery of objects doesn't happen automatically simply by virtue of learning Java or C# syntax. An up-front investment in learning objects properly will be repaid numerous times over in terms of the quality, maintainability, and robustness of the J2EE or .NET applications that ensue.