Blog

  • Focus on the process: Your Python questions, answered

    A few weeks ago, I asked subscribers to my free, weekly “Better developers” list to send me their Python problems.  I got about 20 responses from around the world, some more complex than others.  I promised to answer some of them in video. Why? Because becoming an expert Python developer means understanding, in a deep…

    Read more

  • Registration is open for the January 2018 cohort of “Weekly Python Exercise”

    When I started to program in Python more than 20 years ago, there weren’t a lot of resources out there. Sure, there were a handful of books, and a few Web sites, and (of course) forums and mailing lists. But that was about it. Nowadays, Python is white-hot, with companies, universities, and individuals learning the…

    Read more

  • A very sad day — the end of Linux Journal

    [Update, as of August 8, 2019: Since I wrote this post, Linux Journal re-opened, thanks to a generous investment/purchase, and survived for another two years… And then, earlier today, I learned that LJ has closed, once again — and this time, for good.  This post is just as accurate today as it was when I…

    Read more

  • Black Friday sale: 40% off my Python and Git books and courses

    Happy Black Friday!  OK, I know: It’s not really a holiday.  And I don’t even live in the US.  But somehow, Black Friday has become a world-wide shopping and discount phenomenon. Like many other independent authors and trainers, I’m offering big discounts today — 40% off all of my books and courses. The discount is…

    Read more

  • Aha! Preview this week’s live, online Python courses

    In just 48 hours, I’ll be starting my latest round of live, online courses. Wondering what it’s like to take an online course from me? Or perhaps you’re wondering what sorts of topics I’ll discuss in my “Python dictionaries” and “Python functions” courses? Well, wonder no more; here’s a short preview of my teaching style,…

    Read more

  • Announcing: Three new live courses, to level up your Python and Git skills

    Confused by Python dicts, or wondering how you can take advantage of them in your programs? Do you wonder how Python functions work, and how you can make them more “Pythonic,” and easier to maintain? Do you wonder why everyone raves about Git, when it seems impossibly hard to understand?  Cloning, pulling, and pushing mostly…

    Read more

  • Level up your Python, with three new courses

    Back in July, I gave three live, online courses: Object-oriented Python, functional Python, and Python decorators.  I have long found that all three subjects are misunderstood by many Python developers, and I wanted to help people to understand how and when to use each one. I’m pleased to announce that recordings from all three courses…

    Read more

  • My favorite terrible Python error message

    Students in my Python classes occasionally get the following error message: TypeError: object() takes no parameters This error message is technically true, as I’ll explain in a moment. But it’s surprising and confusing for people who are new to Python, because it doesn’t point to the source of the actual problem. Here’s the basic idea:…

    Read more

  • foo(y=y), and similar code that confuses Python newbies

    Let’s define a simple Python function: In [1]: def foo(x): …: return x * x …: In [2]: foo(5) Out[2]: 25 In [3]: foo(10) Out[3]: 100 As we can see, this function has a single parameter, “x”.  In Python, parameters are local variables whose values are set by whoever is calling the function. So we…

    Read more

  • Where can you practice (and improve) your Python skills?

    The most common question I get from students in my Python classes is: How can we practice and improve our skills after the course is over? These students realize that no matter how good a course might be, they won’t retain very much if they don’t use and practice their Python on a regular basis.…

    Read more