Preface
In 1980, after being married for just a few months, I purchased my first computer. Why? Because at the age of 26, I thought it could be the best toy I could ever own. It was an Apple ][+. Within days of its arrival, I became obsessed with it. In the late 70s and early 80s, numerous magazines were dedicated to the new realm of personal computers and I bought most of them. I’d come home from work when I was a photography technician at Dawson College and typed in any program I could find. Three years later, I left Dawson and struck out on my own programming professionally, and seven years after that, I became a college instructor in computer science at Dawson College.
I mention this story because computer programming changed my life. Every day I woke up, and to this day, I still wake up to face new challenges and problems that I need to solve. You are likely a programmer for the same reason.
Few, if any, developers spend their career only programming in a single language or on a single operating system. This is why I wrote this book. If you already code in one language, you already know the basics of almost every programming language. This is not a book on programming for beginners. It is a book for beginners to Java programming.
The four parts of this book present the skills you need to be familiar with to be a successful Java programmer. Java is a language that is experiencing rapid evolution. This book covers the recent enhancements to the language for both desktop and server-side programming.
In this book, I present source code that is just as important to read as the text of the book. All the source code is available on GitHub. For this book to have its full impact, I ask that you download all the examples. Run the examples and enhance them. Much of what I have learned has come from working with code samples. I describe what I do with these samples as conducting experiments. I encourage you to conduct your own experiments with the sample code.
While I do briefly discuss Integrated Development Environments (IDEs), all the examples can be edited with a simple text editor and then run either directly from the command line or with the Maven build tool. If you already have a favorite IDE or plan to use one, know that all the code built for Maven will load into any IDE without needing you to change anything.
Java has been around for 27 years at the time of writing. Whenever it has been declared out of date, too verbose, or too complex, the Java community has contributed new ideas, syntax, and libraries that have become part of the language. I could write for pages and pages on how Java has changed since its introduction in 1996. I won’t, but what I do wish to impress on you is that Java is a language you are always learning. This book is just a starting point.