Friday, April 13, 2012

Books for Software Development


My updated reading list

Learning Programming
-------------
How to think like a computer scientist: Python Edition
Thinking in C beta 3
The Passionate Programmer


Learning Java
-------------
Head First Java 2nd Ed
How to think like a computer scientist: Java Edition
Objects First with Java
Thinking in Java 4th Ed
Big Java
Agile Java: Crafting Code with Test-Driven Development
Core Java Vol 1 & 2
The Art & Science of Java
The Java Programming Language

Programming Practices
---------------------
The Pragmatic Programmer: From Journeyman to Master
Pragmatic Version control using git
Pragmatic Unit testing in Java with JUnit
Pragmatic Project Automation
Debug It
Ship it
Release it

Learning Basic Web Frontend Development
---------------------------------------
Head First HTML with CSS & XHTML
Head First Javascript
Javascript the Good Parts
Stylin' with CSS: A Designer's Guide (2nd Edition)
Designing with Web Standards by Jeffrey Zeldman and Ethan Marcotte
Web Design for Developers: A Programmer's Guide to Design Tools and Techniques by Brian P. Hogan
Eric Meyer on CSS: Mastering the Language of Web Design by Eric Meyer
JQuery in Action by Bear Bibeault and Yehuda Katz
Handcrafted CSS by Dan Cederholm with Ethan Marcotte

Learning Swing Frontend Development
-----------------------------------
Desktop Java Live
Swing Second Edition
Java Swing

Mastering Software Development
------------------------------
Head First Object-Oriented Analysis and Design
Head First Design Patterns
Code Complete: A practical handbook of Software Construction
Clean Code: A Handbook of Agile Software Craftsmanship
Program Development in Java
The Elements of Java(TM) Style
Effective Java
Practical Java
Design Patterns: Elements of Reusable Object-Oriented Software
Patterns of Enterprise Application Architecture
Domain-Driven Design
Refactoring: Improving the Design of Existing Code
Refactoring to Patterns
SQL Anti-patterns
Modular Java
Growing Object-Oriented Software Guided by Tests
Holub on Patterns:Learning Design Patterns by Looking at Code
Test Driven Development by Kent Beck
XUnit Test Patterns - Refactoring Test Code by Gerard Meszaros
Concurrency Practice in Java
Java Generics and Collections
Java Performance
Java Puzzlers

Methodology and Management
--------------------------
UML Distilled, 2nd Edition
Extreme Programming Explained
The Unified Software Development Process
Rapid Development: Taming Wild Software Schedules
Peopleware: Productive Projects and Teams
The Mythical Man-Month
Software Runaways: Monumental Software Disasters
Software Creativity
Agile Estimating and Planning by Mike Cohn
Agile Software Development, Principles, Patterns, and Practices by Robert (Bob) C. Martin
Agile Retrospectives: Making Good Teams Great by Esther Derby, Diana Larsen, and Ken Schwaber
Succeeding with Agile: Software Development Using Scrum by Mike Cohn
Agile Testing: A Practical Guide for Testers and Agile Teams by Lisa Crispin and Janet Gregory
Extreme Programming Installed by Ron Jeffries, Ann Anderson, and Chet Hendrickson
Behind Closed Doors: Secrets of Great Management by Johanna Rothman, and Esther Derby
Leading Lean Software Development: Results Are Not the Point by Mary and Tom Poppendieck
Lean-Agile Software Development: Achieving Enterprise Agility by Alan Shalloway, Guy Beaver, and James R. Trott
The Art of Agile Development by James Shore and Shane Warden

Mastering Groovy and Grails
---------------------------
Groovy in Action
The Definitive Guide to Grails
Grails in Action
Groovy Recipes
Programming Groovy

Mastering Web Design
--------------------
Web Design for Developers
Head First Web Design
Designing Web Usability

Mastering User Interface Design
-------------------------------
User Interface Design for Programmers
Don't Make me Think
About Face: The Essentials of User Interface Design
Design of Everyday Things
The Non-Designer's Design Book

Mastering Hardcore Stuff
------------------------
Code: The Hidden Language of Computer Hardware and Software by Charles Petzold
The C Programming Language
Structure and Interpretation of Computer Programs
Introduction to Algorithms by CLRS (Cormen,Leiserson,Rivest,Stein)
Compilers: Principles, Techniques and Tools
Test Driven Development for Embedded C
The Art of Computer Programming


- Head First Java
- Head First Object Oriented Analysis and Design
- Head First Design Patterns
- Effective Java
- Concurrency Practice in Java
- Java Generics and Collections
- Java Performance
- Java Puzzlers
- Thinking in Java
- Clean Code


You are also welcome to subscribe via email or subscribe via reader to get updates.

1 comment: