Between Moore's law and the notion of "Internet time," we're constantly being bombarded with more and more information--most of it in the form of disorganized data. Turning this information into useful knowledge is getting harder and harder to do, and it takes time that we just don't have. The current economic situation hasn't helped either. With money spread thin, who hasn't had to take on new tasks and learn new things? And slashed training budgets mean there's little to rely on for learning except books- but learning a complex new programming language like Java from a book is no simple task. Maybe your boss is giving you two weeks to come up to speed for a project, or maybe you're ready to take that next step up in your current job, or be a more viable candidate for a new job. Whatever the reason, the onus is on you to learn. All these factors make it more important than ever to have a way to learn--fast.
And that's what Head First Java does -- by exploiting the way your brain works, it compresses the time it takes to really learn. Why? Because its unique approach not only shows you what you need to know about Java syntax, it enables and encourages you to think like a Java programmer. Mastering object oriented programming requires a certain way of thinking, not just a certain way of writing code.
The latest research in cognitive science, neurobiology, and educational psychology shows that learning at the deeper levels takes a lot more than text on a page. Actively combining words and pictures not only helps in understanding the subject, but in remembering it. According to some studies, an engaging, entertaining, image-rich, conversational approach actually teaches the subject better. Head First Java puts these theories into practice with a vengeance. Chock full of mind stretching exercises, memorable analogies, and stories, humor and attitude that aren't just pasted-on distractions but that are used to drive home key points and make ideas come alive, the Head First approach is as effective as it is unique.
It takes a pretty unique person to have developed such an innovative way to Learn Java. Kathy Sierra has been interested in learning theory since her days as a game designer. More recently, she's been a master trainer for Sun Microsystems, teaching Sun's own instructors how to teach the latest Java technologies. She has been actively using the concepts in Head First Java to teach hundreds of trainers, developers and even non programmers. She is the founder of one of the largest Java community websites in the world, javaranch.com, and she is a member of the development team for the Sun Certified programmer exam. Bert Bates is also a long-time Java developer and trainer with extensive experience in learning theory. His background features a long stint in artificial intelligence with clients like the Weather Channel, A&E Network, Rockwell and Timken.
Is Head First Java right for you? That depends. Head First Java assumes you're a programmer or at least have experience with scripting languages. It assumes that you're smart, that you're creative and open to new ideas, and that you know you're just not the type of person who wants to learn the traditional way. Take a look at the sample pages, explore the background on brain-based learning, examine the table of contents, and see for yourself how Head First Java takes learning to a whole new level. See why Tim O'Reilly says, "This is the first really new approach to computer books that I've seen in many years. I think it's going to revolutionize how programming and other complex topics are taught."
Table of Content:
1) Dive In (a quick dip into Java)
2) Welcome to Objectville (intro to OO)
3) Know your Variables (understanding Java types: primitives, object references, pass-by-value)
4) How objects behave (instance variables and methods)
5) Extra-strength methods (writing more complex code)
6) Using the Java Library (solving problems with the API)
7) Better Living in Objectville (inheritance, OO design, abstract classes)
8) Serious Polymorphism (interfaces, more OO design, polymorphism)
9) Life and Death of an object (constructors and memory management / garbage collection)
10) Do the Math (static methods and variables, Math methods, Wrappers, and number formatting)
11) Risky Behavior (handling exceptions)
12) A very graphic story (GUI intro, inner classes, event handling)
13) Work on your swing (more GUI, layout managers and Swing components)
14) Saving objects (object serialization and file I/O)
15) Make a connection (networking: sockets and server sockets)
16) Release your Code (deployment: code organization, packages, executable JARs, and Java Web Start)
17) Distributed Code (deployment via RMI and Servlets)