Agile Java

Amazon listing
Example code
Prentice Hall listing
Save 25%!
press release
Press release
Ron Jeffries Foreword
Table of Contents
Training. Learn to program the right way, the first time, directly from the author.
Agile Java

Agile Java, published in 2005, breaks new ground in language learning books. Agile Java will teach you the craft of professional Java programming. Other books throw syntax at you, and let you figure out how to put it all together. Agile Java instead shows you the simple, proven technique of test-driven development (TDD), a highly feedback-driven programming tool.

TDD steps and guides you through the intimate details of building software. It teaches you how to build correct and well-designed applications. By working through the examples and exercises in Agile Java, you'll have built a solid foundation for professional Java development.

What People Are Saying About Agile Java

Some of the comments from Amazon (including comments from and
  • "a wonderful book and should be your first choice if you are learning Java."
  • "a fantastic primer to not only the java language, but to agile methods and junit as well."
  • "an absolute must have for beginners and intermediate programmers who may be unsure about what to learn or where to begin."
  • "Finally, a book that teaches java better than Eckel's work."
  • "I think this book, along with Joshua Bloch's Effective Java Programming Language Guide should be required reading for any attempting to learn Java."
  • "is significantly different and significantly better than most programming/language tutorials that have been written."
  • "...a ten-star work of art aimed at software engineering students learning Java."
  • "... the thing that really sticks out for me in this book is the way the book tackles three things aspects of program development together... Fantastic!"
  • "Auf 700 Seiten (+Anhang) wird eine exzellente Einführung in Java geboten."
  • "This is a great book. ... The genius of Agile Java is that it's immensely practical, with plenty of tips and advice. It's also very well written, not dry and textbook-like at all. ... Highest recommendation."
  • "...loving it. Best book on TDD I've seen, and a wonderful way to learn a language."
  • "Excellent! ...Clear, concise, and occasionally humorous. A pleasure to read! ... thanks to Agile Java, I feel secure in my current understanding, and confident in my ability to write elegant, professional looking code."
  • "This is my new favorite-book-to-give-to-anyone-who-is-learning-or-using-Java. ... Just like it says in one of the quotes on the cover, this book is now required reading for the Java programmers at our company."
  • "It is now the only book I recommend to beginners and I introduce it as a 'must' read for all my new hires."
  • "This book is a superb introduction to Java and TDD. The author takes the courageous approach of introducing objects and unit tests right from the start, rather than the traditional approach of covering 'procedural Java' first. The clarity and organization of the material is first rate, as is the gradual inclusion of real world issues." (
  • "I found this book to be an excellent text when learning TDD. ... I would recommend this book to anyone who is begining in Java.... As for more experienced developers, I think the book is worth a read and you can read it in a short space of time due to simple writing style."
  • "With Agile Java, JUnit comes alive in the hands of the developer. It's a joy to test and refactor code that looks good and is good."
More quotes:
  • "At long last a book that integrates solid beginning lessons in both Java and Test-Driven Development!" - Steven A. Gordon, Ph.D., ASU Software Factory
  • "Highly recommended!" - Paul Hodgetts, Founder and CEO, Agile Logic, Inc.
  • "A great way to learn Java. Required reading for our engineering team." - Andrew Masters, CIO, 5two8, Inc.
  • "A must-read for anyone developing Java applications." - Brett McInnis, VP eBusiness Technologies, Corporate Express
  • "An excellent resource for programmers learning Java." - Kent Beck
  • "I enjoyed the book and found it valuable." - Ron Jeffries
Blog/web references:
  • "Thawing to Java," Mark Aufflick
  • "Craft, culture, and communication," Archimede's Lever. "Last weekend, I picked up a great book, Agile Java: Crafting Code with Test-Driven Development... There are maybe half a dozen books that any serious developer recognises as landmark events in the advancement of her or his craft. This, ladies and gentlemen, is one of them."
  • Dr. Fausto Iannuzzi," Agile Java "è un ottimo libro per imparare la programmazione Agile in Java e l’approccio TDD (Test Driven Development)."
  • "Code Coverage Lessons ," Tony Obermeit. "A favourite book of mine [is] Agile Java..."
  • "Learning Java via TDD: An impressive approach," Binstock on Software. "I recently wrote a review of Java tutorials (before I knew about this book). Despite the many great titles I discuss in that article, if I were teaching a Java class today, this is definitely the book I would use. Bar none. And I don't even like TDD.."
  • Test Driven Development with Python
    "'Agile Java: Crafting Code with Test-Driven Development' by Jeff Langr and 'Test-Driven Development by example' by Kent Beck are two books that frankly I believe are 'must read' items."
  • Agile Java by Jeff Langr, Jason Hudgins at "A Blog Called Foo"

    "The aim of this book is to teach the art of java programming using TDD (Test Driven Development), and it does so wonderfully. I would not, however, recommend this book to a first time programmer. If you have some programming experience, and would like to learn Java, then this book wouldn't be [a] bad choice.

    "Writing good unit tests is a skill like any other, and that's the primary reason I picked up this text. Besides from the obvious, Jeff offers great practical advice on coding style and even naming things (the hardest thing in programming!). The book reads like sagely advice from a battle hardened coder, he's been there, done it, and this is the distillation of what works."

Miscellaneous reviews:
  • SDForum, review by Dan Dunne. "A fine pioneering book that attempts and succeeds in helping the new Java programmer to learn Java."
  • Software Quality Professional, review by Ray Schneider. "Agile Java is one of those books that come along only once in a long while."
  • Note: This review was removed from Amazon, to my disappointment (but can be found in internet cache)
    Excellent!, 2007-04-17
    Reviewer rating: *****
    Langr understands what it's like to be a beginner, and a professional!
    1. Langr's book focuses on refactoring and Test Driven Development -- not only does this teach you good development practices, it makes the mechanics of the language stand-out, so they are more obvious to a beginner.
    2. Each new concept is introduced in context, and you will integrate it into your code right away. This makes it easy to understand and remember new concepts.
    3. You will work on cumulative programming projects, refactoring out old solutions as you learn concepts that allow you make better ones. This makes the introduction of new concepts feel seamless, and allows Langr to introduce development concepts that would not apply to smaller programs.
    4. The book is clear, concise, and occasionally humorous. A pleasure to read!
  • StickyMinds "Review by Noreen Dettinger."
    "This book will help me build on the agile knowledge I have gained to date. While I agree with the author’s statement that this is not a Java certification book, I do believe that I have learned some good fundamental techniques and improved my knowledge base. The book has encouraged me to continue down the path to a more advanced understanding of Java, knowledge that I believe I can apply to my advantage when carrying out my responsibilities as a software tester."

Note on the Use of JUnit 3.8

At the time of publication, JUnit version 3.8 was the de facto standard for JUnit unit testing. JUnit 4 changes the paradigm to use Java annotations for marking test methods. JUnit 4 is still be able to execute tests written for JUnit 3.8, so all of the examples in the book should still run without modification. Transitioning from JUnit 3.8 to JUnit 4 is reasonably straightforward.

Discussion Forum

I've decided to shut down the discussion forum for Agile Java. Most valid postings in the forum have been errata reports (and I think just about all problems have been found), or specific questions, usually with respect to compilation/classpath issues. Please email these questions directly to me in the future. I am vigilant about responding to emails. I'm not very good about responding in the forum, since (a) it doesn't notify me on a new posting, and (b) it has been overrun by jerks who keep posting spam, and I dread having to go and manually delete all the junk postings.

Again, please send me emails with any questions or comments about Agile Java. Constructive Amazon reviews are always welcome!