Working to Level Up in Python
Documenting my efforts to improve my Python proficiency
The Idea
It occurred to me last night that while I know Python reasonably well for a non-engineer, I have never needed to learn how to write Python code in a very clean and consistent manner, following current PEP1 guidelines or best practices. As I make my way deeper into technical topics, and especially as I consider learning new languages, etc., I believe I should start learning how to write Python like a proper software engineer. In short, I would like to take my Python skill level from beginner/intermediate (hacking things together with moderate effort to make code clean and reusable) to a proficiency level that would allow me to serve as a entry/mid-level Python engineer.
My Approach/Goals
My learning goals may evolve over time as I get into each of them, but as of right now, they look like the following:
- Learn how to read and follow Python style guides
- Learn how to use linting tools, such as
pylintto clean up and highlight areas that need reformatting - Learn about various test types and how to write and run them. Known examples include:
- Unit tests
- Integration tests
- Regression tests
- Learn about and really understand development environment setup, including containerization, etc.
- Learn about and practice writing effective code comments and documentation
Making It Stick
Another more general goal that I have for myself in this season of my life and career is to strengthen my ability to write, make notes2, and document processes/code/etc. With that in mind, I will aim to keep writing these things down and tracking my progress, the questions I come across, the answers I find, and the projects I end up making/building using the knowledge I’ve gained.
I expect that this documentation exercise, alongside committed study/practice will result in deeper learning and higher knowledge retention for myself, but may also allow others to learn alongside me (or learn from my mistakes along the way).
Python Enhancement Proposals, or the Python community’s system for adopting changes. See more here. ↩︎
Here, making notes as opposed to taking notes is a reference to The Art of Note-Making by Mischa van den Burg. The core idea is that by curating and tending to notes like a garden, rather than simply copy-pasting, highlighting, or rushing through, the note maker gains a deeper understanding of the material, and truly learns. ↩︎