Agile Software Development, Principles, Patterns, and Practices
by Robert C Martin
ISBN 0135974445
Date Read 2004
My Rating
This book is simple. This book is complex. This book covers a lot of relevant information. This book is practical. This book is written in an easy to read, concise way. This book has become one of my favorite books. All in all, this is a great book.
First, the simplicity. Martin covers quite a few design patterns in this book. And the patterns examples are the best you’ll find anywhere else. If you’ve read the GoF book, you know the examples there are not so easy to understand. Right now, I’m reading Refactoring to Patterns and some of the examples there are not easy to understand as well. But when I turn to this book, and a pattern is explained, it is simple, easy to read, easy to understand. That’s exactly what I’m looking for! I didn’t realize this on my first read of the book last year, but after reading other books on patterns, I see this very clearly. Uncle Bob (that’s what they call the author), does an excellent job in explaining difficult material.
Second, the complexity. Some of the examples are in C++. And they’re long. I like C++, but it is a lot harder to understand than Java. It is just not as elegant. If the examples were in Java, I would be a lot happier.
Third, the breadth of information. There is a lot of material covered in this book. Martin covers Agile processes (XP), testing, refactoring, class design principles, package design principles, patterns, and UML. All in one book! No wonder the book gets a little complex at times. However, the way the information is presented by Martin in a clear, pragmatic way is one of a kind.
Martin has become one of my favorite authors (along with Steve McConnell and Martin Fowler) by reading this book. His style of writing is excellent. He will tell you why you should do something, he will also tell you why you should avoid it. Simple. Clear. Filled with advice. Excellent. He is a true craftsman.
Get this book, read it, and have it by your side because you’ll use it often. After a while, re-read it. You’ll be a better developer, a better designer. A classic book.
Effective Java
by Joshua Bloch
ISBN 0201310058
Date Read 4/2005
My Rating
Let me ask you a simple question? Have you programmed in Java for more than a year or two? If no, than this book might not be for you. On the other hand, if you’ve been programming in Java, why haven’t you read this book? Seriously. Why haven’t you? How about you, Stas. I know. I know. I’ve been programming in Java for 5+ years and I read this book last month. I should have read it sooner. Much sooner. Anyway, I read it, so I’ll tell you why you should read it as well.
The Foreword of the book sums up the book very nicely:
Nice job, Mr. Bloch. Very nice work. I rate it 5 stars.
Like I said, I’ve had decent exposure to Java over the years, but when I was reading this book, I was constantly telling myself: Wow. This is cool. This is a neat way of doing things. How come I did not come across this earlier.
Mr. Bloch shows you how you can effectively use Java. He does not cover everything, but the areas he covers are really helpful. Plus, he writes good English: easy to read and down to earth (I wish more authors were writing like that).
Read it and you will be a better Java programmer.
J2EE Design and Development
by Rod Johnson
ISBN 0764543857
Date Read 10/2004
My Rating
I really liked this book, but after two months of reading it (700 pages), I’m happy to be finished. That’s my general feeling now. But I can tell you one thing, Rod Johnson’s book is the best book on J2EE I have read.
If you are a J2EE/Java developer, then this book is a must read for you. This book is loaded with practical issues. Rod doesn’t only talk about good features of J2EE, he tells you what the bad ones are and why you should not use them (i.e., EJB).
Rod Johnson is a true J2EE guru. He’s also a good OO developer/architect. You know why I know that? Because he stresses that in this book. He’s a proponent of flexible, maintainable, testable, least-complex, and robust designs. He gives you couple examples of design patterns. All of this in a very convincing, argumentative manner. It almost seems like talking to another person.
I really liked the first five chapters, where he talks about designing J2EE projects and concepts behind it. He has one chapter just devoted to testing, which he’s a big proponent of. He talks about different risks and choices, about different OO design issues, and coding standards. Very useful and practical information. He then, beyond chapter five, talks about different beans, DAOs, MVC design, and profiling. The two chapters on MVC are great as well.
As you can see, I liked this book. However, like any book, this book is not perfect. The one thing I think could have been improved is the use of examples. I like to learn by examples. Rod, though, he showed examples, they were taken out of context — they weren’t the full listings. That’s confusing to me. Makes it harder to read. One other thing, the author’s writing style is not that catchy, if boring at times. At times, because other times, it’s very good. Practical.
Overall, I’d give this book 4.5 / 5 stars. I highly recommend it if you are a Java developer. If you want to increase your developemnt toolbox and knowledge, read it.
Are you looking to test me? Or maybe you just want to see how I stuck up against other IT guys? OK. OK. What I’m trying to say, is that it is always good to get a second opinion. So, I’m going to give you that second opinion (or more than one).
Here are a couple of links to pretty good Software Bookshelves from established software gurus. These lists “guide” me to what my next reading should be. I always like books recommended by others. It gives me a bigger determination to read it.
The best
Joel on Software: Book Reviews
Steve McConnell (my favorite author): Recommended Reading List
windchill23 (20+ Years Programming): MasterSoftwareDeveloper
Worth a look
Otaku Cedric (accomplished developer): books read
Arno Hutter (don’t know much about him): Software Bookshelf
Tom Van Vleck: Software Engineering Reading List
I really like McConnell’s lists as well as Joel’s list. Almost all of the books listed there are on my must-read books. Those are classics, basically. Tom Van Vleck’s list is good also. I like first couple, five I think, books from the Software Bookshelf.
There you go, now you can have few other sources. Plus, you might get a glimpse of things to see in my future reading.
Facts and Fallacies of Software Engineering
by Robert L. Glass
ISBN 0321117425
Date Read 2004
My Rating
Want a quick overview of what software engineering is? Want a short book that will tell you what works and what doesn’t work in software engineering? Want a book that’s written by one of the best IT writers?
Look no further: you’ve got it all in this concise, 220-pages book that will become a software-engineering classic. Yes, this book will join the ranks of Mythical Man-Month, Peopleware, and others. This is not a how-to book, but rather factual information about the state of software-engineering. You’ll get 50 facts from areas like management, quality, life-cycle, and more; plus you’ll get 10 fallacies about pretty much the same areas.
Robert Glass created a masterpiece. This book will open your eyes. It should be a required reading by every software engineer. We could all benefit from Glass’s extensive research.
One thing I found very interesting. You’ve all heard that a best programmer is 10 times as productive as the worse one. Glass, in his Fact #2, says that “The best programmers are up to 28 times better than the worst programmers.” How about that?
All in all, a must read. I loved those small, 2-3 pages long chapters with resources listed at the end of each one.
Code Complete
by Steve McConnell
ISBN 1556154844
Date Read 2003
My Rating
This book will make you a better programmer, and give you guidance (tips & advice) for continual improvement. As simple as that. This book is also recommended by almost anyone who’s read it (it’s a favorite for Martin Fowler — great IT guru, writer). If you are serious about programming, and about getting better, you cannot skip this book. An update to this classic is coming up soon (June 2004), so you should probably wait for the 2nd edition (I know I’ll read the second edition also).
People refer to this book as the encyclopedia of good programming practice, and it definitely is.
All in all, this is my favorite book on programming: if I had to pick one book out of all the books I’ve read (and the list is growing) I would pick this one.
This book convinced me to become part of the software community. I joined the professional societies for computer professionals, IEEE Computer Society and the ACM, subscribed to IEEE Software (best magazine on software there is) and I see that I’m growing. What’s more, in retrospect, I should’ve done it long time ago, since this book was published in 1993. Read this book and see yourself grow…. A must read.