
Speaking JavaScript - rauschma
http://speakingjs.com/es5/
======
eddd
I hate books with contents like: Variables and Assignment Values, Booleans,
Numbers, Operators, Strings,Statements, Functios, Exception Handling, Strict
Mode, Variable Scoping and losures, Objects and Constructors, Arrays etc...
there are milions books like that. I require from book to introduce me into
new language in a manner where i don't have to suffer due to going throught
dry facts and definitions. Give me pure examples. I want to create something
useful during lecture of book about programming.

~~~
ritchiea
Agreed. Books that focus on teaching syntax and common use cases really fall
flat for me. The best programming books teach you how to think in the syntax
of the language. Eloquent Javascript [1] does a good job of that and is also
free.

The best programming book at teaching a practical contemporary language in
depth while teaching you to think with it is Metaprogramming Ruby. That's a
great read for anyone considering writing a book to teach a programming
language. And the best book I've ever read on thinking about programming
comprehensively is SICP. Which again, I would recommend reading at least half
of if you are going to write a book teaching a language.

1\. [http://eloquentjavascript.net/](http://eloquentjavascript.net/)

~~~
blumkvist
Hey, I stumbled across a post of the author of eloquentjavascript that he's
crowdfunding second edition of the book. My question is - how current is the
first edition? Is it suitable to teach me JS, considering it's quite old? I'm
not a good programmer. I know a bit of python, mainly for statistical tasks
and some automation/scraping.

~~~
ritchiea
It's a great intro to Javascript. It's not going to teach you the most current
webdev libraries but if you start with a strong foundation in Javascript
(which you will get from Eloquent Javascript) you should be fine applying your
knowledge to using popular libraries.

~~~
blumkvist
Thank you! Thanks to marijn too!

------
caniscrator
'Eloquent Javascript'
([http://eloquentjavascript.net/](http://eloquentjavascript.net/)) and
'Learning JavaScript Design Patterns'
([http://addyosmani.com/resources/essentialjsdesignpatterns/bo...](http://addyosmani.com/resources/essentialjsdesignpatterns/book/))
are the best resources so far.

~~~
ritchiea
I second Eloquent Javascript. It's the book I recommend to JS beginners.
Secrets of the Javascript Ninja by John Resig & Bear Bibealt is another good
one once you get past the terrible title.

I will checkout Learning Javascript Design Patterns on your recommendation. I
bookmarked that book a while ago but forgot to return and give it a read.

~~~
caniscrator
Yes about Javascript Ninja, you are quite right. No doubt, its one's best
companion for getting firm grip on cross-browser compatibility issues.

------
camus2
Recently found this :

[http://www.comp.nus.edu.sg/~cs1101s/sicp/](http://www.comp.nus.edu.sg/~cs1101s/sicp/)

SICP in Javascript.While the coding style is a little bit old school this
should be linked in every javascript book / blog about learning Javascript.
This stuff is just awesome.

I would gladly pay 30 bucks for a revised paper back version.

~~~
draegtun
Also see _Higher-Order Javascript_ by Sean M. Burke which is a "JavaScriptish
companion" to Mark-Jason Dominus's _Higher-Order Perl_ book -
[http://interglacial.com/hoj/](http://interglacial.com/hoj/)

~~~
camus2
thanks for the link.

------
Flimm
This book deliberately omits talking about Javascript in the browser, but the
only reason I want to study Javascript is for its use in a browser context!

~~~
rauschma
It’s a matter of deliberate focus! If you are interested in browser stuff, you
can either combine Speaking JS with the content on MDN [1] or buy a different
book. I like the books by Nicholas Zakas and “JavaScript: The Definitive
Guide”.

[1] [https://developer.mozilla.org/en-US/](https://developer.mozilla.org/en-
US/)

------
hawkharris
I never knew that NaN is not strictly equal to itself in JavaScript (so NaN
=== NaN => false). Very interesting.

~~~
memming
I would be surprised if it were. All languages I know says NaN == NaN is
false.

------
gtirloni
Is it possible the author is getting more revenue from that little ad on the
right side then from actual sales?

Is it common for O'Reilly authors to release their books this way?

~~~
ptwobrussell
I strongly considered the approach of releasing the contents of my recent book
online with Mining the Social Web 2E [1] but instead decided to pursue what I
felt was a standard OSS model: release a really high quality version of the
source code that's optimized for easy learning in IPython Notebook format
(optionally packaged as a turn-key VM) on GitHub [2] with the book being a
form of "premium support" for the codebase if people want to learn more or dig
deeper. I touch on all of this somewhat in the book's blog's "book as a
startup posts" [3], and it seems to be working well so far.

I'm increasingly becoming interested in the prospect of releasing the entire
contents of the book (both prose and source code) in IPython Notebook format
so that you could read and work in the book seamlessly as "executable paper"
like this full-text sampler of Chapter 1 [4] if it were hosted on Wakarii or a
similar platform that offers a free tier. It really seems to me that this is
the future of tech books: _learning platforms_ with prose and example code
integrated seamlessly.

[1] [http://amzn.to/GPd59m](http://amzn.to/GPd59m)

[2] [https://github.com/ptwobrussell/Mining-the-Social-Web-2nd-
Ed...](https://github.com/ptwobrussell/Mining-the-Social-Web-2nd-Edition)

[3] [http://miningthesocialweb.com/category/book-as-a-
startup/](http://miningthesocialweb.com/category/book-as-a-startup/)

[4] [http://bit.ly/IW3cbc](http://bit.ly/IW3cbc)

------
hoers
Anybody else getting 404s?

~~~
petercooper
I saw some tweets yesterday from which I inferred there have been some DNS
propagation issues. I notice the IP is an S3 one so I tried..
[http://s3.amazonaws.com/speakingjs.com/es5/index.html](http://s3.amazonaws.com/speakingjs.com/es5/index.html)
and it seems to work, so might be a good temporary workaround.

~~~
hoers
thanks!

