Hi guys! I am the author of this book. Thanks heyalexej for posting this here. If there is anything I can help you guys with then kindly let me know. :)
You guys can donate me if you want to by buying the donation version of Intermediate Python from [@gumroad](https://gumroad.com/l/intermediate_python) :)
It is only for $10 but if you want to pay less then kindly let me know (pm) and I can give you a custom link.
Cheers!
Just read the entire thing, good stuff! Interesting to see what's considered intermediate vs. basic and advanced.
Feedback: maybe add a feedback section to the site? Haha. Dissect is spelled with 2 S's, and there's a broken link at the end of the virtualenv section.
Thanks for your work! Learned a few things for sure.
I get to program python maybe 300 hrs a year. And I love every minutes. But there are times that I wonder if I'm doing it in an idiomatic way. There are a lot of good resources out there on python but this one has helped me a lot in my first 30 minutes of reading it.
Brilliant. Every language should have a book like this. I'm already learning a lot of little details about features I've had some passing experience on. Only request I have (which I generally have for stuff like this), is for real life use cases. Example would be args and *kwargs being used in decorators. Where do you use it? What's a real life example of it being used? How does that compare to the in built decorator functionality of Python? Answering this type of question helps people understand the technique and theory in equal measures as opposed to more theory than technique.
I use decorators like that in Django where I want to reuse the same code to check something on the request object but the functions I am decorating expect keyword arguments
I've been thinking of something like this for models especially. Where I have made my own models and worked with Flask, but now need to integrate the Django framework. Just a vague idea though. Haven't formed a clear picture of how I'll do it at all
Map and filter are looked down upon by some Python devs because they prefer list comprehensions. If you don't need the laziness (in Python 3 only), you probably shouldn't use them because some don't consider them idiomatic. See this for more information:
Note: This is not related with that paid "intermediate Python" book in any way. I became aware of it today. I had been using this name internally for a couple of months. If the author of paid "Intermediate Python" has any issue with this I would be more than happy to change the name of my book because he definitely beated me to the finish line. :)
On the other hand, the name "Intermediate Python" is so generic that whoever wrote the book shouldn't be surprised there are other documents using the same name.
I love it, as a biologist I did a Python course some months ago, already I'm much more productive than I was in my Origin/Excel time. this books really clarifies many of those strange things (like kwargs etc). This is going straight into my favorites and I know I'll be using it often. Thanx!!!
I have put a link to a mailing list. If you want to tip me then kindly signup over there and I would let you know once I have a tip receiving system in place. I already run a reputed [Python Weekly Newsletter](http://newsletter.pythontips.com/) so you are in a good company (meaning I won't spam you).
This looks great just from glancing over the table of contents. I picked up Python nearly a year ago and I am a pretty novice programmer at best. Over time I've learned stuff like decorators, lambas, args/kwargs and other stuff that you generally don't find in the "Intro to Python" books, but its all been through stumbling into the right place. Thanks for sharing, I may have something to read this week :)
Thanks! If you have any suggestions / feedback I'd be happy to hear it – I've been planning on updating the post sometime soon to show how to upload wheels and in general just clean up the language and approach.
It has been much more difficult in the past, as recently as 2013, there were a number of different tools competing to be the standard method of packaging python. It's pretty smooth sailing at this point.
I just skimmed through decorators. I don't use python too much and decorators always seemed a little bit black magic for me. Thanks for proving this wrong.
As for a supposed "Advanced Python" edition, it would be great to compile at least a list of topics that could be interesting. Some have been already mentioned in this thread, like:
Test Driven Development (TDD) may or may not be a fad. Regardless, one can always have testing in ones development work. That doesn't mean you're driven by the tests.
Edit: On second thought, I read your comment sloppily. I agree, testing in itself isn't an advanced topic and I'd recommend a section on some testing :-)
The only point, I might not consider lists being mutable nor global values vs values returned from a function intermediate topics. Those are beginner topics I think.. one would have a hard time using the language almost at all without understanding them. I would say the part about decorators and kwargs args is more intermediate level. Anyone who gets to that probably already understands global variables and the fact certain data structures are mutable.
But not abuse your work. The book is nice. I learned a couple of things.
Hey! There is no problem with correcting me. If you think that I missed something or if there is something that can be improved and you think that you can make it much better then submit a pull request if you can. :) I would be more than happy to accept it.
I see that that the book has a section on usage of For-Else construct. Personally I found this construct to be confusing, and avoid its usage as one can achieve the same by setting a flag (say). Is this construct much used ?
That is totally different from my book :) I haven't read it so I can not tell how much different it is from mine. Perhaps you can tell if you have read it?
I was right about to buy it, completely blind, based on the similar title, because a good deed deserves a good deed: I support anyone who gives their book away for free online and offers a hard-copy (Learn You a Haskell, I'm looking at you) for purchase.
Let me know if you have an Amazon affiliate link, tipjar, or need help with any projects.
Edit: whoa, at least 5 redditors had the same "do you have a paypal?" sentiment. I suggest you have a header on visit and start collecting opt-in emails. That way, people like me will be emailed the second you get all setup.
Edit 2: Also, this definitely is a good "resume" for consulting work. I'd put an "Available for Hire/Retainer" notice at the header of every page, in case someone has an overflow of work, and/or a corporate manager wants a flexible contractor asset available as an insurance policy for behind-schedule projects. Don't charge less than 150/hr in 20 hour blocks per month for retainer work (use it or lose it), and 175ish/hr for active work.
I think your book goes for breadth of topics while his primarily focuses on solid understanding of iterators, generators, and decorators.
p.s. I only looked at the "Enumeration" page in your book, and I don't think it belongs in an "intermediate" level Python book. The use of optional arguments makes little sense to me (not something I wanted to know about Python after I learned the basics).
I'm sure other chapters have more relevant content though, and I appreciate your effort.
I consider myself somewhere in the spectrum between beginner and intermediate and I use enumeration quite often. I picked it up early on in a tutorial by Andrew Montalenti (founder of http://www.parsely.com and quite active in the Python community) and use it ever since instead of wrapping it into another loop like beginner tutorials teach you. For example if I need to read in a file with 5 million lines but for debugging or performance optimization reasons want to break the loop after 1K lines.
It's certainly an arduous task to determine what is intermediate and what isn't! And I think you did an excellent job, from looking at the table of contents (I'll have to take a closer look and have booked marked it for later). Unlike some the above posters, I learned metaclasses relatively early, but there are definitely some things in this book which I haven't seen before.
Thank you.
That's a pretty advanced topic. Like a lot of advanced (and some intermediate) topics, you read a bunch of varying documentation and play around with it yourself before you get a good grasp.
I'd tend to agree. I've been writing Python for years, and I still haven't had a legitimate use for them. Not to say that there's no use for them, they're handy when implementing an ORM. However, it's not often that you'd need to do something like that.