Автор: Zohar Jackson
Издательство: Leanpub
Год: September 15, 2023
Страниц: 141
Язык: английский
Формат: pdf (true)
Размер: 10.2 MB
To write better code and build better products we must understand why engineering and design often fail. Why is it so difficult to write bug-free code? Why do people fail to use products? And why do engineering projects go sideways?
The answer to these questions lies in the shortcomings of human cognition and the nature of complexity. This book explores these topics and presents a human-centric approach to software engineering. An approach that considers and compensates for our cognitive biases, cognitive weaknesses, and the chaotic nature of the universe. The ideas presented will help you write better code, build better products, and be a more effective engineer.
Their years of university Computer Science education had failed them by focusing on algorithms and the theoretical. Valuable knowledge, but not very useful in solving the problems engineers face on a daily basis. These graduates were never taught what engineering is. What are its fundamental concepts and practices?
The existing programming literature had also failed these engineers by being either too specific, extremist, or just plain wrong. The specific material was concerned with a technique or two, such as a book about object-oriented programming, when much more than a single technique is needed to be a great engineer. These books often did not connect their ideas to an overarching theory or approach to engineering. There was no material that provided engineers with the correct framework for thinking about engineering, while also providing the techniques and tools needed to solve their daily problems. And especially absent from the literature was a discussion about human cognition and its effects on engineering and design, which in my opinion, is critical to mastering engineering and design.
I felt engineers needed a book to fill these gaps. This book lays out a framework for understanding what code is and how software should be engineered. It delineates how code is a tool meant for human minds and meeting human needs. It teaches how humans can reliably describe computations with a complexity far beyond the capabilities of our limited monkey-minds. It explains how code can be made human-readable and human-proof. It teaches how to balance concerns, cut the correct corners, defend against entropy, take precautions, reduce complexity, and deal with our cognitive limitations.
This book will give you tools, language, mental models, and principles, which are critical for developing your craft as an engineer. This book will teach you to differentiate and judge. It will provide you with a language for discussing and thinking about code and help you determine the best way to meet your own and your organization’s goals.
This book is the first part of a two-book series. This part, Part I, focuses on theory and contains almost no code, while Part II is more technical and teaches how to apply the theory using code examples and case studies.
Скачать Code is for Humans: A guide to human-centric software engineering. Part I. Theory