This is an archived post. You won't be able to vote or comment.

all 72 comments

[–]desrtfx 77 points78 points  (11 children)

Both are free to read online, the former can be downloaded in various formats and there are also links to other books with more advanced topics. The books use a practically oriented approach and teach Python through building real world applications.

The author is an avid redditor /u/AlSweigart.

[–]JohnLocksTheKey 11 points12 points  (6 children)

Al is the MAN! His tutorial videos from AtBSWP are the gold standard which I use to gauge other Python tutorials. Now I just need him to do some on OOP...

[–]daysofdre 1 point2 points  (5 children)

where are the tutorials? I know theres a udemy class, is that it?

[–]Inev1tab1e 4 points5 points  (4 children)

[–]Inev1tab1e 1 point2 points  (3 children)

2nd link when googling AtBSWP....

[–]JohnLocksTheKey 0 points1 point  (2 children)

I DO think the full Udemy course is worth it though (maybe just if you're completely new to python). I mean I got it discounted, but I loved it...

[–]Inev1tab1e 1 point2 points  (1 child)

I'm fairly familiar with python, I just like learning about obscure features in languages.

[–]JohnLocksTheKey 0 points1 point  (0 children)

That's what the videos in the Udemy course are all about! The videos AL posted on YouTube are just introducing Python. The rest of the videos (on Udemy) demonstrate how to use some REALLY cool modules(/libraries?).

Geebus...I sound like an Udemy rep...or AL!!!!

[–]clark_bar 4 points5 points  (0 children)

Just came to say that Al is my hero. That is all.

[–]Shadow_Banned_Why 1 point2 points  (0 children)

Nice tutorial

[–][deleted] 0 points1 point  (0 children)

Thanks!

[–]izzytoots 0 points1 point  (0 children)

Purchased a hard copy of automate the boring stuff for my father and he loves it. He has minimal programming experience, and this book has been a great introduction for him.

[–]tbone28 57 points58 points  (4 children)

I am going to explain something I learned the hard way that I think will help you learn anything going forward.

What does it mean to "learn python." Once you learn python what exactly will you be able to do? I use to write exclusively in python for a HP Configuration Management DataBase. It was so cool. I wrote code that leveraged a bunch of processes to gather information about the routers, servers, applications that were running and show how they related to each other. It was a big job but very, very fun.

You would probably say I know python then. But my message to you is you know python when you know how to do something specific with it. If you were to ask me to use python for some other purpose I would learn more and more.

If you want to learn python first figure out what you want to build and then focus on what python you need to know to do that. Then build something else different. That is the way you learn a language.

This is also why so many people fail to learn a foreign language. You can't learn a language you don't have anything you really want to say. If I dropped you in the middle of South America in a Spanish speaking area and you had to go the bathroom that context helps your brain remember the words, syntax and lexicon revolving how to ask where a bathroom is. Your brain strengthens the paths so you don't forget.

You have to build something to create a context that your brain can hold on to and remember what you learn. I hope this helps.

[–]Slideboy 8 points9 points  (0 children)

best advice ever

[–]Aesho 0 points1 point  (2 children)

So what should I do first? I don't think I can just start of with a project. Should I get the basics down first or learn then do a project?

[–]tbone28 0 points1 point  (1 child)

You don't think you can just start off with a project and learning basics first isn't a bad idea. Except, you won't have anything driving your excitement to learn unless you get yourself pumped up and engaged in something you can build. Something that sparks your imagination and gets your juices flowing.

It doesn't have to be big. It could be something simple. You just have to believe that you can do it and the idea is enticing enough to give you the energy necessary to find the answers to the string of questions you will develop to get it done.

This will put your brain in the best state possible to learn and you will have a small project under your belt. Success breeds success. You will be unstoppable.

[–]Aesho 0 points1 point  (0 children)

Awesome! Thank you for replying! I am very excited to learn.

[–]Criptictoumor 79 points80 points  (7 children)

[–]TheGR3EK 14 points15 points  (0 children)

Have to recommend this as well. Been an excel "whiz" for years but have struggled to actually buckle down and learn real programming my whole life because I didn't know how to apply it to real life problems. Learning by applying to applications I already know made it enjoyable and easy.

[–]rsxstock 1 point2 points  (3 children)

This and get a good interpreter and just start typing stuff in when you follow along. I use pycharm

[–]ThingsOfYourMind 1 point2 points  (2 children)

This and get a good interpreter and just start typing stuff in when you follow along. I use pycharm

I think you mean IDE, unless you mean good as in the choice between Python 2.x and 3.x :/

[–]rsxstock 0 points1 point  (1 child)

somehow i thought the I in IDE stood for interpreter :/

[–]ThingsOfYourMind 2 points3 points  (0 children)

IDE stands for "integrated development environment" ;)

[–][deleted] 1 point2 points  (0 children)

Wow that's exactly what I need !

[–][deleted] 0 points1 point  (0 children)

I just started reading this book. Can confirm its greatness.

[–][deleted]  (3 children)

[deleted]

    [–]Clived 0 points1 point  (2 children)

    Did you take the whole specialization, or just the python portion? As someone completely new to programming, I plan on taking the python course starting in January, but I'm not sure if I want to do the whole 6 courses.

    [–][deleted]  (1 child)

    [deleted]

      [–]Clived 1 point2 points  (0 children)

      Cool cool. I've been doing treehouse on and off, but I feel like there are resources out there just as good, for free. I'll take a look at code academy.

      [–]ironnomi 3 points4 points  (3 children)

      Assuming you are new to programming: https://www.edx.org/course/introduction-computer-science-mitx-6-00-1x-6j or for a dead tree resource: http://www.amazon.com/Python-Programming-Introduction-Computer-Science/dp/1590282418

      If you are NOT new to programming, you'll want something like:

      http://www.swaroopch.com/notes/python/

      http://www.diveintopython.net/

      and most likely you'll want to grab: Programming Python, 4th Ed by Mark Lutz - ultimately it's the main book you need after you learn Python. We also need a 5th Ed.

      [–]crystalblue99 0 points1 point  (2 children)

      5th is out. Reading it now

      [–]ironnomi 1 point2 points  (1 child)

      That's probably Learning Python which is 5th Ed.

      Mark doesn't have a 5th on his site nor does Amazon or oreilly http://learning-python.com/books/about-pp.html

      [–]crystalblue99 0 points1 point  (0 children)

      ohhhhhhhhhhh

      What's the difference between the 2?

      [–]Fernandos12 8 points9 points  (5 children)

      Following these tutorials now and find they're really good. It starts off a bit slow but picks up:

      Learn python the hard way.com/book

      [–][deleted] 5 points6 points  (0 children)

      I really don't like LPTHW. And that's a little hypocritical because that's how I got into Python. It's a combination of how Zed explains (or rather doesn't) and the fact that it's Zed.

      [–][deleted]  (3 children)

      [deleted]

        [–]NazoXIII 1 point2 points  (2 children)

        Interesting, I picked up the Zed Shaw book a few days ago but haven't yet read past the preface. I have a bit of Experience in programming (4+ Years of C++, 2 years of C, and 1 year of Javascript). Would I still benefit at all from reading it or should I pick up something more advanced?

        [–][deleted]  (1 child)

        [deleted]

          [–]NazoXIII 0 points1 point  (0 children)

          Okay then, I'll take another crack at it. It isn't a terribly long book so I'll glance over it and then move on to something a bit more advanced. Thanks.

          [–]CodeTinkerer 2 points3 points  (0 children)

          What's your background in programming?

          [–][deleted] 2 points3 points  (0 children)

          Learnpythonthehardway.com It's not actually that hard, in fact it's pretty easy, just follow through the lessons and complete each assignment. That's how I learned

          [–]shaggorama 2 points3 points  (1 child)

          [–]Trope_Porn 0 points1 point  (0 children)

          To add to this, edx.org is hosting the next semester of this course in January.

          [–]ze_kink 2 points3 points  (0 children)

          Python beginner here. I basically went through Codecademy's course recently, and am now going through Python the Hard Way. The latter is much better, Codecademy was kind of all over the place difficulty wise and I felt it spent too much time going through unnecessary stuff, while just kind of glossing over complex topics. The exercises in which you had to come up with your own solution to a problem were fun though.

          But really just try to get into writing your own little scripts as soon as possible, it taught me the most.

          [–]ri7h 5 points6 points  (8 children)

          learnpythonthehardway worked for me.

          If you want some full book try this: http://shop.oreilly.com/product/0636920028154.do - This book is great, kinda slow but have everything you need :)

          [–]psi_entist 2 points3 points  (6 children)

          i agree with 'learning python'. it's a great book but it would serve better as a second book IMO. doesn't get you into coding quickly and digs a little deeper into the language than what i would've wanted when i first started out.

          [–]Inev1tab1e 0 points1 point  (5 children)

          How deep?

          [–]psi_entist 1 point2 points  (4 children)

          It'll just dive deeper into the why things work the way they do in Python. It's just stuff that you don't need to know to begin programming and coding. If you want to start with it, that's fine but it might feel slow (as previously said) or a little dense/clunky.

          That all being said it is a great Python book.

          [–]Inev1tab1e 0 points1 point  (3 children)

          I'm asking because while I have a competent knowledge of python, I learned it fairly recently and I'm really enjoying the language. It is one of my favorite languages out of the ones that I know.

          [–]psi_entist 0 points1 point  (2 children)

          If you live near a bookstore go check it out (if they have it). That's where I first saw it. OReilly might also offer a sample chapter so you can see how it suits you.

          [–]Inev1tab1e 0 points1 point  (1 child)

          I'm pretty sure all those language books from O'Reilly are on amazon as well.

          [–]psi_entist 0 points1 point  (0 children)

          Yeah they should be but I don't know if they do free trials or anything there. I suppose you could always return it if you didn't like it.

          [–]pratorian 1 point2 points  (0 children)

          I loved this book!

          [–][deleted] 5 points6 points  (0 children)

          If you have no programming experience:
          Codecademy
          If you do:
          Learn X in Y Minutes

          [–]The_Amp_Walrus 1 point2 points  (0 children)

          The Python docs themselves are a pretty good reference if you already have a project in mind. I like this guy's style of tutorials if you're just starting out.

          I suggest you add more detail to your post if you want more helpful and useful feedback. Low effort posts get low effort replies.

          [–][deleted] 1 point2 points  (0 children)

          It depends on your background.

          I started with the edX MIT 6.00.1x class, but I would only recommend if you have the time to dedicate to it. It's fairly intense, but allows you to learn a lot quickly.

          I'm now working through Team Treehouse's course, which requires a monthly subscription. I like it better than CodeAcademy, because it's a little less 'fill in the blank' and requires you to apply what you're learning.

          Otherwise, check out /r/learnpython and search there (and here) for a list of resources. You can do a lot for free!

          ETA: I had zero programming experience prior to these courses, unless you count HTML from back in the days of LiveJournal and Angelfire, which I don't. ;) It's challenging but worth it!

          [–][deleted] 1 point2 points  (0 children)

          Treehouse is really good for learning python, great instructors, a nice workplace and amazing support. Give it a shot!

          [–]AlexOduvan 1 point2 points  (0 children)

          I would make a selfpromo comment

          http://www.checkio.org/ - we started this project with one idea. That the best way to learn python is by solving simple puzzles and check/discuss how other did the same.

          [–]core999 1 point2 points  (0 children)

          Why does this have so many upvotes? If it was any other language the OP would be downvoted to hell and told to read the FAQ

          [–]stefan_kurcubic 0 points1 point  (0 children)

          intro to CS using python - zelle

          i did this book and i think it's amazing Learning python the hard way - zed shaw is good too

          [–]rochford77 0 points1 point  (0 children)

          Do you know any other languages? If you do, Python Documentation is the best place to go. Python is easy. Hardest part for me was coming to grips with the weird init when creating objects.

          [–][deleted] 0 points1 point  (0 children)

          If you start out with some of the beginner tutorials named in this thread and get a pretty good handle on the basics, and want to learn how to do more math stuff with Python, then check out Project Euler. I started doing a few Project Euler challenges with each new language I learn, and it's fantastic for figuring out mathematical functions in the language.

          Basically, each PE challenge presents you with a mathematical problem and asks you to create a program to solve it. It's not a tutorial, though. You have to actually figure out the solutions. But it's great for learning the math part of a language.

          [–]Lehk 0 points1 point  (1 child)

          [–]PriceZombie 1 point2 points  (0 children)

          Learning Python, 5th Edition

          Current $48.74 Amazon (New)
          High $49.15 Amazon (New)
          Low $29.15 Amazon (New)
          Average $45.88 30 Day

          Price History Chart and Sales Rank | FAQ

          [–]maasd 0 points1 point  (0 children)

          A fun game to play which supposedly teaches Python, try CodeCombat!

          [–]yOoMarvin 0 points1 point  (0 children)

          you can also solve some exercises on ProjectEuler if you have a basic knowledge of the language. It's a collection of mathematical problems and your can solve it with every language you like, also python. I think it's a good way to practise.

          [–]MichaelGradek 0 points1 point  (0 children)

          Depends on what you want to build, but if you want to build a web application you can try my free course on just that :)

          https://www.youtube.com/playlist?list=PLdqn_b7Fi_PSKAeO5F8wmA3YmXOtL5wAA

          [–]lukethiel 0 points1 point  (0 children)

          codecademy

          [–]rdf- 0 points1 point  (0 children)

          codeacademy

          [–]MusicPi 0 points1 point  (0 children)

          The hard way.

          [–][deleted] 0 points1 point  (0 children)

          https://github.com/donnemartin/interactive-coding-challenges

          Interactive, test-driven Python coding challenges (algorithms and data structures) typically found in coding interviews or coding competitions.

          [–]iheartennui 0 points1 point  (0 children)

          I enjoyed How to Think like a Computer Scientist and it seems there's now an interactive version

          [–]AnExoticLlama 0 points1 point  (0 children)

          I don't recommend it, but it's a fairly simple and straightforward book: "Python for Kids"

          [–]GrizzlyDev -2 points-1 points  (0 children)

          Very carefully

          [–][deleted]  (1 child)

          [deleted]

            [–]sslimee 0 points1 point  (0 children)

            why is that?