Index

Next

Chapter 0 Introduction

Who created this course ?

This course was created by me Marcus Green.

I have been involved with Java since around 1998, when I put together what became http://www.jchq.net one of the most popular web sites aimed at people studying for the Sun Certified Java Programmers exam. The text of this book is available from http://www.examulator.com in various formats. I have been a programmer since around 1990 and have used C/C++, Visual Basic, Perl, Java and various other programming tools. I am a qualified teacher with a Post Graduate Certificate in Education (PGCE) specialising in adult education. I spent 8 wonderful years in Australia and I am now based near York in England UK.

The License

This course is available under the creative commons license. This means you may copy and reproduce it in any way you see fit. You may base your own course notes on it and you may give or sell it to others. However if you do give or sell it to others you must do so under the same license as you received it, i.e. They have the same rights to give it away or sell it. You are encouraged to make it available by any means whatsoever including as zipped files on web sites or as discreet files in any format. For more details on the creative commons license see

http://www.creativecommons.org

Who can take this course

You may notice that I sometimes refer to what you are reading as a course and sometimes as a book. This is because the same text is used to generate content for an online course and a book. This course is for people who want to learn about Java but have little previous programming experience.

If you have ever modified an Excel Macro by hand or done a little Visual Basic programming or even a little JavaScript then this course could be for you. If you have absolutely no previous programming experience you can probably still do the course but it might be more of a challenge. Programming does not require any unusual talents, you do not have to be good at Math, you do not have to be any type of genius. You need to understand that all computer programs start out as lines of text that contain instructions to the computer. If you take it carefully and are willing to beak down problems into small components anyone can write computer programs.

Other Languages

Despite many years of study of German and French at school, and Spanish in my own time English is my first and only fluent language. I would very much like this book to be translated into other languages. If you are interested in this task, please contact me at marcusavgreen at gmail.com (unmangle that address). Any translation would have to be under the same Creative Commons license that covers the original work. However a resourceful person might make a little money from a translation by selling hard copies of the resulting work.

Additional resources

Books

There are huge numbers of Java books available but certain names keep cropping up. Peter van der Linden offers “Just Java”, a comprehensive coverage of most of the essential Java technologies. If you want a gentler but possibly shallower introduction to the language then Head First Java by Kathy Sierra and Bert Bates not only covers Java but really attempts to make you think whilst learning Java. The Head First approach tries to go beyond simply delivering the content and attempts to get to involved with the material to ensure you actually learn it.

Web sites

The JavaRanch http://www.javaranch.com website is mainly about forums and the whole site runs under the guiding rule of “be nice”. The idea is that nobody should be afraid to ask a question. There are several freely available tutorials on learning Java. I have included several links to the tutorial from Sun, and you can see the main page at http://java.sun.com/docs/books/tutorial. Bruce Eckel has written a good, if quite dense book on Java which you can either purchase a printed copy, or download an electronic version from http://www.mindview.net/Books/TIJ. Dick Baldwin has some excellent Java material available at http://www.dickbaldwin.com/tocint.htm.

Programming languages usually have some definitive document that defines how the language ought to work, the language specification. For Java it is the Java Language Specification (JLS) which at the time of writing has reached version 3. This documents how Java is supposed to work. This can be considered the blueprint for the how Java should be implemented, because the Sun JVM may be overwhelmingly the most common one, but it is not the only one. The JLS is not a particularly easy read and you will probably only refer to it rarely, but it is the “argument settler” of documents. Fortunately you can browse it on line at

http://java.sun.com/docs/books/jls/third_edition/html/j3TOC.html

Why learn Java?

A reasonable answer to that question is “to get a job”. A search on the keyword Java on any Job web site usually returns thousands of results and there are usually more results than any other topic. Java is a relatively easy language to learn and is similar enough to other languages such as C# and C++ that it acts as a transferable skill. By learning Java you are “hedging your bets” in the software battle of the giants. If Linux continues its march to dominance and becomes the de-facto standard system you will have a skill that runs on Linux. If Microsoft continues or grows its operating system dominance you will be able to program for Windows. To become proficient enough to get a job programming in Java is quite a journey but to paraphrase an old saying

“a journey of a thousand miles starts with a search for the car keys”

(I must check the details and origins of that quote it doesn't sound quite right)

You won't get a job purely on the basis of having completed this course, but it would make a very good foundation for moving onto another course such as undergraduate studies. Having completed this course would give you a good understanding of other programming languages. All languages have features in common and so an understanding of Java features would give you an insight into how other languages such as C#, or Visual Basic work.

Which version of Java?

At the time of writing the current (non beta) version of Java is Java 6 which has an associated development kit of JDK 1.6. The differences between Java 5 and 6 are relatively trivial but the move from JDK 1.4 and JDK 1.5 were quite significant. This course will assume that you have at least JDK 1.5 and some code will not run on earlier versions of Java.



Index

Next