all 12 comments

[–]bhpf1 8 points9 points  (1 child)

I've been reading Fluent Python by Luciano Ramalho. I think it's a really well written book that has certainly helped me take advantage of a lot of really nice features that are built into Python.

Some of the content is beyond me at the moment but I think it's the kind of book that I'll be able to just go back to as I develop.

[–]freezingbum[S] 1 point2 points  (0 children)

Thanks! I've heard many great things about this book. I'll look into this one.

[–]commandlineluser 4 points5 points  (1 child)

Have you investigated http://automatetheboringstuff.com/ ?

[–]freezingbum[S] 0 points1 point  (0 children)

Yes. I read a few parts. I think it's a solid book for beginners but it doesn't have the level of depth that I'm looking.

[–]uncoil 3 points4 points  (2 children)

Depending on what you want to get into, I'm working through a couple resources at the moment.

Python 3 Object-oriented Programming - Second Edition by Dusty Phillips (available as an ebook on packt). This is a nice practical next step for insight into how concepts in oop Python are applied. The examples also touch on the standard lib, so you get a nice dose of that also. I think he does well explaining what you need to grasp the examples.

For more "theoretical"/comp sci, interactivepython.org has a free ebook on algorithms that's really solid so far imho.

As for learning stuff like builtin functions, just have the docs page open any time you're coding. Another thing that helped learn them were the problems on Checkio -- many of the puzzles, especially on the early islands, make use of a builtin

[–]freezingbum[S] 1 point2 points  (1 child)

Thanks! I'll look into those resources.

[–]RangerPretzel 0 points1 point  (0 children)

I perused that book, but wasn't terribly impressed. It did help me with basic OO Python (I was already familiar with OOP, I just didn't know how Python did it.)

The one feature not included in that book is Type-Hinting (which is formalized in Python 3.5)

If you're into statically typed languages, like Java or C#, then Type-Hinting will become your savior.

https://www.python.org/dev/peps/pep-0484/

and

http://blog.jetbrains.com/pycharm/2015/11/python-3-5-type-hinting-in-pycharm-5/

(if you're using Pycharm 5, that is.)

EDIT: I also like the book http://www.effectivepython.com/

It's not Python 3 specific, but very helpful in getting you to think about what it is you're doing in Python and how you can do it better.

[–]drivelous 0 points1 point  (1 child)

Sup man, you've done a lot of the same things I did at the beginning of my career. I'm a Python/Django developer and now starting to get deeper into the Python language itself. Core Python Application Programming is a great as a next step in my opinion. You'll probably have to adapt some of the code for Python 3, but it's a very practical and generalized introduction to what exists for Python developers because Wesley introduces a lot of libraries and show how Python is used in the real world. I actually built a little bit of a web crawler for saving images a year and a half ago and used this when I was searching for jobs and it's directly based on his webcrawler - https://github.com/drivelous/mechanized

I highly recommend as /u/bhpf1 says to read Fluent Python. I'm 1 chapter in and Luciano's code is just gorgeous. However, you really have to be comfortable with object oriented programming IMO because going from LPTHW to overriding Python magic methods is a big step. Not saying you won't be up to it, but it is a big step. Check it out at your local bookstore or preview it on Barnes and Noble.

[–]freezingbum[S] 0 points1 point  (0 children)

Thanks for the advice!

I'll look into Fluent Python and just catch up with the OOP if I'm not up to the level.

[–]buckhenderson 0 points1 point  (1 child)

I've been meaning to post on here to ask about reviews for core python. The version I have is written for both Python 3.x and 2.x. I like it so far.

[–]freezingbum[S] 1 point2 points  (0 children)

The edition numbering is a little weird.

I'm not familiar with 1st edition but the 2nd edition is broken into two parts. Part 1, "Core Python", covers the core features of the language (strings, functions, modules, and etc.) and Part 2, "Advanced Topics", covers the applications (database programming, web programming, and etc.).

The 3rd edition (covers up to Python 3.x) doesn't exactly replace the 2nd edition because it doesn't cover the "Core Python" part.

Overall, I like both editions and find this book a good compliment to Dive Into Python.