SERVICES - Software Training

C,C++      Java      SAS      .NET      Unix Administration      Data wareHousing      SQL

JAVA / J2EE
Java is a high-level, third generation programming language, like C, FORTRAN, Smalltalk, Perl, and many others. You can use Java to write computer applications that crunch numbers, process words, play games, store data or do any of the thousands of other things computer software can do. Compared to other programming languages, Java is most similar to C. However although Java shares much of C's syntax, it is not C. Knowing how to program in C or, better yet, C++, will certainly help you to learn Java more quickly, but you don't need to know C to learn Java. Unlike C++ Java is not a superset of C. A Java compiler won't compile C code, and most large C programs need to be changed substantially before they can become Java programs. What's most special about Java in relation to other programming languages is that it lets you write special programs called applets that can be downloaded from the Internet and played safely within a web browser.

Why Learn Java?
If you work with computers at all, you probably think of Java as a computing platform rather than as a coffee or an island in the Pacific. Java has generated tremendous buzz in its first five years of existence. Some of the excitement is genuine; some is just hype. But at the end of the day, you're probably wondering if you should learn Java. The answer is "Yes." I'll explain why.

What is Java?
First, though, you need to understand exactly what Java is. When people say "Java," there are actually several things they might be talking about:

  1. Java is an object oriented programming language. In this respect, it is a peer of C++ or Smalltalk. Learning the Java language is kind of like learning the rules of grammar for a spoken language.
  2. A Java Virtual Machine (JVM) is used to run Java programs. The JVM can be made to run on different platforms, like Linux and Windows, so the same Java programs can run on computers with different operating systems. This is the cornerstone of one of Sun's slogans for Java: Write Once, Run Anywhere. The JVM is infrastructure, kind of like vocal cords for spoken languages.
  3. The Java Application Programming Interfaces (APIs, or class libraries) are a set of prebuilt classes that you can use in your own programs. Essentially, this is stuff for free, like classes that deal with disk files, network sockets, or graphic interfaces. If the Java language is like a set of grammar rules in a spoken language, then the APIs are dictionaries full of words that can be used to build sentences and paragraphs and stories.
When people talk about "learning Java," they usually mean learning the Java language and APIs. You probably won't ever have to know much about the JVM, although a basic familiarity with it is helpful.

Object Oriented Programming
Object oriented (OO) programming with languages like C++ or Java is widely accepted to be a step above procedural programming with languages like C or FORTRAN. The added power of OO programming comes at the price of the relative simplicity of procedural programming. There's a pretty steep learning curve involved with OO programming. If you already know an OO language, learning Java will simply be a matter of learning Java's syntax.

If you don't understand OO programming, you'll have to begin the long journey to enlightenment. It took me about four years from when I first started playing with OO programming (in Objective-C, on NeXT) to when I really felt like I got it. My study was a little haphazard; you can probably cut that time to a number of months if you are taking a good course or immerse yourself in some good books. Don't neglect this step, however. It's not hard to learn Java's syntax, but writing decent OO code takes some serious work.

It's Free, in Several Different Ways
Sun gives away Java development tools and the stuff you'll need (a runtime environment) to run Java applications. There are no license fees to be paid, no nasty multi-thousand-dollar development environments to buy. There isn't even a catch, like that you have to shell out a few G's to get the Professional Edition that does all the cool stuff. Sure, Sun has their own agenda; Scott McNealy would be more than happy to take over the world. But you really can use Java without paying anyone.

Furthermore, the APIs are a vast treasure trove of working, reliable code that help you do all sorts of stuff. Want to use network sockets? It's in there. Want to connect to a SQL database? It's in there. Want to put a slick user interface on your application? It's in there. Want to digitally process images, or manipulate music files, or parse strings, or create digital signatures? It's all available. As a programmer, this will probably gladden your heart more than anything: Java's APIs are chock full of wheels that you won't ever have to invent yourself. This is really nice when compared with C++. You could spend all sorts of time learning somebody's C++ class libraries, like the Microsoft Foundation Classes, then start at the bottom of the learning curve again when you had to write an application for Linux. Once you learn the Java APIs, they work the same regardless of the underlying platform.

Finally, oodles of information about Java is available for free online. If you have Internet access and enough time, you can teach yourself OO programming, the Java language, and the Java APIs. Sun has a pretty good tutorial online and tons of API documentation. For a more focused approach, try a good book (say, for instance, Learning Java) or find someone to explain it to you. Bingo! You've just made your resume look a lot sweeter. Expect to be swamped with calls from recruiters.

Why Java?
  • Similar to C++ so it is familiar to commercial programmers.
  • Does not include the nasty dangerous parts of C++ so it is safe.
  • Extensive run-time type information and safe dynamic link-loading is available.
  • Includes string and multi-thread support in the language.
  • Automatic memory management.
  • Data type sizes and arithmetic behaviour are fixed and fully defined for all platforms.
  • Has useful standard OO libraries.
  • Documentation can be extracted from the source code.
  • Security checking is built in to the libraries and virtual machine.
  • Supports unicode for ease of internationalization.
  • Write once, run anywhere, any platform (no porting, no client configuration. well almost!)
  • Vast amount of supplier and programmer support and acceptance. It is unkillable.
  • Loads and runs over the WWW, 40 million potential clients.


Why Software Developers Choose Java
Java has been tested, refined, extended, and proven by a dedicated community. And numbering more than 6.5 million developers, it's the largest and most active on the planet. With its versatility, efficiency, and portability, Java has become invaluable to developers by enabling them to:
  • Write software on one platform and run it on virtually any other platform
  • Create programs to run within a Web browser and Web services
  • Develop server-side applications for online forums, stores, polls, HTML forms processing, and more
  • Combine applications or services using the Java language to create highly customized applications or services
  • Write powerful and efficient applications for mobile phones, remote processors, low-cost consumer products, and practically any other device with a digital heartbeat


Course contents:
  • Core Java
  • J2EE
  • JDBC (Java Database Connectivity)
  • Servlets
  • JSP (JavaServerPages)
  • Enterprise JavaBeans
  • Struts Framework
  • Introduction to Spring Framework & Hibernate