Books

Domain Driven Design For Python - Episode 219

Summary

When your software projects start to scale it becomes a greater challenge to understand and maintain all of the pieces. In this episode Henry Percival shares his experiences working with domain driven design in large Python projects. He explains how it is helpful, and how you can start using it for your own applications. This was an informative conversation about software architecture patterns for large organizations and how they can be used by Python developers.

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. And for your tasks that need fast computation, such as training machine learning models, they just launched dedicated CPU instances. 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. With such an intuitive tool it’s easy to make sure that everyone in the business is on the same page. Podcast.init listeners get 2 months free on any plan by going to pythonpodcast.com/clubhouse today and signing up for a trial.
  • You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on this year’s conference season. We have partnered with organizations such as O’Reilly Media, Dataversity, and the Open Data Science Conference. Coming up this fall is the combined events of Graphorum and the Data Architecture Summit. The agendas have been announced and super early bird registration for up to $300 off is available until July 26th, with early bird pricing for up to $200 off through August 30th. Use the code BNLLC to get an additional 10% off any pass when you register. Go to pythonpodcast.com/conferences to learn more and take advantage of our partner discounts when you register.
  • 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 [email protected])
  • To help other people find the show please leave a review on iTunes and tell your friends and co-workers
  • 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 Harry Percival about domain driven design and enterprise application architecture in Python

Interview

  • Introductions
  • How did you get introduced to Python?
  • Can you start by explaining what "application architecture" is and how it compares to the types of application designs that Python developers and teams typically rely on? how does it contrast with "enterprise architecture"?
    • What are the influences that tend to lead engineers into sub-optimal architectures and how can they guard against them?
  • One of the core concepts in this problem space is that of "domain driven design". Can you unpack that term and explain the benefits that it provides to software architecture?
  • What are some of the other concepts that are common among application architecture patterns?
  • What are some of the common points of confusion among engineers who are first working with DDD?
  • Is there any particular size or scope of project and organization that merits the approach of domain driven design or is it applicable even at small scales of complexity and team size?
  • Now that we’ve convinced everyone that they should be using DDD can you talk through the steps involved in identifying and encapsulating the various implementation details that they will need to work through?
    • How does that process change when dealing with an existing application as opposed to a "greenfield" project?
  • How do Python language constructs and libraries impact the approach to implementation of application architecture patterns as compared to more traditional "enterprise" languages such as Java and C#?
  • What are some of the architectural anti-patterns to watch out for when implementing DDD?
  • On any given team, who is responsible for identifying and ensuring adherence to proper architectural principles?
  • Are there any publicly visible projects that implement DDD which listeners can look at and learn from?
  • To help Python developers in their efforts to learn and implement DDD and other aspects of enterprise architecture you have been working on a book. Can you talk about your motivation for that undertaking, what listeners can expect to learn when the read it, and any challenges that you have encountered in the process?
  • What are some trends in terms of system design and architecture, or technology influences, that you are keeping an eye on?

Keep In Touch

Picks

Links

The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA

A Quick Python Check-in With Naomi Ceder - Episode 204

Summary

Naomi Ceder was fortunate enough to learn Python from Guido himself. Since then she has contributed books, code, and mentorship to the community. Currently she serves as the chair of the board to the Python Software Foundation, leads an engineering team, and has recently completed a new draft of the Quick Python Book. In this episode she shares her story, including a discussion of her experience as a technical author and a detailed account of the role that the PSF plays in supporting and growing the community.

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. And for your tasks that need fast computation, such as training machine learning models, they just launched dedicated CPU instances. 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!
  • 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 [email protected])
  • To help other people find the show please leave a review on iTunes and tell your friends and co-workers
  • Join the community in the new Zulip chat workspace at pythonpodcast.com/chat
  • Check out the Practical AI podcast from our friends at Changelog Media to learn and stay up to date with what’s happening in AI
  • You listen to this show to learn and stay up to date with what’s happening in databases, streaming platforms, big data, and everything else you need to know about modern data management. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on this year’s conference season. We have partnered with organizations such as O’Reilly Media, Dataversity, and the Open Data Science Conference. Go to pythonpodcast.com/conferences to learn more and take advantage of our partner discounts when you register.
  • Your host as usual is Tobias Macey and today I’m interviewing Naomi Ceder about her career and contributions in the Python community

Interview

  • Introductions
  • How did you get introduced to Python?
  • How are you using Python in your current day-to-day?
  • You have been working with Python for a long time at this point, and you have become very involved in supporting and growing the community. What is your motivation for dedicating so much of your time and energy into work that isn’t directly related to paying the bills?
  • You have been the chair of the PSF for a few years now. What are your responsibilities in that position?
  • What do you find to be the most under-rated, misunderstood, or overlooked activities of the PSF?
    • How much of the success of the Python language and its community can be attributed to the presence and support of the PSF?
  • In addition to the work you do with the PSF, other community activities, and your day job, you have also written the 2nd and 3rd editions of the Quick Python Book. Can you give a synopsis of what the book covers and the audience that it is intended for?
  • In the process of writing the book and updating it between revisions, what are some of the features of the language or standard library that you discovered or learned more about which you have been able to use in your work?
  • What are some of the other language communities that you have been involved with and what lessons have you learned from them that you would like to see reflected in Python?
  • What are some of the other projects that you have been involved with that you are most proud of, whether technical or otherwise?
  • What are you most excited about in the near to medium future?

Keep In Touch

Quick Python Book

Picks

Links

The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA

The Business Of Technical Authoring With William Vincent - Episode 179

Summary

There are many aspects of learning how to program and at least as many ways to go about it. This is multiplicative with the different problem domains and subject areas where software development is applied. In this episode William Vincent discusses his experiences learning how web development mid-career and then writing a series of books to make the learning curve for Django newcomers shallower. This includes his thoughts on the business aspects of technical writing and teaching, the challenges of keeping content up to date with the current state of software, and the ever-present lack of sufficient information for new programmers.

Preface

  • 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 you’ll need somewhere to deploy it, so check out Linode. With private networking, shared block storage, node balancers, and a 40Gbit network, all controlled by a brand new API you’ve got everything you need to scale up. Go to podcastinit.com/linode to get a $20 credit and launch a new server in under a minute.
  • 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 [email protected])
  • 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 podcastinit.com/chat
  • Your host as usual is Tobias Macey and today I’m interviewing William Vincent about his experience learning to code mid-career and then writing a series of books to bring you along on his journey from beginner to advanced Django developer

Interview

  • Introductions
  • How did you get introduced to Python?
  • How has your experience as someone who began working as a developer mid-career influenced your approach to software?
  • How do you compare Python options for web development (Django/Flask) to others such as Ruby on Rails or Node/Express in the JavaScript world?
  • What was your motivation for writing a beginner guide to Django?
    • What was the most difficult aspect of determining the appropriate level of depth for the content?
    • At what point did you decide to publish the tutorial you were compiling as a book?
  • In the posts that you wrote about your experience authoring the books you give a detailed description of the economics of being an author. Can you discuss your thoughts on that?
    • Focusing on a library or framework, such as Django, increases the maintenance burden of a book, versus one that is written about fundamental principles of computing. What are your thoughts on the tradeoffs involved in selecting a topic for a technical book?
  • Challenges of creating useful intermediate content (lots of beginner tutorials and deep dives, not much in the middle)
  • After your initial foray into technical authoring you decided to follow it with two more books. What other topics are you covering with those?
    • Once you are finished with the third do you plan to continue writing, or will you shift your focus to something else?
  • Translating content to reach a larger audience
  • What advice would you give to someone who is considering writing a book of their own?
    • What alternative avenues do you think would be more valuable for themselves and their audience?
    • Alternative avenues for providing useful training to developers

Keep In Touch

Picks

Links

The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA

Don't Just Stand There, Get Programming! with Ana Bell - Episode 175

Summary

Writing a book is hard work, especially when you are trying to teach such a broad concept as programming. In this episode Ana Bell discusses her recent work in writing Get Programming: Learn To Code With Python, including her views on how to separate the principles from the implementation, making the book evergreen in its appeal, and how her experience as a lecturer at MIT has helped her maintain the perspectives of beginners. She also shares her views on the values of learning about programming, even when you have no intention of doing it as a career and ways to take the next steps if that is your goal.

Preface

  • 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 you’ll need somewhere to deploy it, so check out Linode. With private networking, shared block storage, node balancers, and a 40Gbit network, all controlled by a brand new API you’ve got everything you need to scale up. Go to podcastinit.com/linode to get a $20 credit and launch a new server in under a minute.
  • As you know, Python has become one of the most popular programming languages in the world, due to the size, scope, and friendliness of the language and community. But, it can be tough learning it when you’re just starting out. Luckily, there’s an easy way to get involved. Written by MIT lecturer Ana Bell and published by Manning Publications, Get Programming: Learn to code with Python is the perfect way to get started working with Python. Ana’s experience as a teacher of Python really shines through, as you get hands-on with the language without being drowned in confusing jargon or theory. Filled with practical examples and step-by-step lessons to take on, Get Programming is perfect for people who just want to get stuck in with Python. Get your copy of the book with a special 40% discount for Podcast.__init__ listeners at podcastinit.com/get-programming using code: Bell40!
  • 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 [email protected])
  • 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 podcastinit.com/chat
  • Your host as usual is Tobias Macey and today I’m interviewing Ana Bell about her book, Get Programming: Learn to code with Python, and her approach to teaching how to code

Interview

  • Introductions
  • How did you get introduced to Python?
  • Can you start by describing your motivation for writing a book about learning to program?
    • Who is the target audience for this book?
    • What level of competence do you want the reader to have when they have completed it?
  • What were the most challenging aspects of writing a book for beginning programmers?
    • What did you do to recapture the “beginner mind” while writing?
  • There are a large variety of books on learning to program and at least as many approaches. Can you describe the techniques that you use in your book to help readers grasp the concepts that you cover?
  • One of the problems of writing a book about technology is that there is no stationary target to aim for due to the constant advancement of the industry. How do you reconcile that reality with the need for a book to remain relevant for an extended period of time?
    • How do you decide what to include and what to leave out when writing about learning how to program?
  • What advice do you have for people who have read your book and want to continue on to a career in development?

Keep In Touch

Picks

Links

The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA