Leanpub Header

Skip to main content
The Leanpub Podcast Cover Art

The Leanpub Podcast

General Interest Interviews With Book Authors, Hosted By Leanpub Co-Founder Len Epp

Listen

Or find us on Stitcher, Player FM, TuneIn, CastBox, and Podbay.

Eric Matthes, Author of Beginner's Python Cheat Sheets

A Leanpub Frontmatter Podcast Interview with Eric Matthes, Author of Beginner's Python Cheat Sheets

Episode: #201Runtime: 57:27

Eric Matthes is the author of the Leanpub book Beginner's Python Cheat Sheets. In this interview, Leanpub co-founder Len Epp talks with Eric about his background, how he developed an interest in computers and programming at an early age, living outside for a year and cycling all around North America, his book and the experience of seeing it become a bestseller, and at the end, they talk a little bit about his experience as a self-published author.

This interview was recorded on April 20, 2021.

The full audio for the interview is here: https://s3.amazonaws.com/leanpub_podcasts/FM179-Eric-Matthes-2021-04-20.mp3. You can subscribe to the Frontmatter podcast in iTunes here https://itunes.apple.com/ca/podcast/leanpub-podcast/id517117137 or add the podcast URL directly here: https://itunes.apple.com/ca/podcast/leanpub-podcast/id517117137.

This interview has been edited for conciseness and clarity.

Transcript

Beginner's Python Cheat Sheets by Eric Matthes

Len: Hi I'm Len Epp from Leanpub, and in this episode of the Frontmatter podcast I'll be interviewing Eric Matthes.

Based in Alaska, Eric is a former high school math and science teacher who is now a full-time writer and programmer.

Eric is the author of the book Python Crash Course from No Starch Press, which is the bestselling introductory book about the Python programming language in the world.

You can follow him on Twitter @ehmatthes and check out his website at ehmatthes.com.

Eric recently published his Beginner's Python Cheat Sheets on Leanpub. These cheat sheets are an invaluable resource for anyone learning Python, and have been downloaded over 1.5 million times by people all over the world.

In this interview, we’re going to talk about Eric's background and career, professional interests, his book, and his experience as a bestselling author.

So, thank you Eric for being on the Leanpub Frontmatter Podcast.

Len: I always like to start these interviews by asking people for their origin story. So, I was wondering if you could talk a little bit about where you grew up, and how you first became interested in programming?

Eric: Yeah, "origin story" is a very good phrase. I grew up in Nashua, New Hampshire, which is outside of Boston. My origin story, relevant to this story, probably starts with learning to program.

My dad was a software engineer in the 60s and 70s. He worked at a number of the different companies on the strip between Boston and New Hampshire. My first experience with a computer was watching my dad build a computer in the late 70s in our basement.

There was an unfinished basement, and it matched the feel of this unfinished computer. It was just a bare keyboard without a case and a cathode ray tube without a case, and some chips laying around. And so my first program was a number-guessing game in BASIC on that setup. It's kind of like the Raspberry Pi of the 70s.

Len: Sorry to interrupt, but actually this is a question I've asked a lot of guests on the podcast. Because so many of our guests, other authors have been into programming and stuff like that, and so many - I can't tell you how many people, it's like - it's from a parent.

Eric: Yes.

Len: Often their father introducing them to them as a kid. But one of the really common experiences that people had around the era that I'm guessing you were getting going, was that their first programs were from magazines, and they would type it out into the computer. Is that what you did?

Eric: No. I remember sitting at my dad's computer, and being happy that he was letting me touch it. And him just telling me - I don't remember how he taught me. The first real memory I have is trying to make that number-guessing game. Thinking it was going to work. And then trading the seat, asked my parents to sit where I was sitting. Me standing up and watching them, and seeing that this game that I had created worked. It's one of the simplest games you can write as a programmer. But I still remember that feeling of watching somebody else play a game that I had written, and seeing it work.

Len: That's really amazing. And did you continue programming throughout your youth, growing up?

Eric: I did. Now that we're talking about that again, the other visceral memory is going into Digital Equipment Corporation and playing on deck terminals. And there was a terminal Invaders game. I just remember - on those old clicky keyboards, playing that. And so I am jealous of people who get to learn programming today, because of how many resources they have at their fingertips. But I'm also grateful to have learned it back when you're much closer to the lower-level architecture.

Len: And jumping ahead to university, I believe you studied physics?

Eric: Yes. So your question was - did I continue to program? I did off and on. It was always something that I was curious about and fascinated with. I enjoyed learning a variety of languages. Some of it's a little hazy about when exactly I learned it and how, but I ended up with some exposure to C, Pascal, Fortran - and a couple of others thrown in there.

I had a really good chemistry class in high school. I thought I was going to be a chemical engineer, because I enjoyed chemistry. I was like, "Okay, cool - I'm going to apply this in the world." And I got to university, and I had to take a physics class, and I found that taking physics classes alongside engineering classes - the engineering classes seemed like solving other people's problems. And the physics classes seemed to be about understanding how the world worked. And so, as an older teenager - I was just super curious about how the world worked, and physics kind of got at the heart of that.

Len: I think - I recall from listening to a couple of interviews that you've done in the not too distant past when I was preparing for this interview - I believe you learned a very important lesson that you learned from that chemistry teacher that you kept with you? It was something about learning how to learn or something like that.

Eric: Yeah. There's a few teachers that stand out. And what I remember from that chemistry teacher, I feel really fortunate, was six people in that class, and I went to a high school that had about 2,000 people in it. So the idea of having a double class period - every day, for a year - with six people, was just such a quality learning experience. And the teacher had a reputation of being really difficult. But it wasn't him making the work difficult, it was him exposing us to challenging work, and being confident that we could learn it. He was one of the first people that made me want to work really hard to learn something that wasn't easy for me.

Len: That's really great. It's - I can imagine, as a teacher - maybe we'll talk a little bit about this going forward, but particularly the bigger a class gets, the ability to reach every student would be just this kind of - I don't know? Exponential problem.

Eric: Yeah, yeah. It's definitely less personal the bigger a class is.

Len: And so you studied physics, but you didn't carry on in physics?

Eric: No, I wanted to be a particle physicist, because I was trying to figure out, what is the most core way that I can understand the universe? But I also knew that I didn't want to be a student into my thirties. I wanted to do something outside being a student for a while. This was the early 90s, I graduated 1994. I was looking for what I could do for a while, while figuring out whether I wanted to go to graduate school. Physics is interesting in that it is one of those gatekeeper classes - it's a class that everybody in engineering and physical sciences has to take. Not everybody likes it. And, yeah - it's used as a gatekeeper class.

And so as a 19 year old who understood it, I got involved with a tutoring group. I did volunteer tutoring for several years in college. That was a really humbling and eye-opening experience, to tutor people younger than myself, people my own age - and people much older. We were tutoring people in their forties and fifties who were going back to school. That's a really interesting experience for somebody that age. I always appreciated people basically being vulnerable. If you go to a volunteer tutor, you're saying, "I need help." And I sure had respect and learned from that.

So that got me interested in teaching. I ended up deciding to teach for a while outside of college. I found the intellectual challenge of trying to reach everybody in a class, was as satisfying as the intellectual challenge of hard science.

Len: And then you taught for a while in New York, I believe?

Eric: I did. I taught for seven years. I taught four years, middle school science. Then I left for a little while, and lived on a bicycle for a year. Then I went back and taught math for three years. And then realized I couldn't live away from Alaska anymore, and I moved here.

Len: Just before we move on to talk - there will be a little bit of a really fun tangent, where we talk about your biking, but before we do that, there's a question that I'm really looking forward to asking you, because it comes up pretty often on the podcast. But as someone who teaches, if you were starting out now - or if there was a young you starting out - having just graduated high school now, and wanted to pursue a career in programming, would you advise your newly-minted 2021 eighteen-year-old self to get a four-year degree in Computer Science at university? Or try to use all those tools and things that you mentioned, resources that are available to people now - to, say, avoid student debt, or something like that?

Eric: Well, I was thinking about this podcast today and wondering what hard questions you would ask, and that's the first real hard one. I don't have a clear answer. I can say that college was a really, really good experience for me. I feel fortunate to have avoided the student debt issue that was starting to really grow around that time. I went to a state school, and I chose that because I recognized that I didn't have specific enough goals to justify a higher private tuition.

My core advice would be to be mindful of the obligations and debts that you're taking on. There's a trend in the tech industry right now to kind of look down on college. Because when it's not done well, it's a terrible burden for people. But four years of studying Computer Science, really - if it's done well, gives you a good understanding of how computers work and how - not just the computers, the machines themselves - but the logic, the foundations of how things work.

When I said earlier - I feel grateful to have first learned programming back in the seventies, that was when we learned - we managed memory ourselves. And so I wasn't thinking about it much as an eight-year-old. But as I started to learn more about programming, we had to think consistently about how memory was being managed. You don't need that to start out now, but when things get difficult - that basic understanding is really helpful. People who do a good four-year degree - not necessarily expensive, not necessarily at an elite institution - but people who do a good four-year learning experience, get that foundation, and that does tend to pay off in the end.

Len: It's really interesting, because - unlike maybe in other subjects, if you're starting out in Computer Science, if you don't really already have experience with the actual thing, the tools that you're going to be using - and then you get hit with theory, you have this kind of double challenge, where you have to figure out how to set things up, before you can even start really even trying to do the exercises or whatever, that you have to do to figure out the theoretical issues.

Eric: Yeah, I think - the work that you can do related to any of this is so broad, and there's so many options, that there's room for people who have done Computer Science programs - and there's room for people who just know a basic level of programming.

What you do need if you're thinking about doing this professionally, is the mindset of - the way I always say this is, people are not paying you to write code, people are paying you to solve problems. And so if you are just out of high school, and you already have that mindset of, "I'm going to use what I have learned so far to help people solve problems," then you can probably go straight into some kind of work. Yeah, you just have more tools, the more you learn to be able to do that.

Len: I think there might be actually a sort of a subtle, but very important point in that - that really good piece of advice, right? That when you're working as a programmer, your job is to solve problems for people who have them. It's not necessarily to use the language that you already know, or to write as much code as you can in the shortest period of time. We've got a bit of a saying at Leanpub, which is like, "People who abandon book projects early on, because they're not getting feedback - when they otherwise wouldn't have known for three years, that's actually a really excellent outcome".

And if a client hired you, and you can solve their problem without writing a line of code, you might become their favorite person to hire.

Eric: Right.

Len: I mentioned that we would be going on a bit of a tangent. And so you mentioned rather modestly that you lived on a bike for a year. But you - I believe you lived continuously on a bike for - was it thirteen months, or something like that, at one point? And you basically cycled all around the United States, and all the way up into Alaska as well.

Eric: Yeah. I basically circled North America. I worked at a camp in the White Mountains in New Hampshire during college, and I read a book at that time called A Walk Across America There's a guy named Peter Jenkins - he had graduated college and wasn't sure what to do, and wanted to know his country and its people. And so he set off in New York, and he walked down to Louisiana and then up to, I think, the coast of Oregon. I liked that idea of seeing the land and meeting people unpowered, but walking sounded too slow.

I was already a bicyclist. And so, when I had been teaching for two years - it was the first time in my life where I had a summer off and no obligations. And so I ended up flying to Seattle and biking back to Maine, just one-way, across the US. I liked it so much, I did it again the next summer across the southern tier of the US. Which was much different. If you cross Northern North America in the summer, it's kind of a playground of lakes and mountains and a little bit hot, and whatnot. But if you go across the southern US in the summer, it's like 114-degree days in the desert, and 95-plus in the southeast with humidity.

I liked that as much for the challenge, and I wanted to live for a full year outside, and feel the seasons, and just commit to that lifestyle. So I quit my job and started in Seattle, and I went across to Michigan, the Great Lakes area. And then up into Canada, as far as you can go on a road in north-eastern Canada. And then I down into Maine, and down to Florida, over to California, and up to Alaska.

Len: It's just an amazing accomplishment. Again, I should mention - there's a book that you wrote back in the day called The Road to Alaska, that people can still get on Amazon, or anywhere else you can find it.

I just have a couple of questions. I'm sure you've been getting this your whole life, ever since you did it.

You said, "being outside." So you would - you presumably had a tent with you that you would set up whenever you were ready to end the day?

Eric: Yeah. I had camping gear and some food and clothes, and I just woke up in the morning and had a Pop-Tart. I got on the bike and rode and - I mixed making my own food, and stopping in restaurants. And if you're traveling alone, stopping in restaurants is kind of nice, because you get to meet people and talk to people - it's where a lot of those interactions happen. Most of the time you can find a place to camp out between towns. There's a few places where that's challenging. But if you're comfortable asking people - living on a bicycle is fairly non-threatening. So most people were pretty happy to help and point in a direction, or offer something.

Len: Thank you for offering that up spontaneously, that was going to be my next question, and I'm sure it's the one you get a lot when you tell people about it. When there's some stranger on a bike - shows up and says, "Can I sleep in your farmyard?" - it's probably a bit different than if someone rolled up in a big truck and said, "Can I set up my bed?"

Eric: Right. Yes. But, so that was mid-90s when I did that. And back then, people told me, "You can't do that today. You could do that 20 years ago, but it's not safe." And I feel like there's probably people today who would say, "You can't do that now. You could do that in the 90s when you did it, but it's not safe." I have hoped to do that again in my 50s or 60s, because I want to test that idea of how much has changed. Clearly a lot has changed, but I feel like people are the same. So yeah, I hope to do it again and see what's changed.

Len: That would be -

Eric: It's interesting -

Len: Sorry.

Eric: Yeah, it's interesting that you bring this up. I haven't actually spoken about that trip for a while. And in the context of - yeah, do we go to college, how do we think about that? That was a time in my life where people were pushing me to go back and do a Master's - either in science or in education. A lot of my peers were doing that. I chose to do this instead, because I felt like living outside for a year was going to teach me as much as doing a Master's program was. From the 20-year perspective, I feel like it did. It was such a grounding experience. I met people from all walks of life and learned what I needed to and - if we circle around to writing at some point, a lot of it's just about perseverance. And so that idea of like - how do you bike 10,000 miles? You get up each day and you bike a mile.

Len: Yeah, the part of the story - and one of the reasons that I was really looking forward to talking to you about it was, that really grabs me - because of my personality type, the idea of just like heading off in a direction and not knowing where I'm going to stay the night, that's just something that - unless I learned to deal with it, I would just be preoccupied with it until the very moment that I had my tent stakes in the ground.

Eric: Yeah. It's a freeing feeling, and it's a scary feeling. Whenever I've ended those trips, it is always nice in some ways to not wonder where I'm going to sleep each night.

Len: I think that would be an - assuming it's still safe, I think that would be an absolutely fascinating project - to try it again, and see what things would be like. I mean, would you be looking at your Google Maps all the time, or would you choose not to?

Eric: Right.

Len: There'd be so many interesting decisions to make that way, right?

Eric: Yeah. I did it before smartphones. And so I had a paper map of each state, and I would just figure out where I wanted to finish each state or province, and then pick the least-travelled path I could find to that other side of the state or province. I'm glad I didn't have satellite pictures to look at.

Len: Actually, just before we move on, since you're mentioning states and provinces. Was there - I mean, Canada's a big place, the United States is a big place - did you find there was any kind of generic difference between the people you encountered on one side of the border versus the other?

Eric: It was interesting. When I was in Canada, people were very warm and welcoming, as they were in most of North America. People would close up a little bit when they learned that I was American. It was always very subtle. But yeah - noticeable, it happened. I love Canada. I have lived probably six months in Canada, just from different trips. Yeah. Big, big topic.

Len: Yeah.

Eric: Where we live.

Len: Yeah I know it is, it is - yeah. The only thing, I guess - I've spent a fair amount of time in the states, and the one thing I've observed is that Americans are much more likely to strike up a conversation with a stranger if you're sitting at a bar or something like that, than Canadians are. And they're offended if you don't - if you're unwilling - if you just don't want to talk to them, right? So if a Canadian crossed that vast gulf to start talking to a stranger sitting next to them - and that person just said, "I don't want to talk right now," they'd never forget it, in my stereotypical image. An American might go, "Did you see the game last night?" And if someone goes, "Man, I just don't want to talk right now," they'd be, "No problem." Just carry on. But anyway, yeah, we could talk about those kinds of things forever.

And so, you went on this massive, epic journey. In the end, it took you to Alaska - and then you decided to move there.

Eric: Yes.

Len: Did you have a job lined up before you moved?

Eric: No. When I was single, I cooked every night. I could live on beans and rice and pasta with spaghetti sauce every other night for life. So I kept my costs fairly low, and it wasn't too hard to pick and move around. So I did come here without a job. Also - to be honest, being a math and science teacher means that you can find a job pretty much anywhere.

I did know people. I'd moved here because I'd met people in Glacier National Park who were biking and then moving here. So I called them up when it was time to move here, and said, "Hey, can I come visit?" And they're like, "Yes, come join us." So I stayed with them for a month, and then got on my feet here.

Len: That's really fantastic. And actually that gives us a good opportunity to move onto the next part of the podcast, where - since last March, we've started asking people about how the pandemic has affected them where they live - and their work as well. And you live in a particularly unique place. So if you could explain a little bit about where you're situated, and how life has affected people in your area?

Eric: Yes, I live in Sitka, in South East Alaska. And like many people here, I thought I would come here for one year, and then figure out where I really wanted to be in Alaska. But the southeast is gorgeous. We have big mountains, we're right next to the ocean. Most people have some sort of subsistence lifestyle, where we catch our own fish, and hunt and gather berries in the summer. And so it feels like a pretty connected place.

Sitka is a town of about 10,000 people on Baranof Island. Baranof Island is 100 miles north-south, and about 20 miles east-west. So our town is a tiny strip of land on the western edge of a 100-mile island. We have 14 miles of road. And so, one of the things to do sometimes is just drive from "end" - from the sign that says, "end," to the other sign that says, "end." It takes about half an hour.

So you're asking how the last year has been. It was kind of scary going into pandemic year here. Because it could be very nice to be in an isolated place during a pandemic, and it could be pretty brutal to be in an isolated place. Alaska has a fairly recent history, in the last 100 years, of suffering pretty hard times. Generational loss during both pandemic and disease brought from explorers, to put it quite broadly. So it woke up fairly recent memories for a lot of people.

It has turned out well, for a variety of reasons. We we had a small outbreak over winter that kept all of our schools remote for a while. But we did not have a serious outbreak. I deeply appreciate the things that people in our community have done to make that happen.

Len: Thanks a lot for that, and particularly for drawing those historical connections - those are so important to keep in mind with things like this.

And so, you found a job teaching math and science.

Eric: Yeah.

Len: And then you still had a programmer in you.

Eric: Yes.

Len: I gather you sometimes got to teach programming at the school where you taught, but eventually you found yourself going to a Python conference.

Eric: Yes, okay - this is the story of our lives here, right? The full story is that my father died in 2011, a month after my son was born. And so that was a pretty, pretty jarring experience. And one of the things I did when spending a week with my mom, was to go through my dad's computer. She asked me to go through his computer and tell her if there were any - anything that she should be aware of on that. Anything she should preserve or reach out to people about.

And so it was really personal way to kind of reconnect with my dad one last time. Because every time I visited him, we'd talk about programming, and our various work. I saw all these projects that would never see the light of day, because he was waiting until they were good enough to share. And so I realized that I had developed meaningful programming skills, and that while my teaching was going well, and I was doing good things with it - programming is a fairly valuable skill, and I should start to think about whether there was anything that I could do with that more meaningfully. And so, that led me to come back here, and try to figure out a project to focus on.

I was a hobbyist programmer. I had always just kind of dabbled. I remember reading Chaos by - think it was James Gleick. And there was a piece in there about how you can build ferns, images of ferns from some simple mathematical rules. I would like read a chapter like that, and then close the book and go write a short program that tries to build a fern. And that was the extent of a lot of my projects.

And so, yeah - that experience of going through my dad's computer led me to say, "What's a meaningful project that I can carry all the way through to it meaningfully inviting other people?"

Len: And so you went to this conference. I think one thing you realized there, was that there were a lot of people there like you, right? Everybody wasn't a sort of doing like cutting-edge, big-company Python programming. There were a lot of people there who wanted to learn.

Eric: Yeah. PyCon was super interesting. I was fortunate enough to be at a school where we were encouraged to travel and go to conferences. I had been to my teacher conferences and whatnot. And so I said, "I'd like to go to a programming conference, and just kind of see what's there."

I was super intimidated. I expected to be surrounded by people who were only focused on programming. And I have found every year that I've gone to PyCon, that it seems to be about - half of the people there are mainly programmers, and they're kind of looking for what problems to solve, and problems to focus on. And about half the people seem to be people from other areas, with domain expertise, who are looking to use programming to better address their problems that they're trying to solve. So, yeah - I instantly felt accepted and welcomed, and just kind of blew my mind about all the different directions I could go to do meaningful work.

Python Crash Course, 2nd Edition: A Hands-On, Project-Based Introduction to Programming by Eric Matthes

Len: Moving onto the next part of the interview, where we talk about your book Python Crash Course. I'd really like to hear the story of how this bestselling book originated. I believe partly it was - you'd been trying to think about, how can you really present a book or a process for beginners to get going, that doesn't treat them like children, and doesn't assume too much about what they know.

Eric: Yes. So that was 2013. I first went to PyCon in 2012, and the direction I was heading was to write software that would address the inefficiencies in education. And there are many. So the mindset that I was coming from was the open source model. Alright, so the open source model started as early as computers existed. People think of the 90s, 2000s around open source kind of being named and developing that model. But all software was open when they first started, and then people started privatizing it and making money from it, and building companies around software, and closing up systems.

I like to think about Emacs and Vim. Those are two open source editors written in the 70s that people still use to this day. And the stories from both of those is that people, programmers were more interested in competing on more interesting ideas, than just selling text editors. So people agreed to keep their tools open, and compete on bigger and more interesting problems. And so the tools for writing software have been free and open for people for 50 years now.

If you look at education, that's a lot of tools that are either low quality, or really expensive and exclusionary. And so my big push was, "How can we take that mindset of building high-quality open tools, to let teachers do their jobs better and students learn better?" And so I got -

Len: Yeah, no - I was going to say - you're making a point, something I've thought about. Not to the extent you have, but a fair amount, about how basically proprietary software and education don't necessarily go together that well.

Eric: Right. Well, I gave a lightning talk at PyCon in 2013 about these ideas, and I had some specific ideas for how to address this. And, oh man - as a teacher, giving a talk at a programming conference was so intimidating. I shouldn't say "intimidating," it was just weird. Because I did a lightning talk the last day of the conference, right before the closing event.

And so there's 1,500 people in Santa Clara, California - and when I stand in front of a classroom, I'm totally comfortable, and my job is to like tell everybody like, "Pay attention to me for a few minutes." I've never been a super strict, controlling teacher. But I make sure people respect me, and people respect each other. And so, to stand up in front of 1,500 people - and half of them have their phones out and are on Twitter, the other half had their laptops out. And I can't say, "Put your devices away." It was really, really weird to just start speaking with everybody looking down and whatnot.

But at one point in that five-minute talk about these ideas, I said something along the lines of, "Proprietary software will never foster a revolution in education." And people looked up and cheered. And I was like, "Wow, they're listening and they get it, and this could go somewhere."

It was really interesting, because after that talk, about 20 people met me over at the side of the hall to kind of just dump their educational stories. People think like if you have bad teachers - okay, like maybe that's not fun, maybe you don't like school for a little while? But bad educational experiences are traumatizing to people. And so half of those people were basically telling me how inefficiencies in education had traumatized them for a while, and that was their motivation for seeing these kind of things be developed.

Len: I'd like to talk about this a little bit more. But just to jump in actually, there was one odcast I listened to, preparing for this interview. One line, I'm going to quote you back at yourself - really stood out to me.

Eric: Sure.

Len: It was on, might've been on Wil Vincent's Django Chat Podcast? And you said something that like very much resonates with me, which is, "If you understand the world, people can take less advantage of you."

Eric: Yes.

Len: And when you talk about the cost of a poor education, it's very much - often people think - oh well, people who conflate education with job training - they're like, "Oh well, you just pick up those skills elsewhere later on," or something like that. A poor education leaves you weaker, just in life generally. And someone famous once said, "Knowledge is power," and they were right.

Eric: Oh absolutely. Yeah, and it's systemic. And so some people are kept from a quality education, many people are.

Len: Yeah, I just bring that up to say that like the importance of this subject, of getting education right, is about a lot more than we sort of - all of us normally think in our day-to-day lives. I'm just trying to draw a connection between something that might sound kind of obscure - like a complaint about proprietary software - and quality education. It's not a trivial matter, or a snarky thing, or an anti-corporate thing.

The example I always like to give when I talk about it, and this is usually in the context of talking about how Leanpub works, is, I have an academic background in English literature - and at a certain level, you're doing a lot of looking into historical texts sometimes. And I was doing this kind of - I did my doctoral research at the beginning of the century, and at the time - and starting a few years before then, archiving texts for the sake of preserving knowledge for the future - had become this huge issue. Particularly in, and I'm just picking an example so that people will maybe get it. But , there used to be this thing called "big-ass Laserdiscs." Remember those?

Eric: I do, obscurely.

Len: Not CDs, but these big-ass laser - They weren't called "big-ass Laserdiscs." They were called "LaserDiscs." But anyway, what happened was - the technology to create them, the technology to produce them was owned by particular companies. And you had to have a particular way of reading the stored information, in order to get it out, and then translate it into something readable, basically. And so a lot of libraries invested a lot of money in digitizing their archives. But then when the LaserDisc format became something that people weren't using anymore - they now had all this useless archive, and something that could degrade and things like that. And one of the ways of preserving - because in a way, text is the easiest one, right? Because we have - in the computer world, there are formats that are universal and global and very clear. Which is - literally this set of one's and zeros is a lower case "a." Literally this set of ones and zeros is a lower case "b."

Once that standard is open, then anything written according to that standard can forever be interpreted, one way or another. But if you're if you're storing it not in plain text like I'm describing - if you store your text in like Microsoft Word, right? If you lose access to Microsoft Word, or if Microsoft Word changes, right? Then you don't have that record of that text anymore. I'm putting it in a kind of like very high-level way. But you can imagine when it comes to learning materials and stuff like that, having it behind something that is owned and can be controlled by any particular organization - just inherently weakens it from the perspective of long-term education.

Eric: Alright, you're going to fire me up again. Because the project that I spoke about at the time - that conference - was a project that would open up education standards. Because in the education world, the education standards - Common Core standards, National Council of Teachers and Mathematics Standards, ETM - any number of standards. Next Generation Science Standards.

They're open, in that everybody has access to them. But they all have these weird, somewhat limiting licenses that keep ultimate control in the hands of a particular body. And all the standards have different structures. Some of them even have different structures within their own body. And so when you try to build lesson plans or build planning tools, curriculum tools - anything you build in education these days, tends to be on top of those standards. And so that lack of consistency and that lack of openness, means that everything else in education is inefficient and will need to be updated, and possibly lost, every few years.

Len: Oh that's so interesting. I was taking it from the totally kind of straightforward sense of technological standards and stuff like that. But what you're saying is that, it's the kind of rules that you're allowed to go by that are kind of proprietary.

Eric: Yeah. The standard of a student who will be able to count to 100 by the end of grade one. That's written one way by one body, and a different way by another body. And it's at different levels in the hierarchy, and any number of differences. Every few years, those hierarchies change, and the way they're phrased changes and - yeah, it's basically a system of perpetual obsolescence. Which is what we see here with your story about the Laserdiscs and Betamax tapes before that, and any number of file formats over the years.

Len: Yeah. And I'm trying to think of a segue from our very interesting digression, back to your book, but I guess -

Eric: Okay. Yeah, I can do that.

Len: Great, perfect.

Eric: Yeah. So that talk is a five minute talk about how we should develop open standards, and how those open standards were similar to the idea of openness that was at the foundation of the whole computer industry, going back many years.

One of the people who came up to talk to me was Bill Pollock, who is the owner and founder of No Starch Press. He basically said, "I like the way you're talking about education, and if you are ever interested in writing a book, feel free to get in touch." I didn't want to write a book. I wanted to build this open standards platform.

But I went back to teaching after that conference, and when I got back to Sitka, and went back to my classroom, I saw a butcher paper list - a handwritten list that I had put on the wall of my classroom, that basically said, "What's the least you need to know about programming to do interesting projects?" I looked at that, and was like, "That is the table of contents of the book I should write." Because this is 2013, and this is when all the introductory books that existed made assumptions about what people knew. They - a lot of the books kind of fell into that mindset of, "If people aren't getting this, it's probably because there's something they're doing wrong."

I like the teaching mindset of, "Okay, if people aren't getting it, it's a fair chance it's something that I'm not doing right. I'm not explaining clearly, I'm not anticipating."

The history of programming books is pretty interesting. First programming books were just manuals. When people started writing programming books, they were just written by programmers. And then as the industry evolved - you started to have people who had some experience teaching, starting to write some of the books.

And so, I decided to write that book, because I had wanted to give my students a book that they could learn from, and not be tied to my piece when teaching. Because that's the story of programming too. You get into it, and you're like, "Alright, I have the power. I can control this computer." But people say, "Well, with the internet, you can learn anything you want." Like, "Yes, if you can wade through the entire internet." So a book is really good.

Because if you can meet it where that book begins, then hopefully you can go all the way through that book, and come out basically a different person with different abilities, different skills, different understanding. But if the book leads you off track, or if you get confused by something and can't get an answer, then you're just kind of dumped out of that book.

I watched my students get dumped out of every book that was available, because of things that they couldn't possibly know. And if you don't know if somebody is a programmer, you really couldn't get your question answered.

Even with Stack Overflow, if you don't know to go there and don't know how to ask your question - you just cannot progress. And so, in the classroom, my students were successful - because I was that person who could answer their questions. But I could see that these books were not working for - they were working for many people, but there was a whole class of people that they were not working for.

I alluded to it, I think earlier - I forget if I did or you did. But the guiding principle was, "The least you need to know about programming, in order to start doing meaningful projects." Because I feel like that's where people want to end up.

And the other part was, "I'm going to assume nothing about what you know as a programmer, but I'm also not going to treat you like a kid." Because my choices as a high school teacher, when I first started this project, were books that would respect my students as high-school-aged people, but weren't written for them. Or kids' books, which might work for them would really be speaking down to them. And so - yeah, so that was my goal. A lofty goal, but with a focused approach.

Len: I've never written a book like that myself, but working at Leanpub I've seen a great many of them. And I've - being a non-programmer myself, who found myself in the kind of tech startup world a while ago - I'm familiar with the problems that people face when they're sort of - one of my jokes is that, as wonderful as the Stack Overflows of the worlds are, the first person to answer any question is going to be, "Why would you want to do that in the first place?" And the second one is going to be, "Well you just snarf the fizzle and you're done."

Eric: Right, well said.

Len: Yeah, and the thing is that like - the particular challenge, I think - and this is the mistake that I intuitively make when I think about creating documents like this, is that, "Oh, you just need to get the beginning right." You begin with turning on the computer. And then there's this thing attached to it called a mouse. And when I say, "double click," that means take the little pointer, which is the triangle thingy. And like - A - it's really hard to do without sounding condescending. And, B, you have to do it the whole way. And that's where the really hard part comes. Because, and this is what I - I've never heard it - I think you said that, "People get dumped by the book."

Eric: Right.

Len: Which is a really great thing. So, there you've got this relationship with this book - and then all of a sudden, damn - there's this one unfillable gap and you can't progress. And so to do that, to do that successfully for a whole book - because you're not just assuming from the beginning that like they don't know anything, you don't know they don't know or whatever. You have to be keeping that in mind all the way along.

Eric: Right. And it's interesting to listen to you describe like, "How do you begin?" Because that's a challenge as well. Because you can't begin with "Turn your computer on. Press the button that looks like -" But you can't just say, "Install Python." And so finding that line of what exactly needs to be shared, in how much detail - and then what to tell people if they get off track.

One of my reactions back in 2013, was to a book that basically intentionally left things confusing and told people to go look them up.

It's pretty interesting to say - as an author, what do you tell people if they don't - if they get stuck? You can't tell them all to email you. You can't tell them all to go to Stack Overflow. So my thinking has always been - one of my goals is to let people lean on me while they're learning. So, basically say like, "If you start my book, I'll carry you through this far." But also, not to make people depend on me, or depend on my book. The goal is that they are part of the larger programming community. And so, I encourage people to go to a number of different communities and forums and resources when they're asking general questions, and when they're asking deeper questions.

What I try to watch for, if I'm ever just dumping people back into the community, for the community to support my book - then I'm taking it, doing it wrong. I've had numerous conversations recently about how much more work this book is than people realize. Like, I've worked 10 to 20 hours supporting Python Crash Course every week, on average.

Len: This is something that I was actually really looking forward to talking to you about, and I'm really glad you brought it up.

Because this managing the community that grows around a book, and particularly what's called in the jargon, a "prescriptive non-fiction book," is actually a really fascinating thing. I'm just going to say this as a joke, into the way of my next question. Which is - there are a lot of authors who actually can handle being emailed by all their readers.

Eric: Right.

Len: But anyway, related to that - so you had the experience of - you were teaching, and then you decided to write this book in the time that you could get it together. And I know there's a whole story around that, about how long - and it always takes longer than you think.

Eric: Yes.

Len: But you wrote it, you finished it. You published it. It was published by No Starch, and then it became this big hit. What was that like, when the sales started to take off?

Eric: Oh boy, it's interesting. Because when I was writing it, I knew it could be good. I also was aware of how much time I was putting into it, and how much my family was giving up my time with them. And so I had a vision that - or a goal. That it would be one of the main Python books for the next ten years. And my plan was just to produce the best book I could when it was released, and then fanatically pay attention to feedback - not reviews, reviews are a minefield.

But feedback. So emails, communications. And just constantly make the book better. And I have done that.

It was interesting. When it was first released, it was a really quiet period after that. Because it's out there. I'd get questions about chapter one, and like a few questions about chapter three. You're like, "Wow." You can kind of see the first wave of people working through the book.

And then, as it started to become like the go-to Python book, yeah - it became a second job again. It was definitely a second job writing it. And then keeping track of people's questions, developing resources to go along with the book, to support people in their learning - to explain a little bit more about that, I always try to notice when - Go ah ead?

Len: Please, yeah, I'm very interested in this.

Eric: Yeah. When people are writing to me, if somebody asks a question I've never been asked before - okay, I'll answer that person. And a lot of times, that happens because they have some unique aspect of their system, or something they tried to do that they got into a really weird edge case. But if I start to get multiple people writing in about the same thing, then I need to either clarify what's in the book, or put out some kind of update, or something like that. And so that's how I manage most of the - like my email is still manageable, because I've steered people towards the online resources, when I have something there that answers their question.

Len: And so when you say, "Put out an update" - just to be clear for sort of maybe regular listeners familiar with Leanpub - we're not actually talking about an updatable ebook here, we're talking a print book.

Eric: Right.

Len: You then had resources that you were, every day, maintaining online. Was it a website, or something like that?

Eric: Yeah. There's online resources where people can access the code and solutions and the cheat sheets and things like that. But also, with a print book - well, with Python Crash Course, there's a new printing every three to six months.

Len: Oh, that often.

Eric: Yeah. And each time it gets a new printing, I have the chance to submit minor updates. You can't change the book. You can't rewrite a chapter. The guiding principle is, nothing that would change the index. And nothing to change the spirit of the book.

But if there are either mistakes or a library has changed - if I can manage to correct that in the book without restructuring the book, then I get to do that.

The first edition ended up going to I think 11 printings. And that 11th printing was a very different book to the first printing. Not in spirit, not in what people get out of it. But as far as if you put them side by side, you kind of couldn't go through the first printing without running into trouble. But then, the printing - we're still working on the material.

Len: Yeah, and just to be clear, anyone interested in buying the book should make sure you get the latest edition of Python Crash Course. Currently it's the second edition, I believe?

Eric: It is, and it's something that's worth saying. If you're in the tech world, it feels like you don't need to say that - but for people who are just starting programming, they aren't aware of what a first edition and second edition means. A lot of people think a second edition is like a second volume, and they're not aware of the updating that goes into a tech book.

Len: In the last part of the interview, that we keep for the very last - if the guest has been using Leanpub in one way or another - we always like to ask them a little bit about that experience. I was wondering, just to ask you - do you remember how you heard about Leanpub, as a potential platform for the cheat sheets?

Eric: Oh boy. I have been writing since high school. And so I've always paid attention to things related to writing. I heard about Leanpub around the time it was introduced. Following the physical bookstore to digital bookstore to Amazon to things like Books-A-Million closing, to ebooks, to online publishing platforms - has been really, really interesting.

So, I do the cheat sheets. I put them together over the course of a summer, just in the idea of they would be something that would support people in working through their first Python learning resource. And then I stopped being able to update them, because I just made them in Word originally, and converted to PDF, and that is just a mess. So I wanted to update them, but doing it properly was going to be a lot of work. And when I finally did it, it was a month of full time work.

And so, I was in this weird space of having a commitment to keep them free, but also wanting some opportunity for people to pay for that work. And so I looked at the different platforms for hosting digital content. And Leanpub, I mean - I'll just say it, it looked brilliant when I compared it to the other platforms. Just that idea of, "Here's what's being offered. Here's a brief description. Here's a detailed -"

And the slider. The slider interface is just, it's beautiful. Because, okay - specifically for this case, I want people to know that it's free. I want people to know the price that I think is fair, if they can pay for it. And I'd like them to know what that breakdown is, as far as - particularly in this case, where they could have it for free. People who are going to choose to pay for that, are only wanting to do that because they're supporting my work. And so that slider makes all of that really clear, and it's so much different than a button that you just click and say, "Oh, I'll click the free button." It's just as quick, almost, to get the free one if you need it or want it. But it's a momentary pause to think about all that goes into creating these resources.

Len: Yeah, thanks very much for the kind words, and for saying that. It's really interesting actually. There were some people who were behind one of the world's most successful MOOCs about data science. And one of the reasons they came over to Leanpub for some of their resources was precisely, exactly the same thing. "We've got this global educational resource reach, and we've got some extra materials - and we would like people to have the opportunity to provide us with some money if they want to." But it really was so important to them that there was a big word "FREE!" with an exclamation point there, along with the opportunity to actually spend some money on it as well. And one of the lessons we've learned over the years - is that like books with a free minimum price, can make the most money.

It's partly because it's establishing - I like to put it in kind of romantic terms. But like, it's establishing a different kind of relationship from the typical one like you described where there's a "buy" button. Well, in this one, we actually have the slider you're talking about. There's two, right, typically? There's one on top that says, "You Pay." And there's the other one right underneath, it says, "Author Earns." And a lot of people - and this is old Leanpub, going back to the beginning. When we first introduced them, people were paying strange prices. And it was because they were dragging the "Author Earns" thing.

Eric: Right.

Len: That's how they were deciding how much to pay. And when - we very often have people who get something for free, check it out - and then come back and buy it if they think it's worth it. And so, again - a lot of it is about - a lot of work has gone into that sliding part of the page over the years. But it's about genuinely establishing this relationship. Like, you're not just paying it out there. You're paying it to the person. They are going to get it. And, "Here's how much they're going to get from what you pay." And that's just very important to us.

Eric: Yeah, well - when you talk about this arc of publishing for physical book stores to ebooks to independent publishing to digital platforms, it is so clear that Leanpub equally respects readers and authors. And that's all clear, right in that interface.

Len: Oh that's very - I'm very glad to hear that. That's exactly what we're aiming for.

And so the last question that we always like to ask, if the guest has been using Leanpub, is - if there was one thing we could fix for you that really bugs you, or one thing we could build for you - what would you ask? And you're not allowed to mention packages, because I already know. Our first interaction was - Eric found a bug with the way our packages were working, so we already know that that's one thing we could improve for you.

Eric: Right. Yeah, and to be really clear - my question was answered really quickly and really effectively. And so it just got me more into the platform. I think I found that bug because you all have built a platform that is flexible. So, the idea I think originally was to support authors writing books and help them reach an audience before the book is finished. But it turns out, it's really good for things like cheat sheets - which are not a book at all - a digital good, digital document, with a similar concept, of someone who is creating a meaningful learning resource, wanting to connect in a respectful and flexible way with an audience. And so I think that - yeah, I don't have any specific requests, because you guys are clearly paying attention to how your platform is being used, and how it can be used.

Len: Well, if you ever do - please don't hesitate to reach out. You've got my email.

Well, Eric, thank you very much for taking the time today to talk to everybody. We really appreciate it. Thanks for using Leanpub as a platform for your resources.

Eric: You're welcome, and I appreciate the invitation, and I sure appreciate what you guys have built.

Len: And as always, thanks to you for listening to this episode of the Frontmatter podcast. If you like what you heard, please rate and review it wherever you found it, and if you'd like to be a Leanpub author, please visit our website at leanpub.com.