I am Zed A. Shaw and I write for fun and profit.  I am the author of Learn Python The Hard Way, Learn Ruby The Hard Way, and many open source projects. I am also a musician and recently an artist, although I don’t really call myself either of those. I tend to hate most technology and most technologists despite being an old school hacker of technology.

I block comments on my writing because I believe you should go say what you think of my words on your own site instead of shitting all over mine.

29 thoughts on “About

  1. Hello Zed Shaw,

    I just read your essay on flow. As a scientist who has always been intrigued by art and had many artist friends I have often preoccupied myself with the question of what defines art. I liked your perspective on it. I just wanted to comment on flow (something that my writing lacks). I took a break from studying for a few years to work as a bike messenger in Switzerland, and we bike messengers always talked about our flow, we used that exact term, even in german. When you are moving through heavy traffic at full speed for hours on end, you also find a flow just as you described it. Your mind and body mesh completely as you constantly plan and replan the next move in a rapidly changing environment while pushing physical abilities and also planning the best way to manage all the drop offs and pick ups you have on your docket. It was a surprisingly complex job, and the flow was incredibly satisfying. It was the reason some of those guys continued to do the job until they reached 50, despite the physical and fiscal difficulties. In fact, I have also experienced something similar while doing complex sports such as backcountry skiing and climbing, and would argue, perhaps as you just did, that any sufficiently complex activity can yield a flow like sensation.

    Anyways, cool essay. I enjoyed it.


    Liked by 1 person

  2. Zed,

    I would love to read your article on boot camps, but I can only find “The Coming Boot Camp Destruction.” Could you please send me a link to the main article you promise in that one? I am considering doing a boot camp and want to hear what you have to say.


  3. Hey Zed, I’m new to programming. I started a rails course for beginners last week (OneMonth.com). I came here from the Code Newbie interview you did this year in about January.
    I work as a janitor at the moment, I want to make programming my profession.

    I liked how you said that you teach coding by making people write it out first and then you explain the concepts behind it.
    This mirrors how I’ve been learning German with a bit of Japanese and Polish on the side for about 6 months, it’s true that it’s easier to practice reading, listening, writing and speaking in the language first and then try to understand the grammar. It doesn’t work the other way around even if you already understand complicated concepts like the Instrumental case and the subjunctive mood (I already speak 3 languages).

    Funny that you mentioned in the interview having to program old software and dealing with company politics as though they’re terrible things to deal with, try throwing dead cats into trash cans a few days in a row (that was a past job).

    Thank you,


      1. Basically it was a job cleaning sidewalks, I worked there there to help support my parents while they struggled to get their alternative medicine business.

        By the way, is getting a computer science degree really necessary for getting a good programming job?


      2. It depends on where you want to work, but in general skill and ability to get shit done trumps education nearly every time. A degree plus skill is usually the very best. Also, if you want to immigrate to another country to work then you’ll need a degree.


      3. Zed, I don’t know where to ask this but I’m stuck. I’m on lesson 48 of the lrthw course, I’ve been banging my head against it for a few weeks, I managed to finish ruby on code academy during this time, and am having a lot of trouble with figuring out what to write there.
        The test worked first when I just wrote the functions but as soon as I write a portion of the first line of code from within the directions function I have no idea what to write. Maybe I missed something. I tried with the whole code of the first function in the test file but nothing worked.
        The games that I wrote in a few previous lessons worked but now I’m completely lost, no idea what to write. I’m considering giving up on the course and moving on to Michael Hartl’s Rails course..


  4. I started to learn python with Udacity and Codecademy, although I don’t deny they are useful enough, they made me confused and tired sometimes. But since I came to your book, Learn Python The Hard Way, I am enjoying learning. Thanks

    Liked by 2 people

  5. Hey Zed, I have been following up with your new, Projects The Hard Way, site and I haven’t seen any updates in a while. I was just wondering if you are still working on that? I completed the logfind project and have been waiting for the code reviews, videos and whatnot.


  6. Zed, I haven’t read any of your code (but I have started looking at your SQL The Hard Way proto-book), but I gravitate directly to the words, “The Hard Way,” which is (in my experience) The Only Way. And, I can’t wait to qualify as a Motherfucker Programmer! (I’ve been programming for 35+ years, so, I’ve seen ’em come and go. I’m pretty sure I’ve achieved at least the motherfucking part.) My wife just happened to notice your manifesto. I’m a Rails guy these days, so, yeah, I remember Mongrel. And, of course, I remember Donald Knuth. I’m looking forward to trolling through your extensive–and, it is very impressive–on-line collection of books and blogs. Please consider me to be a motherfucker-in-spirit with you!


  7. Hey Zed, LPTHW probably has changed my life. going halfway through it finally pulled my out of the “chapter 2” loop and demystified everything! so much so that i went through several courses on data processing (and a bit of R and a bit of MATLAB) and could easily find my way out of trouble. something that before LPTHW would end up in disappointment and procrastination!

    im commenting here because of the DIGITAL PAINTING post (the comments are off on that post), maybe i can help you out here:

    First of all, You’re looking at it all wrong!
    Digital is a WHOLE OTHER medium. with it’s OWN approaches and methods and rules.
    trying to replicate what you’d normally do in real life is exactly the mistake that the developers did in making painting softwares.
    nowadays most concept artists (Concept Artists are the ones taking the MOST advantage of the DIgital Medium) actually never use things like “Real Water Color” or tools like that. most painting are done with 2 or 3 brushes, lasso tool, transform and so on.
    they’re mostly done in Black and White to nail the values down, and added color later!
    in digital you dont mix color, you just get better at “Guessing” the color!

    in short, it’s like trying to learn Pastel using OilPaint videos. yes they share some similarities, but they have totally different approaches.
    So keep Richards for what he does and for Digital go check out ctrlpaint.com , or if you want to see a master at work watch Feng Zhu’s awesome channel on YouTube, or Scott Robertson’s Channel.

    i’d love to share more of the mistakes i did! maybe open up the comments on that post?


    1. Awesome advice Mohammed. You are very right that it’s a new medium, and honestly I’d be totally fine with the tools being completely different from IRL tools. In fact that’d be way better. As it stands now though, the frustration is the developers keep replicating the real world poorly, so I’m stuck using what they made and being dissatisfied.

      I like your suggestion of doing it in monochrome then developing it further. I will have to try that out. Thanks.


  8. Hi Zed, I enjoyed your Python book. Your straight-forward approach is wonderful, because nowadays it seems that everyone who teach programming is trying to make it sound like it’s kinda of philosophy or something. You made it clear that it’s all about hard work and trying.

    I’m now learning Android development and I’m interesting if you have any plans to write Java beginner book, or book for Android development? Like “Learn Java (Android) The Hard Way”?


  9. Hi, Zed,

    Can we expect you to release “Learn Haskell the Hard Way” and/or “Learn OCaml the Hard Way” for those of us who are interested in functional rather than OOP programming?



  10. Hey Zed,

    Thanks for the hard work, time and resources you’ve put into your “Learn To Code The Hard Way”. They’ve helped me grow into a developer with a real skill set and set a clear path to learning more in depth resources.

    I appreciate the effort you’ve put into it and the fact that it’s freely available.


    James Olinda


  11. Hi Zed,
    My name is Fern and I’m from the UK. I had quite a bit of experience in web design code (HTML & CSS) but haven’t touched on coding for years. I’m about half way through your ‘Learn Python the Hard Way’ and your teaching style really is fantastic! Thank you so much for getting me interested in coding again and I really do look forward to reading more of your stuff in the future 🙂

    Best wishes, keep it up


  12. Hi Zed, I completed the whole “Learn python the hard way” chapters/exercies verbatim. I just wanted to thank you. You understand the pain of beginners. Very few people can get into the shoes of the beginners and write something like this. Thanks again!!!


Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s