Ten Software Patterns Every Student Should by Michael Kilian (.ePUB)+
File Size: 12.1 MB
Ten Software Patterns Every Student Should Know by Michael Kilian
Requirements: .ePUB, .PDF reader, 12.1 MB | True PDF, True EPUB
Overview: Just as students of literature must know the basic canon of English works, so should students of software engineering know basic patterns of program development. Even with the advent of powerful AI tools for programming, it is important to understand the techniques and approaches to building efficient programs. This book picks out ten patterns that span several programming domains that represent key ideas that apply to breadth of software engineering tasks. The patterns are not algorithms but ways of approaching the construction of sophisticated software systems. The book opens with one of the most ubiquitous software patterns that is often invisible to programmers: Hash tables. Yet building a truly scalable and efficient hash table that may even span multiple computers is not often taught in school and often cannot be obtained “off-the-shelf”. Other patterns include using finite state machines to recognize basic patterns and to ensure programs don’t miss critical use cases. Two patterns provide ways of reasoning about multi-threaded and multi-process programs and introducing a way of programming that works for both types of concurrent programming. The book closes with a call to design for failure: to anticipate that a complex system rarely works perfectly and that determining why something fails is almost as important as knowing why it works. The patterns presented here assume that the student will have a non-trivial knowledge of fundamental data structures such as linked lists and queues. This book is not an introduction to data structures. We will present the software patterns using C. The choice of C is because it is relatively simple and low level enough that CPU specific aspects of an algorithm can be expressed. A basic familiarity with the C programming language and how to express elementary data structures (arrays, linked lists) in C is assumed.
Genre: Non-Fiction > Tech & Devices

Free Download links: