Книга: A Common-Sense Guide to Data Structures and Algorithms in Python, Volume 2 (for True Epub)
Назад: Acknowledgments
Дальше: Who Is This Book For?


Preface

The days of slow software are long gone. People expect their technology to be fast, and I mean really fast. According to one study, more than half of mobile website users will abandon a site if it takes more than three seconds to load. Another study reports that for every second a web page takes to load, user satisfaction goes down by 16 percent.

At the same time, people also want their technology to fit on even the smallest of devices. Whether it’s a smartphone that fits easily into your pocket or a smartwatch that fits on your wrist, people want to bring their computers wherever they go. And they don’t want these devices to be any less capable than a full-fledged desktop computer. However, to get apps to work on such small devices, those apps must consume the least memory possible.

The key to writing software that’s both fast and memory-efficient is the mastery of data structures and algorithms. Designing the “right” algorithm usually involves a combination of knowledge, ingenuity, and persistence. This book is where you’ll gain the knowledge.

As you may have gathered from the title, this volume is the second in a series. In A Common-Sense Guide to Data Structures and Algorithms in Python, Volume 1, I covered the foundational concepts. If you’ve read that volume or already know the concepts therein, you already know a lot! But now it’s time to level up. Not only will you learn a wide variety of new algorithms and data structures, but you’ll also become more sophisticated in algorithmic analysis and design.

There are already books written on these subjects. However, if you’ve read any of them, you may have encountered the same problem I did: they’re hard to understand! It’s not just you—I can find myself reading and rereading the same paragraph in such a book many times before I get an inkling of what’s going on. Many a developer has given up trying to learn these concepts, feeling incapable of grasping such complex ideas.

But here’s the thing. Yes, these concepts are complex. But every complex concept is made up of a combination of simple concepts. It’s not beyond anyone to master data structures and algorithms. The subject just needs to be taught correctly.

That’s the entire point of this book. I’ve pulled every thread from the tapestry of each complex concept and laid them all out for you. By presenting each thread individually and in the correct sequence, I’ll teach you these ideas so that you’ll grasp them easily and clearly. Critically, there are literally hundreds of diagrams, all clear and beautiful, which will help clarify each concept for the visual learner. Finally, you’ll have a lot of fun along the way. I write in an informal style and crack jokes whenever my editor lets me. Sometimes, the jokes are even funny.

Назад: Acknowledgments
Дальше: Who Is This Book For?