Here's a few nice things people have said to me about the book, either directly or via online reviews:
As for feedback, overall I really enjoyed the book. The last chapters were tough, but important to cover. And I see that clearly now after having read them! Being able to form an opinion on integrated vs isolated tests is important, and without having read the final chapters I wouldn't have been able to begin to form an opinion. I feel like I know enough now to break the best practices rules when I need to. If that makes sense.
I'm currently reading your excellent book "Test-Driven Web Development with Python" and I really love it! I'm new to Python and Django but I already read many books on TDD in other languages (C# and Ruby mainly) and I practice TDD for 3 years. I think that your book has the most interesting approach to TDD I've ever read. Thank you for this!
I really appreciate your attention to detail. Just the right balance, so as not to lose the view from above whilst being very clear about (to me) very important disclosures about your thought process. At random: “But we won’t do them [refactoring] right away, because right now our application is in a broken state.” Again: Your thinking out loud about why you’d tend to Model Layer validation rather towards a plethora of form validation. Good to think about; good to hear your reasoning.
I think you’ve been very clever to combine so large a number of really important ideas and, at the same time, pay justice to them with just the right amount of detail.
It’s so important, this detail. The hundreds of little micro-decisions a programmer decides during each hour of programming: what to call this variable? should I commit now? should I refactor yet? Is it worth writing a test for this? I should break this file / function into smaller pieces as I’m losing control of the idea...
So, to be able to read along with your thought processes as we explore new ways of doing things: making micro-decisions about new things we’re just getting to grips with and that still feel a little unfamiliar under our fingers... I very much and appreciate your book. It’s certainly been an eye-opener for me.
Thanks Iain :)
I saw the book at Barnes and Noble, looked through it and bought it. I did see I could read the book for free and then make a decision whether or not to buy it, but I looked it over and realized I wanted it in print so I could make notes, mark pages and keep it as a reference. I am now on page 22 and I am very glad I just bought it.
I am a systems administrator, learning Python, and looking at how software is developed so I can create and manage a infrastructure for continuous integration of modern applications. I figure if I really understand what programmers need to do, I can help build a solid infrastructure, but also the book is a lot of fun
I know I am not your target audience, but the book is well written, easy to understand and pulls together all the concepts of modern software development in a way I can understand. It is helping me learn python because I enjoy a project to work on rather than endless discussions of how loops work and what a variable is. The basic concepts of a language are important, so I have other books I use as reference. Your book pulls me in and gives me the desire to learn about if statements, classes etc... and makes reading the other books less dry.
I've read a lot about Python, a lot about Django, and a lot about TDD, but I've never seen anyone put it all together as elegantly as Mr. Percival does in this book. There's something here for Django newbies and old hats alike. (...)
The book has really been great so far. I found it a little challenging to learn Django and TDD at the same time. But, on the other hand, I haven't seen any other book that incorporates all of the myriad technologies that are needed to do real web development. I appreciate that you throw everything in the mix, just like what's needed for a real app, instead of keeping all the technologies boxed off in separate chapters.
this has been the best resource for TDD/python/web I have read. And it happens that I am specifically interested in Django development, so it was perfect for me. The book is easy to read, the code in the book has very few (if any) mistakes, and it covers a wealth of material. Great job!!
I just wanted to let you know that I'm going through your book and it's hands down the best teaching book I've ever read. Your conversational style and pace of introducing new ideas make for an incredible learning experience. I feel like I've learned more about programming and web development in the last few days than any month since I started learning.
I'm still a beginner, especially with the Django framework, but I'm finding that TDD is such a great way to learn the internals of any framework. The style forces me to think ahead by writing tests to pre-emptively catch issues which could surface, and as such it becomes detrimental to blindly copy and paste "working" code from external sources.
I can't thank you enough, and have purchased an electronic copy of the book as a thumbs up!
Brilliant book. The examples are easy to follow, and in following them, you quickly reach the point where you can put together your own Django application. The book also gets the pacing right, so that you learn things and feel that they're immediately useful. Previous books in this space have always left me feeling I knew a large amount of trivia, but without a proper framework to apply it.
With a solid understanding of how to operate Python (I would recommend Allen B. Downey's Think Python) and some minimal knowledge of HTML, Test-Driven Development with Python has kick-started my use of Django and explained the strength of TDD as a development process.
This isn't a book exclusively about Django, and as concepts are introduced Harry Percival references the appropriate Django documentation which I will review later to reinforce what I've learned from the book.
What H. Percival excels at is illuminating just how well-tuned Django is for the TDD process. Django's built-in feature to write and run unit and functional tests would likely feel like an afterthought, or a mere option if you were learning Django exclusively from their documentation. Instead, this feature is highlighted as we lay the foundation for making TDD our development process developing and maintaining rock-solid projects.
Why, even the first 4 chapters were worth the money spent; can't wait for more. A very good 'hands-on' book - something that's not so easy to come by. Made me love both Python and Django already - I'm a newbie with both.
1) Your book is awesome!
2) Your book is way too long.
3) Your book covers way too many subjects.
4) It's probably the most relevant book I've ever read with regards to practical application in the daily life of a Python programmer, partially because of #2 and #3.
5) It would be even an even better book if you could address #2 and #3 whilst simultaneously not sacrificing #1 and #4. No, I have no clue about how to actually do that. I'll leave that as an exercise to the author. ;-)
I'm writing a book all about TDD and Web programming. Read the draft and let me know what you think!
"Hands down the best teaching book I've ever read" — "Even the first 4 chapters were worth the money" — "Oh my gosh! This book is outstanding" — "The testing goat is my new friend" — Read more...
A selection of links and videos about TDD, not necessarily all mine, eg this tutorial at PyCon 2013, how to motivate coworkers to write unit tests, thoughts on Django's test tools, London-style TDD and more.
This is my old TDD tutorial, which follows along with the official Django tutorial, but with full TDD. It badly needs updating. Read the book instead!
The campaign page, preserved for history, which led to the glorious presence of the Testing Goat on the front of the book.