Ever spent three hours trying to find that bit of knowledge that everyone seemed to have but you?
As a self-trained Python developer, I've sometimes found myself stuck in that knowledge crater, between tutorials far simpler than real life, and articles more advanced than I could comprehend. Even the documentation felt like a firehose of information, making it nearly impossible to find the one basic thing I needed to know.
In this series, I'll be exploring a few of these topics, in a way that hopefully makes them dead simple!
Like the articles? Buy the book! Dead Simple Python by Jason C. McDonald is available from No Starch Press.
Intended Audience
While programmers at all experience levels may find this series useful, I'm specifically targeting Python novices. I am assuming, however, that you have a very basic understanding of programming. The coding topics especially will be more focused on the Python way of doing things, not on the underlying generic concept.
With that said, if you're an intermediate-level Python developer, you may still find it helpful to follow along with the series. Although I've been working with Python for nearly eight years, some of these topics didn't really "click" for me until recent years. These are the explanations I wish I'd had!
What You Won't Find Here
All of the topics I'm discussing here go much, much deeper. However, I don't want to muddy the waters, so I'll be omitting a considerable amount of detail. Once you're comfortable with a topic, and have done it a few times yourself, I recommend going back and reading through the official Python documentation on the topic.
A Note on Python Versions
The official end-of-life for Python 2 is rapidly approaching, so you should learn and begin using Python 3 as soon as possible! This entire series is geared towards Python 3, with a bias towards 3.6 and 3.7, except as otherwise noted.
Edits
The articles in this series are frequently being reviewed by my fellow Python experts, and by the Dev community at large. I will expand and revise accordingly. Always check the edit timestamp at the top of the article.
Roadmap
The current series plan is below. Please note, I may rearrange, add, or remove planned sections.
- 1: Virtual Environments and pip
- 2: Project Structure and Imports
- 3: Data Typing and Immutability
- 4: Classes
- 5: Errors
- 6: Loops and Iterators
- 7: Iterator Power Tools
- 8: List Comprehensions and Generator Expressions
- 9: Generators and Coroutines
- 10: Lambdas, Decorators, and Other Magic
- 11: Working with Files
Top comments (9)
I just read the first two parts that are currently released. I gotta say, with Python being around the 5th language I dive into, I really appreciate this style of teaching! It's hard finding teaching material that doesn't start with "what is a variable" lol.
Do share if you have any resources for people picking up Python who are not new to programming. :)
So glad you're enjoying the series!
One of the reasons I'm writing this series is because there seem to be so few resources for picking up Python without "relearning" programming. In the
#python
IRC room, we usually just link people to the Official Python Tutorial, although that sometimes feels like drinking out of a fire hose. ;-)Are you planning to cover
pyenv
- which allows to run multiple versions like 3.6 and 3.7 side by side ?Honestly, probably not (although anything is possible). One, I've never used it myself, although that might change in the future. You can accomplish much the same end (perhaps a bit less elegantly) using virtual environments, so until someone is game for learning
pyenv
, they'll be just peachy. ;)Two, I'm having to write these articles from as OS-agnostic standpoint, and I don't always have Windows or Mac systems to test on. (I rely on docs and my existing knowledge of those operating systems for that. Since this works with system paths, that gets especially tricky. (I'm deliberately avoiding the entire topic of system paths for reason of OS availability on this end.)
Three, it's something of a can of worms diving into many tools: if I cover
pyenv
, undoubtedly someone will ask me to coverpythonbrew
,pythonz
,pipenv
(actually, already had four requests for that), and so forth. So, whilepyenv
looks like a thoroughly awesome tool, it seems a bit beyond the very specific knowledge level I'm aiming for. As it is, the Testing article is going to be a trick, because I need to cover all three of the main testing frameworks for Python, lest someone comment that I left out an important one.Anyway, all that to say - probably no. However, if you wrote an article on it, I'd happily add a link to it at the bottom of the Virtual Environments article. :)
Yay, Thanks Jason.
I'm really enjoying my journey with python so far. It's only been a short while since I started writing python, but it has found a place in my heart.
Looking forward to your insights.
Python is such an awesome language. So easy to do powerful things without a lot of cruft. Thanks for doing this.
Pure gem!
I don't know how I'm only discovering this series now. It looks great! I'll definitely bookmark this and refer back to it for a Python refresher.
Thanks for writing, Jason!
Fantastic tutorials. I hope the rest come out one day !