Chris Castiglione Co-founder of Adjunct Prof at Columbia University Business School.

Learn Code the Hard Way with Zed Shaw

46 min read

Today on the show we have Zed Shaw. Zed is the author of Learn Python the Hard Way. and the popular website Learn Code the Hard Way

In this episode, we’ll be talking about how Zed learned to code, how to get the most out of his book series, and advice on next steps for after you complete Learn Python the Hard Way. 

In my chat with Zed Shaw we discuss:

  • How Zed Shaw learned to code
  • Why Zed named his book series “Learn to Code the Hard Way”
  • Codecademy vs. Learn The Hard Way
  • Ruby vs. Django vs. Vue.js

iTunes SubscribeYouTube SubscribeStitcher SubscribeSpotify Subscribe

Why is your book series called Learn to Code The Hardway?

Zed Shaw: Yeah, originally, […] it was sort of like a tongue in cheek joke. It was kind of this thing where I sort of considered the hard way only because a lot of other ways you learned stuff is more constructivist, I guess is the way to do it. Where you don’t do any road practice, you’re kind of just thrown in the deep end of the pool, and I always considered that difficult. But when I was writing my book, people were like, “This is hard”, because I’m making them actually type code and actually learn how to write code.

So, I just started calling it “the hard way.” But originally, that name is what kept a lot of publishers from trying to publish it. So, in a way, it worked out for me because then I went and published it myself. So, now I’m totally self-made because of that. Then eventually most people got it. It’s not really hard, it’s just different.

Did someone every complain that learning to code the hard way was in fact “too hard?”

Zed Shaw: No, I think the thing is that other programmers told friends of theirs who wanted to learn, yeah this is the book because they basically learned that same way. Typing in tons of code, that’s how you learn. That’s how almost everyone learns, is typing in code.

I think most of the programming books at the time weren’t really for beginners. They were for people they assumed had already been programming for at least a couple years.

So, in mine, I made you type a bunch of codes in, and that was kind of weird for folks, but programmers told their friends, yeah, yeah, that’ll work, do this one. The people who really hated it were the experienced programmers. They hated it. They hated being told to type all this code in. I got angry emails, “You’re patronizing me. This is offensive.” I’m like, “It’s not for you, actually it’s for people who know nothing.”

So, it was kind of funny. I had to actually put a little warning at the beginning, if you’re an expert, you’re going to hate this book. And if you’re a beginner it’s going to be great.

Zed Shaw, how did you learn to code?

Zed Shaw: My story’s a little on the odd side, because originally, my family was very poor but we did have a computer for a short period of time when I was 12 to about 14. So, that’s where I first learned to code as a young kid. That’s sort of the story you hear from everybody who codes who’s about my age, I’m 45 right now, or about to be 45. So, everyone from my era learned to code because someone got a VIC-20 computer or a Commodore or if you’re rich you got the Amiga.

I had a little Tandy, do you even know what Tandy is? It was like a Radio Shack computer. It was kind of like a PC.

Chris: Yeah, I’ve heard of it. I had a Commodore back in the day so that was-

Zed Shaw: A Commodore, yeah. So, we only had that for a little while though. Then it was gone, lost to just bad fortunes and things. So, then I lost my ability to code entirely, but I joined the Army. In the Army I realized I wasn’t going to be in the Army, I was just doing it for college money. I remembered I could code and that was one thing you could get a job doing. When I got out of the Army I was like, “Well, hey, I could go code.”

I went back and instead of buying a car, like everyone when they get their first paycheck in the Army, they go buy a car, I went and bought a computer. I remember it took weeks for them to make it, it was like $1,000. It was a wimpy little computer compared to our standards.

Seriously, I think your phone is 400 times more powerful than my first computer. So, then at 19, I had to reteach myself. It took me, I want to say four more years to get to where I felt like I could code like I did when I was younger.

But the advantage of that was I was sort of an adult at that point, so I was very aware of how I learned to code. It’s something you see with people who learn things as an adult, they’re more self-conscious of how things work and how they think. Whereas when people are children, their brain doesn’t really work right, so they don’t have a lot of self-reflection going on, it’s just sort of like natural raw learning ability.

So, because I had to teach myself to code at an older age, all over again, that was one of the reasons why when I went to write my book, I was more aware of what I actually did to learn it, and why I was able to write my book the way I did.

Chris: When you say you were learning to code at 19, what programming language were you learning?

Zed Shaw: So, when I was a kid I learned Basic, so the old school Basic, like not even, I think it had function subs was a new awesome thing, no objects, nothing. Then I taught myself C and had to get a pirated copy of Turbo C compiler from a BBS. So, everyone should look up BBS, it’s the most awesome thing.

What is BBS?

Zed Shaw: BBS, so BBS was before the internet you could dial some other guys’ computer and then you could go into a little world. It was almost like you went to his house party over the phone lines. Your phone literally dialed and it made the fax sounds if anyone’s heard fax. Even the fax is too old.

It was sort of like an internet website that you could only dial with your phone. You could do things like use this thing called FidoNet. You would write someone an email and then a month later you’d get a reply because they had to route it by calling a sequence of phones to get it to wherever they were. It was fun, it was awesome.

This was basically very early on. So, when I was 19 I was also doing the BBSs and stuff. But when I was younger, you could go onto some BBSs and you could download, over super slow phone lines, things like Turbo C and I got another one that was Modula-2, it was the next language I learned, which was by the same guy who did Pascal, Niklaus Wirth.

Then, after that, I kind of didn’t do much more, because that’s when I lost the computer. So, then when I went back to the Army, basically the first thing I learned was C. I just went and I learned C. I even went and ordered a version of Linux it was one of the first times Linux came out, so this would be like 92, I think. ’93.  It came in a huge box of 72, 3.5 floppy disks.

Chris: Oh my!

Zed Shaw: Yeah, you put each one in. So, this was a whole weekend and if you screwed up one order like you put in number 78 before number 76, then the whole thing was messed up, you had to erase your hard drive and start over. So, it took me like a week to get Linux onto this computer. Because this is before the internet, this is before anything. You got things in the mail. So, that’s how I got Linux up.

Then I was getting good at Linux. I was like a master at Linux pretty quick, because it just wasn’t much to master. It was on floppy disks, so it was not as huge a thing as it is now. Then I was learning C because all the tools were there. The GNU compiler, everything. It was just the easiest way to get a professional C compiler.

I was stationed at this base that was basically the telephone system for the NSA. They had really good internet. So, I went into work, and I was like, “Oh, I’ll just connect to his FTP server, and I’ll download this one floppy disk.” So, I just connect to the FTP server using the military network.

I didn’t know that this was super duper illegal. So, they basically reprimanded me. They wanted to know what I was doing connecting to that foreign site. I said, “It’s this free Linux, it’s a free Unix.” They went, “Free Unix, tell us about this.” They were really interested in this free Unix that could’ve saved them tons of money. That’s the only reason why I got away with it. Normally it’s super illegal. But they realized I was just a nerd who really wanted to get this one floppy disk.

And then I showed them Linux and I showed them how to do all this stuff, and they just gave me a formal reprimand and then said, “Do you want a job as a programmer?” I was like, “No, I kind of just want to get out of the Army.”

Chris: Oh my gosh. Who reprimanded you?

Zed Shaw: My Sergeant’s the one who got to reprimand me. But there was another Sergeant, he was a Master Sergeant, he was in charge of the security for the place. Then there was actually the Commander, the Lieutenant Commander was the guy who at the top, top, top guy for the unit. I guess he was the one who was like, “Oh, no that guy’s cool.”

No, I think the reason why he thought I was cool is that I was bored one night on duty, you have to stay up for 24 hours and guard the barracks to make sure people don’t come in and people don’t leave. I got really bored, so I was just kind of like punching a wall. I was just sitting there bored, just trying to stay awake, so I’m just punching this wall. Then I hear and I turn around, I’m like oh man.

He’s standing there, he just came in to check on people. He’s like this old school Army Ranger, so he thought it was so cool I was over there practicing punching a wall. After that we were really good friends, he’d invite me over to hang out.

I’m this dumb 20-year-old kid hanging out with this guy, who was an Army Ranger with a computer science degree from MIT and my Commander. Yeah. It was weird. My first duty station was bizarre. It was so weird. But anyway, so that’s how I learned to code. I was actually stationed at a high technology place, and it was very stable, so it wasn’t wartime, it wasn’t anything. I could get a computer and then I could study. It was tough because I would go in at 6 am, and I would have to do all the Army stuff until 6 pm or 8 pm, then I would go home, and I would just code. That’s all I would do is just code.

Then I would get up, and I would go to work, and I would code. That was my whole life.

What was your motivation for learning to code?

Zed Shaw: Yeah, so I was learning to code on my own to get a job. But, they did need programming, a lot of it. The problem was is you had to have a really good security clearance, and I had a lot of trouble just getting the security clearance, the basic one I needed for my job. My job at the base was nothing high tech or high security, I was a supply clerk. So, basically, I gave people toilet paper. It was not the high speed at all.

I ran a warehouse, that was my big thing. I needed a secret security clearance though because I would deliver parts and paper and things like that to the super secret building. So, I needed a secret security clearance just to walk in with a pallet of stuff and give it to them. I wasn’t even really allowed to walk around much inside there. I had to sign off. So, that’s how high security it was.

But, the funny thing was, I had friends who loved Dungeons and Dragons, and they found that I knew how to run a DND game. So they would sneak me in, and they would sign me in to go into their bay late at night because they’d have to work 12-hour shifts. So, they’d be working late at night, I’d be up late, “Hey, you want to play some DND?”

I would go in, there’d be me and three dudes just doing DND for six hours till the sun comes up. Then I would get up and I would go run and do all my Army stuff. When you’re young you have way more energy to do this kind of thing. That was my first duty station.

What I did is I learned to code, I wrote little C programs to automate my job. So, I kept automating myself out of a job. Then they would give me a new job, and I would automate myself out of that job. They just kept giving me jobs. I didn’t realize that I actually could’ve made some money. I think my Sergeant made all the money on my work because if you save the Army money, they give you money. They give you 2% to 10% of it.

Did you study computer science in college?

Zed Shaw: Yes, so, right after that, keep in mind, I was extremely poor, and I knew that the way out of that was getting a college degree. This was long before the insane tuition that we have today. My tuition, I think I came out of school with $16,000 in debt. That was with a GI Bill and I also worked at the university.

So, it was pretty expensive back then, this is ’96 to ’99. It was so hard-charging to get my degree done. I did it in three years. I got a 3.6 and I just did just my degree. That was it and I worked full time at the university at the same time.

I got it into computer information systems. So, I went over to the computer science department, and they had this guy, who was teaching a class in assembly language. I could already code Assembler, C, Pascal, C Plus Plus, few other languages. This was old school back in the day when everything was compiled. So, he’s teaching it and he’s talking about assembly. So I’m like, I know assembly it’s no big deal. He’d pass out a test and I could take the test, then he tries to mark my code wrong. I set up office hours with him because he was actually wrong about it.

I’m in the test, I’m like, “Yeah, actually no, this is wrong, this is the way this thing works.” He’s like, “Well, you only think that because you know the Assembly language.” So, I’m like “Well, and that’s how it actually works, so I should get this point back.”

He says, “No you’re wrong”, and he starts yelling at me. So, then I was like, maybe I shouldn’t be in the computer science department because I’m sitting there basically telling the professor he’s wrong and it’s probably going to be just a lot more of that.

But also the computer science had a lot of insane requirements. They were kind of over the top, it was a lot of extra engineering, it would take you five years to get the degree. I wanted to finish it and get out. So, I went over to the business school, and I found out the business school is way better because I had a logistics background from the Army. So they gave me tons of credits for Army for my logistics work, because it was Arizona State and they had a huge logistics department.

Then I could take programming classes, economics, sociology, I took dance classes, the business school didn’t care at all, they just did not care. So, I did my whole degree in three years, and I got this 3.6 GPA. Only because, honestly, a lobotomized monkey could probably get a 3.6 at a business school. But it was really great because I got to study anything I wanted. I studied jazz history, which then got me into wanting to play jazz. Yeah, it was the best decision, instead of computer science.

Chris: Oh, so you’ve been studying computers your entire life, it’s pretty amazing. And then in college as well.

Zed Shaw: Yeah. I think that’s one of the things is, I was sort of fortunate enough to become attracted to this thing. Computing when I was trying to learn as a kid, was considered a bad thing. It was up there with comic books and video games.

You were just a nerd and a loser if you wanted to do that. But I knew that it was a good job at least. My dream job, just to give you an idea of how long ago it was. I remember when I was a kid and I was a programmer I used to tell people, “Wouldn’t it be awesome if you could get a job and you’re at a desk and you make $30,000 a year.”

Chris: Yeah.

Zed Shaw: That was my goal. It was a desk job that paid 30k a year. Then fast forward to now, a desk job would pay 30k a year as a programmer, I don’t think there’s too many of those, maybe as a junior or an intern. I think now they’re pushing 120, 250 sometimes.

Chris: Sure, yeah, especially here in New York, yeah. Wow, so yeah. That’s really interesting. I’m watching this show now on Amazon called the Valley of the Boom, which is mostly about Netscape in ’93, ’94 the IPO and this whole situation. This kind of startup fever. I think your story is interesting because you knew a lot about programming right around the time of the internet bubble, well boom we can say, in the late 90s.

Was there any temptation or did you see people around you who were trying to either hire you or did you have an idea where you’re like, “I should start a startup.” Was there that pressure or was that not attractive to you?

Zed Shaw: Yes, actually. I was kind of bad timing all around. So, for me, I got out of the Army in 1996, right. So I was in from ’92 to ’96. I got out a little early like, if you get accepted to a college they let you out six months so you are three months early, something like that. So, that means I got out in ’96, while I was in the Army, I remember I said I loved BBSs. So, I was dialing into these BBSs and doing my BBS thing and coding at night and it was awesome, I loved that time. I really miss it.

But then one day the internet came out. This is a weird thing I would love to study society and tech. I remember I was doing BBSs, the internet came out, and then BBSs disappeared, overnight almost. I remember the guy I, he was like, “Hey I’m shutting my BBS down, I’m going to start selling people internet access.” Because he could do that, he had the phone lines, so all he had to do is just switch his phone lines and he became an ISP.

It’s really interesting. Then right after that, boom, you had to have Netscape. You had to have a computer that could run Netscape. I had Linux, so I just installed Netscape. I had access to the internet so now I’m downloading tons of software, things just changed overnight. Like literally I think. It’s sort of weird because I have to dredge that memory up.

I just accept the internet as real. I got a watch that I can walk around now and I can get phone calls on. That’s so future. I’m thinking, man, 19-year old I would never even imagine that I’d be able to do that now.

Or that I’m making money teaching people to code off the internet. Download a video? No way!

Chris: Yeah, it’s amazing.

Zed Shaw: Yeah, so when I was getting out of the Army, yes, that’s true, I had the opportunity to go work for a company that I think it eventually became level three, I forget who it was, it was in Boston. Then a few other companies in the Valley, but I kept telling myself, no, I have to go get a degree because if you have a degree you have a future.

Looking back, even back then, my programming skills were good enough and then my Army experience and my security clearance, I could’ve actually gone and just started working. But I always had this thing, I guess just being poor, you always think, oh the people who seem to have jobs, are people with degrees who went and got college. That’s what I’m going to go get is college.

What was your first job out of college?

Zed Shaw: So, I went right in and then I was like, okay, I got college, now I’m going to [Silicon] Valley. In 1999. I swear, the month I graduated, is when the dot-com boom happened, it just imploded. After that, you could get a job back then for 120k coming out, that’s how hot they were. Then overnight again, boom, it imploded, and I think I couldn’t even get a job for 30k.

I was fine with 30k at the university but you’re trying to go get more back then, it went up and around 60k was the average. So, I just stayed at the university for a few years until I could find a decent job.

I graduated, I think it was a month before I graduated that all the news about everything just imploding and just turning to dust overnight came up. The salaries for programmers just depleted over immediately. There was sort of this sentiment of yeah, finally, we can get back at those coders who are charging us too much money. So jobs went down, nobody was hiring, everybody left San Francisco in the Valley.

In a lot of ways, that made me hate the Valley. So for years I just didn’t even entertain jobs there. I went to New York, I went to Vancouver Bridge Columbia, I went Seattle area, everywhere except Silicon Valley, because I was under the impression that they are a bunch of jokers who just didn’t know how to run anything and that it was never going to make any money.

Chris: You were wrong. They figured out how to make money again.

Zed Shaw: Yeah. So, the reason I think that I was wrong is that the narrative about the dot-com boom was kind of manipulated and it’s always put forward as, is the example, where people put forward these ideas that were dumb. They were like, the dot-com boom happened because stupid people invested in dumb jobs, dumb companies.

If you look, a lot of the ideas that came out back then were actually totally viable. You look now, there are almost exact analog parallels of businesses that were proposed during the dot-com boom. If you think about it, Amazon was super early. They were right there, and they survived. They did just fine.

The real thing that caused the dot-com boom, and then the bust, was shady banks. We actually created a regulation called Sarbanes-Oxley because of this.

Chris: Oh right.

Zed Shaw: So what they would do is they would go in, and they would find some terrible startup that seemed catchy, had a cool name. They would say, “Hey, we’re going to invest in you.” So, they would invest. But it was a terrible idea. Nobody should invest, but for some reason the banks did. Then they would have their analysts, Peter Blodgett actually went to jail for doing this. They would have their analysts go out and pump it up. Yeah, this is a hot stock you should buy this because nobody knew tax, they would dump all their money in it. And then the banks would make money selling the stock.

Then they would wait a little while, and they would have their analysts go, “Oh, hey, that company sucks.” Then they would make money on the shorting. They’d peg the company.

Chris: I haven’t heard that story. Is there a documentary about that or is that just kind of your experience?

Zed Shaw: Yeah. No, there are a few books. I want to say its Blood in the Streets, but that might be about the 2008 collapse.

Or it might be about long term capital management. Actually, the entire history of banking is nothing but boom and bust from dumb investments. The reason why I say it was the banks is, before the banks got into investing in these things and doing their pump and dump schemes, most of the companies that got investment had to have a good idea, because it was all venture capital centered in the Valley or Military contractors that actually knew what they were talking about.

So, you couldn’t come in with an idea or a business plan that was not legit. Once the banks figured out they could pump up a company, do some adds, and then dump it, that’s when you started having the instability and you had the dot-com boom.

Chris: It reminds me a lot of the Bitcoin 2017 rally that it had and you would see people like John McAfee would come out and he would talk about Verge, which was this cryptocurrency, and he would make videos about it and of course, he was an investor and he would just kind of pump it up.

I don’t know if he sold, I don’t know, I don’t really know anything beyond that, but I know that there were definitely people who would just come out and talk up these cryptocurrencies and then of course as we all know, in December of 2017 was it, things kind of fell apart. For the time being.

Zed Shaw: It’s the same thing. Yeah, so the regulation we created, Sarbanes-Oxley, was specifically for that purpose and I worked at a bank, Bear Stearns, and what it does is, it forces the investment banking side, the side of the bank that invests in companies, to not be able to talk to the analyst side without someone sitting there from legal. I think they are trying to get rid of that, which is going to be a disaster.

Because if you think about it, they have a vested interest in manipulating the stocks. So, and then also, somehow they manage to spin it that the reason all these companies collapsed is that they were dumb. It was more like yeah they were dumb, but they only existed because there was money thrown at them to run a pump and dump scheme. So, none of those companies would have happened, the Valley wouldn’t have collapsed, and I would’ve gotten a job, but instead, I took the narrative that it was a stupid tech in Silicon Valley and I left.

Then, it wasn’t until years later when banking collapsed again, and I started researching it because I was working at Bear Stearns the year the banks all collapsed in 2008.

Zed Shaw: So I was like, why does this keep happening? Yeah, I was working there, man. I was like, I remember I was at a PieCon, it collapsed and I got a text message on a Friday, “Hey, we’re talking to JP Morgan.” I get a text message on a Saturday they’re like, “Oh yeah, we just sold to JP Morgan.” I get a text message on Sunday, “Yeah it looks like you might not have a job.”

Did you lose your job in the 2008 crash?

Zed Shaw: [JP Morgan] gave me a severance. They wanted me to stick around, I was like, “No I’m out.” That was sort of a turning point for me because again, bad timing, I had bad timing. I joined in 2008 and they collapsed like 10 months later. Because I was sick of startups not paying me my consulting fees. So I’m like, I’m going where the money is.

It turned out that was not a good move either. So, it’s like a sequence of super bad timing, super bad luck. I graduate with a Computer Information Systems programmer degree the year everything collapses in programming. I managed to get a job at a bank, the year everything collapses in banking.

Why did you start teaching programming?

Zed Shaw: Yeah, so basically I had a friend who wanted to learn to code. She was in marketing, she was doing marketing for some programmers and she had no idea what they were talking about so she wanted to learn to code. I had been thinking, well back up a little bit. After the Bear Stearns collapse, I went to school to study guitar.

Really all I’ve learned, yeah, I went to this kind of small jazz school in New York. It wasn’t too great, called The Collective. All I really learned from there is that I’m not that good at guitar, that was about it. The teachers there were not very good. Because years later I started studying on my own.

One of the teachers did this crazy scales and had me doing this really contorted thing with my guitar to keep my fingers straight and it actually wrecked my thumb, so I had to stop playing.

Then, during that time though, I had taught myself a lot, because the teachers weren’t too good and I ran into this book called Mickey Baker’s Complete Guide to Jazz Guitar.

So, it was by this guy who was in the band, Mickey and Sylvia. He did that song, the really famous song from Dirty Dancing. That’s what made him his money. Then after he started making tons of money, he’s like screw you and he went to France and just kind of lived in France for the rest of his life.

But his book, which he wrote in the 50s, was organized with 52 exercises, one exercise a week. You would do one tiny thing about playing jazz guitar each week. So you’d start with just the G chord in two forms, and you’d sit there and do just G chords. Then you’d do just C chords. So, it’s broken down like that.

That book was the only thing that helped me survive my jazz classes. Because of that book, I got super good at playing chords and some weird ones they had never seen. So they would at least let me stay in do the rhythm section stuff.

Chris: This jazz book really inspired you eh?

Zed Shaw: Yes. Well, what I figured out was this thing called a trainer. So a trainer book, this is a much more of a musician concept, so you can find them all the time. You find them on I think Paganini wrote one. There’s a method for the guitar, method for classical guitar, a method for violin, what they do is they start very small and they teach, like here’s the first four frets, here are the next 10 frets, here’s one song, it’s done in these pieces.

Mickey Baker’s sort of innovation was that it was done in 52 pieces, one piece a week. So you would just sit there and practice it for a whole week and get kind of good at that then move on. This is not a concept in programming. So, I just basically borrowed the concept from the music of a trainer manual and I said, “Well what if did a programming book that did that.”

Chris: Oh, yeah.

Zed Shaw: So, because it worked for me, and it works for people, it works for little kids, little kids go through these trainer books, they do the, what is it, the Yamaha method, the one that does Do, Re, Mi, something like that. They do those books.

Chris: Suzuki’s a really popular violin training book. 

Zed Shaw: Suzuki, yeah, yeah. Yeah. Those books aren’t programming books where like, here’s the A note. Okay, now play Paganini.

Chris: Yes, yes.

Zed Shaw: That’s how programming books are. Mine, I was like hey I can gradually build this up the way this really awesome music book did, 52 exercises, one a week, make it kind of more rote practice and set the idea for the book, not you’re going to be done and be a master programmer, but more when you’re done with this book, you can go do other books. Because other books assume you already know how to code, which is wrong. That’s why they’re never really targeted at beginners.

At the time, yeah, at the time, all the books rather, they would say for beginners and totally not. They would do that thing where like I said, here’s the A note, not play this piece of Bach.

Chris: Oh, totally.

Zed Shaw: Right. Or they were for little kids so they were trying to safe. Or they were cutesy, kind of really obnoxiously cute. Not really explaining things too well. Because they’re oh it’s just little kids, they’re going to do graphics. Everything had graphics for little kids but it was totally unnecessary.

So, yeah, my book was kind of, I want to think, maybe someone can correct me, but it was the first book where it was written for everyone, it didn’t really care if you were an adult or a kid. It was written humorously, and then it was written in a way that was very gradual the way the books for kids were. So, it was targeted at adults or anyone but gradually built it up very slowly.

Was Learn Python the Hard Way the first book in the coding series?

Zed Shaw: Learn Python the Hard Way, that was the first one. So I did it and then I put it up online, just as a PDF. I kind of didn’t care. I sort of wanted people to learn to code because from what I had seen once I moved to the Valley, was that everyone was going to get just demolished by tech. I could tell Facebook, I could tell Google, all those things were going to be massive, and they were going to control everyone’s life.

I was thinking, if people just don’t even have a basic understanding of computing, it’s going to be like not knowing how to drive. I actually don’t know how to drive, I didn’t, but I bought a car when I was like 20 something and I wrecked it four hours later. So, I was like, just decided not to own a car after that because I’m dangerous. Then I’ve always lived in cities without cars, so I actually don’t drive.

So when I say this, in the future, not knowing how to code is going to be like not knowing how to drive, it’s because I know what it’s like not knowing how to drive, not having a license. It’s tough you can’t get jobs.

Chris: Yeah, that’s one of the best analogies I’ve heard. Sorry to cut you off, it made me excited to think about with that analogy, with learning to code, it’s like you can kind of go from A to B, you can get an Uber, you can get in other people’s cars, but the beautiful thing about when you know how to drive is that you can say, “Hey, I’m going from A to B, I’m going to the supermarket.” Along the way you can take a shortcut, you can change, you can stop, you can alter your route. It gives you this kind of freedom when you actually know how to drive, and you don’t just have to rely on other people driving.

Zed Shaw: Yeah, you have control. But for me, I have to go wherever the buses go, right. Or I walk. I do a lot of walking. It’s kept me fit, I’m like fit. But that’s about the only advantage. One of the reasons why I loved New York was that in New York it’s weird to own a car. Have you ever known anyone who has a car? You’re like, “Why do you have a car, man, just take the subway, you’re so strange.”

Where do you park? Isn’t that expensive. It’s an SUV, that’s dumb. Then everywhere else I’ve lived it’s the opposite. It’s like, “Why don’t you have a car? Are you actually a man, are you a member of society, are you poor, why don’t you have a car?”

Chris: That’s so interesting, yeah.

Zed Shaw: It’s kind of funny. But the same thing I think is becoming true about programming, where it’s going to be, not being able to be a master programmer, nobody expects everyone who drives to be a race car driver. Expect you to be able to drive semi-competently so you don’t cause an accident. I think the same thing with programming. It just makes you semi-competent at using a computer.

So, in the future, it’s going to be like, “whoa you don’t know how to type. You don’t know how to touch type. You don’t know how to make your computer do what you want. Wow, what’s wrong with you. Did you not go to a good school.” It’s going to be the same kind of thing with driving. So, that was my thing.

I usually say learning to read, but I think it’s not, I honestly think if you told people learning to code is going to be like learning to drive in the future, they would be all over it because everyone is like, if my kid can’t drive, he’s going to have a terrible time at life. Not be able to get a job, probably have very bad problems, and I can tell you it’s semi-true. For me, I learned to code, so that’s kind of the only reason I got around it. If I had any other job or profession, I would’ve had to learn to drive and had to go drive.

Is it remotely possible that automation could make developers irrelevant the same way automated cars could make drivers irrelevant?

Zed Shaw: Yeah, well one thing I would say is I really hope automated cars come along, just for the safe side. I think what’s going to happen is I think automation is going to get pretty close for driving a car, but you’re still going to need people, who can kind of take over in emergency situations.

It’s always the exceptional cases that seem to be where all programmers make mistakes. So they can handle, as long as things are going great down the freeway, their cars are awesome. The second someone turns in front of them, it’s a big mess, the cars are not going to do well.

Chris: Sure.

Zed Shaw: So I think automation in the future for programming would be the same deal, where it just basically adds this massive multiplier and then makes it easier to write super high-quality code. But you’re still going to have a person kind of figuring out what to do controlling it. Yeah, doing that. I would love that.

Chris: Yeah, I think that makes sense.

Zed Shaw: Yeah, same for me, I think that’s true.

How did you know Learn Python the Hard Way was a success?

Zed Shaw: Going back to why I did my book, I put it up for free because I was like, look, I think if people don’t have control of their technology or at least an understanding of what’s going on, they’re going to be taken advantage of. That first year it was about 350,000 downloads.

Chris: Wow.

Zed Shaw: I actually wasn’t even checking my logs. Yeah, I wasn’t checking my logs. I was like, whatever. Then, I checked, and I was like, oh wow. They even posted it on Hacker News. Okay, prove me wrong, I have 350,000 downloads, prove that I did not do this, and I put my logs up anonymized. People were like, yeah, it could be 150 to 350 of a PDF that wasn’t even finished.

Chris: It sounds like Learn Python the Hard Way was an overnight success. At that point, did you decide that you were going to do other languages or did you just stick with Python?

Zed Shaw: Yeah, at the time, for me, this was not my main thing, my main thing was coding. So, I did the book as a side thing. Then it was up, and I finished it. I think right after that, right after I did my post, and I put everything up, that’s when the Learn to Code thing exploded. [It was] around 2010, because I think I did my post or my announcement late 2009-ish, I think, then six months later Codecademy came out.

So, now, I realize that was kind of stupid, I should’ve kept that to myself and gone out and got some VC money. The next Codecademy. But I genuinely wanted to help people, so that’s why I didn’t do that. Then, once everyone was making money off of people learning to code, I had this mission in my mind if I want everyone can possibly learn to code for free and so I just kept it up for free for a very long time. But then shortly after that, I did Ruby.

Why learn with your Learn Code the Hard Way Series?

Chris: What kind of student comes to take your courses? Or do you call them courses do you call them books? I know you have an e-book now, but can you just kind of describe it first, because now some of the courses have free e-books where you can learn Python or SQL or Ruby. Some of them I know that you can pay and then you get a video or you get some kind of added features. Can you kind of just tell us why we might come to learn with you at the Hard Way Series?

Zed Shaw: Yes, so the way they’re structured is… I started basically making videos because the book is fine, but programming is very interactive especially when you’re doing debugging. Or trying to tell someone how to debug in text, in a book, is nearly impossible. It’s very difficult. Installing packages is another one. Installing stuff you kind of have to see someone do it because you can miss a step in the instructions.

So I started doing the videos. Then I sell them. So, what I sort of stumbled on was if I do a video for each exercise, and then I can sell the videos but keep the text free.

So, that was my first jump. So I keep the text free then if you need extra help you buy the video from me as sort of a way to support me making the books free.

Chris: Oh, yeah.

Zed Shaw: Then, two years ago I took basically all the books you have to buy, all the courses I just call them a course. Except for Ruby, I kept the Ruby one up. So, that way if people can’t afford a book, the Ruby and the Python book the secret is they’re exactly the same, I just have text replace macros that change Ruby to Python, honestly, it’s … then a couple of exercises are different.

So, I tell people, they want to learn Python, and they want to go get a job. I’m like, well look, go learn Ruby, you should really try to learn about three programming languages. It’s like the third language is when it clicks. I said, “Do Ruby for free. If you get to the end of Ruby book and you hate programming, then you didn’t waste $30.”

Chris: Yes. Yeah.

Zed Shaw: Yeah. A lot of people do that. Then my Python book, I charge for and then I wrote a follow-up book called More Python, where I basically get into tons of projects and algorithms, designing a programming language, all done in the same format, very small little exercises. So the advantage of coming to learn with me is that it’s a ton of content. If you got my Python book and then my More Python book, by the time you’re done with that you’ve covered pretty much 80% of computer science in a slightly shallow way. It’s a little deep but it’s not too deep that you can’t handle it.

Chris: Tell us more, what we should expect to learn? I know, well, first of all, I’ll say that at One Month we recommend your Command Line course to our students. It’s in our actual course in the videos we are saying go take Zed Shaw’s Command Line course because it’s really helpful.

We also share the Python course links as well. So I have taken some of it, but can you tell people listening and me as well, kind of I haven’t taken the More Python course, I also don’t know exactly what else is in store. What can I learn on the Python course that you have, I guess, is the long question that I’m trying to get to. Short answer.

Zed Shaw: So, in the first Python course you just get, it’s like … I study martial arts, so the idea of getting your black belt in a martial art is not that you are now any good, it’s just that you know the basics well enough that they can start teaching you the full martial art. So it’s the same kind of concept. With Learn Python the Hard Way, at the end of it, you’re not a very good programmer but you know all the things.

Chris: All the moves.

Zed Shaw: You know the basics, but now I can teach you the real stuff. So, then in Learn More Python, you go through that and I teach you the real stuff and it’s a lot. I tell people really you should do the More Python book first just do all the projects and ignore … Because I include testing, process, personal development, how to manage your own, actually do statistics to manage your own quality metrics and become a better programmer. It’s a ton.

So I say first, do all the projects, just go through and do all the projects, ignore me when I’m telling you to be a good programmer and test, test, test. Then go back through and learn all the professional development stuff that’s in that book. It’s a ton of professional development. Everything about quality, testing, how to be creative, all kinds of stuff.

How long does it take to complete the first part of Learn Python the Hard Way?

Zed Shaw: Learn Python the Hard Way if someone legitimately puts in two to four hours a day I’ve seen people finish it in about a month or two if you know nothing. If someone has a background in something similar to programming, like Music (believe it or not, people who are musicians just blaze through that book) Engineering, Mathematics, Philosophy (you study logic), it seems to be pretty simple for them.

Those people can go through it in about a month. I’ve seen someone with a math degree go through in it like a week. But to compare, I wrote the book, I can go through the whole book, if I just blaze and type the code, not doing the extra credit, just blaze through type the code, I can do the whole thing in four hours. I think a pro could probably do the whole book in a day or two.

Chris: Got it, okay, great. That makes good sense.

Zed Shaw: Meanwhile, the More Python book is meant to be sort of the long project, so it’s sort of the kind of thing you do while you’re doing other stuff, you do one exercise a week while you’re doing other stuff. Slowly building your skills. So that I’m imaging it’d take someone six months to kind of complete. But when you’re done, you know all the things. You know compiler theory, you know how to build websites, you know how to do tiny Unix tools, everything you can imagine and then coupled it with that because I’m using the projects to sort of teach people how to make software, how to build a thing.

So, it is quality, how to control your creative process, how to make things solid, everything. Distributing making packages, everything.

Codecademy vs. Learn to Code the Hardway | What’s the difference? 

Chris: I heard you mention Codecademy before, I’m curious just your thoughts on students using Codecademy or how it compares or differs to your series.

Zed Shaw: I think, keep in mind for me, it’s just me. So I don’t have a whole lot of resources and stuff. I’m focusing more on high-quality content and I don’t have designers, I don’t have programmers, I’m the only programmer. I can paint but I don’t know design. I periodically hire someone to redo it, things like that. So I don’t have the resources they do. I think that’s the first big thing.

But, that being said, my content is organized that I don’t really have to answer a lot of questions. As I answer questions I fix my stuff, so that way it reduces my help requests. Whereas Codecademy has a massive platform now, they’ve got a lot of stuff, basically, they spend a lot more money on what you give them. So, if you sign up, they’re going to spend a bunch of the money that you give them on giving a big product. Whereas with me, I’m a single entrepreneur, so I’m keeping my cost very low. So everything is very simple.

You give me money, you download stuff. You go through it. That’s about it. But with them, they have a new platform coming out I think, that’s got all kind of things, help, and forums, and all this stuff, all the features.

Chris: I see, yeah.

Zed Shaw: I would say that’s the primary difference. Yeah. Even General Assembly any of those platforms, it’s just that they have tons of money to do a better platform, that’s primarily the difference.

Chris: Yeah, also, your stuff reads more like a book. I think in that way, just my experience is that it’s kind of nice because I feel like I can kind of go ahead a little bit or kind of go at my own pace, I like with the Hard Way Series. Whereas with Codecademy, they try to gamify it in a way, because you have to use their text editor in the browser, sometimes it feels a little bit frustrating. I think there’s something really empowering about being able to do like a book kind of traverse go a little bit ahead, go back and go through it and not going to be pushed through sometimes.

Especially when there are things you don’t understand. So that’s kind of one comparison. I think they both probably have a different type … Different people learn different ways. But that’s definitely one thing that I like about your series.

Zed Shaw: Yeah, I tell people I’m an advocate of using all the things.

Chris: Me too, I say the same thing. Definitely.

Zed Shaw: I’m currently studying painting and I watch videos, I go outside, I go to conferences, I go through books, I’m very much a pragmatist. So, I don’t think about it as competition because like you said, the advantage of my stuff is you use a real computer, not the browser.

That was a big decision I made when I made that book, everyone was like, “Put it in the browser”, I’m like, “No.” The whole point is that people need to control their computer. So you learn the real deal. I make you lose the command line.

Chris: I agree 100%. You were doing that at a time when Codecademy and Code School were both in the browser and it’s just you’re not really learning. I don’t want to say you’re not learning anything, but you’re not … it’s like trying to learn dance by me telling you it and you imagining it in your head but you’re not actually really using the tools. So the problems you’re running into aren’t the exact problems that … and eventually run into when you’re trying to work on the jobs. Yeah.

I totally agree with that, what you were saying.

Zed Shaw: It’s like with my C book, I’m so sorry man, the majority of the problem with C is the computer crashes and you lose pointers. You can’t do that in a browser. Maybe you run a VM or something, but debugging, I would say debugging our packages, those are monster topics for people, like really difficult topics. That’s my primary reason for doing videos too. You can sit there and you can read a book about it but if you watch Zed it’s basically cursing trying to fix something, you learn a lot.

Chris: I love it. Yeah. We did analytics when we launched our first course, it was called One Month Rails and we had a few thousand students go through that in just a few months and we watch the analytics and what we found is that people were going to lesson number three or four and then just not that many people would continue for a period of time. What we noticed was people had trouble installing the thing.

So we spent a lot of time redoing that video. We made an entire site called We get support. That’s when we started leaning on that stuff and then we’d look at the analytics and this is around 2013, low and behold, once people get through the crashing of the computer, the installation, that alone is really hard and we had this ah-ha moment of nobody’s teaching people how to actually use these tools.

Similarly, I kind of love what you’re saying about C and computers crashing because that is how you learn I think.

Zed Shaw: Well, the thing was people were telling me they’re like, “No one’s going to use your book unless it’s in the browser because they have to just the install stuff.” I went, but what you do all day usually is installing and fixing stuff. I’d say 90% of a programmers’ job at the beginning of a project is literally just installing stuff. So, if I remove that, if I remove you have to install Python, I’m not really teaching you how to use Python, I’m not really teaching you how to use your computer.

Literally, the problem they’re trying to remove is a non-problem. It’s like they’re removing the baking soda from cakes. Well, I need baking soda. That’s how you make a cake. Or they’re like, teaching people to play guitar do you need strings? It’s so hard. Yes, that’s a guitar, it has strings.

So, for me, I would say that was the primary difference. I’d say my course is much simpler, it’s much more directed, there’s no gaming to it, you go at your own pace. It’s just simpler you just do one exercise after another, taking notes. Lots of advice on how to study, how to learn things. It’s much more gradual. Then no distractions. It’s the kind of thing where you can sit there with a cup of wine or a tea and do your coding.

It’s just no frills. Mostly because I just don’t have the money to do frills, so I focus on a very simple straightforward way to learn.

Chris: That’s wonderful. I’d like to know a little bit more about some of the resources that you might recommend for people to learn to code. You said there’s not just one solution. So it sounds like you’re open to maybe some other books or platforms. Is there anything that you would recommend or maybe even something that you use when you’re trying to learn a new coding language?

Zed Shaw: Yeah, so, recently I had learned modern JavaScript we’re talking actual modern JavaScript, so ES6 is actually sort of almost like two languages now. Where you have a very modern JavaScript that solves all of JavaScripts major pain points, then you have an older style, they kind of co-exist. It’s actually really well done I think. I bag on JavaScript but I think ES6 is an elegant thing. Honestly, I still think because of the way people teach programming, it’s difficult to learn new languages because the documentation is terrible.

If you want to learn ES6, I had to piece together things from random blogs and I’m trying to read the spec, and the spec doesn’t mention half the stuff. I think it took me six months to figure out you could put the async keyword kind of anywhere. I thought you could only do certain things. I read a blog post that was saying, “Oh you can’t do it with functions.” It’s just weird. That’s a big thing. You’re trying to learn a new language and it is really tough. Most of what I do is what everyone else does. Googling around, reading their docs, reading other people’s code, and then trying to write stuff.

So, once you get past, let’s say you do my Python book or something like that, anything. You get past where you feel like you can code, the best way you learn to do things is building stuff. Make stuff. That forces you to research what’s out there. So, as far as research goes, I’m sort of interested in, a lot of stuff like Circuit Python I think is called. There’s a version of Python that runs on things like the Arduino and stuff like that. I think I’ve seen it coming out of Adafruit or something. I’m really interested in can you shove the cost of learning to code down as small as possible where you could get a $1 microcontroller package, maybe the whole thing costs $10 runs off your TV. Then you can learn Python.

That’s what I would love to do that.

Chris: Making it accessible for as many people as possible is what I’m hearing.

Zed Shaw: Yeah. Think about it, everyone has a TV. All over the world, that’s an essential thing.

Chris: Not in New York. In New York we’re a little weird, we don’t have cars, we don’t have TVs. But yeah, most people do.

Zed Shaw: Don’t have any space nowhere to put your TV. I moved to Miami, I have two TVs now.

Chris: Nice.

Zed Shaw: But you know what I mean, right? So you can have a family, one of the things that they first buy or they really enjoy is their TV. So being able to have a small tiny device that gave me, you can get a microcontroller these days that’s around 75 megahertz, that’s enough to run some basic Python, especially if it’s a small little VM.

Then hook that up to a TV, a keyboard, done. Don’t even have to do too much with that.

Chris: Making it really easy.

Zed Shaw: Especially, making it really accessible.

Chris: No brainer. Yeah.

Zed Shaw: Now as far as other “resources to learn” go, I really like CodeNewbies, I think they do a really good thing but I’m a pro, so it’s kind of like I don’t go to beginner resources very much and I don’t review them very much. I don’t use them. So, it’s hard for me to recommend.

Chris: What is this that you just mentioned? CodeNewbies? What’d you call it?

Zed Shaw: CodeNewbies is sort of a, I’m not sure if it’s a site or a project, it’s run by Saron, I think her last name is Barek, I met her once. She does a Twitter account, and then she answers a bunch of questions. They’ll do a question and an answer thing, and then she runs a conference. Let me just use the power of the internet.

Chris: Oh. Okay. Yeah. I see it. Yeah.

Zed Shaw: Yeah, yeah. I like a lot of what she does because it just seems to be kind of really genuine and CodeNewbies. I cannot spell a newbie at all. Yeah, Yeah. I like a lot of what she’s doing because it’s very simple kind of just people talking about the code they got a little, yeah Code Land is a conference. They got a little conference people to show up and they just talk about … The conference is really cheap, it’s $99.

Chris: That is the cheapest conference I’ve ever heard of, that’s amazing. Oh, it’s here in New York City. Oh great. This is a great resource. Cool.

Zed Shaw: Yeah, it’s in New York City. I think GitHub sponsored them.

Chris: Yeah, that’s what it looks like.

Zed Shaw: They get some pretty good people to show up and do the talks. From all over, they go Jim Simons designer and all kinds of people. Then it just seems to be very genuine people interested in beginning coders. Whereas, a lot of other conferences it seems like it’s much more at trying to get them to join their product clan. Become a Python guy. Become a Microsoft guy. Then CodeNewbies is like, we like code.

Chris: We’re just excited yeah. That’s what it feels like from looking at that site.

Zed Shaw: Yeah, this is cool.

Which are your favorite programming languages? 

Zed Shaw: Yes. Like I mentioned, JavaScript ES6. So before ES6, yeah, it was garbage, I hated JavaScript, I think everyone hated JavaScript. But ES6 fixed I’m going to say 99% of the issues. You can literally code everything in ES6 and never even used old JavaScript. It’s great.

So, my new book, Learn JavaScript the Hard Way, I’m going to finish it soon, but that’s going to be sort of a combo of what I learned from Learn Python and Learn More Python the Hard Way. All combined in one book. Streamlined. A lot less of the professional development, more fun. So, that’s the big thing. So from that, I’m learning about Vue.js, I’m learning about Svelte, is another thing, I’m learning about some of the gaming and graphics JavaScript stuff. The JavaScript world is massive, tons of packages.

It’s incredibly impressive. Especially given the pile of garbage that JavaScript was. The amount of stuff they built with that pile of garbage is just insane. It’s very impressive.

Chris: Just to give a little bit of context because it just got me excited to remember, I remember trying to learn JavaScript in the late 90s, it was just basically a joke language. I think one of the main reasons was that not only was development on it really slow, but there were the whole browser wars and I think that really kind of slowed down the development of the web languages, especially JavaScript because every browser would read it differently.

I’m kind of summarizing this, but I remember it wasn’t until Chrome and Safari and these kinds of DevTools that JavaScript began to become something people would use.

Zed Shaw: Yes. I would say for me as you said, JavaScript is a joke language you could barely use. Mostly because it was impossible to debug. I remember trying to debug JavaScript by putting alerts in the code until I found the line that caused a failure. I’m just like this is pathetic. And then people are coming to me and saying, “You should learn Python the Hard Thing in a browser.”

I’m like, “Whatever.” You can’t do anything in the browser. It’s a terrible platform. But now it’s a whole renaissance. Vue.js is beautiful. I love using Vue.js, React is apparently the same, Svelte becoming really cool. Elm is a whole language that just makes that all go away. All that stuff is exciting. The developer tools are good. The inspection stuff is great. Yeah. It’s just a totally different game now.

So, I’m excited about that. That’s the only reasons I have bad blood with JavaScript. I absolutely hated it but now I’m like, “Oh man you can do some cool stuff” and it’s literally saving me time. I think that’s the big thing.

Chris: That’s exciting.

Zed Shaw: When people think about me, you got to remember, I’m a single entrepreneur, I’m doing this all by myself, so if I got to use something that takes me 20 hours and I can switch over to say Vue.js or something else and it saves me that 20 hours, that’s cash money. So, I’m going to switch. Yeah. Vue.js handles all my stuff and I’m done, I’m done. I’m moving on.

What do you use vue.js for?

Chris: What do you use Vue.js for right now?

Zed Shaw: So, basically, my sites a little on the old side, it’s a lot on the old side. I’m running Django and I hate it, I hate Django so much.

Chris: That’s the Python framework, yeah.

Zed Shaw: So, yeah. So, what I did is I cooked up in a weekend a Vue.js chat thing with streaming video in it. So that gives you an idea. So I can literally live stream coding sessions with people and they can chat with me. It’s not super elegant, but it looks decent and I did in a weekend, refined it over a couple of weeks. I would never be able to do anything like that in Rails, Django, anything. It would be nearly impossible. This was a tiny amount of code. Really effortless. It works really great. It’s a total whole game changer.

As opposed to Ruby on Rails or Python’s Django, do you think vue.js is the best framework to learn right now?

Chris: So do you think, just to kind of repeat what you said and make sure it’s clear, do you think that Vue.js is the kind of the best framework that people should be learning right now as opposed to Ruby on Rails or Django?

Zed Shaw: Yes. So, keep in mind, Vue.js is just a framework, but what it does is, it solves a ton of the headaches. Primarily because you can have pluggable components into it, and when you use their single page components, you can basically in one little file do everything you need to get your JavaScript up, your styling working, and the markup and then that can just be plugged in. So it’s a huge win.

But also, the development environment along with that is very nice. You sort of just change a file and it magically shows up in your browser, no refresh. Not even change a file, just change one small component and it just changes dynamically crazy fast. People don’t understand how much of a pain it is to be sitting there coding and having to refresh, refresh all day long. Yeah. If that’s like three or four seconds and you do that 200 times a day. Well, not doing that saved you actually a ton of time over the year.

But I would say, Vue.js isn’t the best. It’s pretty good. I think it’s the most consistent and it doesn’t have any baggage, is its an advantage. React had sort of this really bad arrow where you had to hand code the HTML with raw JavaScript and I was just like, “Nope, not even going to bother.” But now they’ve got JSX so I think React and View are on par with each other.

My primary reason for using View is that I tend to target my books at things where I don’t think evil corporations have total control of it. So, Facebook controls React, just a little dodgy going with React because of that. But, within that whole single page app, reactive framework world, which I think is actually the future, I’m really into React, I’m into View, Asfelt looks very cool, and Elm is a whole programming language that seems to be really nice too. So, I’m checking all four of those out.

What database do you use?

Zed Shaw: Oh, I super don’t care about the database. I like Postgres but Postgres has some serious issues that I’m having problems with. It’s not a modern network stack inside Postgres so it has problems with keeping connections open and things like that. So, I’ve been looking at some of the more recent kind of you had sort of the no sequel databases, now there’s sort of this in-between world where it does all the stuff your sequel database does and all the stuff that you need. It’s got geography in it and search and all this stuff.

So, I’ve been using a RethinkDB is cool. ArangoDB is cool. There are a couple of others. Influx if you need time series. There are a few others I’ve been checking out. I kind of like all of them. I think Rethink is a slightly different purpose than say Arango or Influx, sort of like you can kind of use all of those.

Are there any hosting tools, or web services that you love to recommend?

Zed Shaw: Yeah, the thing to keep in mind is that I’m ultra old school. So, I grew up, like I said, running my own Linux server, so I consist admin things. So, my advice is, well first off, and I also sell horses. The number one rule when you do stuff online for sale is to control your distribution. Control your platform. The last thing you want is your making money off Patreon and then for whatever reason suddenly they throw you off Patreon and you don’t make any money. Or you’re putting your things on YouTube or your things are one Vimeo or whatever. It can always happen that you’re just out.

So, I’m a big advocate of if you make money on your stuff, you got to host your own stuff. For that reason alone, because hosting is much more difficult to shut down for arbitrary reasons. People think, “Well what’s arbitrary, what could happen to you, you’re just teaching people to code.” It’s not like I’m a Nazi or something like that. It’s actually possible, and I’ve had people attempt to do this, where if someone just doesn’t like, I think to believe, I said I didn’t like Python 3 Strings once. Then some dude tried to get my book removed from all the books on the internet to try to shut my business down.

Chris: Wow.

Zed Shaw: Yeah, you can just one day just send the wrong tweet about some like someone like Haskell, and then he decides to go on the warpath just ruin your life. So, if I was on the platform say any of those Coursera or any of those systems that you can host a course and make money on, they can go in and claim copywriter that DMCA. They can claim you did something. They can claim all kind of things and shut you down for a week or permanently. Whereas if I run my own stuff, if I run my own stuff, they can do anything. I can still make money. I can still host.

Chris: Yeah, I don’t think you’re exaggerating with that. I just would add that we had a real experience with that at One Month. We moved our blog at one point to Medium, it was popular a few years to host company blogs on Medium, it sort of still is. But long story short, yeah, they messed something up and they couldn’t figure out why but our blog wasn’t showing up for almost a full week. Then what happened was we lost just so much … Google really penalizes you and you’re just 404-erroring on every single page.

Chris: It was just kind of really out of our control. They could pull you off, they could have errors, yeah, you’re really reliant on … It kind of goes back to that analogy that you had about learning how to code and driving a car. You’re basically on a bus and you’re like, I hope we know where we’re going, but with the way that you’re talking about hosting your site is you have control, you can decide when things are running. You can decide where to go. You can decide how to pull over, whatever you want to do. Yeah, that’s really cool.

Zed Shaw: Now keep in mind, if I can find something that I can grab, I’ll pay for it too. And then host myself, I’ll do that. So, I really like Discourse, I use that for my forum, that I can just go and I can, there’s all kind of hosting companies and you can say make me a Discourse. And Discourse they’re super nice, their stuff is free, you can pay for it on their platform and just run it yourself, and that’s what I do.

I use Zendesk to receive my help request, well I’ll pay for that, no problem. If someone shuts down my Zendesk I just switch to regular email, I don’t really care about that. But the main distribution is my own site. I run my own software, I use a hosting company. It’s much harder but I’m an old pro, so for me, it’s kind of fun in some ways frustrating but I like running my own stuff and getting it set up. If other people are just trying to host their play old websites, you can use almost anything. Heroku any of those guys. Where they just put it up and you’re done.

Chris: Yeah, for sure. Cool. Well, hey Zed, this was super fun talking to you today. Thanks for taking the time.

Zed Shaw: Yeah, yeah, no problem, it’s fun. I love talking about code.

Chris: I can tell. I think we found our match I’m also just totally nerding out and loving this conversation. Also, it’s cool to learn, I feel like I learned a lot about your platform and kind of where you’re coming from because like I said, I’ve been using your tutorials and recommending our students to them for years. So it’s super cool to hear the story and kind of the culture as well that you’ve developed I think in your community about what’s important and your way of learning. So thanks for sharing that with us today.

Zed Shaw: Yeah, yeah, no problem. Yeah, it’s like I’ve always tried to push, I would say a primary difference in philosophy is other places sort of want to indoctrinate you into being a good customer and I try to make mine so you don’t need me anymore. I want you to be independent. So I want you to buy my book, get through it, and then go do other stuff. I don’t want you to keep coming back and needing me.

Chris: I love it.

Zed Shaw: Unless I make something you need. So I think that’s always been my philosophy. I like independent free thinkers and people who think for their self. That’s served me well so far.

Zed Shaw, to learn more about you, where should people go?

Chris: Well said. For people listening, if they want to learn more where should they go?

Zed Shaw: They can go to and you can also go to learnpythonthehardway or And those are two other ones.

If someone wants to learn to code with your book, where would you tell them to start?

Zed Shaw: I would say if you can’t afford it, go ahead and start with the Ruby book. It’s free, it’s on that same website. You can just go through it and I do it as just kind of public service because I love to code. Then if you can afford it and I’d say Python is way more popular. I know you guys sell a Rails course, but I think Python is much more lucrative now. So, if you can afford it then just go get the Python book. And you can try it out first if you like.

Chris: Thanks, Zed for coming on the show today.

Zed Shaw: Yeah, thank you very much.

iTunes SubscribeYouTube SubscribeStitcher SubscribeSpotify Subscribe

Learn to Code Comment Avatar
Chris Castiglione Co-founder of Adjunct Prof at Columbia University Business School.