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 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.
All too often, organizations wishing to build sophisticated, distributed, Web-deployed applications using either Java 2 Enterprise Edition (J2EE) or Microsoft's .NET technologies attempt to retool their software development staff in the Java or C# programming language by sending them to "traditional" language training classes. There is a fundamental flaw with the way in which Java and C# are approached by most courses, however: students are assumed to have a priori understanding of basic object concepts, and so such courses more often than not focus solely on language syntax. The bottom line is that students come away from such training without any knowledge of how to structure a software application from the ground up to make the most of Java or C#'s object-oriented nature.
The upshot is that, time and again, I meet software developers - at my place of employment, at clients' offices, at professional conferences, on college campuses - who have attempted to master the Java or C# language so as to build sophisticated J2EE or .NET applications, but who are lacking a basic understanding of what objects are all about, and more importantly, knowledge of how to structure a software application from the ground up to make the most of objects.