This article gives you the one actionable secret to Python mastery. You have to do only one thing: read it to the end. ?
So let’s take a break from the daily whirlwind, shall we?
Maybe you are currently coding, reading news, or learning to code. Take a step back to think about a much more important topic for your life: reaching mastery — a radical long-term strategy.
I’m having a Coffee Break Python sitting in a small CafΓ© — WIFI is bad, coffee is great in Germany.
I just finished the Chapter “Ten One-Liners to Analyze Data” for my upcoming book “Python One-Liners” which I am writing with the popular NoStarchPress publisher.
It’s my fourth Python book and the first one that I am not self-publishing. As I am writing and polishing, and writing and polishing, I am thinking about the similarities of productivity, writing in a natural language, and writing in a programming language.
I realized that writing code and writing text is really the same when you really go to the core of it.
Programming, like writing, is a craft. It’s hard work to create a piece of text. It’s messy, too. For example, you write some text, you write some code, and then you realize, it’s crappy. As Stephen King puts it: writing is rewriting. You need to focus on your draft.
Your mind constantly seeks relief and takes every stimulus as a reason to procrastinate.
As I see it, writing text and code is meditation. As soon as your mind starts to wander, you acknowledge it and bend your focus back to the piece of work just in front of you.
It’s deep work — if you’ve read the book from the computer science professor Cal Newport (a recommended read). For me, coding, like writing, is a zen-like experience: deep thinking.
Each time you do this, you improve your strength, increase your confidence, and develop resilience against further distractions. You gain momentum working on your draft until you, maybe, reach a state of flow.
However, most days are just pure hard work and no flow is in sight.
If you want to reach mastery, you have to do this for many years. And doing this for many years, you slowly become better at writing text and code. On the way, you have solved myriads of tiny problems. You’ll realize this if you write some text and you don’t have to think about small text patterns. If you code, you don’t have to think about how to solve tiny code problems (e.g. swapping two values or iterating over a sequence). You have already thought them through in the past and they have become your second nature. For each of them, you have paid with your time, sweat, and undivided attention.
I had a bug in a large software project which had cost me one full week. I divided two numbers and the Java programming language performed integer division. So it always rounded the result down to zero. As I was using the result as a decision criteria to conditionally execute some code, there was practically dead code in my project. A really stupid mistake that costs me a week. Next time, I won’t repeat this bug. For sure. All of those small patterns are tiny investments into your skills.
Now, mix this with continuous improvement of your theory skills (read textbooks, work on courses, visit conferences) — and you’ll ultimately approach mastery status. I don’t write “reach mastery status” because it’s not guaranteed. But although this path is very unsure, it’s still worth it as we’ll discuss in a moment.
I recommend dividing your time like this:
- 30% theory, and
- 70% practice.
This training program is detailed in my Python course which helps you to earn money from your home:
“Reach Python Freelancer Level in Your Coffee Breaks” (link to my course page).
The reason I recommend starting as a Python freelancer is that you are getting paid for being on a path to mastery. And you are not learning for the sake of learning, but solving highly practical real-world problems.
But why would someone go through all the pain of mastering the craft of writing, coding, or anything else?
I cannot speak for you, but my reason why I am on this mission towards mastery is purpose. It’s that simple.
You and I are lazy. And we are going through this level of pain only if we have a strong purpose in mind.
Mastery is about teaching as much as it is about learning. It is about being a medium that constantly transforms the ubiquitous flow of meaningless data into a higher form of more meaningful knowledge.
You are the transformer. You are transforming low-level information or data into high-level knowledge. And this makes you valuable in this world. This makes you valuable for collective intelligence.
More so, this is how collective intelligence emerges. We are all data processing units. Do you know Yuval Harari — the biggest thinker of our time? He’s a history professor with a very clear view of humanity. Check out his videos — they are awesome.
According to Harari, you and I are nothing but data processing units. We are processing low-level data (e.g. visual data, auditive data) into high-level knowledge. We are working against the chaos. This is what we bring to the table. It’s at the heart of our purpose. Piece by piece, we are creating collective intelligence.
What’s your purpose? Why are you doing everything, learning Python, trying to reach mastery? Answering those questions don’t seem to be related to your career as a coder—but make no mistake: they are crucial for your success!