CINXE.COM

Books - Human Who Codes

<!DOCTYPE html> <html lang="en"> <head> <script async src="https://www.googletagmanager.com/gtag/js?id=G-DF11Y9MFRM"></script> <script>(function(){const analytics_id = "G-DF11Y9MFRM"; window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', analytics_id); })();</script> <!-- Global Metadata --> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <link rel="icon" type="image/png" href="/favicon.png"> <meta name="generator" content="Astro v2.6.5"> <meta name="ttw" content="cfanq3r"> <!-- Primary Meta Tags --> <title>Books - Human Who Codes</title> <meta name="title" content="Books - Human Who Codes"> <meta name="description" content="The Official Web Site of Nicholas C. Zakas"> <!-- Canonical URLs --> <link rel="canonical" href="https://humanwhocodes.com/books/"> <!-- Feeds --> <link rel="alternate" type="application/rss+xml" title="Human Who Codes - Blog" href="https://humanwhocodes.com/feeds/blog.xml"> <link rel="alternate" type="application/json" title="Human Who Codes - Blog" href="https://humanwhocodes.com/feeds/blog.json"> <link rel="alternate" type="application/rss+xml" title="Human Who Codes - Snippets" href="https://humanwhocodes.com/feeds/snippets.xml"> <link rel="alternate" type="application/json" title="Human Who Codes - Snippets" href="https://humanwhocodes.com/feeds/snippets.json"> <link rel="alternate" type="application/rss+xml" title="Human Who Codes - All" href="https://humanwhocodes.com/feeds/all.xml"> <link rel="alternate" type="application/json" title="Human Who Codes - All" href="https://humanwhocodes.com/feeds/all.json"> <!-- Open Graph / Facebook --> <meta property="og:type" content="website"> <meta property="og:url" content="https://humanwhocodes.com/books/"> <meta property="og:title" content="Books - Human Who Codes"> <meta property="og:description" content="The Official Web Site of Nicholas C. Zakas"> <meta property="og:image" content="https://humanwhocodes.com/favicon.png"> <!-- Twitter --> <meta property="twitter:site" content="@humanwhocodes"> <meta property="twitter:creator" content="@slicknet"> <meta property="twitter:card" content="summary_large_image"> <meta property="twitter:url" content="https://humanwhocodes.com/books/"> <meta property="twitter:title" content="Books - Human Who Codes"> <meta property="twitter:description" content="The Official Web Site of Nicholas C. Zakas"> <meta property="twitter:image" content="https://humanwhocodes.com/favicon.png"> <link rel="stylesheet" href="/_astro/about.7a05c7cf.css" /></head> <body itemscope itemtype="http://schema.org/WebPage"> <header class="highlight-background"> <nav role="navigation" class="page-width center center-text gutters collapsible-corners"> <h1 class="no-margin"><a href="/"><img src="/_astro/logo-full-web.fbbbde18.svg" alt="Human Who Codes" height="50"></a></h1> <ul class="inline-list inline-spaced-list center-text-on-small-screens overflow-x-scroll all-caps bold"> <li class="hide-offscreen"><a href="#content">Skip to content</a></li> <li><a href="/books/" class="dark-text no-underline">Books</a></li> <li><a href="/reading/" class="dark-text no-underline">Reading</a></li> <li><a href="/coaching/" class="dark-text no-underline">Coaching</a></li> <li><a href="/newsletter/" class="dark-text no-underline">Newsletter</a></li> <!-- <li><a href="/speaking/" class="dark-text no-underline">Speaking</a></li> --> <li><a href="/donate/" class="dark-text no-underline">Donate</a></li> <li><a href="/contact/" class="dark-text no-underline">Contact</a></li> </ul> </nav> </header> <hr> <div class="content-background"> <div id="page-grid" class="page-width page-grid center"> <main id="content" role="main" class="content-width gutters"> <div id="page-body" class="content-font"> <h1>Books</h1> <p>My first book was published in 2005. At that time, my only goal was to publish one book in my life. I discovered soon after that I really enjoyed writing books and continued to publish whenever I had an idea.</p> <h2>Books I&#39;ve Authored (7)</h2> <ul class="hide-bullets grid-columns"> <li class="center-text"> <p><a href="https://www.lulu.com/en/us/shop/nicholas-c-zakas/understanding-javascript-promises/paperback/product-2yvnqn.html"><img src="/images/books/promises.png" alt="Understanding JavaScript Promises Cover" loading="lazy" height="150"></a><br> <a href="https://www.lulu.com/en/us/shop/nicholas-c-zakas/understanding-javascript-promises/paperback/product-2yvnqn.html">Understanding JavaScript Promises</a><br> Self published </p> </li><li class="center-text"> <p><a href="https://geni.us/hwc-es6-book"><img src="/images/books/understandinges6ns.png" alt="Understanding ECMAScript 6 Cover" loading="lazy" height="150"></a><br> <a href="https://geni.us/hwc-es6-book">Understanding ECMAScript 6</a><br> No Starch Press </p> </li><li class="center-text"> <p><a href="https://geni.us/hwc-oopjs-book"><img src="/images/books/oopinjsns.png" alt="The Principles of Object-Oriented JavaScript Cover" loading="lazy" height="150"></a><br> <a href="https://geni.us/hwc-oopjs-book">The Principles of Object-Oriented JavaScript</a><br> No Starch Press </p> </li><li class="center-text"> <p><a href="https://geni.us/hwc-mjs-book"><img src="/images/books/maintainablejs.png" alt="Maintainable JavaScript Cover" loading="lazy" height="150"></a><br> <a href="https://geni.us/hwc-mjs-book">Maintainable JavaScript</a><br> O&#39;Reilly Media </p> </li><li class="center-text"> <p><a href="https://amzn.to/2JBDt96"><img src="/images/books/pro_js_3e.png" alt="Professional JavaScript for Web Developers, 3rd Edition Cover" loading="lazy" height="150"></a><br> <a href="https://amzn.to/2JBDt96">Professional JavaScript for Web Developers, 3rd Edition</a><br> Wrox </p> </li><li class="center-text"> <p><a href="https://www.amazon.com/gp/product/047022780X?ie=UTF8&#38;tag=nczonline-20&#38;linkCode=as2&#38;camp=1789&#38;creative=390957&#38;creativeASIN=047022780X"><img src="/images/books/pro_js_2e.png" alt="Professional JavaScript for Web Developers, 2nd Edition Cover" loading="lazy" height="150"></a><br> <a href="https://www.amazon.com/gp/product/047022780X?ie=UTF8&#38;tag=nczonline-20&#38;linkCode=as2&#38;camp=1789&#38;creative=390957&#38;creativeASIN=047022780X">Professional JavaScript for Web Developers, 2nd Edition</a><br> Wrox </p> </li><li class="center-text"> <p><a href="https://www.amazon.com/Professional-JavaScript-Developers-Wrox-Guides/dp/0764579088/ref=sr_1_8?tag=nczonline-20"><img src="/images/books/pro_js.png" alt="Professional JavaScript for Web Developers Cover" loading="lazy" height="150"></a><br> <a href="https://www.amazon.com/Professional-JavaScript-Developers-Wrox-Guides/dp/0764579088/ref=sr_1_8?tag=nczonline-20">Professional JavaScript for Web Developers</a><br> Wrox </p> </li> </ul> <h2>E-books I&#39;ve Authored (3)</h2> <ul class="hide-bullets grid-columns"> <li class="center-text"> <p><a href="https://leanpub.com/understandinges6"><img src="/images/books/understandinges6.png" alt="Understanding ECMAScript 6 Cover" loading="lazy" height="150"></a><br> <a href="https://leanpub.com/understandinges6">Understanding ECMAScript 6</a><br> Self published </p> </li><li class="center-text"> <p><a href="https://leanpub.com/oopinjavascript"><img src="/images/books/oopinjs.png" alt="The Principles of Object-Oriented Programming in JavaScript Cover" loading="lazy" height="150"></a><br> <a href="https://leanpub.com/oopinjavascript">The Principles of Object-Oriented Programming in JavaScript</a><br> Self published </p> </li><li class="center-text"> <p><a href="https://amzn.to/2qpqEGd"><img src="/images/books/problem.png" alt="The Problem with Native JavaScript APIs Cover" loading="lazy" height="150"></a><br> <a href="https://amzn.to/2qpqEGd">The Problem with Native JavaScript APIs</a><br> O&#39;Reilly Media </p> </li> </ul> <h2>Books I&#39;ve Co-authored (3)</h2> <ul class="hide-bullets grid-columns"> <li class="center-text"> <p><a href="https://geni.us/hwc-hpjs-book"><img src="/images/books/hpjs.png" alt="High Performance JavaScript Cover" loading="lazy" height="150"></a><br> <a href="https://geni.us/hwc-hpjs-book">High Performance JavaScript</a><br> O&#39;Reilly Media </p> </li><li class="center-text"> <p><a href="https://amzn.to/2SJiQfd"><img src="/images/books/pro_ajax_2e.png" alt="Professional Ajax, 2nd Edition Cover" loading="lazy" height="150"></a><br> <a href="https://amzn.to/2SJiQfd">Professional Ajax, 2nd Edition</a><br> Wrox </p> </li><li class="center-text"> <p><a href="https://amzn.to/2SJ5wI3"><img src="/images/books/pro_ajax.png" alt="Professional Ajax Cover" loading="lazy" height="150"></a><br> <a href="https://amzn.to/2SJ5wI3">Professional Ajax</a><br> Wrox </p> </li> </ul> <h2>Books I&#39;ve Contributed To (4)</h2> <ul class="hide-bullets grid-columns"> <li class="center-text"> <p><a href="https://amzn.to/2JBiK5n"><img src="/images/books/beautiful.png" alt="Beautiful JavaScript Cover" loading="lazy" height="150"></a><br> <a href="https://amzn.to/2JBiK5n">Beautiful JavaScript</a><br> O&#39;Reilly Media </p> </li><li class="center-text"> <p><a href="https://amzn.to/2SLSGc7"><img src="/images/books/smashing.png" alt="Smashing Book 4 Cover" loading="lazy" height="150"></a><br> <a href="https://amzn.to/2SLSGc7">Smashing Book 4</a><br> Smashing Magazine GmbH </p> </li><li class="center-text"> <p><a href="https://amzn.to/2Rw822J"><img src="/images/books/daybook.png" alt="Web Performance Daybook Volume 2 Cover" loading="lazy" height="150"></a><br> <a href="https://amzn.to/2Rw822J">Web Performance Daybook Volume 2</a><br> O&#39;Reilly Media </p> </li><li class="center-text"> <p><a href="https://amzn.to/2SJeQeI"><img src="/images/books/even_faster.png" alt="Even Faster Websites Cover" loading="lazy" height="150"></a><br> <a href="https://amzn.to/2SJeQeI">Even Faster Websites</a><br> O&#39;Reilly Media </p> </li> </ul> </div> </main> <div id="sidebar" class="sidebar-width sidebar-background gutters hide-on-small-screens"> <h1 class="hide-offscreen">Additional Information</h1> <script async type="text/javascript" src="//cdn.carbonads.com/carbon.js?serve=CKYIEK3Y&placement=humanwhocodescom" id="_carbonads_js"></script> <h2 class="smaller-font">My Books</h2> <ul class="inline-list inline-image-list"> <li><a href="https://www.lulu.com/en/us/shop/nicholas-c-zakas/understanding-javascript-promises/paperback/product-2yvnqn.html"><img src="/images/books/promises.png" alt="Understanding JavaScript Promises" width="100"></a></li><li><a href="https://geni.us/hwc-es6-book"><img src="/images/books/understandinges6ns.png" alt="Understanding ECMAScript 6" width="100"></a></li><li><a href="https://geni.us/hwc-oopjs-book"><img src="/images/books/oopinjsns.png" alt="The Principles of Object-Oriented JavaScript" width="100"></a></li><li><a href="https://geni.us/hwc-mjs-book"><img src="/images/books/maintainablejs.png" alt="Maintainable JavaScript" width="100"></a></li> </ul> <h2 class="smaller-font">Recent Snippets</h2> <ul> <li><a href="/snippets/2025/02/passing-github-action-step-output-to-script/">Passing GitHub Actions workflow step output to JavaScript</a></li><li><a href="/snippets/2024/03/publishing-to-jsr-release-please/">Publishing to JSR using release-please</a></li><li><a href="/snippets/2023/11/how-to-setup-known-hosts-jenkins-pipeline/">How to setup a known_hosts file for a Jenkins pipeline job</a></li><li><a href="/snippets/2023/01/mimicking-dirname-filename-nodejs-esm/">Mimicking __dirname and __filename in ESM modules in Node.js</a></li><li><a href="/snippets/2022/02/eleventy-npm-modules-client/">How to add npm packages for client-side use in Eleventy</a></li><li><a href="/snippets/2021/03/create-user-linux-ssh-key/">Creating a new user with an SSH key on Linux</a></li><li><a href="/snippets/2021/02/how-to-setup-deploy-web-application-dokku/">How to setup and deploy a web application on Dokku</a></li><li><a href="/snippets/2021/02/how-to-regain-jenkins-web-access-after-lockout/">How to regain Jenkins web access after being locked out</a></li><li><a href="/snippets/2020/10/create-typescript-declarations-from-javascript-jsdoc/">Create TypeScript declarations from JavaScript and JSDoc</a></li><li><a href="/snippets/2020/10/read-environment-variables-deno/">How to read environment variables in Deno using JavaScript</a></li> </ul> <h2 class="smaller-font">Archives (21 Years)</h2> <ul> <li><a href="/blog/2025/">2025</a></li><li><a href="/blog/2024/">2024</a></li><li><a href="/blog/2023/">2023</a></li><li><a href="/blog/2022/">2022</a></li><li><a href="/blog/2021/">2021</a></li><li><a href="/blog/2020/">2020</a></li><li><a href="/blog/2019/">2019</a></li><li><a href="/blog/2018/">2018</a></li><li><a href="/blog/2016/">2016</a></li><li><a href="/blog/2015/">2015</a></li><li><a href="/blog/2014/">2014</a></li><li><a href="/blog/2013/">2013</a></li><li><a href="/blog/2012/">2012</a></li><li><a href="/blog/2011/">2011</a></li><li><a href="/blog/2010/">2010</a></li><li><a href="/blog/2009/">2009</a></li><li><a href="/blog/2008/">2008</a></li><li><a href="/blog/2007/">2007</a></li><li><a href="/blog/2006/">2006</a></li><li><a href="/blog/2005/">2005</a></li><li><a href="/blog/2004/">2004</a></li> </ul> </div> </div> </div> <hr> <footer class="inverted-colors"> <div class="page-width center"> <div class="page-grid orange-border-bottom"> <div class="margin-top content-width gutters"> <div class="collapsible-media-box"> <div class="media-box-media center-text"> <img src="/_astro/me-150x150.0969500a.jpg" alt="Photo of Nicholas C. Zakas" width="150" class="circle-image"> </div> <div> <h2 class="no-margin-top center-text-on-mobile">About the Human</h2> <p>Hi, I'm Nicholas C. Zakas, an independent software developer living in Mountain View, California. I've been a software architect at companies like Yahoo and Box, as well as an author and speaker. I created the <a href="https://eslint.org">ESLint</a> open source project and wrote several <a href="https://humanwhocodes.com/books">books</a>. At the moment, I'm <a href="https://humanwhocodes.com/blog/2014/04/02/i-have-lyme-disease/">recovering from Lyme disease</a> and haven't been able to leave my home much in the past five years. (<a href="https://medium.com/lyme-disease-warrior/progress-report-october-2018-fc38d4769e65">Health update</a>, <a rel="me" href="/about">More about me</a>)</p> </div> </div> </div> <div class="margin-top sidebar-width hide-on-small-screens"> <h2 class="no-margin-top">On the Web</h2> <ul> <li><a href="https://fosstodon.org/@nzakas" rel="me">Mastodon</a></li> <li><a href="https://www.twitter.com/slicknet/">Twitter</a></li> <li><a href="https://www.github.com/nzakas/">GitHub</a></li> <li><a href="https://www.instagram.com/humanwhocodes">Instagram</a></li> <li><a href="https://www.youtube.com/channel/UC95Pwj8oPPZN2mJCEtMqOsg">YouTube</a></li> <li><a href="https://www.linkedin.com/in/nzakas">LinkedIn</a></li> <li><a href="https://www.slideshare.net/nzakas/presentations/">Slideshare</a></li> <li><a href="https://amazon.com/author/nzakas/">Amazon</a></li> </ul> </div> </div> <p class="center-text"><a href="/policies/privacy">Privacy Policy</a> | <a href="/policies/terms">Terms of Service</a></p> <p class="center-text">Copyright &copy; 2020-2025 Human Who Codes LLC. Content licensed under a <a href="http://creativecommons.org/licenses/by-nc-nd/3.0/" rel="nofollow noopener">Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License</a>.<br>Some links may be affiliate links. We may get paid if you buy something or take an action after clicking one of these. As an Amazon Associate we earn from qualifying purchases. <a href="/feeds/blog.xml">Blog Feed</a></p> </div> </footer> </body></html>

Pages: 1 2 3 4 5 6 7 8 9 10