{"id":2000,"date":"2012-09-16T17:37:02","date_gmt":"2012-09-16T21:37:02","guid":{"rendered":"http:\/\/patorjk.com\/blog\/?p=2000"},"modified":"2014-01-25T17:44:50","modified_gmt":"2014-01-25T21:44:50","slug":"book-review-javascript-the-definitive-guide","status":"publish","type":"post","link":"https:\/\/patorjk.com\/blog\/2012\/09\/16\/book-review-javascript-the-definitive-guide\/","title":{"rendered":"Book Review: &#8220;JavaScript: The Definitive Guide&#8221;"},"content":{"rendered":"<div class=\"wp-caption aligncenter\" style=\"width: 510px\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/patorjk.com\/images\/blog-2012\/js-book.png\" alt=\"\" title=\"JavaScript: The Definitive Guide\" width=\"500\" height=\"250\" class=\"size-full wp-image-1167\" \/><\/p>\n<p class=\"wp-caption-text\">I felt a little nerdy asking for this for Christmas, but it was worth while read<\/p>\n<\/div>\n<p>The web apps I write for this site are written in JavaScript, and after landing a <a href=\"https:\/\/patorjk.com\/blog\/2010\/08\/15\/i-handed-in-my-letter-of-resignation\/\">web developer<\/a> job two years ago, I&#8217;ve focused more on getting better at everything web related &#8211; through reading blogs, writing apps, and reading books. <\/p>\n<p>As far as books were concerned, there had been one which had consistently caught my eye, but which I&#8217;d kept resisting due to its size. I have a short attention span and I was worried I wouldn&#8217;t finish it. I also tried to foolishly convince myself that I probably already knew most of what it covered &#8211; after finishing <i>JavaScript: The Good Parts<\/i> and a couple other short books, I felt I had a pretty good handle on the language. What else could there really be to know? But temptation got the best of me, and I&#8217;m glad it did, because it&#8217;s a great book and I learned a ton.<\/p>\n<p><i>JavaScript: The Definitive Guide<\/i>, by David Flanagan, is 1078 pages* of densely packed information on the JavaScript programming language. It&#8217;s not filled with fluff and it covers an amazing amount of ground. In truth, it&#8217;s really 3 books in one: a book on the core JavaScript language, a book on client-side JavaScript development, and a reference book for client-side and core development. It&#8217;s written for people familiar with programming who want to gain an in-depth understanding of everything they can do with JavaScript. <\/p>\n<h3>An experiment in retaining information<\/h3>\n<p>I didn&#8217;t want to read this book and then 6 months later not remember anything I&#8217;d read. I had a friend who&#8217;d read it and not gotten much out of it, but I believed that may have been because of information overload. Leisurely reading technical books can be fun, but the information isn&#8217;t going to stick unless you use it or discuss it. So I decided to try an experiment &#8211; after each chapter, I was going to write up a set of notes on what I found interesting in that chapter. That would force me to go back over the information and help me document what I may want to go back to later on.<\/p>\n<p>I did this on the wordpress blog <a href=\"http:\/\/readingtherhinojsbook.wordpress.com\/\">Reading the Rhino JS Book<\/a>. It&#8217;s really just a collection of notes, but it&#8217;s a great way for me to go back and go &#8220;oh yeah, this is what I found interesting in this chapter&#8221;. In the beginning I was really excited and felt it was a great way to read a technical book &#8211; if you&#8217;re going to invest the time in reading a large book, you might as well invest the time to try and retain the information. However, I&#8217;d be lying if I didn&#8217;t say I got tired of writing up notes on each chapter. So my feelings are mixed. I do believe it helped in organizing what I learned and found interesting, but it was also a bit of a pain towards the end. I haven&#8217;t yet decided if I&#8217;ll take notes on each chapter of the next programming book I read, but I can say it was useful to do so in this case.<\/p>\n<h3>Who should read this Book?<\/h3>\n<p>I would not recommend this book for people who are new to JavaScript. It does contain almost everything you need to know, but it&#8217;s not really written for the newbie. When you&#8217;re new you want to get up and running quickly, and you want a brief introduction to the tool set you have at hand. For that, <i><a href=\"https:\/\/patorjk.com\/blog\/2009\/12\/31\/javascript-the-good-parts-book-review\/\">JavaScript: The Good Parts<\/a><\/i> is probably the better choice. <\/p>\n<p>If you do front-end web development professionally, or you just really like writing web apps, this book is worth picking up. It&#8217;s written to be readable and thoroughly covers the current set of web technologies you have at your finger tips with JavaScript. Even if you feel like you have a good handle on things, this book does a good job at filling in the gaps. As an example, I knew JavaScript did automatic semicolon insertion if you forgot to include semicolons**, but I wasn&#8217;t sure how this worked. It turns out that the ECMAScript spec has a clearly defined algorithm for this, and knowing how it works gives some insight into using the language. <\/p>\n<h3>Final Thoughts<\/h3>\n<p>This is probably now my favorite book on JavaScript. A couple weeks ago I was <a href=\"https:\/\/patorjk.com\/blog\/2012\/07\/02\/wordpress-hacking\/\">openly pondering<\/a> where I wanted to go web development wise, and I think, for now, I&#8217;m going to focus on client-side development. This doesn&#8217;t mean I&#8217;m going to ignore back-end stuff, I do a lot of PHP at work and there&#8217;s other back-end technologies like Ruby, Python, and Node which look interesting, but the client-side looks like it has the most utility for app developers. It&#8217;s nice to be able to quickly write a single page app, upload it, and have anyone be able to use it.<\/p>\n<p>* 716 pages if you don&#8217;t include the reference sections.<br \/>\n** Technically the interpreter doesn&#8217;t insert semicolons, it just treats a line break as the end of a statement in certain situations. Thus it&#8217;s sort of simulating semicolon insertion. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>I felt a little nerdy asking for this for Christmas, but it was worth while read The web apps I write for this site are written in JavaScript, and after landing a web developer job two years ago, I&#8217;ve focused more on getting better at everything web related &#8211; through reading blogs, writing apps, and &hellip; <a href=\"https:\/\/patorjk.com\/blog\/2012\/09\/16\/book-review-javascript-the-definitive-guide\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Book Review: &#8220;JavaScript: The Definitive Guide&#8221;<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[16,21],"tags":[],"class_list":["post-2000","post","type-post","status-publish","format-standard","hentry","category-book-reviews","category-javascript"],"_links":{"self":[{"href":"https:\/\/patorjk.com\/blog\/wp-json\/wp\/v2\/posts\/2000","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/patorjk.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/patorjk.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/patorjk.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/patorjk.com\/blog\/wp-json\/wp\/v2\/comments?post=2000"}],"version-history":[{"count":28,"href":"https:\/\/patorjk.com\/blog\/wp-json\/wp\/v2\/posts\/2000\/revisions"}],"predecessor-version":[{"id":2099,"href":"https:\/\/patorjk.com\/blog\/wp-json\/wp\/v2\/posts\/2000\/revisions\/2099"}],"wp:attachment":[{"href":"https:\/\/patorjk.com\/blog\/wp-json\/wp\/v2\/media?parent=2000"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/patorjk.com\/blog\/wp-json\/wp\/v2\/categories?post=2000"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/patorjk.com\/blog\/wp-json\/wp\/v2\/tags?post=2000"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}