Thank you for reading this book. I must emphasize that this book would not have been possible without guidance, support, and encouragement from many people.
Thanks to Scott Meyers for the Effective Software Development series of books. I discovered the joy of computer programming at a young age, but when I read his book Effective C++ when I was 15 years old, something clicked. There’s no doubt that Scott’s books led to my college education and first job. I’m thrilled to have had the opportunity to write all three editions of Effective Python. I’ve learned so much in the process, and I’m deeply grateful for the experience.
Thanks to the team who made this third edition a reality. Thanks to my executive editor, Debra Williams, for being so supportive throughout the process. Thanks to development editor Chris Zahn, production editor Mary Roth, copy editor Kitty Wilson, cover designer Chuti Prasertsith, and marketing manager Chike Lawrence-Mitchell. Thanks to my technical reviewers—Karry Lu, David N. Cohron, and Andy Chu—for the depth and thoroughness of their feedback.
Thanks to everyone who supported me in creating the first and second editions of this book: Debra Williams, Trina MacDonald, Olivia Basegio, Mike Bayer, Titus Brown, Brett Cannon, Andy Chu, Tom Cirtin, Nick Cohron, Leah Culver, Andrew Dolan, Pamela Fox, Stephanie Geels, Adrian Holovaty, Toshiaki Kurokawa, Michael Levine, Lori Lyons, Asher Mancinelli, Wes McKinney, Julie Nahil, Stephane Nakib, Stephane Nakib, Marzia Niccolai, Ade Oshineye, Chuti Prasertsith, Brandon Rhodes, Tavis Rudd, Katrina Sostek, Mike Taylor, Simon Willison, Kitty Wilson, and Chris Zahn.
Thanks to all of the readers who reported errors and room for improvement in the book. Please keep the feedback coming! Thanks to all of the translators who made the book available around the world; nothing brings a smile to my face quite like seeing my book in other languages.
Thanks to the wonderful Python programmers I’ve known and worked with: Anthony Baxter, Brett Cannon, Wesley Chun, Jeremy Hylton, Alex Martelli, Neal Norwitz, Guido van Rossum, Andy Smith, Greg Stein, Ka-Ping Yee, and Gregory Smith. I appreciate your tutelage and leadership. Python has an excellent community, and I feel lucky to be a part of it.
Thanks to my teammates over the years for letting me be the worst player in the band. Thanks to Kevin Gibbs for helping me take risks. Thanks to Ken Ashcraft, Ryan Barrett, and Jon McAlister for showing me how it’s done. Thanks to Brad Fitzpatrick for taking it to the next level. Thanks to Paul McDonald for being an amazing co-founder. Thanks to Jeremy Ginsberg, Jack Hebert, John Skidgel, Evan Martin, Tony Chang, Troy Trimble, Tessa Pupius, Erick Armbrust, and Dylan Lorimer for helping me learn. Thanks to Sagnik Nandy, Waleed Ojeil, and Will Grannis for your mentorship.
Thanks to the inspiring programming and engineering teachers that I’ve had: Ben Chelf, Glenn Cowan, Vince Hugo, Russ Lewin, Jon Stemmle, Derek Thomson, Daniel Wang, Dean Nevins, Stephen Strenn, and Alex Guy. Without your instruction, I would never have pursued our craft or gained the perspective required to teach others.
Thanks to my mother for giving me a sense of purpose and encouraging me to become a programmer. Thanks to my family and friends for their support. Thanks to my wife for her love and friendship.