Want to improve your Python skills? Looking for a way to practice on a regular basis, backed up by a community of learners?
Look no more: A new advanced-level cohort of Weekly Python Exercise is starting tomorrow! If you’ve been using Python for at least a year, then this course will open your eyes to new techniques, and help to strengthen existing ones.
Here’s how it works:
But wait, there’s more: As of this cohort (B3), every solution will not only be written up in e-mail, but will also be answered in a screencast! I hope that this will help you to understand the solutions better than in pure text.
But don’t hesitate; I won’t be offering this cohort again until 2021…
If you’ve been using Python for a year or so, then you’re no longer confused or surprised by the language’s basics — the core data structures, functions, and even basic object-oriented programming. But you probably don’t quite feel fluent with Python, and aren’t sure how to use some of the language’s more advanced features. It would sure be nice to understand these things better, not just by reading a blog, but via actual, hands-on practice.
If that describes you, then you should check out Weekly Python Exercise, the course that helps you to level up your Python skills. A new advanced-level cohort (B3) starts on Tuesday, October 27th, and works as follows:
(If you’re a Python beginner, then a new A-level cohort be starting in January. You can learn more at https://WeeklyPythonExercise.com/.)
Want to know more, or see some sample exercises? Go to https://store.lerner.co.il/wpe-b3.
Later this month, I’ll appear on the “Exploiting with Teja Kummarikuntla” podcast. As part of that appearance, I’ll be doing an AMA (“ask me anything”) segment — but in order for that to happen, I need questions!
That’s where you come in: If there’s a question that you would like for me to answer, then please go ahead and submit it at https://exploit.chat/AskLerner. Possible topics include:
If you have questions on other topics, then go ahead and submit those, too!
I’m really looking forward to appearing on the podcast, and to answering your questions.
I’ve been a professional programmer for about 30 years, self-employed for 25 years, and doing full-time corporate Python training for more than a decade.
I run a small business, which involves me writing, programming, and teaching, as well as handling all of the business-related stuff.
So, what’s my most important skill, the thing that helps me get lots accomplished in a short period of time? Easy: My ability to touch type.
It all started when I was in high school in the mid-1980s. I would use my family’s computer — yes, in those days, the entire family shared one — for schoolwork, for doing some introductory programming, and even writing newsletters for my high-school youth organization. The thing is, I was doing all of this typing with two fingers, and this drove my parents bananas.
Both of my parents can touch type. In those days, it was typical for office workers to record their correspondence, give the recording to a secretary, and then review the result before sending it out. My father never did that, because he typed at least as fast as his secretary, and the whole dictation process would slow him down. It wasn’t unusual to hear the rat-tat-tat of my father typing from his study at home.
It’s no surprise that it bothered my parents to be hunting and pecking. I was pretty fast at it, but I was no match for my father or any other touch typist. My parents strongly encouraged me to learn to touch type, but I was a teenager, which meant that I knew better than they did. And besides, I type fast enough, right?
Finally, my parents set a new rule: For every hour that I used the computer, I had to spend an hour doing a lesson from a touch-typing book. (How quaint, right?) I yelled. I screamed. I cried. I protested. But my parents didn’t budge.
At first, it was painful: When you start to touch type, you are learning to use your hands in a new way, one that feels completely foreign. You also type much more slowly than you did before, and feel like you’re wasting your time. I certainly had these feelings, and when I had to get something done quickly, I would refer to my old two-finger method.
But within two or three weeks, I was already touch typing as quickly as I did with two fingers. Better yet, and somewhat amazingly, I was able to type without looking at the keyboard! I could enter passages from a book, without having to move my eyes from book to keyboard and back. I could talk to someone while typing. I could even sneak a peak at the TV while I was typing.
Achieving true speed didn’t happen for a while. But when I started college in the fall of 1988, I was already typing at a pretty fast clip. At the student newspaper, I was frequently drafted to take printouts from the Associated Press and type them into our “world and nation” section. And at the computer labs, where we had loud, mechanical IBM keyboards, people would ask me if I could type more slowly, because the rat-tat-tat was disturbing them.
Fast forward to 2020, and I cannot imagine my work without being able to touch type:
Lots of professional writers know that they need to touch type. After all, they write for a living, and being unable to get the most out of their keyboard would seem like a crazy thing to do.
And yet, I find that a small number of the developers in my courses can touch type. They never really thought about it that much, or decided not to put time and effort into it, or thought that it was hard or impossible to learn. But it’s definitely not a priority.
Touch typing looks magical and impossible to achieve. It’s like watching a virtuoso pianist expressing themselves through the instrument, their thoughts and feelings flowing effortlessly from their brains to their hands, and then to the piano.
But here’s the thing: It’s not hard to learn. You’ll be frustrated for the weeks during which you’re learning and forcing yourself to work in a new way. But it pays for itself in spades, allowing you to write, edit, and express yourself — in code and text — more easily than you could ever imagine. And if I managed to learn from a book as an angry teenager, then you can certainly learn with the variety of online tools, many of them free, available today.
Whether you’re a developer, devops engineer, or data scientist, you’re likely using Python. But do you really know the language, or do you find yourself copying and pasting from Stack Overflow on a regular basis, hoping that the solution you’ve found will solve your problem without too much editing?
The best solution to this problem is practice. And in my book, Python Workout (https://PythonWorkout.com/), I provide you with 50 exercises (and another 150 bonus exercises) to push your Python skills forward, helping you not just to solve the problem at hand but to generally understand how the language works.
Python Workout, along with two other books (“Tiny Python Projects” and “Data Science Bookcamp”) is currently 50% off, as a Manning “Deal of the day.” No matter what you’re doing with Python, you’ll likely benefit from or more of these books. Just go to https://manning.com/dotd and enter the code dotd100620 at checkout to get half off.
But don’t wait — this deal is only good on October 6, 2020!
If you’ve been looking for a way to become more fluent in Python, then there’s no better way than practice. And my book, Python Workout, is full of such exercises, helping you to really understand how and when to use lots of Python techniques.
Sounds good? Well, it can get better: Python Workout is today’s “Deal of the Day” from Manning. Just go to https://manning.com/dotd and you’ll get 50% off Python Workout (as well as “Data Science Bootcamp” and “Deep Learning with Structured Data”). Or enter the coupon code dotd091520 at checkout to claim your discount.
But don’t delay; this deal (as you can imagine) is only good today — Tuesday, September 15th, 2020!
Want to write better, more readable, more flexible, and more maintainable Python code?
Well, testing is the key to that, and pytest is the key to testing in Python.
This is just a quick reminder that my pytest course will be given live on this coming Sunday, September 13th.
This course is for you if:
Because it’s a live class, there will be plenty of opportunity for questions and answers. And of course, there will be lots of exercises as well, so that you can practice what you’ve learned.
Object-oriented programming has been around for several decades. As a result, it has become easier to organize, maintain, and reuse code.
Well, sort of. Perhaps the word “easier” isn’t quite right.
I’ve met many people who tried to learn programming, and especially object-oriented programming, in such languages as C++, Java, and C#, and got lost with all of the syntax and terminology.
The good news is that Python’s objects are much more straightforward to learn and use than those other languages. But there are still concepts to master, as well as syntax and keywords associated with objects. And even after you’ve learned how to work with classes, instances, and methods in Python… it can still be a bit daunting and unfamiliar.
Does that describe you? Are you somewhat familiar with Python’s objects, but not fluent enough to use them confidently in your own projects? If so, then you’re not alone. Moreover, there’s a good way to become more fluent, and to gain confidence when working with Python’s objects: Practice. And not just practice, but guided practice, ideally with peers learning alongside you.
If this does describe you, then you should check out the upcoming cohort of Weekly Python Exercise, which will concentrate on object-oriented programming for beginners. For 15 weeks, you’ll get a new problem on each Tuesday, and see the solution on the following Monday. You’ll participate in our exclusive online forum, exchanging ideas and solutions with other students. And you’ll be invited to live, monthly office hours at which we can discuss any Python topics you want.
But don’t delay: WPE A3 (“Objects for beginners”) starts on Tuesday, September 8th, and won’t be offered until the autumn of 2021. Register, or just learn more, at https://store.lerner.co.il/wpe-a3. Or if you have questions, contact me at firstname.lastname@example.org or on Twitter as @reuvenmlerner.
My first job was at a company that wrote software for hospitals. As you can imagine, our work needed to be really reliable — so we had an entire team dedicated to quality assurance (QA). Their job was to run our software for months at a time, given many different inputs, and to make sure that it didn’t cause trouble. I can tell you that the head of QA was the most feared person in my department. And yet, we all knew that his job was of utmost importance. If it weren’t for him, buggy software could go out the door, with catastrophic effects for people being treated in hospitals around the world.
More than 25 years have passed since I had that job. And while not every program directly affects people’s lives, there’s no doubt that software is hugely influential. Buggy programs can not only hurt people, but lose money, destroy documents, give incorrect projections, and use up valuable resources.
It’s no surprise, then, that testing continues to be really important. And while there are lots of people still working in QA, much of that burden is now shouldered by individual developers, who have to test the code that they wrote themselves. That’s right — you can test your own code, to make sure it does what it’s supposed to do (and doesn’t do what it’s not supposed to do).
Over the last few years, I’ve joined a large and growing number of Python developers using pytest — a test system written in Python, designed to be used by Python developers. And I have to say, pytest is truly amazing: It’s easy to learn, very powerful, and has a huge community that contributes a wide variety of plugins for everyone to use.
Earlier this month, I asked subscribers to my “Better developers” list what topics they would like to learn in a series of live courses I’m starting to offer. And overwhelmingly, people wanted to learn pytest.
I’m thus delighted to announce that on Sunday, September 13th, I’ll be teaching a live, four-hour online course about pytest: “Test your Python code with pytest” If you’ve always wanted to learn about testing in general, or pytest in particular, this course will jump-start you into understanding the hows (and whys) of testing your Python code.
A few quick points:
You’ll walk out of this course knowing how to use pytest, and how to apply that knowledge to your own programs — making them more robust, and saving you time down the road.
I’m really excited about pytest, and also excited to offer courses in this new format. Please join me, and learn how to write better, more reliable code in less time.
Only a few hours remain before the massive Humble Bundle for Python courses + PyCharm closes its doors! No matter where you are in learning Python, you’ll find something here to improve your skills.
I’m offering three courses in this bundle, one in each of the three “tiers”:
There are also courses from Talk Python (Michael Kennedy), Real Python (Dan Bader), Julian Sequeira + Bob Belderbos), Matt Harrison, and Python Morsels (Trey Hunner), among others.
Part of the proceeds go to the Python Software Foundation and Race Forward. So you’re not only getting a great deal for yourself, but you’re supporting organizations that promote Python and work to eradicate racism.
This deal will end in just a few hours. So head over to https://www.humblebundle.com/software/python-programming-software before it does, and get some great training at an amazing price!