Software Design by Example: Introduction
The best way to learn design in any field is to study examples [Schon1984, Petre2016], and the most approachable examples are ones that readers are already familiar with. These lessons therefore build small versions of tools that programmers use every day to show how experienced software designers think. Along the way, they introduce some fundamental ideas in computer science that many self-taught programmers haven’t encountered. We hope these lessons will help you design better software yourself, and that if you know how programming tools work, you’ll be more likely to use them and better able to use them well. This learner persona [Wilson2019] describes who this book is for: Maya has a master’s degree in genomics. She knows enough Python to analyze data from her experiments, but struggles to write code other people can use. These lessons will show her how to design, build, and test large programs in less time and with less pain. Like Maya, you should be able to: Write Python programs
Introduction Skip to main content Introduction The complexity of a system increases more rapidly than its size. The best way to learn design is to study examples, and the best programs to use as examples are the ones programmers use every day. These lessons assume readers can write small programs and want to write larger ones, or are looking for material to use in software design classes that they teach. All of the content is free to read and re-use under open licenses, and all royalties from sales of this book will go to charity. The best way to learn design in any field is to study examples
Explore this link on the map →saved by
related reading
- Magic Ink: Information Software and the Graphical Interfaceworrydream.com
- Design Docs at Googleindustrialempathy.com
- Teach Yourself Computer Scienceteachyourselfcs.com
- The Architecture of Open Source Applicationsaosabook.org
- Magic Ink: Information Software and the Graphical Interfaceworrydream.com
- Recommended Reading for Developersblog.codinghorror.com
- Learnable Programmingworrydream.com
- Teach Yourself Programming in Ten Yearsnorvig.com
- Developing Developersfelleisen.org
- The Architecture of Open Source Applicationsaosabook.org
- What every computer science major should knowmatt.might.net
- The Design Recipefelleisen.org