Robert C. Martin is probably one of the most respected developers around, and Clean Code is one of his legacies to the generations of developers. The examples are written in Java, but they are easy to understand for any developer, and can be implemented in any programming language. Uncle Bob talks the reader through crafting software that is scalable, easy to read and future proof. A must read for anyone serious about improving their coding style.Click here to read more…
2. NoSQL Distilled – Pramod J. Sadalage
NoSQL Distilled explains the differences between the NoSQL databases and the traditional, relational databases. If you’re new to the concept, it will give you examples and uses for this technology, as well as comparisons of different types on non-relational databases. Sadalage helps you understand the way NoSQL databases should be architected in an easy and approachable way. Click here to read more
3. The Art of Unit Testing – Roy Osherove
Probably the best book about Unit Testing ever published. Even if you’re not familiar with .NET environment, you’ll be able to read through the examples, and implement it with your own projects, regardless of the language you work with. It fully covers subjects like mocks, stubs and mock frameworks that are used in the industry.
Sooner or later you will be involved in a project that will require search functionality beyond full text MySQL matching. This book will explain to you the practical concerns of search interface design. Finding information is the most important role a website should offer, and Search Patterns will help you discover a pattern language for search that embraces user psychology and behavior, information architecture, interaction design, and emerging technology. Click here to read more…
5. Design patterns – E. Gamma, R. Helm, R. Johnson, J. Vlissides
Design patterns is a real classic, yet surprisingly, there’s still a large number of developers who never read it. And if you did, it’s still good to brush up on your Singletons, Adapters and Schedulers. Knowing the patterns allows developers to create more flexible, elegant and reusable designs, without having to re-invent the wheel. Click here to read more…
6. Leading Lean Software development – Mary & Tom Poppendieck
Leading Lean Software Development will help you run a neat and efficient development team. Learn how to achieve technical excellence by implementing low dependency architectures and Test Driven Development. Focus on your customers and revamp policies that cause inefficiency within the organization. Find out how to manage your biggest risks and optimize your workflow and schedules. Click here to read more
7. Don’t make me think – Steve Krug
A great read for every developer. Even if you’re main focus is on backend you should still understand how the users interact with your product, and what would make the experience easier for them. Krug’s book has been a bible for the UX designers for years, but it is written in a manner that makes it approachable and easy to understand. Know what how you want your software to work, and attract more users. Click here to read more
8. Professional SEO with PHP – C. Darie, J. Sirovich
Whether you’re responsible for the SEO of all the websites you’re building, or trying to drive traffic to your personal blog, this is a book for you. Finally get to understand the logic behind the search engines indexing, and what can help your Page Ranking. You will be able to work with your Marketing department, as a more efficient team.
9. Data Analysis with Open Source tools – P. K. Janert
This one is for all the data analysis geeks like myself. A great book that explains techniques for working with data in business environment. P. K. Janert walks you through examples of describing the data in graphical form and development of analysis calculations as well as probability arguments. If you need to mine your data in fast and effective manner, this is the position for you. Click here to read more
10. Getting Things Done – David Allen
David Allen has a massive following among the startup crowd. I’ve been a bit sceptical about it at first, as I always thought I was quite well-organized, but I gave in eventually. If your workload is overwhelming, Allen’s tips and methods will help you gain control of it and spend less time worrying about the deadlines, and instead, delivering what you’re expected to deliver.
[...] 10 programming books that will change your life A lot of these are classics, but in the event you need a few more books for your reading list. [...]
None of these books are good enough “to change your life”. Read “Structure an Interpretation of Computer Programs” instead and please and skip the rest. http://mitpress.mit.edu/sicp/
On the comment about reading Design Patterns leading to over-design. I would say just like any new fun skill you learn you tend to overuse it to the point of overkill initially. I did the same thing, but eventually you realize this, calm down and then just implement them in the fashion they were meant. It’s a must have skill if you are a Object-Oriented Programmer.
I would say your list show a focus toward mainstrain technology and WEB. And there even a book that has nothing to do with programming at all (Getting Things Done that I read myself).
But I would say books are “dangerous”. I would use the exemple of design patterns. At first, design patterns as presented in this book look like a good idea. They give you way of solving commonly found problems in your software.
In my experience, somebody that just learned design patterns tend to find them very interresting (it was sold to them that way), and tend to use them everywhere. They are viewed as some sort of universal strategy. Whereas in reality theses patterns where contextual to the authors design style and specific to their programming language and software domain. Theses Design pattern are focussed on fat client GUI using a classical OOP language.
Using too many patterns make for boilerplate, ceremony and overengineering. As we know code complexity and ownership cost of code is exponential with code size, this is a very bad idea.
So to balance things out, if you learn a book on design patterns, I think you should think about KISS (Keep It Stupid Simple) so you avoid to overdesign. You should also take a look at completely different way to design/build code so to see this theses OOP design pattern are not universal at all. Read something good about functional programming. Look at what you can do with Haskell, and the designs it favor. Look at what you can do with Lisp, and the designs it allows.
Sorry editing error! I managed to forget to fill in the authors for Leading Lean Software Development. Hope you enjoy the read, and let me know if you think there’s something that I could add to the list as well :)
Thank you for this very nice list. I’ve read only three of those, so I have a lot of catching up to do :)
One thing irritates me: Why did you name only Erich Gamma out of the infamous Gang of Four as the author of Design Patterns?
Just became aware of this http://t.co/xLfbcuDm
[...] 10 programming books that will change your life A lot of these are classics, but in the event you need a few more books for your reading list. [...]
RT @juan_palacio: 10 programming books that will change your life http://t.co/H8Lq1dBP
None of these books are good enough “to change your life”. Read “Structure an Interpretation of Computer Programs” instead and please and skip the rest. http://mitpress.mit.edu/sicp/
RT @JoshRobinson: 10 programming books that will change your life http://t.co/ruGqTQAj #codecraft #books
On the comment about reading Design Patterns leading to over-design. I would say just like any new fun skill you learn you tend to overuse it to the point of overkill initially. I did the same thing, but eventually you realize this, calm down and then just implement them in the fashion they were meant. It’s a must have skill if you are a Object-Oriented Programmer.
aaaaand I bought it :)
http://www.amazon.it/gp/product/B00666M59G/ref=oh_d__o00_details_o00__i00
15€ for both
I keep a copy of Design patterns on my bedside table, but most of these suggestions I simply didn’t know. Thanks for pointing me to it
And here is the link: http://www.joelonsoftware.com/navLinks/fog0000000262.html
Really? Change your life? :S I prefer Joel’s much more close to “Programming” that “Web Development.
I would say your list show a focus toward mainstrain technology and WEB. And there even a book that has nothing to do with programming at all (Getting Things Done that I read myself).
But I would say books are “dangerous”. I would use the exemple of design patterns. At first, design patterns as presented in this book look like a good idea. They give you way of solving commonly found problems in your software.
In my experience, somebody that just learned design patterns tend to find them very interresting (it was sold to them that way), and tend to use them everywhere. They are viewed as some sort of universal strategy. Whereas in reality theses patterns where contextual to the authors design style and specific to their programming language and software domain. Theses Design pattern are focussed on fat client GUI using a classical OOP language.
Using too many patterns make for boilerplate, ceremony and overengineering. As we know code complexity and ownership cost of code is exponential with code size, this is a very bad idea.
So to balance things out, if you learn a book on design patterns, I think you should think about KISS (Keep It Stupid Simple) so you avoid to overdesign. You should also take a look at completely different way to design/build code so to see this theses OOP design pattern are not universal at all. Read something good about functional programming. Look at what you can do with Haskell, and the designs it favor. Look at what you can do with Lisp, and the designs it allows.
My 2 cents.
if these are the programming books that will change your life, consider become a realtor instead http://t.co/ZWQm8tmz
10 Programming Books That Will Change Your Life http://t.co/6qY1qsiu via @zite
RT @sisomm: Congrats to my colleague @RoyOsherove for appearing on this list of important books for programmers! http://t.co/0pnlO4xf
“@chanceWP: 10 #Programming #Books That Will Change Your Life http://t.co/BIlyOFSu” for you @5Sevans
10 #Programming #Books That Will Change Your Life http://t.co/CcQUeLNa
Good list of top programming books http://t.co/vKwwP6EF
RT @morekasia: New blog post: 10 programming books that will change your life http://t.co/kA6ZqZSL
Sorry editing error! I managed to forget to fill in the authors for Leading Lean Software Development. Hope you enjoy the read, and let me know if you think there’s something that I could add to the list as well :)
Thank you for this very nice list. I’ve read only three of those, so I have a lot of catching up to do :)
One thing irritates me: Why did you name only Erich Gamma out of the infamous Gang of Four as the author of Design Patterns?
“10 programming books that will change your life” http://t.co/URbXyH6q
10 programming books that will change your life http://t.co/7ZvrUfl3 via @morekasia