Books

Our small selection of useful books on software development


Ruby on Rails

Book 1

Agile Web Development with Rails 6

Learn Rails the way the Rails core team recommends it.

Book 2

Crafting Rails 4 Applications

More advanced material written by a member of the Rails development team (older Rails version).

Book 3

Rails Recipes

A cookbook that lets you build Rails applications.


Strange book about Ruby language )

Poignant

Why’s (poignant) guide to Ruby

Talking foxes!


Sofware design and development (classic ones)

Refactoring

Refactoring: Improving the Design of Existing Code

Refactoring is a controlled technique for improving the design of an existing code base. Its essence is applying a series of small behavior-preserving transformations, each of which "too small to be worth doing".

Patterns

Design Patterns: Elements of Reusable Object-Oriented Software

Capturing a wealth of experience about the design of object-oriented software, four top-notch designers present a catalog of simple and succinct solutions to commonly occurring design problems.

Enterprise

Patterns of Enterprise Application Architecture

The main topic areas are: how to layer an enterprise application, how to organize domain logic, how to tie that logic to a relational database, how to design a web based presentation, some important principles in distributed design, and handling of what we call "offline concurrency" - concurrency that spans transactions.

Ssa

Software Systems Architecture

It is a highly regarded, practitioner-oriented guide to designing and implementing effective architectures for information systems. It is both a readily accessible introduction to software architecture and an invaluable handbook of well-established best practices.

Code complete

Code Complete

Widely considered one of the best practical guides to programming, Steve McConnell’s original CODE COMPLETE has been helping developers write better software for more than a decade.

Pearls

Programming Pearls

A guide to practical programming techniques and design principles, with information on such topics as testing, debugging and timing, set representations, and string problems.


Older classic

Mythical man month

The Mythical Man-Month

The Mythical Man-Month: Essays on Software Engineering is a book on software engineering and project management by Fred Brooks first published in 1975.

Knuth

The Art of Computer Programming

The Art of Computer Programming (TAOCP) is a comprehensive monograph written by computer scientist Donald Knuth that covers many kinds of programming algorithms and their analysis.


Software design in Ruby

Patterns ruby

Design Patterns in Ruby

It documents smart ways to resolve many problems that Ruby developers commonly encounter. Russ Olsen has done a great job of selecting classic patterns and augmenting these with newer patterns that have special relevance for Ruby.

Growing

Growing Rails Applications in Practice

This book 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

The Zachman Framework is an enterprise ontology and is a fundamental structure for Enterprise Architecture which provides a formal and structured way of viewing and defining an enterprise. The ontology is a two dimensional classification schema that reflects the intersection between two historical classifications.

Rework

Rework

Most business books give you the same old advice: write a business plan, study the competition, seek investors... If you're looking for a book like that, put this one back on the shelf. REWORK is the perfect playbook for anyone who’s ever dreamed of doing it on their own. Entrepreneurs, small-business owners, and artists who don’t want to starve will all find valuable guidance in these pages.

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


About git

Progit

Pro Git

This book is about Git. Git is the version control system developed by Linus Torvalds for Linux kernel development.