If you’re like many developers, then you go there all of the time. Maybe even 10-20 times per day.
Don’t get me wrong: Stack Overflow is truly wonderful. But imagine how much more productive you could be if you didn’t spend so much time trying to find the answer that’s just right for the problem you’re experiencing.
Using Stack Overflow is like using a foreign-language phrasebook: You can get around and have some basic interactions. But the depth of conversation you can have, and the fluency with which you can express yourself, is severely limited. Moreover, it’s frustrating spending time searching for answers, rather than doing your actual work.
Would you rather use a phrasebook, or speak a language fluently? Given the chance, I think that we’d all agree that fluency is desirable. It gives you flexibility, power, and expressiveness that make your work easier, faster, and more satisfying.
That’s great, but how do you achieve fluency? Practice, practice, and more practice.
There’s no way around it: Only by practicing your Python skills will you achieve the fluency needed to free you from checking Stack Overflow several times each day. You’ll be able to code more and search less. You’ll solve problems, rather than find for ways to solve problems. You’ll become a resource and mentor to your colleagues, who will ask you to help with their problems.
How does it work?
Weekly Python Exercise is designed to help you gain that fluency, over time, through regular and repeated practice. Every Tuesday, I’ll send you a new Python exercise. I want you to struggle with it, but not too much; my hope is that the exercises will never take more than 30 minutes to solve. As you work through the exercise, and then as you review the solution and explanation that I send each Friday, you’ll be growing and improving as a Python programmer. You’ll be gaining understanding and knowledge that will make you more efficient and confident.
It’s as simple as that: Each week, you’ll get a bit more fluent with Python, and thus avoid Stack Overflow just a bit more.
I’ve designed these exercises to be relatively short, so that someone with a full-time job and a family can still find time to answer them. I also cover topics that most confuse and frustrate the Python developers I teach, so that you’re spending your time practicing things that will really help you to gain fluency.
What topics do the exercises cover?
Here are some you’ll encounter in your first few months:
- Using generator functions to re-implement Python builtins
- Turning JSON documents into other formats
- Writing the same data to multiple files
- Implementing “magic methods” that give your objects new abilities
- Writing decorators to alter how a function works
- Using threads to process files
- Writing a decorator to restrict how often a function can be called
Other topics, with a particular emphasis on popular packages from PyPI and modern techniques such as asyncio, will be covered in the future.
The assumption is that all participants are using Python 3.
Is Weekly Python Exercise for you?
If you have been using Python on a daily basis for less than one year, then the answer is almost certainly “yes.”
- If you’re getting your work done in Python, but think that your code could look more “Pythonic,” then these exercises are for you.
- If you want to feel more comfortable with the standard library and well-known packages on PyPI, then these exercises are for you.
- If you want to explore more advanced aspects of Python, be they functional programming techniques, objects, generators, decorators, or async code, then these exercises are for you.
Note that this is not a class that will teach you Python. It’s expected that you have read a book, taken a class, or are otherwise motivated to learn. And some exercises will likely require that you do a bit more research, learning about packages on PyPI, about different data formats, or just thinking about how to structure your solution.
Weekly Python Exercise is a subscription service: You can purchase it using PayPal or a credit card. You can pay each month, or at a reduced rate with an annual subscription. You can also buy a subscription for your team at work, ensuring that all of you will become more fluent and effective.
Along with your subscription, you’ll have free access to a private forum in which we’ll discuss the exercises (and answers). I’ve even set up a special forum area for people interested in pair programming with one another.
I’m proud and excited to run Weekly Python Exercise. But I’m even happier to know that I’m helping developers around the world — not just those who participate in my courses — to become more fluent and effective Python developers.
Any questions? Just e-mail me at firstname.lastname@example.org. Otherwise, sign up, and start getting more fluent in Python!