Our small selection of useful books on software development
Ruby on Rails
Agile Web Development with Rails 6
Learn Rails the way the Rails core team recommends it.
Crafting Rails 4 Applications
More advanced material written by a member of the Rails development team (older Rails version).
A cookbook that lets you build Rails applications.
Strange book about Ruby language )
Why’s (poignant) guide to Ruby
Sofware design and development (classic ones)
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".
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.
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.
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.
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.
A guide to practical programming techniques and design principles, with information on such topics as testing, debugging and timing, set representations, and string problems.
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.
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
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 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
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.
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.
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).
This book is about Git. Git is the version control system developed by Linus Torvalds for Linux kernel development.