Take note that this list seems to include any book, regardless of how old it is and how bad its contents are now, 10+ years later.
Before investing time in any of these, do yourself, and the world, a favor and find the community of the language and ask them if the book you found on that list is shit.
Let me add a tiny suggestion: sometimes even old, and obsolete has value. There might be an intermediate step in the paradigm or exercise that will suit your mind better. For instance: I failed twice at the calculating change problem in courses (Coursera, SICP). I find a variant in an old Caml problems book, that made me able to revisit the change problem and solve it on my own.
Totally agree, and I'll piggyback this to say that the quality is not always too important either. Worrying about whether the book you are learning from is "the best" is not as productive as getting on with learning the language. A book really only has to good enough not to teach bad habits or explain concepts incorrectly.
I've also had similar experiences with Java, nevermind Javascript.
It is an utter and simple fact that due to tech being an everchanging landscape, any book more than a few years old is going to teach bad habits or explain concepts incorrectly.
>It is an utter and simple fact that due to tech being an everchanging landscape, any book more than a few years old is going to teach bad habits or explain concepts incorrectly.
Concepts change meaning and good habits turn bad every few years?
Shitty books are shitty, OKish books will be probably be fine for a language intro, even if they are old.
That's why I like old books at libraries. They were from a time where the research / book ratio was better. People in research centers didn't write about trivial stuff. That's why math is so nice (when you can parse it), very general and aiming at timeless.
This is my gripe with laundry list GitHub repos (see most "awesome-X" repos). People just make them for the stars and "fame" and have no intention of curating or reviewing.
Totally agree with you on this point (not the OP's link specifically, but the awesome-x trend in general), too many of them add craploads of crappy links just for the sake of a high number.
Maybe it's just that my learning style is different from the majority's but I don't see much benefit in a massive dump of links. The idea and the intention of a community curated list on learning resources is good and lovely, it's just that github is not suitable for this.
I agree with you: github is not suitable for this.
When I created this github repo, it was because stack overflow wasn't suitable for this. Then I created a website (the now defunkt resrc.io) which could pull these kind of lists from github, parse the links, have them tagged in a database, parse the link content, make it searchable, etc.
It still wasn't suitable. And I'm still looking for a suitable way of curating such lists, be it on github or anywhere else.
I checked the link from the archive https://web.archive.org/web/20140701160526/http://resrc.io/ and from what I can see, it looks like the main issue (vetting of the links) wasn't really solved. That's the main issue with the awesome-x, from my perspective. Most of the people don't really need to read 5 books on basic Python, nor have the time to do so (trying to read a few books and dropping some is also time consuming).
Having tons of options sometimes seems cool when just checking or looking around, but when you actually need to use/learn something it's usually much better to have a couple (at most) of vetted resources that you can trust. Especially for the basic things, where there are countless of books, blog series, online courses. The paradox of choice, sort of. That would actually take 'community curated' to the next level.
The way I imagine this format working is having lists and sublists (loosely made of awesome-x repos) and each link having a upvote/downvote/report button. While the voting system would reside outside the github, every link could in github could have a widget next to it, similar to build status widgets. Well, you could implement voting using issues and reactions but that seems like a really messy way to do something. If widgets with score wouldn't exist, it would be extremely hard to convince the users to go to yet another web site.
That might work. What I do with https://github.com/tedyoung/awesome-java8 is require a few sentences for each submission that's describing what makes it useful and/or different from what's already available. Curation is definitely work, and kudos to @vhf for keeping up with it, but setting a higher-bar for entry can help (unless your goal is to just amass a bunch of links).
Yes this is why I personally avoid such lists. Take for eg the Django books: anything below 1.8 is officially unsupported and you should definitely not be learning.
A quick question on #django on freenode about best learning resource and people will always reply with "first, the official tutorial, then maybe django-girls tutorials"
Probably an easy way to do it, would be to run the book title through hacker news comments and programming language subreddits. Count up the number of references. That at least would give you an idea of how often a book is mentioned.
Before investing time in any of these, do yourself, and the world, a favor and find the community of the language and ask them if the book you found on that list is shit.