About the Book

This page sets out to answer some of the basic questions about "Java For Testers". If you have any other questions about "Java For Testers" then please email me "alan(at)compendiumdev.co.uk" and I'll try to answer, and update this page.

Can I read it before I buy it?
Where Can I Buy It?

You can buy it online at leanpub.com


People ask me what books I recommend to learn Java. And I have a few books that I thoroughly recommend, but they are not aimed at beginners.

Those that are aimed at beginners, I re-read recently and came to the conclusion that they would confuse more than help, and they don't help people become productive fast.

I wanted to write a book that gets testers started fast, is easy to follow, and has examples related to their work.

Who is it for?

People who want to learn Java.

Particularly people on a team that want to learn Java, but who aren't going to be coding the main Java application i.e. Testers, Managers, Business Analysts, Front End Developers, Designers, etc.

Why 'for testers'? 

Java Developers coding production applications in Java need to learn Java differently from other people on the team.

Throughout my career I have written thousands of lines of Java code, but I have rarely had to compile the code into an application. Yet, when we learn Java, one of the first things we learn is 'javac' and the 'main' method.

Most of the code I write is wrapped up in a JUnit @Test method.

Every time I have taught Java to testers or other people on the team, I start with a JUnit @Test method and show them how to run tests from the IDE.

Testers, and other people on the team use java differently, and I think we need a different order and approach to learning Java.

What if I already know Java?

If you already know Java then this book may not be for you.

It is aimed at beginners.

I cover 'just enough' to get people writing tests and abstraction layers, but I don't really go down into a lot of detail. For example, I cover the basics of Inheritance, but don't really cover Interfaces in detail. I explain the concept of Interfaces, because we need to know it to understand Collections, but not how to write them.

Why? Because I want to cover enough to get people started, and working. I don't want to overload them. Once they are on their way, and have gained some experience. Then, when they are ready, they should have the basic knowledge to let them understand the additional concepts.

What topics does the book cover?

This is a high level view of the topics the book covers.
  • JUnit
  • Installing Java, Maven and the IDE
  • Classes
  • Methods
  • Packages
  • Comments
  • Primitive Types
  • Operators
  • Constructors
  • Code Completion
  • AutoBoxing
  • Integer, String, Boolean
  • Static
  • Fields
  • Scope of methods and fields
  • Naming conventions
  • Final
  • Escape Sequences
  • Selection: if, else, ternary operators, switch
  • Iteration: for each, for, break
  • Arrays
  • Collections
  • Inheritance
  • Exceptions, including how to create your own
  • Random Data
  • Dates
  • File Handling
  • Properties
  • Property Files
  • BigDecimal
And since the book is mainly aimed at testers, and working towards testers creating abstraction layers for test automation:
  • all the examples relate to test libraries or abstraction layers
  • we cover the creation and refactoring of Domain Objects
When will it be released?

You can buy it now. I set the % on leanpub to 100%.

Can I see the contents?

Yes of course, you can see the contents over at leanpub.com

Do I have to type in all the code?

It is worth following all the exercises and typing in enough code to experiment. But all the code used in the book, and all the answers for the exercises are available on github.com so you can compare your code with the code that I wrote.
Did the published book meet its aims?

When I started writing the book I wrote down my reasons for writing it:

From my experience of helping testers learn Automation, I think the world needs another Java book, but this time approaching the subject in a different order and with different examples.

When I wrote "Selenium Simplified" I covered 'learning Java' and 'learning Selenium' at the same time. This meant that it worked really well for people new to both subjects, which it was designed for. But if you already knew Java, the book was a little slow.

Instead of revisiting "Selenium Simplified" I've decided to create a book that covers the fundamentals of Java, and then when I write other books on WebDriver or Test Automation, I don't have to embed the basics in those books and they can focus on the topic directly.

Because they read "Java For Testers" people have
  • started automating applications
  • changed roles
  • moved on to new jobs
  • collaborated more with developers
  • gained more flexibility on projects
  • started using the skills they 'learned' at college
I think it met its aims.

No comments:

Post a Comment