DEV Community

Cover image for Introducing "Dead Simple Python"
Jason C. McDonald
Jason C. McDonald

Posted on • Updated on

Introducing "Dead Simple Python"

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.


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.


The current series plan is below. Please note, I may rearrange, add, or remove planned sections.

Top comments (9)

damianrivas profile image
Damian Rivas

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. :)

codemouse92 profile image
Jason C. McDonald • Edited

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. ;-)

mandarvaze profile image
Mandar Vaze

Are you planning to cover pyenv - which allows to run multiple versions like 3.6 and 3.7 side by side ?

codemouse92 profile image
Jason C. McDonald • Edited

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 cover pythonbrew, pythonz, pipenv (actually, already had four requests for that), and so forth. So, while pyenv 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. :)

jaakidup profile image

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.

stevezieglerva profile image
Steve Ziegler

Python is such an awesome language. So easy to do powerful things without a lot of cruft. Thanks for doing this.

ankurt04 profile image
Ankur Tiwari

Pure gem!

awwsmm profile image
Andrew (he/him)

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!

jeffery25 profile image

Fantastic tutorials. I hope the rest come out one day !