Books

There are some interesting and helpful books related to our areas of expertise.


Rails basics

Book 1

Agile Web Development with Rails 4

Will teach you all you need to know about Ruby and Rails 4 to build killer web applications.

Book 2

Crafting Rails 4 Applications

More advanced material, Rails core member José Valim has written

Book 3

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

Poignant

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

Refactoring: Improving the Design of Existing Code

Refactoring is about improving the design of existing code. Classic book by Martin Fowler.

Patterns

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".

Enterprise

Patterns of Enterprise Application Architecture

Another piece of mastership by Fowler.

Ssa

Software Systems Architecture

Practitioner-oriented guide to designing and implementing effective architectures for information systems by N. Rozanski and E. Woods.

Code complete

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.

Pearls

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

Mythical man month

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.

Knuth

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

Patterns ruby

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

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

Zachman

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

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

Lyah

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

Book 4

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.

Book 5

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.

Book 6

The Humane Interface

The book presents breakthrough solutions for navigation, error management, and more, with detailed case studies from Raskin's own work.

Tufte

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

Progit

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.


And many-many others!