A list of references from my talk, Habits of a Responsible Programmer at Øredev. First out is the blog post that inspired the talk Habits Some books about habits and how our brain works in good and not so good ways. Thinking Fast and Slow by Daniel Kahnemann The Power of Habit by Charles Duhigg Blink by Malcolm Gladwell Typing Steve Yegges blog post that made me realize that it is time to learn to touch type along with some tools that can make it fun to learn. Programming's Dirtiest Little Secret by Steve Yegge aTypeTrainer Type Racer Clear Code It is worth learning Smalltalk, just to understand the book, Smalltalk Best Practice Patterns. Smalltalk Best Practice Patterns by Kent Beck Clean Code by Bob Martin Programming Techniques SICP is a classic and it deserves to be read but Concepts, Techniques, and Models of Computer Programming is just as good if not better. Concepts, Techniques, and Models of Computer Programming by Peter van Roy and Seif Haridi Structure and Interpretation of Computer Programs by Harold Abelson and Jay Sussman The Little Schemer by Daniel P. Friedman and Matthias Felleisen The Seasoned Schemer by Daniel P. Friedman and Matthias Felleisen Javascript Conditionals by me Read Code Source code to a number of projects with beautiful code. CloudFoundry - beautiful Ruby code, OS Platform as a Service. Levelup - Node wrapper for the LevelDB key-value store. Explicit A good short article by Marin Fowler on the tradeoffs involved with writing explicit or implicit code. To Be Explicit (pdf) by Martin Fowler Refactoring The book by Fowler is a timeless reference book and it is required reading for anyone serious about programming. Kerievsky's book gives more in depth examples and finally Reg's blog post discusses reasons for not refactoring just to please your own ego. Refactoring: Improving the Design of Existing Code by Martin Fowler Refactoring to Patterns by Joshua Kerievsky The Narcissism of Small Code Differences by Reginald Braithwaite Simple vs. Easy Great talk! Simple Made Easy by Rich Hickey Testing I like Sandi Metz way of explaining why testing is important. Magic Tricks of Testing by Sandi Metz Practical Object Oriented Desgin in Ruby by Sandi Metz The Craftsman Articles by Bob Martin (click on the Craftsman link). The Scientific Method Documentation Documentation matters, but keep it simple. Readme Driven Development DDD Context Map Git The original gitcasts.com is no longer available, but the videos are uploaded to You Tube. Articles on Git from my blog. Git Casts on You Tube Scripting Unix Power Tools by Tim O'Reilly et al. Bash Cookbook by Carl Albing et al. Build Awesome Command-Line Applications in Ruby by David Copeland Generating Code Tools for generation code. Here documents are the simplest possible way, but if you want to generate multiple files it is better to use Thor or Yo. Here documents (Bash) Thor (Ruby) Yo (Javascript) Environments The ultimate book on continuous delivery, a must read for anyone interested in automation. And, that should be everyone! Continuous Delivery by Jez Humble and David Farley Projects Wonderful book about different people stereotypes. Adrenaline Junkies and Template Zombies by Tom Demarco et al Estimation Two articles on estimation by Martin Fowler and Dan North. Blink Estimation by Dan North The Purpose of Estimation by Martin Fowler No Deadlines by me Life, the Universe, and Everything Books about happiness, the mind, and other things. Flow by Mihaly Csikszentmihalyi Your Brain at Work by David Rock 7 Habits of Highly Effective People by Stephen Covey The Silva Mind Control Method by José Silva Authentic Happiness by Martin Seligman Opening the Door of your Heart by Ajahn Brahm