CINXE.COM
Web Development Books & eBooks | Apress
<!DOCTYPE html> <!--[if lt IE 7]> <html lang="en" class="no-js ie6 lt-ie9 lt-ie8"> <![endif]--> <!--[if IE 7]> <html lang="en" class="no-js ie7 lt-ie9 lt-ie8"> <![endif]--> <!--[if IE 8]> <html lang="en" class="no-js ie8 lt-ie9"> <![endif]--> <!--[if IE 9]> <html lang="en" class="no-js ie9"> <![endif]--> <!--[if gt IE 9]><!--> <html lang="en" class="no-js"> <!--<![endif]--> <head><meta http-equiv="x-ua-compatible" content="IE=edge"> <script type="text/javascript" src="/spcom/js/vendor/googleapis/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <script type="text/javascript" id="angular-script" src="/spcom/js/vendor/googleapis/ajax/libs/angularjs/1.2.17/angular.min.js"></script> <script type="text/javascript" id="script--165730135" src="/spcom/min/prod.js?r=0.102.0"></script> <link rel="stylesheet" type="text/css" href="/spcom/min/modern_sprcom-cms-frontend_apress.css?r=0.102.0" /> <!--[if (lt IE 9) & (!IEMobile)]><link rel="stylesheet" type="text/css" href="/spcom/min/ielt9_sprcom-cms-frontend_apress.css?r=0.102.0" media="screen" /><![endif]--> <link rel="stylesheet" type="text/css" href="/spcom/min/print.css?r=0.102.0" media="print" /> <link rel="stylesheet" type="text/css" href="/spcom/css/vendor/font-awesome.min.css?r=0.102.0" /> <!--[if lt IE 9]><script type="text/javascript" id="ielt9js" charset="utf-8" src="/spcom/min/ielt9.js"></script> <![endif]--> <script type="text/javascript" id="cm-context-url"> /*<![CDATA[*/ var cmContextUrl = '/apress-gp/gp/web-development'; /*]]>*/ </script> <title>Web Development Books & eBooks | Apress</title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <link rel="icon" href="../favicon.ico" type="image/ico"> <link rel="shortcut icon" href="../favicon.ico" type="image/x-icon"> <script> /*<![CDATA[*/ document.documentElement.className = document.documentElement.className.replace('no-js', 'js'); /*]]>*/ </script> <script type="text/javascript"> dataLayer = [{'geo-country-code' : 'HK'}]; </script> <script src="https://cmp.apress.com/production_live/en/consent-bundle-71-latest.js"></script> <!-- Google Tag Manager --> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://collect.apress.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-W7J2NZR');</script> <!-- End Google Tag Manager --> <style> /*<![CDATA[*/ .no-js .product-graphic .lazy {display: block;} .link-image p { color: #333333; } .link-image .look-inside-badge p { color: #ffffff; } .cms-teaser a p { color: #333333; } .cms-row-multiline-6 .product-teaser .product-information { display: none; } /*]]>*/ </style> <meta name="description" content="Encompassing HTML, CSS, JavaScript, WordPress, and much more, our web development books teach you how to develop and design successfully on the web."> <meta http-equiv="content-language" content="en"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta property="og:title" content="Web Development Books & eBooks | Apress"> <meta property="og:description" content="Encompassing HTML, CSS, JavaScript, WordPress, and much more, our web development books teach you how to develop and design successfully on the web."> <meta property="og:site_name" content="www.apress.com"> <meta property="og:type" content="website"> <meta property="og:image" content="https://resource-cms.springernature.com/springer-cms/rest/v1/content/16537448/data/v5"> <meta property="fb:admins" content="100001154999617"> <meta property="fb:pages" content="341168879741, 143932312346551, 199235833463190, 145327659223282, 304238573037854, 346209515556394, 99912541035, 108064145914608, 370429855420, 170400356321916, 273358886101252, 370987992963178, 1565916643629420, 424373190938938, 152586274808123, 152749531404582, 274648772592090, 168287986591458, 284820978207661, 121336764582486, 174395066291972, 124330454291947, 58364190265, 114336798618606, 177450032338982, 460115770673632, 526326927441845, 401070179903991, 35223474166, 2055004118104490, 227993570999679, 121053321387843, 146393288729580"> <script type="text/javascript" id="trackedAffiliates"> /*<![CDATA[*/ var trackedAffiliates = ['PPC.Google AdWords.3.EPR653.SM', 'Affiliate.CommissionJunction.3.EPR868-EN', 'PDM.Soquero.3.EPR653', 'PPC.Google AdWords.EPR653-GoogleShopping_Product_EN', 'PPC.Google AdWords.3.EPR653.DAL', 'Affiliate.Zanox.3.EPR868-DE', 'PPC.Google AdWords.3.EPR653.GMT', 'Affiliate.CommissionJunction.3.EPR868-DE', 'PPC.Google AdWords.EPR653-GoogleShopping_Product_CH', 'PDM.ChannelAdvisor.3.EPR653', 'Banner.Banner RTB.3.EPR653.Sociomantic', 'PPC.Google AdWords.EPR653-GoogleShopping_Product_DE', 'Affiliate.Zanox.3.EPR868-EN', 'PPC.Google AdWords.3.EPR653.IT', 'PPC.Google AdWords.3.EPR653.FR', 'PPC.BING.3.EPR632-DS-PPC-DAL', 'PPC.Google AdWords.3.EPR653.West', 'PPC.Google AdWords.EPR653-GoogleShopping_Product_UK', 'Banner.Banner RTB.3.EPR653.Criteo', 'PPC.BING.3.EPR632.West', 'PPC.BING.3.EPR632.DAL']; var generalCookieDomain = '.apress.com'; /*]]>*/ </script> <script type="text/javascript" src="https://www.google.com/recaptcha/api.js"></script> </head> <body class="cms cms-lang-es cms-client-apress"> <div> <a class="link" id="print-header" href="http://www.apress.com"> <img src="/spcom/sites/apress/images/logo-print.png" /> www.apress.com </a> </div> <div class="page-wrapper"> <header> <script type="text/javascript" src="/spcom/min/0.102.0/apress.header.prod.js" defer="defer"></script> <div class="branding-container"> <div class="row"> <div class="columns small-6 large-4 logo-and-changing"> <a class="brand" href="/" title="Apress"> <img src="/spcom/sites/apress/images/logo.svg" alt="Apress home page" /> </a> </div> <nav role="presentation" class="columns small-6 hide-for-large meta"> <ul> <li class="meta__search"> <a href="https://www.apress.com/searching" class="search-M">Search</a> </li> <li class="meta__menu"> <a href="#menu" class="menu icon"> Menu </a> </li> </ul> </nav> <nav role="presentation" class="columns large-8 small-12 user"> <ul class="menu--primary off-site"> <li class="account search-L"> <a href="https://www.apress.com/searching">Search</a> </li> </ul> </nav> </div> </div> <div class="navi-container"> <nav class="row main"> <ul class="menu--primary columns large-8" id="mainNavigation"> <li><a href="#">Categories</a><ul class="menu--secondary"> <li class=""><a href="/gp/apple">Apple & iOS</a></li><li class=""><a href="/gp/big-data">Big Data & Analytics</a></li><li class=""><a href="/gp/business">Business</a></li><li class=""><a href="/gp/databases">Databases</a></li><li class=""><a href="/gp/enterprise-software">Enterprise Software</a></li><li class=""><a href="/gp/fintech-blockchain-digital-currencies">Fintech & Blockchain</a></li><li class=""><a href="/gp/game-development">Game Development</a></li><li class=""><a href="/gp/graphics">Graphics</a></li><li class=""><a href="/gp/hardware-maker">Hardware & Maker</a></li><li class=""><a href="/gp/java">Java</a></li><li class=""><a href="/gp/machine-learning">Machine Learning</a></li><li class=""><a href="/gp/microsoft">Microsoft & .NET</a></li><li class=""><a href="/gp/mobile">Mobile</a></li><li class=""><a href="/gp/networking">Networking & Cloud</a></li><li class=""><a href="/gp/open-source">Open Source</a></li><li class=""><a href="/gp/programming">Programming</a></li><li class=""><a href="/gp/python">Python</a></li><li class=""><a href="/gp/security">Security</a></li><li class=""><a href="/gp/web-development">Web Development</a></li><li class=""><a href="/gp/services/publishing-partners">Publishing Partners</a></li> </ul></li><li><a href="#">Services</a><ul class="menu--secondary"> <li class=""><a href="/gp/about">About Us</a></li><li class=""><a href="/gp/services/academics">Academics</a></li><li class=""><a href="/gp/shop/affiliate/springer-nature">Affiliate Program</a></li><li class=""><a href="/gp/services/book-reviewers">Book Reviewers</a></li><li class=""><a href="/gp/services/corporate-sales">Corporate Sales</a></li><li class=""><a href="https://www.apress.com/customer-support">Customer Support</a></li><li class=""><a href="/gp/services/events">Events</a></li><li class=""><a href="/gp/services/marketing-alerts">News & Newsletter</a></li><li class=""><a href="/gp/services/rights-permission">Rights & Permissions</a></li><li class=""><a href="/gp/services/source-code">Source Code</a></li><li class=""><a href="/gp/services/errata">Submit Errata</a></li><li class=""><a href="/gp/services/tech-review">Technical Reviewers</a></li> </ul></li><li><a href="/gp/apress-open">Apress Open</a></li><li><a href="/gp/blog">Blog</a></li><li><a href="/gp/write-for-us">Write</a></li><li><a href="#">Shop</a><ul class="menu--secondary"> <li class=""><a href="/gp/shop">Shop Apress.com</a></li><li class=""><a href="/gp/services/booksellers">Booksellers</a></li><li class=""><a href="/gp/services/bulk-sales">Bulk Sales ↗</a></li><li class=""><a href="/gp/services/corporate-sales">Corporate Sales</a></li><li class=""><a href="/gp/services/librarians">Librarians</a></li> </ul></li> </ul> <div class="columns small-12 large-3 large-offset-1 search"> <a href="https://www.apress.com/searching">Search</a> </div> </nav> </div> <script type="text/javascript" src="/spcom/min/apress.components.js" defer="defer"></script> </header> <div id="content"> <div id="id3" class=""> <div class="layout-full-grid"> <div class="placement-main"> <div id="id5" class="cms-banner cms-banner-size-m cms-banner-color-invert" style="background-image: url(https://resource-cms.springernature.com/springer-cms/rest/v1/content/10734962/data/v1);"> <div class="row"> <div class="cms-banner-text"> <div class="cms-banner-text-inner"> <h1>Web Development</h1> <div><p>Full stack development for today's World Wide Web</p></div> </div> </div> </div> </div> <div id="id6" class="cms-container cms-highlight-0"><div class="row"><div class="columns small-12 "> <div class="cms-common cms-article default-table"> <p class="taxonomy"> </p> <div class="section-header"> <h2 id="c19958134"> Highlights </h2> </div> <div class="cms-richtext"><table><tbody><tr><td><p><a href="https://link.springer.com/book/10.1007/978-1-4842-9738-4" target="_self" class="is-external"><img src="//media.springer.com/lw95/springer-static/cover/book/9781484297384.jpg" title="© Springer" alt="© Springer" class="float--right"></a></p></td><td><p><a href="https://link.springer.com/book/10.1007/978-1-4842-9723-0" target="_self" class="is-external"><img src="//media.springer.com/lw95/springer-static/cover/book/9781484297230.jpg" title="© Springer" alt="© Springer" class="float--right"></a></p></td><td><p><a href="https://link.springer.com/book/10.1007/978-1-4842-9663-9" target="_self" class="is-external"><img src="//media.springer.com/lw95/springer-static/cover/book/9781484296639.jpg" title="© Springer" alt="© Springer" class="float--right"></a></p></td><td><p><a href="https://link.springer.com/book/10.1007/978-1-4842-9250-1" target="_self" class="is-external"><img src="//media.springer.com/lw95/springer-static/cover/book/9781484292501.jpg" title="© Springer" alt="© Springer" class="float--right"></a></p></td><td><p><a href="https://link.springer.com/book/10.1007/978-1-4842-9813-8" target="_self" class="is-external"><img src="//media.springer.com/lw95/springer-static/cover/book/9781484298138.jpg" title="© Springer" alt="© Springer" class="float--right"></a></p></td><td><p><a href="https://link.springer.com/book/10.1007/978-1-4842-9178-8" target="_self" class="is-external"><img src="//media.springer.com/lw95/springer-static/cover/book/9781484291788.jpg" title="© Springer" alt="© Springer" class="float--right"></a></p></td><td><p><a href="https://link.springer.com/book/10.1007/978-1-4842-9594-6" target="_self" class="is-external"><img src="//media.springer.com/lw95/springer-static/cover/book/9781484295939.jpg" title="© Springer" alt="© Springer" class="float--right"></a></p></td><td><p><a href="https://link.springer.com/book/10.1007/978-1-4842-8725-5" target="_self" class="is-external"><img src="//media.springer.com/lw95/springer-static/cover/book/9781484287255.jpg" title="© Springer" alt="© Springer" class="float--right"></a></p></td></tr></tbody></table></div> </div> </div></div></div> <div id="id7" class="cms-container cms-highlight-0"><div class="row"><div class="columns small-12 "> <div class="cms-columns-row"> <div class="row"> <div class="columns small-12 medium-8"> <div id="id8" class="cms-container cms-highlight-0"> <div class="cms-common cms-article default-table"> <p class="taxonomy"> </p> <h1 id="c19791324"> Web Development </h1> <div class="cms-richtext"><p class="intro--paragraph">From the basics of HTML and CSS to the vast world of JavaScript frameworks and libraries, our web development books teach you to design and develop successfully for the web. If you’re aiming to build mobile apps or make websites, you can learn a full range of skills. With books on Angular, Node.js, MEAN, PHP, Ruby, WordPress, Shopify, and more, Apress can help you find the right way to tackle any programming project. Whether you are a beginner learning new skills, or a seasoned web developer looking for an expert guide, here you can find the best book for you.</p><h2>Our Key Topics</h2><ul><li>JavaScript</li><li>PHP</li><li>CSS</li><li>Ruby</li><li>Drupal</li></ul></div> </div> </div> </div><div class="columns small-12 medium-4"> <div id="ida" class="cms-container cms-container-close cms-highlight-0"> <div class="cms-bg-image-teaser cms-bg-image-teaser-without-img" style="" data-mh="mh-id1"> <a href="/gp/services/marketing-alerts" style=""> <div class="cms-bg-image-teaser__content"> <h3>Join our mailing list</h3> <div class="cms-richtext"><p>Be the first to hear about our big books sales and exclusive discounts</p></div> <div class="btn btn-primary btn-monster">Sign up here</div> </div> </a> </div> </div> <div id="idb" class="cms-container cms-highlight-0"> <div class="cms-common cms-person-list"> <div class="section-header"> <h2 id="c19795554"> Meet the Editors </h2> </div> <ul> <li class="cms-person" id="idc"> <div class="cms-person"> <div class="overview cms-person-not-linked"> <img class="avatar" id="idd" src="//resource-cms.springernature.com/springer-cms/rest/v1/img/19657340/v3/spcom-apress-person-medium" title="James Robinson-Prior_bw" alt="James Robinson-Prior_bw"> <div class="description"> <h3>James Robinson-Prior</h3> <p class="description--paragraph"> <span class="person-position">Senior Editor</span> <br /> <span class="person-department">Web Development, Design, and Open Source</span> <br /> </p> <p class="description--paragraph"> <a class="person-email" href="mailto:james.robinson-prior@springernature.com">james.robinson-prior@springernature.com</a> <br /> </p> </div> </div> </div> </li> <li class="cms-person" id="ide"> <div class="cms-person"> <div class="overview cms-person-not-linked"> <img class="avatar" id="idf" src="//resource-cms.springernature.com/springer-cms/rest/v1/img/26989642/v3/spcom-apress-person-medium" title="Shaul Elson" alt="Shaul"> <div class="description"> <h3>Anandadeep Roy</h3> <p class="description--paragraph"> <span class="person-position">Editor</span> <br /> <span class="person-department">Web Development & Open Source</span> <br /> </p> <p class="description--paragraph"> <a class="person-email" href="mailto:anandadeep.roy@apress.com">anandadeep.roy@apress.com</a> <br /> </p> </div> </div> </div> </li> </ul> </div> </div> </div> </div> </div> </div></div></div> <div id="id10" class="cms-banner cms-banner-size-m cms-banner-with-image"> <div class="row"> <div class="cms-banner-image"> <img src="//resource-cms.springernature.com/springer-cms/rest/v1/content/19740558/data/v3" title="SpringerLink © Springer" alt="SpringerLink"> </div> <div class="cms-banner-text"> <div class="cms-banner-text-inner"> <h1>Our product catalogs</h1> <div><p>We have been moved to our new home on Springer Link</p></div> <a class="btn btn-secondary" href="https://link.springer.com/search?facet-content-type=%22Book%22&query=web+development+apress&facet-discipline=%22Computer+Science%22">Find our products</a> </div> </div> </div> </div> <div id="id11" class="cms-container cms-highlight-1"><div class="row"><div class="columns small-12 "> <div class="cms-columns-row"> <div class="row"> <div class="columns small-12 medium-9"> <div id="id12" class="cms-container cms-highlight-1"> <div class="cms-common cms-person-list"> <h1 id="c10781306"> Featured Author </h1> <ul> <li class="cms-person" id="id13"> <div class="cms-person"> <div class="overview cms-person-not-linked cms-person-with-details"> <img class="avatar" id="id14" src="//resource-cms.springernature.com/springer-cms/rest/v1/img/18511534/v1/spcom-apress-person-medium" title="Joe Attardi" alt="New Content Item"> <div class="description"> <h3>Joe Attardi</h3> <p class="description--paragraph"> </p> <p class="description--paragraph"> </p> </div> </div> <div class="person-detail"><p>Joe Attardi is a software engineer specializing in front-end development. He has over 15 years’ experience working with JavaScript, HTML, and CSS, and has worked extensively with front-end technologies such as Angular and React. He currently works at Salesforce, and has worked in the past with companies such as Dell and Nortel. He is also the author of Using Gatsby and Netlify CMS, an Apress title. He lives in the Boston area with his wife and son. You can find him on Twitter at @JoeAttardi.</p></div> </div> </li> </ul> </div> </div> </div><div class="columns small-12 medium-3"> <div id="id15" class="cms-container cms-highlight-0"> <div class="cms-common cms-article default-table"> <p class="taxonomy"> </p> <h1 id="c19795512"> Featured Book </h1> <div class="cms-richtext"><p><img alt="9781484262962 © Apress 2020" title="9781484262962 © Apress 2020" src="//resource-cms.springernature.com/springer-cms/rest/v1/content/19795508/data/v1" /></p></div> </div> </div> </div> </div> </div> </div></div></div> <div id="id16" class="cms-container cms-container-grid cms-highlight-0"><div class="row"><div class="columns small-12 "> <div class="cms-grid-collection"> <h2 id="c10270022"> Stay informed </h2> <div class="cms-collection-list"> <ul class="row small-up-1 medium-up-3"> <li class="columns"> <div id="id17" class=""> <a class="cms-teaser-text" href="https://twitter.com/apress"> <div class="cms-teaser-box cms-teaser-box-with-icon" data-mh="mh-id2"> <div class="article-meta"> </div> <div class="cms-font-icon">1</div> <h3>Twitter</h3> <p>Daily tweets from the Apress team!</p> </div> </a> </div> </li><li class="columns"> <div id="id18" class=""> <a class="cms-teaser-text" href="https://www.facebook.com/ApressMedia/"> <div class="cms-teaser-box cms-teaser-box-with-icon" data-mh="mh-id2"> <div class="article-meta"> </div> <div class="cms-font-icon">2</div> <h3>Facebook</h3> <p>Get the latest information about Apress titles, authors, and events.</p> </div> </a> </div> </li><li class="columns"> <div id="id19" class=""> <a class="cms-teaser-text" href="https://www.linkedin.com/company/apress/"> <div class="cms-teaser-box cms-teaser-box-with-icon" data-mh="mh-id2"> <div class="article-meta"> </div> <div class="cms-font-icon">3</div> <h3>LinkedIn</h3> <p>Connect with us for company updates, new book announcements, and informative articles.</p> </div> </a> </div> </li><li class="columns"> <div id="id1a" class=""> <a class="cms-teaser-text" href="https://www.instagram.com/apresshq/"> <div class="cms-teaser-box cms-teaser-box-with-icon" data-mh="mh-id2"> <div class="article-meta"> </div> <div class="cms-font-icon">5</div> <h3>Instagram</h3> <p>Check out our photos from our travels and conferences around the world!</p> </div> </a> </div> </li><li class="columns"> <div id="id1b" class=""> <a class="cms-teaser-text" href="https://www.youtube.com/channel/UCToEnUFnPa1GjN_ovvomCEw"> <div class="cms-teaser-box cms-teaser-box-with-icon" data-mh="mh-id2"> <div class="article-meta"> </div> <div class="cms-font-icon">4</div> <h3>YouTube</h3> <p>Subscribe to our channel for author interviews, book trailers, exclusive behind-the-scenes conference content, and more!</p> </div> </a> </div> </li><li class="columns"> <div id="id1c" class=""> <a class="cms-teaser-text" href="https://github.com/Apress"> <div class="cms-teaser-box cms-teaser-box-with-icon" data-mh="mh-id2"> <div class="article-meta"> </div> <div class="cms-font-icon">Ì</div> <h3>GitHub</h3> <p>Your go-to for source code that goes along with your Apress book.</p> </div> </a> </div> </li> </ul> </div> </div> </div></div></div> </div> </div> </div> </div> </div> <footer> <div><div class="footer__links"> <!-- lang = en --> <div class="row row-narrow"> <div class="column small-12 large-6"> <div class="row"> <div class="column small-12 medium-8" id="column0"> <a class="footer__links__headline flap--mobile">Apress A-Z</a> <div> <div class="footer__links__column__links row small-up-2"> <div class="columns"> <ul> <li class=""><a href="/gp/apple">Apple & iOS</a></li><li class=""><a href="/gp">ASP.NET</a></li><li class=""><a href="/gp/big-data">Big Data & Analytics</a></li><li class=""><a href="/gp/business">Business</a></li><li class=""><a href="/gp/databases">Databases</a></li><li class=""><a href="/gp/enterprise-software">Enterprise Software</a></li><li class=""><a href="/gp/game-development">Game Development</a></li><li class=""><a href="/gp/graphics">Graphics</a></li><li class=""><a href="/gp/hardware-maker">Hardware & Maker</a></li><li class=""><a href="/gp/java">Java</a></li><li class=""><a href="/gp/machine-learning">Machine Learning</a></li> </ul> </div> <div class="columns"> <ul> <li class=""><a href="/gp/microsoft">Microsoft & .NET</a></li><li class=""><a href="/gp/mobile">Mobile</a></li><li class=""><a href="/gp/networking">Networking & Cloud</a></li><li class=""><a href="/gp/open-source">Open Source</a></li><li class=""><a href="/gp/programming">Programming</a></li><li class=""><a href="/gp/services/publishing-partners">Publishing Partners</a></li><li class=""><a href="/gp/python">Python</a></li><li class=""><a href="/gp/security">Security</a></li><li class=""><a href="/gp/web-development">Web Development</a></li><li class=""><a href="/gp/services/publishing-partners">Publishing Partners</a></li> </ul> </div> </div> </div> </div> <div class="column small-12 medium-4" id="column1"> <a class="footer__links__headline flap--mobile">Services</a> <div> <ul class="footer__links__column__links"> <li class=""><a href="/gp/about">About Us</a></li><li class=""><a href="/gp/services/academics">Academics</a></li><li class=""><a href="/gp/shop/affiliate/springer-nature">Affiliate Program</a></li><li class=""><a href="/gp/services/book-reviewers">Book Reviewers</a></li><li class=""><a href="/gp/services/corporate-sales">Corporate Sales</a></li><li class=""><a href="/gp/services/customer-support/buying-in-the-apress-shop">Customer Support</a></li><li class=""><a href="/gp/services/events">Events</a></li><li class=""><a href="/gp/services/marketing-alerts">News & Newsletter</a></li><li class=""><a href="/gp/services/rights-permission">Rights & Permissions</a></li><li class=""><a href="/gp/services/source-code">Source Code</a></li><li class=""><a href="/gp/services/errata">Submit Errata</a></li><li class=""><a href="/gp/services/tech-review">Technical Reviewers</a></li><li class=""><a href="/gp/services/user-groups">User Groups</a></li> </ul> </div> </div> </div> </div> <div class="column small-12 large-6"> <div class="row"> <div class="column small-12 medium-4" id="column2"> <a class="footer__links__headline flap--mobile">Write for Us</a> <div> <ul class="footer__links__column__links"> <li class=""><a href="/gp/write-for-us">Write</a></li><li class=""><a href="/gp/write-for-us/submit-a-proposal">Submit a proposal</a></li><li class=""><a href="/gp/write-for-us/publishing-process">Publishing process</a></li><li class=""><a href="/gp/write-for-us/author-services">Documents for Current Authors</a></li> </ul> </div> </div> <div class="column small-12 medium-4" id="column3"> <a class="footer__links__headline flap--mobile">Company</a> <div> <ul class="footer__links__column__links"> <li class=""><a href="/gp/about">About Us</a></li><li class=""><a href="/gp/blog">Blog</a></li><li class=""><a href="/gp/services/events">Events</a></li><li class=""><a href="/gp/services/customer-support/buying-in-the-apress-shop/faq">FAQ</a></li><li class=""><a href="/gp/services/news">News</a></li><li class=""><a href="/gp/services/publishing-partners">Publishing Partners</a></li><li class=""><a href="/gp/services/contact-us">Contact Us</a></li><li class=""><a href="/gp/about/team">Team</a></li> </ul> </div> </div> <div class="column small-12 medium-4"> <h6 class="footer__links__headline"> </h6> <div class="footer__links__payment"> <i>¶</i> <i>¢</i> <i>“</i> <i>¡</i> </div> <div class="footer__links__trustpilot"> </div> </div> </div> </div> </div> </div> <div class="footer__meta"> <div class="row"> <div class="column small-8 medium-9"> <ul class="footer__meta__links"> <li><a class="footer__meta__logo" href="/"></a></li> <li class=""><a role="button" data-cc-action="preferences" onclick="return false" href="/gp/legal/cookie-policy">Your privacy choices/Manage cookies</a></li><li class=""><a href="/gp/legal/apress-terms-and-conditions/10875332">Terms & Conditions</a></li><li class=""><a href="/gp/legal">Privacy Policy</a></li><li class="" id="footer-copyright"><a>© 2024 Apress is part of Springer Nature</a></li><li class=""><a href="https://www.springernature.com/ccpa">Your US state privacy rights ↗</a></li> </ul> </div> <div class="column small-4 medium-3" style="padding-left: 0;"> <ul class="footer__meta__social" style="margin: 0px -4px;"> <li class="footer-icon"><a href="https://twitter.com/apress">1</a></li><li class="footer-icon"><a href="https://www.facebook.com/ApressMedia/">2</a></li><li class="footer-icon"><a href="https://www.linkedin.com/company/apress/">3</a></li><li class="footer-icon"><a href="https://www.youtube.com/channel/UCToEnUFnPa1GjN_ovvomCEw">4</a></li><li class="footer-icon"><a href="https://www.instagram.com/apresshq/">5</a></li> </ul> </div> <style> /*<![CDATA[*/ .footer__meta__social li { padding: 4px; margin: 0.35714rem 0 0 0rem;} /*]]>*/ </style> <script> var prefsButton = document.querySelector('.footer__meta__links [data-cc-action="preferences"]'); prefsButton.addEventListener('keydown', function (e) { if (e.code === 'Space') { e.preventDefault(); prefsButton.click(); } }); </script> </div> </div></div> </footer> <div> </div> <noscript> <div id="jsnotice" class="prompt-bar"> <p>JavaScript is currently disabled, this site works much better if you <a href="http://enable-javascript.com/"> enable JavaScript in your browser</a>. </p> </div> </noscript> <!-- Google Tag Manager --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-W7J2NZR>m_auth=H9WR51Mt3jYIbQSiz_4-IQ>m_preview=env-1>m_cookies_win=x;" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager --> </body> <!--[if lt IE 7]> </html> <![endif]--> <!--[if IE 7]> </html> <![endif]--> <!--[if IE 8]> </html> <![endif]--> <!--[if IE 9]> </html> <![endif]--> <!--[if gt IE 9]><!--> </html> <!--<![endif]-->