I have a list of books, which I highly recommend.
Each book taught me something different.
It all begun years ago, when I went into interviewing process for my second work place.
I was a junior Java developer, a coder. I didn’t have much experience and more importantly, I did not have a mentor or someone who would direct me. I learned on my own, after a CS Java course. Java 1.4 just came.
One of my first interviewers was a great mentor. We met for an hour (probably). I don’t remember the company. I don’t remember the job position. I don’t remember his name.
But I DO remember a few things he asked me.
He asked me if I know what TDD was. He asked me about XP.
He also recommended a book: Effective Java by Joshua Bloch
He didn’t even know what a great gift he gave me.
So I went on and bought Effective Java, 1st edition. And TDD by Kent Beck.
That was my first step towards being craftsman.
Effective Java and Refactoring
These two books look as they are not entirely related.
However, both of these books thought me a-lot about design and patterns.
I started to understand how to write code using patterns (Refactoring), and how to do it in Java (Effective).
These books gave me the grounds for best practice in Java and Design Patterns and OOD.
Test Driven Development
I can’t say enough about this book.
At first, I really didn’t understand what it was all about.
But it was part of XP !! (which I didn’t understand as well).
The TDD was left on the shelf until I was ready for it.
Clean Code and The Pragmatic Programmer
Should I say more?
If you haven’t read both, stop everything and go to read.
They are MUST for anyone who wants to be craftsman and takes his / her profession seriously.
These books are also lots of fun to read. Especially the Pragmatic book.
The Clean Coder
If you want to take the next step of being a professional, read it.
I was sometimes frustrated while reading it. I thought to myself how can pass all of this material to my teammates…
Dependency Injection
Somewhat not related, but as I see it, if you don’t use DI, you can’t write clean, testable code.
If you can’t write clean, testable code, you are missing the point of craftsmanship.
The book covers some injectors frameworks, but also describe what is it all about.
Below is a table with the books I have mentioned.
One last remark,
This list does not contain the only books I read.
During the years I have read more technical / professional books, but these made the most difference for me.
Name | Author(s) | ISBN |
---|---|---|
Effective Java | Joshua Bloch | 978-032-135-668-0 |
Test-Driven Development | Kent Beck | 978-032-114-653-3 |
Refactoring | Martin Fowler | 978-020-148-567-7 |
Dependency Injection | Dhanji R. Prasanna | 978-193-398-855-9 |
Clean Code | Robert C. Martin | 978-013-235-088-4 |
The Clean Coder | Robert C. Martin | 978-013-708-107-3 |
The Pragmatic Programmer | Andrew Hunt , David Thomas | 978-020-161-622-4 |
Good List, I have read Effective, TDD and Refactoring… I would add ‘Working effectively with legacy code” I think it is as good as Effective
Thanks,
Added it to my to-read list
+1 for Working ‘Effectively with Legacy Code’. I share your thoughts completely about Pragmatic Programmer and Clean Code/r. I gave the PP quick reference guide a place of honor on my desk :). Also, I would HIGHLY recommend Domain Driven Design: Tackling Complexity in the Heart of Software by Eric Evans
Yep , PP and CC have place of honor 🙂
DDD I read a few years ago. I guess I should check it again.