There are some interesting and helpful books related to our areas of expertise.
Rails basics
Agile Web Development with Rails 4
Will teach you all you need to know about Ruby and Rails 4 to build killer web applications.
Crafting Rails 4 Applications
More advanced material, Rails core member José Valim has written
Rails Recipes
The collection of recipes that will take you step by step through the the most cutting edge Rails techniques.
Unusual book about Ruby language
Why’s (poignant) guide to Ruby
This is unlike any other guide to programming you have ever read. It features talking foxes, bizarre sidebars, and more crazy humor than most people can handle without loud chuckles.
Sofware design and development (classic)
Refactoring: Improving the Design of Existing Code
Refactoring is about improving the design of existing code. Classic book by Martin Fowler.
Design Patterns: Elements of Reusable Object-Oriented Software
This is a software engineering book describing recurring solutions to common problems in software design written by "the Gang of Four".
Patterns of Enterprise Application Architecture
Another piece of mastership by Fowler.
Software Systems Architecture
Practitioner-oriented guide to designing and implementing effective architectures for information systems by N. Rozanski and E. Woods.
Code Complete
The author — Steve McConnell — talks about his experiences in the field of software engineering and more specifically on best practices in the software development.
Programming Pearls
The essays in this book present programs that go beyond solid engineering techniques to be creative and clever solutions to computer problems. The programs are fun and teach important programming tecniques and fundamental design principles. By Jon Bentley.
And even more classic
The Mythical Man-Month
Few books on software project management have been as influential and timeless as this one. With a blend of software engineering facts and thought-provoking opinions, Fred Brooks offers insight for anyone managing complex projects.
The Art of Computer Programming
This is the bible of all fundamental algorithms and the work that taught many of today's software developers most of what they know about computer programming. Author: Donald E. Knuth.
Software design in Ruby/Rails world
Design Patterns in Ruby
This is a guide to solving real-world problems with Ruby. Taking as it’s starting point 14 of the original GoF patterns, the book reimagines them in the context of a modern dynamic programming language. By Russ Olsen.
Growing Rails Applications in Practice
This book by Henning Koch & Thomas Eisenbarth will teach you a simpler way to scale Rails codebases. Instead of introducing new patterns or service-oriented architecture, learn to use discipline, consistency, and code organization to make your application grow more gently.
Software design and business
Enterprise Architecture Using the Zachman Framework
This book introduces The Zachman Framework, a tool to guide you through the comprehensive process of thinking, reasoning, and communicating effectively about even the most complex business problems. Using lessons from history, psychology, business and information technology, the authors use the framework to build a foundation of enterprise architecture concepts. Alignment, integration and flexibility are the core goals for delivering today's complex business solutions. It illustrates these themes and shows tomorrow's business and technology professionals how to organize, design and construct a solution for any type or size of problem.
Rework
Most business books give you the same old advice: Write a business plan, study the competition, seek investors, yadda yadda. If you're looking for a book like that, put this one back on the shelf.
Rework shows you a better, faster, easier way to succeed in business. Read it and you'll know why plans are actually harmful, why you don't need outside investors, and why you're better off ignoring the competition. The truth is, you need less than you think. You don't need to be a workaholic. You don't need to staff up. You don't need to waste time on paperwork or meetings. You don't even need an office. Those are all just excuses.
By David Heinemeier Hansson, the author of RubyOnRails framework.
Different paradigm
Learn You a Haskell for Great Good! A Beginner's Guide
Functional programming is an interesting paradigm, it helps to see software development from the different point of view. This book is an introduction to functional programming (with Haskell language). Although using Haskell in real world projects meets with some difficulties, ideas from this book (or from another book about functional programming) will help you in software development, even if you use an imperative paradigm. Autor: Miran Lipovača.
Some functional ideas are used in design of Ruby language (lamdas, blocks, iterators).
Design and UX
Project Guide to UX Design
Secrets of creating a useful and usable Web site or application that’s easily navigated and meets the needs of the site owner and its users.
The Design of Everyday Things
Don Norman hails excellence of design as the most important key to regaining the competitive edge in influencing consumer behavior.
The Humane Interface
The book presents breakthrough solutions for navigation, error management, and more, with detailed case studies from Raskin's own work.
The Visual Display of Quantitative Information
The classic book on statistical graphics, charts, tables. Theory and practice in the design of data graphics, 250 illustrations of the best (and a few of the worst) statistical graphics, with detailed analysis of how to display data for precise, effective, quick analysis. Design of the high-resolution displays, small multiples. Editing and improving graphics. The data-ink ratio. Time-series, relational graphics, data maps, multivariate designs. Detection of graphical deception: design variation vs. data variation. Sources of deception. Aesthetics and data graphical displays.
We recommend other Edward Tufte's books too.
About very useful tool
Pro Git
This book is about Git. Git is the version control system developed by Linus Torvalds for Linux kernel development. It took the open source world by storm since its inception in 2005, and is used by small development shops and giants like Google, Red Hat, and IBM, and of course many open source projects. Author: Scott Chacon.