Some of my favorites Programming / Developer Books
I've been reading quite a few software dev. books over the years, some at work and some for other languages/methodologies I was interested in, here are some of my favorites.
Those are more or less ordered by order of preference.
-
Practices of an Agile Developer - Venkat Subramanian, Andy Hunt (The pragmatic Programmmers)
I'm a strong believer in agile methodologies and had been pushing for them before the term was even coined.
This books explains very clearly the principles and benefits without pushing/forcing you into any specific implementation.
It's clear and to the point and very quotable to a decision maker which is a huge plus for me :)
-
Practical Algorithm for programmers Andrew Binstock, John Rex (Addison Wesley)
However all the big companies have interviewed with (Amazon, Disney, Cap Gemini ...) seem to always focus on algorithmic questions for recruiting interviews (even for senior position which I find odd but that's another story).
So anyway, if you have been out of school for many years, chances are you forgot most of that stuff ... and here is a nice book to refresh your memory, as the name says it's targeted to programmers, and to me the code samples are worth a thousand words, even if written in C as is the case in this aging book.
-
Refactoring: Improving the Design of Existing Code Martin Fowler, Kent Beck (Addison Wesley)
While it's the only book I own from this Martin Fowler, I've read many of his on-line papers and recommend just about anything he has written, I agree with most of what he preaches and he is an excellent technical witter, not too much or not enough technical, not boring, not pompous .. just good.
-
Design Patterns Explained. Alan Shalloway, James R Trott (Addison Wesley)
I had a somewhat negative image of design patterns because I've worked with people who think the more pattern they use the better it is.
Personally I feel I "discovered" patterns before I read about them, and I think that's best.
When I read about patterns I felt I already used most of those anyway, from experience.
Anyway for me patterns are about using the SIMPLEST proven solution possible, not about using as many patterns as possible ... over over-architect software is often bad software in my view: It's rarely good to over-think software because requirements change and whatever you based your architecture on is gonna change as well, so simpler is better.
So anyway, this book does a good job of explaining the most common patterns and how they work, and it teach me the proper technical wording that I did not know before, this is valuable when talking design with other technical ppl as it is clear and defined.
-
Thinking in Java Bruce Eckel (Prentice Hall)
This was one of my very first Java book (version 1.0), I printed it myself and killed about 8 trees in the process.
Thanks to the author for releasing this book for free, not only it's free but in my view it's one of the very best Java book available regardless of price.
It's very detailed and covers all of the Java standard API.
-
Programming In Scala Martin Odersky, Lex Spoon, Bill Venners
This is a very well written book(700 pages) and while I'm not completely sold on Scala, this book is excellent.
The book is carefully written and you can tell they made some serious effort to explain things clearly and also use a nice, clean layout, in particular source code examples are very nicely laid-out and referenced.
Scala as just about every feature anybody could want, including the kitchen sink and the power tools to fix it, so this book besides being about Scala is also great at explaining many other things.
It's a good intro - or sales pitch :) - to Functional programming and also does a good job explaining things like closures, functions, concurrency/actors etc...
So whether you fall in love with Scala or not, it's an excellent book for any programmer because it covers and explains very well many programming concepts and advanced features.
-
Java / J2EE Job Interview Companion K. Arulkuraman, A. Sivayini (LuLu)
While this is the format of the book, it turned out to be more valuable than expected.
What is nice is that it covers just about everything J2EE related, from the core API to Spring, Hibernate etc.., so it turns out to be a very nice overview of all the (ever-growing) J2EE technologies, it's nice to have on hand as a quick reference guide (in a way sort of like a J2EE dictionary).
-
Programming in Python 3 Mark Summerfield (Developer's Library)
I picked up this book, even though right now I still use Python 2.x.
I like the fact that the book is not just about what's new about Python, but does a good job of introducing Python from scratch and also highlighting the differences between Python 2 and Python 3.
-
WxPython in action Noel Rappin, Robin Dunn (Manning)
Python is a good multi-platform language, and WxPython is a very nice cross-platform UI framework for Python.
Writing WxPython can be refreshingly easy and quick compared to Swing, On the other hand WxPython is a little quirky (i would say it feels a bit "hacky" at times), so this books comes in very handy at pointing out the things to watch out, as well as enumerating all the available UI objects and how they work.
It also comes with good code/examples that helps to get going fast.
-
Groovy & Grails Christopher M Judd, Joseph Faisal Nusairat, James Shingler (Apress)
The fact is I still haven't had time to use Groovy all that much, but I'd like to.
This book focuses mostly on Grails, the Groovy introduction is OK but not very detailed.
On the other hand the Grails part of the book is excellent, it's very detailed and i really like the approach which is to create a real-life, believable project/site and implementing it with Grails. I like code by example and this is a great one. It also goes through a lot of the enhancement one my want, like authentication, templating and such.
-
Effective Java Joshua Bloch (Addison Wesley)
It's written by Joshua Bloch, the leader behind Java 1.5+ new features and main author of the Collection Framework.
I have to say I've mixed feelings about the new features of Java 1.5, some are great, but I feel one of the
things that made Java so reliable and maintainable was it's simplicity. Java 1.5 and later add quite a bit of complexity which I'm still debating the value of ... feel like the extra complexity in concurrency / threading and such might mean less stable and more buggy Java programs (easier for a novice programmer to overlook something.).
-
Agile web development with Rails Dave Thomas, David Heinemeier Hanson (The pragmatic programmers)
The book is fine, but while I love most of the concept behind rails (in particular Convention over configuration), I never really fell in love with Ruby, even though I tried several times. I don't really like the "freedom to write whichever way you please" because it means the IDE can't be as smart and help me, the interpreter either, and it's gonna be more difficult to read/merge/maintain code in the long run (see Perl).
I'm not saying it's a bad language, it's quite good and did start a little revolution in dynamic languages but it's just not for me, I would rather use Python or Groovy. Also i don't want to say anything to bad about Ruby, because the fans are pretty dedicated and feisty :)
-
J2EE development without EJB Rod Johnson (wrox)
I have to say however I was a bit disappointed, because I felt measled a bit, I didn't realize it was going to be a book about Spring - should have known who Rod Johnson was - Duh !
It should have been called "How to use Spring, the great alternative to EJB" or something to that effect :)
If you want to learn how to use Spring however it's a very good book from the framework author himself.
Comments:
Add a new Comment

Back to top