Summary Software development is a career that attracts people from all backgrounds, and Python in particular helps to make it an approachable occupation. Because of the variety of paths that can be taken it is becoming increasingly common for practitioners to bypass the traditional computer science education. In this episode David Kopec discusses some of the classic problems that he has found most useful to understand in his work as a professor and practitioner of software engineering. He shares his motivation for writing the book "Classic Computer Science Problems In Python", the practical approach that he took, and an overview of how the contents can be used in your day-to-day work. Announcements Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. When you’re ready to launch your next app or want to try a project you hear about on the show, you’ll need somewhere to deploy it, so take a look at our friends over at Linode. With 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show! And to keep track of how your team is progressing on building new features and squashing bugs, you need a project management system designed by software engineers, for software engineers. Clubhouse lets you craft a workflow that fits your style, including per-team tasks, cross-project epics, a large suite of pre-built integrations, and a simple API for crafting your own. Podcast.__init__ listeners get 2 months free on any plan by going to pythonpodcast.com/clubhouse today and signing up for a trial. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email hosts@podcastinit.com) To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Join the community in the new Zulip chat workspace at pythonpodcast.com/chat Your host as usual is Tobias Macey and today I’m interviewing David Kopec about his recent book "Classic Computer Science Problems In Python" Interview Introductions How did you get introduced to Python? Can you start by discussing your motivation for creating this book and the subject matter that it covers? How do you define a "classic" computer science problem and what was your criteria for selecting the specific cases that you included in the book? What are your favorite features of the Python language, and which of them did you learn as part of the process of writing the examples for this book? Which classes of problems have you found to be most difficult for your readers and students to master? Which do you consider to be most relevant/useful to professional software engineers? I was pleasantly surprised to see introductory aspects of artificial intelligence included in the subject matter that you covered. How did you approach the challenge of making the underlying principles accessible to readers who don’t necessarily have a background in the related fields of mathematics? What are some of the most interesting or unexpected changes that you had to make in the process of adapting your examples from Swift to Python in order to make them appropriately idiomatic? By aiming for an intermediate audience you free yourself of the need to incorporate fundamental aspects of programming, but there can be a wide variety of experiences at that level of experience. How did you approach the challenge of making the text accessible while still being accurate and engaging? What are some of the resources that you would recommend to readers who would like to continue learning about computer science after completing your book? Keep In Touch @davekopec on Twitter Website Book Discount And Giveaway Use code podinit19 to get 40% off all Manning products Picks Tobias Elementor David nesdev The Curse of Oak Island Links Classic Computer Science Problems in Python Classic Computer Science Problems in Swift Dart For Absolute Beginners Dart Swift Manning Publications Apress Python Data Classes Python Type Hints Recursion A* Search Algorithm Neural Network Champlain College Burlington, VT, USA HyperLoop Data Structures And Algorithms In Python by Michael T. Goodrich, Roberto Tamassia, Michael H. Goldwasser MyPy Podcast Interview PyTorch Minimax Dartmouth College Big O Notation The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA