How to Design Programs: An Introduction to Programming and Computing
by Matthias Felleisen, et al
Publisher: The MIT Press 2003
Number of pages: 720
This introduction to programming places computer science in the core of a liberal arts education. Unlike other introductory books, it focuses on the program design process. This approach fosters a variety of skills--critical reading, analytical thinking, creative synthesis, and attention to detail--that are important for everyone, not just future computer programmers.
Home page url
Download or read it online for free here:
by Derick Bailey - LosTechies.com
S.O.L.I.D. is a collection of best-practice design principles which can be applied to your design, allowing you to accomplish various desirable goals such as loose-coupling, higher maintainability, intuitive location of interesting code, etc.
by Abel Avram, Floyd Marinescu - Lulu.com
This book is a short, quickly-readable summary and introduction to the fundamentals of Domain Driven Design; it does not introduce any new concepts; it attempts to concisely summarize the essence of what Domain Driven Design is.
by Dave Hoover, Adewale Oshineye - O'Reilly Media
These patterns address difficult situations that programmers, administrators, and DBAs face every day. The book also approaches software development as a means to personal fulfillment. Discover how it can help you make the best of your career.
by Christian Siefkes - Siefkes-Verlag
A new mode of production has emerged in the areas of software and content production. This mode, based on sharing and cooperation, has spawned whole mature operating systems such as GNU/Linux as well as innumerable other free software applications.