
Show HN: 100 Python books, categorized and ranked - gh1
http://pythonbooks.org/
======
sixhobbits
I wish I could be flattered that my book "Flask by Example" appears above the
seminal "Two Scoops of Django" in the "Web Development" section[0], but
instead I'm just left wondering how "Popularity Score" is calculated. We're
only given:

"The scores are based on a combination of the popularity of the book and
relevance to the topic. The best possible score is 100 and the worst is 0."

[0] [http://pythonbooks.org/topical-books/web-
development/](http://pythonbooks.org/topical-books/web-development/)

~~~
gh1
Two Scoops of Django is one of my favorite books! As to how popularity score
is calculated: I used the Amazon Bestseller Rank of the book to assign a score
for popularity. This rank loosely indicates how many copies of the book were
bought recently. I found this to be well correlated with quality (I know many
of these books by experience, and I found that the ones that I already knew to
be good books rose to the top). In addition, when you filter for topics in the
beginner section, another score is assigned based on relevance to those
topics. This was a bit more work. I went through the contents of the book
manually and tagged each book by the topics it covers and the percentage of
the book devoted to that topic. After the relevance score is computed, it is
combined with the popularity score to get a final score.

~~~
kronos29296
What about the free ones like Dive into python, LPTHW and others. People won't
buy as much as the non free ones so the ratings may not be as accurate.

~~~
gh1
Good point. I bump the ranks of the free books slightly to adjust for that.
Similarly, for books that have multiple editions, I make some adjustments to
avoid penalizing these books for fragmentation.

------
gh1
I created PythonBooks as a side project.

The website is a guided repository of Python books and currently lists the
best 100 books. It classifies these books into fine grained categories and
shows the best books in each category. It has filters for Python version, free
and non free books etc. For the beginner book section, you can even filter the
books by topics that you want to learn.

~~~
johnnyballgame
Nitpicking, but I would suggest reversing the chronological order of
Publication Year. Newer release years towards the top.

~~~
gh1
That's actually a very good point because people are more likely to look for
recent books. Will change that in the next update.

------
quangv
Pretty sweet! Anything similar for JavaScript?

This is prolly there best list of Python books I've seen. Great job!

~~~
gh1
Thank you!

------
bogomipz
The site states:

"The Bestseller Rank was chosen as the popularity scale. The Bestseller Rank
loosely indicates how many copies of the book were bought recently on Amazon.
This turns out to be well correlated with quality."

Why should popularity automatically equate to quality? Here are a couple of
examples where this is not true. For instance if I search by "algorithm and
data structure."

I see "Data Structure and Algorithmic Thinking with Python: Data Structure and
Algorithmic Puzzles "by by Narasimha Karumanchi ranked above "Data Structures
and Algorithms in Python" by Michael T. Goodrich. The book by Narasimha
Karumanchi is absolutely terrible, it's filled with typos, plagiarisms, poor
English and code that simply doesn't work.

So why is it ranked higher? Probably because the Michael T. Goodrich book is
an expensive(but quality)text book while the Narasimha Karumanchi book is just
plain cheap. Even look at the user reviews on Amazon for Karumanchi book, its
an abomination.

Also there are a number Packt Publishing titles on here. Looking at these
rankings you might believe that one of their books is 3rd most popular or 4th
most popular so they must be of decent quality.

However Packt Publishing are generally not very good quality publications,
they are often not spell-checked, have grammatical errors and often do little
more than paraphrase existing documentation. They just crank out titles with
little regard for quality - 'make 'em cheap and lots of them.'

If I search by "Intermediate" books. I see a Packt Publishing title ranked
above the "Powerful Python: The Most Impactful Patterns, Features, and
Development Strategies Modern Python Provides"by Aaron Maxwell which is an
excellent book.

Why is it not as popular? Possibly because the author also sold the book DRM-
free on their own website?

~~~
gh1
Some very good points indeed. Let me address them one by one.

> Why should popularity automatically equate to quality?

Popularity is the by far the best indicator of quality that I could find. HN,
for example, also operates on this principle. The posts with the highest votes
get to the top. However, this does not mean that the posts that do not get as
many votes are not as high quality. dang has mentioned this several times and
went on so far as to say that high quality posts getting overlooked is one of
the biggest problems of HN. One of the ways HN solves this problem is by using
moderator discretion to put some overlooked posts in the front page,
overriding the algorithm (I believe this post was one of them, it had just 5
points when it was put on the front page). In the same way, I use some
editorial discretion to penalize books that have typos and poor English, if I
could detect this by going through the Amazon preview. Some books were not
even included in the list for this reason, most of them being independently
published books. However, the book by Narasimha Karumanchi escaped my
attention. Thanks for mentioning that it has typos etc. I will review it
again.

However, just as HN tries to provide value by best effort quality ranking,
PythonBooks also makes a best effort attempt at judging quality. It is not
perfect, but it's the best I could do. If you have a better idea, let me know.
I am all for improving the site.

> However Packt Publishing are generally not very good quality publications

Don't agree with this. Many Packt books are high quality. I have read several,
including the one by Dusty Phillips, which is above Powerful Python. I do not
share the same prejudice about this publication.

> Possibly because the author also sold the book DRM-free on their own
> website?

Possibly also because the book is relatively new and will only get more
popular with time. The scores are dynamic and changes every week when I sync
my database.

Like Powerful Python, most other books are also available outside Amazon, so
it's mostly a level playing field. The exception is genuinely free books like
Automate the Boring Stuff. These books get a blanket score bump to adjust for
this.

Hope I could answer some of your questions and thanks for taking your time to
provide feedback.

~~~
bogomipz
>"Don't agree with this. Many Packt books are high quality. I have read
several, including the one by Dusty Phillips, which is above Powerful Python.
I do not share the same prejudice about this publication."

This observation about the poor quality of their books and their shady
practices has been noted by many others as well. I am not saying all of them
are bad but certainly the majority of them are. See these discussions:

[https://www.quora.com/Why-are-the-books-from-Packt-
Publishin...](https://www.quora.com/Why-are-the-books-from-Packt-Publishing-
so-badly-written)

[https://forum.unity3d.com/threads/so-i-got-contacted-by-
pack...](https://forum.unity3d.com/threads/so-i-got-contacted-by-packt-
publishing-today.181858/)

I have not read the particular Python book you are referring to but I have
viewed many many other Packt Publishing titles and they are almost always poor
and unacceptable quality. The reasons are what I stated earlier about poor
English, typos, not spell-checked, bad grammar and often simply little more
than paraphrasing official documentation.

I consider publishers like Pragmatic, Oreilly or Manning to be examples of
reputable publishers. Packt comes nowhere near this level of quality or
professionalism.

>"However, just as HN tries to provide value by best effort quality ranking,
PythonBooks also makes a best effort attempt at judging quality. It is not
perfect, but it's the best I could do."

I really don't think there's any substitute for judging a technical book
solely by the content presented in it.

~~~
gh1
If you take a look at the website more closely, you will find that Packt books
are rarely on the top. Your comment is actually well reflected in the ranking.

You had a problem with the Dusty Phillips book ranking on top of Powerful
Python. And I can personally guarantee that this book is out of the world good
and deserves that spot, if not higher (though the book above by Luciano
Ramalho is also very high quality). Here is my review of the Dusty Phillips
book, in case you are interested [0].

On your last point, it is certainly best to judge a technical book solely by
the content. The problem is : you don't have access to the content until you
buy the book. You can of course take a look at the TOC, but doing that for all
books in a given field would take a lot of time. It is always nice to have
some other indicator that correlates well with quality e.g. average reviews or
popularity so that you can reduce the problem space. This is what PythonBooks
aims to provide.

[0] [http://pythonbooks.org/python-3-object-oriented-
programming-...](http://pythonbooks.org/python-3-object-oriented-programming-
second-edition/#review-row)

~~~
bogomipz
>"If you take a look at the website more closely, you will find that Packt
books are rarely on the top. Your comment is actually well reflected in the
ranking."

Rarely on top but still a high ranking relatively speaking(2-4 etc.)

>"You had a problem with the Dusty Phillips book ranking on top of Powerful
Python."

I didn't have any problem with this book and even mentioned I hadn't read it.
I simply used it as an example of a book that had another perhaps more popular
retail outlet than Amazon, that's all.

~~~
gh1
> Rarely on top but still a high ranking relatively speaking(2-4 etc.)

If you look at the beginner book section, the kid's section and the
application walkthrough section, there are almost no Packt books there. In the
reference book section, the Packt book ranks last among 6 listed books.

In the individual topical sections, there are on an average 5 books listed per
topic, so 3-4 is a pretty low rank.

The only two exceptions are the ML book by Sebastian Raschka and the high
performance book by Gabriele Lanaro which are ranked in the 2nd position. Both
of these are outstanding books in their own domain and deserve their spot.

I see your point about Powerful Python having another retail outlet, but I
think the same is true for all the other books because they too have other
retail outlets.

------
johnnyballgame
The excellent "Two Scoops of Django" is now on version 1.11.

[https://www.twoscoopspress.com/products/two-scoops-of-
django...](https://www.twoscoopspress.com/products/two-scoops-of-django-1-11)

~~~
gh1
Thanks for pointing that out. That book came out very recently (a week ago?)
and my database is a few weeks old.

------
peteretep
Very few of:

[http://pythonbooks.org/for-experienced-programmers-new-to-
py...](http://pythonbooks.org/for-experienced-programmers-new-to-python/)

Are for experienced programmers new to Python, which is a shame.

~~~
gh1
The books in that section are topical books or reference books that contain a
condensed introduction to Python in the beginning.

------
martinmusio7
It structures the world of relevant python books quite well. Thanks, I
appreciate it!

~~~
gh1
Glad that you find it helpful.

------
O4epegb
Would be cool to see what python version is used in the book

~~~
gh1
You can see that. On the pages that list books, there is a Python version
filter. In desktops and tablets, it appears on the sidebar to the left. On
mobile devices, the filter is collapsed and appears on the top right. On the
book pages, the Python version information is available on the sidebar. On
mobile devices, click on the Vital Stats link on the top to see this
information.

~~~
O4epegb
Oh nice, thanks. Did not see that on mobile at first.

------
elymar
Hands-On Machine Learning with Scikit-Learn and TensorFlow by Aurelien Geron
is also pretty great. Would like to see that in the list.

