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 Adam Wiggins - 12factor.net
This document synthesizes all of our experience on a wide variety of software-as-a-service apps in the wild. It is a triangulation on ideal practices for app development, paying particular attention to the dynamics of the organic growth of an app.
by Anoop Madhusudanan
The objective of this book is to introduce software design patterns to you in a simple, human readable, and funny way -- in the context of designing a soccer engine -- By discussing the thought process behind applying design patterns.
Software testing is an investigation conducted to provide information about the quality of the product under test. It can also provide an objective view of the software to allow the business to understand the risks of software implementation.