The Real Python Podcast

Decomposing Software Problems & Avoiding the Trap of Clever Code


Listen Later

How do you effectively break a software problem into individual steps? What are signs you’re writing overly clever code? Christopher Trudeau is back on the show this week, bringing another batch of PyCoder’s Weekly articles and projects.

We discuss an article about de-warping images of book pages. We both found the piece a good study on decomposing a complex software problem.

Christopher discusses an article titled “Clever code is probably the worst code you could write.” Early in a programming career, it’s easier to write complex and difficult-to-read code. The real challenge is progressing towards writing clearer and readable code.

We also share several other articles and projects from the Python community, including a news roundup, what the __pycache__ folder is for in Python, what’s new in Django 5.1, a discussion about software engineering hiring and firing, a project for setting up repeated tasks, and a simple way to create reusable template components in Django.

This episode is sponsored by Sentry.

Course Spotlight: Efficient Iterations With Python Iterators and Iterables

In this video course, you’ll learn what iterators and iterables are in Python. You’ll learn how they differ and when to use them in your code. You’ll also learn how to create your own iterators and iterables to make data processing more efficient.

Topics:

  • 00:00:00 – Introduction
  • 00:02:18 – PEP 667: Consistent Views of Namespaces (Accepted)
  • 00:03:08 – PEP 649 Re-targeted to 3.14
  • 00:03:50 – Untold Stories From 6 Years Working on Python Packaging
  • 00:04:38 – What Is the __pycache__ Folder in Python?
  • 00:09:57 – Sponsor: Sentry
  • 00:11:04 – What’s New in Django 5.1
  • 00:17:48 – Page Dewarping
  • 00:26:55 – Video Course Spotlight
  • 00:28:26 – Clever Code Is Probably the Worst Code You Could Write
  • 00:33:19 – Software Engineering Hiring and Firing
  • 00:51:22 – Metronomes: An Easy Way to Set Up Regular Tasks
  • 00:52:26 – django-web-components: Create reusable template components in Django
  • 00:54:03 – Thanks and goodbye
  • News:

    • PEP 667: Consistent Views of Namespaces (Accepted)
    • PEP 649 Re-targeted to 3.14 – Python Enhancement Proposal 649: Deferred Evaluation Of Annotations Using Descriptors has been re-targeted to the Python 3.14 release
    • Untold Stories From 6 Years Working on Python Packaging – Sumana gave the closing keynote address at PyCon US this year and this posting shares all the links and references from the talk.
    • Show Links:

      • What Is the __pycache__ Folder in Python? – In this tutorial, you’ll explore Python’s __pycache__ folder. You’ll learn about when and why the interpreter creates these folders, and you’ll customize their default behavior. Finally, you’ll take a look under the hood of the cached .pyc files.
      • What’s New in Django 5.1 – Django 5.1 has gone alpha so the list of features targeting this release has more or less solidified. This article introduces you to what is coming in Django 5.1.
      • Page Dewarping – This article shows the techniques behind a page flattening algorithm. It starts with images of a book’s page which are curled from the spine of the book, and creates a resulting PDF that is a flat version.
      • Clever Code Is Probably the Worst Code You Could Write – When you come across a clever bit of code, it is hard not to admire it, but often times, clear, readable code is the hardest code to write.
      • Discussion:

        • Software Engineering Hiring and Firing – This article is a deep dive on the hiring and firing practices in the software field, and unlike most articles focuses on senior engineering roles. It isn’t a “first job” post, but a “how the decision process works” article.
        • Projects:

          • Metronomes: An Easy Way to Set Up Regular Tasks
          • django-web-components: A simple way to create reusable template components in Django
          • Level up your Python skills with our expert-led courses:

            • Getting Started With Django: Building a Portfolio App
            • Efficient Iterations With Python Iterators and Iterables
            • For Loops in Python (Definite Iteration)
            • Support the podcast & join our community of Pythonistas

              ...more
              View all episodesView all episodes
              Download on the App Store

              The Real Python PodcastBy Real Python

              • 4.7
              • 4.7
              • 4.7
              • 4.7
              • 4.7

              4.7

              134 ratings


              More shows like The Real Python Podcast

              View all
              Hanselminutes with Scott Hanselman by Scott Hanselman

              Hanselminutes with Scott Hanselman

              378 Listeners

              Software Engineering Radio - the podcast for professional software developers by se-radio@computer.org

              Software Engineering Radio - the podcast for professional software developers

              262 Listeners

              The Changelog: Software Development, Open Source by Changelog Media

              The Changelog: Software Development, Open Source

              285 Listeners

              LINUX Unplugged by Jupiter Broadcasting

              LINUX Unplugged

              263 Listeners

              Thoughtworks Technology Podcast by Thoughtworks

              Thoughtworks Technology Podcast

              43 Listeners

              Talk Python To Me by Michael Kennedy

              Talk Python To Me

              585 Listeners

              Software Engineering Daily by Software Engineering Daily

              Software Engineering Daily

              630 Listeners

              Super Data Science: ML & AI Podcast with Jon Krohn by Jon Krohn

              Super Data Science: ML & AI Podcast with Jon Krohn

              295 Listeners

              Python Bytes by Michael Kennedy and Brian Okken

              Python Bytes

              212 Listeners

              Data Engineering Podcast by Tobias Macey

              Data Engineering Podcast

              142 Listeners

              Syntax - Tasty Web Development Treats by Wes Bos & Scott Tolinski - Full Stack JavaScript Web Developers

              Syntax - Tasty Web Development Treats

              984 Listeners

              CoRecursive: Coding Stories by Adam Gordon Bell - Software Developer

              CoRecursive: Coding Stories

              185 Listeners

              DataFramed by DataCamp

              DataFramed

              267 Listeners

              Practical AI by Practical AI LLC

              Practical AI

              196 Listeners

              The Stack Overflow Podcast by The Stack Overflow Podcast

              The Stack Overflow Podcast

              63 Listeners