If you like this presentation – show it...
10 books that every developer must read ganesh samarthyam
ON SELECTION OF BOOKS ➤ I have selected the books based on what I liked reading ➤ ➤ ➤ Too many books to select from! Your list of books may be diﬀerent - this is my list of recommended books I have focused on older/classic books (> 10 years old) ➤ Time has proven their value ➤ Contain wealth of knowledge & loads of practical advice ➤ Less controversy ;)
THE PRACTICE OF PROGRAMMING ➤ Tips, techniques and advice from Unix gurus ➤ ➤ ➤ Not speciﬁc to any language or technology Practical not dogmatic My favourite is Chapter 5 on “Debugging” ➤ http://amzn.com/8177582488 Early in my career, I found their advice on debugging very valuable
PROGRAMMING PEARLS ➤ ➤ Programming pearls brings us back-to-the-basics and helps us revisit key topics such as algorithm design in speciﬁc and writing high-performance code in general ➤ http://amzn.com/0201657880 Commitment to continuous learning and focusing on foundational aspects is an important characteristic of an excellent developer This is yet another timeless classic that should be in every developers bookshelf
CODE COMPLETE ➤ In programming, it is diﬃcult to make even the smallest of decisions ➤ ➤ http://amzn.com/0735619670 Which variable name or control structure to use? To comment or not to comment? Should I refactor this code? This book covers provides a big-picture for software development and also delves into minute details
THE PRAGMATIC PROGRAMMER ➤ This classic book provides valuable and practical advice to programmers ➤ ➤ http://amzn.com/020161622X Provides speciﬁc “tips” ➤ ➤ Not speciﬁc to any language or technology My favourite: Tip 35 “Finish what you start” I got exposed to concepts such as “broken window theory” from this book
DESIGN PATTERNS ➤ Classic work on patterns ➤ Provides insights on creating eﬀective object oriented designs ➤ Generic “reusable” design knowledge ➤ ➤ http://amzn.com/020163361 This is not a book that you can read from front to back cover I come back to reading it for getting inspiration from timeto-time (e.g., the initial chapter is a “treatise” on OO)
REFACTORING ➤ Classic work on refactoring ➤ Provides insights on emergent design and how to create and evolve quality software ➤ This book covers foundational aspects, process and mechanics of refactoring ➤ Written in a free-ﬂowing and easy-to-read style ➤ http://amzn.com/0201485672 Inspiration for writers like me
OBJECT ORIENTED SOFTWARE CONSTRUCTION ➤ Excellent book on object oriented programming and design ➤ Learning OO features is easy, but mastering OO design is diﬃcult ➤ ➤ http://amzn.com/0136291554 Explicitly mentions “Dos and Don’t’s” Universal principles on OO design encapsulated in pithy statements (also cross-referenced and summarized in the end)
THE MYTHICAL MAN-MONTH ➤ In my ﬁrst-job, I understood that software development is much more than programming ➤ Mythical man-month is a old book (1975!) but what it discusses still remains relevant ➤ ➤ http://amzn.com/0201835959 Few years back I came across a project where the project manager was adding people to a late project Wanted to tell him: "adding manpower to a late software project makes it later"
EXTREME PROGRAMMING EXPLAINED ➤ ➤ He explains his approach towards software development in XP (Extreme Programming) ➤ Many practices such as writing tests before code (TDD), pair programming, etc are now widely accepted (aside: XP is still evolving) ➤ http://amzn.com/0321278658 Kent Beck is one of those amazing programmers I like this book because of its pragmatic view on software development practices
AGILE SOFTWARE DEVELOPMENT ➤ ➤ His important contribution: documenting key design principles such as Single Responsibility Principle (SRP), Dependency Inversion Principle (DIP), and Interface Segregation Principle (DSP) ➤ http://amzn.com/0135974445 Robert C Martin is another programmer that I greatly admire This book provides his perspective towards software design and development
www.designsmells.com SHAMELESS SELF-PROMOTION ➤ ➤ Why care about software design viewed from the perspective of technical debt ➤ Covers 25 design smells classiﬁed as violation of the principles of abstraction, encapsulation, modularization, or hierarchy ➤ http://amzn.com/0128013974 Check out our book on refactoring Interesting anecdotes and case studies reported from the trenches working in real-world projects