12 boeken die elke JavaScript-ontwikkelaar moet lezen

Opmerking: willekeurige verzameling web-dev-boeken afgebeeld.

Ik ben een grote fan van JavaScript-boeken. Omdat ik al lang JavaScript leer, heb ik het genoegen gehad veel van de populaire JavaScript-boeken op de markt te lezen. Tegenwoordig sla ik meestal degenen over die zijn getarget om nieuwkomers te rangschikken, maar ik lees nog steeds veel boeken die bedoeld zijn voor JavaScript-ontwikkelaars met een beetje ervaring.

Dit is een vreemde tijd voor JavaScript-boeken. Omdat we zojuist een belangrijke update van de JavaScript-taal in ES6 hebben gekregen, ziet de JavaScript-syntaxis en -stijl van vandaag er heel anders uit dan de JavaScript-stijl in ES3-ES5 die u in de meeste boeken zult zien, maar omdat ES6 eigenlijk slechts een superset van ES5 is, de meeste van de oude boeken hebben leerklompjes die nog steeds van toepassing zijn.

Met andere woorden, de oude boeken zijn niet verouderd, ze tonen alleen hun leeftijd een beetje - zelfs degenen die pas 2 jaar geleden zijn uitgebracht. Het lijkt misschien alsof je met een bejaarde praat die nog steeds jargon gebruikt uit de jaren '60. Als JavaScript nieuw voor je is, is het misschien leuk om alle gekke hacks te ontdekken die old-timers vroeger gebruikten, gewoon om array-methoden op argumenten te gebruiken. Geniet van de JS-geschiedenisles.

Sommige auteurs in de JavaScript-community hebben boeken geschreven die bedoeld zijn om u ES6 te leren. Ik raad je aan ze te lezen nadat je een beetje vertrouwd bent met basis-JavaScript. Als u ES6 nog niet kent, leest u "Hoe ES6 leren".

Uiteindelijk zullen alle nieuwe JS-boekauteurs ES6 als vanzelfsprekend beschouwen, en dan zal de JS-boekwereld weer normaal worden. Ik zal mijn aanbevelingen ongeveer in leervolgorde vermelden.

Net als bij mijn andere boeken, zijn de Amazon-links gelieerde links en een deel van het geld dat u uitgeeft, wordt gebruikt om dakloosheid met JSHomes te bestrijden.

Genoeg gepraat. Haal de boeken tevoorschijn!

De boeken

  1. "JavaScript voor kinderen: een speelse introductie tot programmeren" door Nick Morgan

Trouw aan de titel, dit boek is een grillige verkenning van zeer eenvoudige programmeerconcepten, maar laat je niet voor de gek houden. Boeken voor kinderen zijn niet alleen voor kinderen. Als je nog nooit eerder code hebt aangeraakt, is dit een goede plek om te beginnen, zelfs als je volwassen bent. Duiken in het diepe voordat je leert zwemmen, kan een frustrerende ervaring zijn. Het is beter om je training te beginnen met een paar eenvoudige overwinningen.

2. "Componeren van software" door Eric Elliott (disclaimer: dat ben ik) is een verkenning van functioneel programmeren en objectsamenstelling in JavaScript. Alle software-ontwerp is compositie: het opdelen van complexe problemen in kleinere problemen en het samenstellen van die oplossingen. De meeste ontwikkelaars hebben een beperkt begrip van compositietechnieken. Het is tijd dat dat verandert.

In "Composing Software" deelt Eric Elliott de basisprincipes van compositie, inclusief zowel functiesamenstelling als objectcompositie, en onderzoekt deze in de context van JavaScript. Het boek behandelt de basis van zowel functioneel programmeren als objectgeoriënteerd programmeren om de lezer te helpen beter te begrijpen hoe complexe applicaties gebouwd en gestructureerd kunnen worden met behulp van eenvoudige bouwstenen.

3. "Welsprekend JavaScript: een moderne inleiding tot programmeren" door Marijn Haverbeke

Dit boek is een kunstwerk. Het leidt u door de essentiële concepten met een duidelijke routekaart met behulp van duidelijke taal. Het is meesterlijk gecomponeerd en bewerkt, en in tegenstelling tot de meeste programmeerboeken, zit het vol met oefeningen die je kunt oefenen. Als ik de basis van programmeren op de middelbare school of universiteit zou onderwijzen, zou ik dit als een tekstboek gebruiken.

4. "JavaScript: The Good Parts" door Douglas Crockford

Het lijkt nu misschien absurd, maar toen dit boek werd geschreven, was JavaScript nog een jonge taal die het leven begon als een kleine scripttaal in browsers. Destijds begonnen browsers pas te worden verkend door serieuze applicatie-ontwikkelaars.

Vóór 2004 was het zeer zeldzaam om echte applicaties in een browser te zien draaien. De browser was nauwelijks interactief. Het vereiste herladen van pagina's om gegevens naar de server te verzenden, het had zelf geen opslagcapaciteit die het waard was om over te praten. JavaScript werd voornamelijk gebruikt om triviale gebruikersinterface-effecten te creëren, zoals muisaanwijzers.

JavaScript was het doelwit van veel grappen van 'echte programmeurs' die code schreven in gecompileerde talen zoals C / C ++, C # en Java. Als je echt wilde programmeren voor de browser, gebruikte je flash.

In die dagen was het gemakkelijk om JavaScript belachelijk te maken, en iedereen leek het te doen, maar Douglas Crockford erkende dat Brendan Eich enkele goudklompjes in de taal verborg die nu pas echt worden gewaardeerd door de programmeermassa's. Dit boek onderzoekt de basis van die functies en kan je een nieuwe waardering geven voor hoe speciaal en cool JavaScript echt is.

5. "Programmering van JavaScript-toepassingen: robuuste webarchitectuur met Node, HTML5 en Moderns JS Libraries" door Eric Elliott (dat ben ik)

Toen ik begon met het inhuren van JavaScript-ontwikkelaars om applicaties te bouwen, viel het me echt op hoe weinig van hen begrepen hoe ze JavaScript konden gebruiken om een ​​robuuste applicatie-architectuur te bouwen. Met dat in gedachten besloot ik een boek te schrijven dat enkele best practices voor JavaScript zou bevatten, mensen zou laten kennismaken met prototypes, objectsamenstelling en ten minste de basisconcepten van functioneel programmeren (genoeg om te begrijpen hoe een typische JavaScript-applicatie te bouwen en te onderhouden) en pas die concepten vervolgens toe op het opbouwen van enkele van de veelvoorkomende problemen die in de meeste applicaties opduiken, ongeacht het bedrijfsdomein van de applicatie.

Veel boeken beantwoorden de vraag, "hoe gebruik ik JavaScript?" Ik wilde de vraag beantwoorden, "hoe gebruik ik JavaScript om een ​​echte applicatie te bouwen?"

De technologie is veel veranderd in de twee jaar sinds we het boek hebben uitgegeven, maar naar mijn eerlijke mening (zo objectief als de auteur kan zijn), is het nog steeds het beste overzicht van de JavaScript-app-architectuur die momenteel op de markt is. Naast het verdiepen van uw kennis van JavaScript, leert u ook over de basisbeginselen van Node, RESTful API's, authenticatie en autorisatie, functieomschakelsystemen, logboekregistratie en meer.

6. "Effectieve JavaScript: 68 specifieke manieren om de kracht van JavaScript te benutten" door David Herman

Nadat u enige basiskennis van JavaScript heeft gehad, neemt "Effectieve JavaScript" u mee op een rondleiding door de taal dieper, met voorbeelden van lessen die worden gegeven door een meesterprogrammeur die in zijn vakgebied is gekruid.

U zult meteen kennis maken met enkele van de eigenaardigheden van JavaScript, van drijvende-komma-precisie (omdat JavaScript slechts één type nummer heeft en het is een drijvende-komma-type), tot de eigenaardigheden van type dwang en puntkomma-invoeging. De rest van het boek gaat verder in dezelfde stijl en onderzoekt best practices voor het werken met functies, objecten, arrays, bibliotheek- en API-ontwerp en concurrency. Ik beloof je dat je iets nieuws zult leren, ongeacht je vaardigheidsniveau.

7. "JavaScript: de definitieve gids" door David Flanagan

De definitieve gids is een diepgaande verkenning van JavaScript- en webplatform API-functies vanuit het perspectief van iemand die geïnteresseerd is in het bouwen van webapplicaties. Het is een tamelijk grondig overzicht van veel taalfuncties, bezaaid met waarschuwingen over oude versies van IE die je op dit punt waarschijnlijk veilig kunt negeren. Er zijn zes edities van het boek geweest en ik hoop dat er nog veel meer edities zullen komen. Ik heb eerdere edities gehad en ik leer altijd iets nieuws wanneer er een nieuwe wordt uitgebracht.

8. "You Don't Know JS" door Kyle Simpson

Deze is echt een serie boeken - allemaal vergelijkbaar in stijl en omvang, sommige groter dan andere, en allemaal erg goed.

Ik programmeer al lang in JavaScript. Ik heb meerdere versies van de JavaScript-specificaties bestudeerd en de ontwikkeling van nieuwe versies van de specificatie nauwkeurig gevolgd, maar Kyle's diepe fascinatie voor het verkennen van alle kleine hoekjes en gaten is erin geslaagd om veel stukjes van de taal te ontdekken die ik nog niet had ontdekt of onderzocht .

Als je dacht dat "De definitieve gids" een diepe duik was, haal dan je duikuitrusting tevoorschijn en bereid je diepzee-onderzeeër voor de oceaan. Je staat op het punt om JavaScript-soorten te zien die nog nooit eerder door mensen zijn aangetroffen (in ieder geval voordat deze serie werd geschreven).

Wat je niet zult vinden in deze serie is veel gepraat over software-architectuur, diepe programmeerwijsheid of een overvloed aan software-ontwerpprincipes die gemakkelijk vele verschillende talen kunnen omvatten. Maar het zal je zeker helpen om een ​​nieuwe waardering en een dieper begrip van JavaScript te krijgen. De unieke focus van Kyle op diep duiken in taalfuncties is een zeldzame schat waarvan ik denk dat zelfs het TC39-team hier iets van zou kunnen leren.

9. "JavaScript Allongé: The Six Edition" door Reginald Braithwaite

JavaScript Allongé is in essentie een boek over denken in functies. Flexibele software bouwen van kleine, ontkoppelde eenheden.

Dat gezegd hebbende, het probeert niet overdreven prescriptief of eigenzinnig te zijn. Lenen uit de inleiding:

"JavaScript Allongé probeert niet de kwestie van JavaScript best practices aan te pakken in de bredere context van softwareontwikkeling, omdat JavaScript Allongé geen boek over oefenen is, het is een boek over denken."

Terwijl je het boek leest, zul je je realiseren dat de auteur zijn beloften nakomt. Dit zou absoluut niet het eerste JavaScript-boek moeten zijn dat je leest. Reginald introduceert eenvoudige concepten zoals `const` door langzaam op te bouwen door middel van tussentijdse functies, zoals IIFE en sluitingen, na het demonstreren van gedeeltelijke toepassingen en gecurryde functie-uitdrukkingen.

De meeste inleidende JavaScript-boeken beginnen verstandig met het bespreken van waarden en het weergeven van die waarden met bindingen met behulp van `var`,` let` of `const`. Reginald slaat niet voor niets om - hij laat je hersens dansen. Het boek probeert je te helpen anders en diep na te denken over functies, en het werkt.

Je moet het lezen nadat je bekend bent met JavaScript, wanneer je klaar bent om te beginnen met het verkennen van het combineren van functionele en objectgeoriënteerde programmeertechnieken om JavaScript-applicaties te bouwen.

10. "Node.js in Action" door Mike Cantelon, Marc Harter, TJ Holowaychuk en Nathan Rajlich

"Node.js in Action" is een geweldige introductie tot de basisontwikkeling van Node-applicaties met essentiële onderwerpen zoals HTTP / HTTPS, Connect / Express middleware, realtime berichten met Socket.IO, het gebruik van databases, enzovoort. Als Node nieuw voor je is, is dit een geweldige plek om te beginnen.

11. "Hoogwaardige browsernetwerken" door Ilya Grigorik

Het belang van geweldige applicatieprestaties is moeilijk te overschatten. Het scheren van milliseconden buiten de laadtijden van pagina's en het verminderen van UI-jank levert investeringsrendementen op die alleen kunnen worden geëvenaard door een geweldige revisie van het gebruikersinterfaceontwerp.

Dit boek behandelt prestatieoverwegingen met een hoge impact, zoals HTTP2, datastreaming, WebSockets, WebRTC, DataChannel, enzovoort.

Met andere woorden, dit boek is de definitieve gids voor het bouwen van een meer succesvolle toepassing door het prestatieprofiel te optimaliseren.

12. "Web Audio API" door Boris Smus

Elke echte JavaScript Rock Star heeft dit boek nodig. Je bent immers geen echte JS-rockster totdat je je gitaar aansluit op je webbrowser. Ik weet dat ik zei dat dit boeken waren die "elke JavaScript-ontwikkelaar zou moeten lezen", maar deze is alleen voor JavaScript-ontwikkelaars die graag spelen met geluiden en muziek. De meeste JavaScript-ontwikkelaars zouden kunnen wegkomen door deze API nooit te leren, en het zou hen helemaal geen pijn doen - maar dat is saai.

Dit boek staat voornamelijk op mijn lijst omdat ik van muziek en audio-engineering houd. De webaudio-API is eigenlijk een systeem van gerelateerde API's voor het genereren en manipuleren van geluid met behulp van webplatformstandaarden. Je kunt het gebruiken in browsers en in Node.

Om de webaudio-API te gebruiken, manipuleert u knooppunten in een grafiek. Normaal verwijs ik je gewoon naar een handige referentie, maar tenzij je een audio-ingenieur bent, voel je je misschien een beetje overweldigd. Dit boek leidt u door de verschillende soorten audioknooppunten en leert u hoe u ze samen kunt weven, met de timing-API kunt werken om geluiden nauwkeurig te plannen, parameters in de loop van de tijd te manipuleren, audio-effecten toe te passen en zelfs audiovisualisaties te maken.

Met andere woorden, het is heel leuk.

Begin uw gratis les op EricElliottJS.com

Eric Elliott is de auteur van de boeken, "Composing Software" en "Programming JavaScript Applications". Als mede-oprichter van EricElliottJS.com en DevAnywhere.io leert hij ontwikkelaars essentiële vaardigheden voor softwareontwikkeling. Hij bouwt en adviseert ontwikkelingsteams voor cryptoprojecten en heeft bijgedragen aan software-ervaringen voor Adobe Systems, Zumba Fitness, The Wall Street Journal, ESPN, BBC en topartiesten zoals Usher, Frank Ocean, Metallica en nog veel meer.

Hij geniet van een afgelegen levensstijl met de mooiste vrouw ter wereld.