12 bøger Hver JavaScript-udvikler skal læse

Bemærk: Tilfældig samling af web-dev-bøger på billedet.

Jeg er en stor fan af JavaScript-bøger. Som en længe lærer af JavaScript har jeg haft fornøjelsen af ​​at læse mange af de populære JavaScript-bøger på markedet. I disse dage har jeg en tendens til at springe dem over, der er målrettet mod at rangere nybegynder, men jeg læser stadig en masse bøger beregnet til JavaScript-udviklere med en lille oplevelse.

Dette er et mærkeligt tidspunkt for JavaScript-bøger. Fordi vi lige har fået en større opdatering til JavaScript-sproget i ES6, ser dagens JavaScript-syntaks og -stil ganske anderledes ud end den ES3-ES5-stil JavaScript, du vil se diskuteret i de fleste bøger, men fordi ES6 virkelig er bare et supersæt af ES5, mest af de gamle bøger har nuggets til læring, der stadig gælder.

Med andre ord er de gamle bøger ikke forældede, de viser bare deres alder lidt - også dem, der blev udgivet for kun 2 år siden. Det kan virke som at tale med en ældre borger, der stadig bruger slang fra 60'erne. Hvis du er ny inden for JavaScript, kan det være sjovt at opdage alle de vanvittige hacks, gamle timere, der bruges til bare at bruge array-metoder til argumenter. Nyd JS historielektion.

Nogle forfattere i JavaScript-samfundet har skrevet bøger, der har til formål at lære dig ES6. Jeg anbefaler at du læser dem, når du har lidt fortrolighed med grundlæggende JavaScript. Hvis du ikke kender ES6 endnu, skal du læse "Sådan lærer du ES6".

Til sidst vil alle nye JS-bogforfattere tage ES6 for givet, og derefter vil JS-bogverden vende tilbage til det normale. Jeg viser mine anbefalinger nogenlunde i læringsrækkefølge.

Som med mine andre bogindlæg er Amazon-linkene tilknyttede links, og en del af de penge, du bruger, vil blive brugt til at bekæmpe hjemløshed med JSHomes.

Nok tale. Tag bøgerne ud!

Bøgerne

  1. “JavaScript til børn: En legende introduktion til programmering” af Nick Morgan

Sandt til titlen er denne bog en finurlig udforskning af meget grundlæggende programmeringskoncepter, men lad det ikke narre dig. Bøger til børn er ikke kun for børn. Hvis du aldrig har rørt kode før, er dette et godt sted at starte, selvom I alle er voksne. Dykning i den dybe ende, før du lærer at svømme, kan være en frustrerende oplevelse. Det er bedre at starte din praksis med nogle lette gevinster.

2. "Komponeringssoftware" af Eric Elliott (ansvarsfraskrivelse: Det er mig) er en udforskning af funktionel programmering og objektsammensætning i JavaScript. Al software-design er sammensætning: handlingen med at opdele komplekse problemer i mindre problemer og komponere disse løsninger. De fleste udviklere har en begrænset forståelse af kompositionsteknikker. Det er tid til det at ændre sig.

I “Komponeringssoftware” deler Eric Elliott de grundlæggende elementer i komposition, herunder både funktionskomposition og objektsammensætning, og udforsker dem i sammenhæng med JavaScript. Bogen dækker grundlaget for både funktionel programmering og objektorienteret programmering for at hjælpe læseren med bedre at forstå, hvordan man bygger og strukturerer komplekse applikationer ved hjælp af enkle byggesten.

3. “Eloquent JavaScript: A Modern Introduction to Programming” af Marijn Haverbeke

Denne bog er et kunstværk. Det leder dig gennem de væsentlige koncepter med en klar køreplan ved hjælp af klart sprog. Den er mesterligt komponeret og redigeret, og i modsætning til de fleste programmeringsbøger er den fuld af øvelser, som du kan øve på. Hvis jeg underviste i det grundlæggende ved programmering i gymnasiet eller college, ville jeg bruge dette som en lærebog.

4. “JavaScript: The Good Parts” af Douglas Crockford

Det kan virke absurd nu, men da denne bog blev skrevet, var JavaScript stadig et ungt sprog, der startede livet som et lille scriptingsprog i browsere. På det tidspunkt begyndte browsere lige at blive udforsket af seriøse applikationsudviklere.

Før 2004 var det meget sjældent at se rigtige applikationer køre i en browser. Browseren var knap interaktiv. Det krævede sideindlæsninger for at overføre data til serveren, den havde ikke nogen lagerkapacitet af sin egen værd at tale om. JavaScript blev primært brugt til at oprette trivielle brugergrænsefladevirkninger som musemarkøren.

JavaScript var målet for mange vittigheder fra “rigtige programmører”, der skrev kode på kompilerede sprog som C / C ++, C # og Java. Hvis du ønskede at lave reel programmering til browseren, brugte du flash.

I disse dage var det let at latterliggøre JavaScript, og alle syntes at gøre det, men Douglas Crockford erkendte, at Brendan Eich skjulte nogle nuggets på det sprog, der først nu begynder at blive virkelig værdsat af programmeringsmasserne. Denne bog udforsker det grundlæggende ved disse funktioner og giver dig muligvis en ny forståelse for, hvor speciel og cool JavaScript virkelig er.

5. "Programmering af JavaScript-applikationer: Robust webarkitektur med noderne, HTML5 og Moderns JS-biblioteker" af Eric Elliott (det er mig)

Da jeg begyndte at ansætte JavaScript-udviklere til at bygge applikationer, slog det mig virkelig, hvor få af dem forstod, hvordan man udnytter JavaScript for at opbygge robust applikationsarkitektur. Med det i tankerne besluttede jeg at skrive en bog, der skulle dække nogle af JavaScript's bedste praksis, introducere folk til prototyper, objektsammensætning og i det mindste de grundlæggende koncepter i funktionel programmering (nok til at forstå, hvordan man bygger og vedligeholder en typisk JavaScript-applikation) , og anvend derefter disse koncepter til at opbygge nogle af de almindelige bekymringer, der dukker op i de fleste applikationer, uanset applikationsforretningsområdet.

Masser af bøger besvarer spørgsmålet, "hvordan bruger jeg JavaScript?" Jeg ønskede at besvare spørgsmålet, "hvordan bruger jeg JavaScript til at oprette et rigtigt program?"

Teknologi ændrede sig meget i de to år, siden vi udgav bogen, men efter min ærlige mening (så objektiv som forfatteren kan være) er det stadig den bedste oversigt over JavaScript-app-arkitektur på markedet i dag. Ud over at uddybe din forståelse af JavaScript vil du lære om grundlæggende knudepunkter, RESTful API'er, godkendelse og autorisation, funktionskiftesystemer, logging og mere.

6. “Effektiv JavaScript: 68 specifikke måder at udnytte kraften i JavaScript” af David Herman

Efter at du har haft en vis grundlæggende eksponering for JavaScript, vil "Effektiv JavaScript" tage dig med på en guidet rundvisning i sproget mere dybt, og som eksempel viser lektioner undervist af en masterprogrammer, der er krydret i hans håndværk.

Med det samme vil du blive introduceret til nogle af JavaScript-forespørgslerne, fra præcision med flydepunktnummer (fordi JavaScript kun har en nummertype, og det er en flydende punkttype), til komitéerne med typen tvang og indsættelse af semikolon. Resten af ​​bogen fortsætter i samme stil og udforsker bedste fremgangsmåder til arbejde med funktioner, objekter, matriser, bibliotek og API-design og samtidighed. Uanset dit kvalifikationsniveau lover jeg, at du lærer noget nyt.

7. “JavaScript: Den definitive guide” af David Flanagan

Den definitive guide er en dyb udforskning af JavaScript- og webplatform-API-funktioner ud fra en person, der er interesseret i at opbygge webapplikationer. Det er en temmelig grundig oversigt over en masse sprogfunktioner, oversprøjtede med advarsler om gamle versioner af IE, som du sandsynligvis sikkert kan ignorere på dette tidspunkt. Der har været seks udgaver af bogen, og jeg håber, at der er mange flere udgaver, der kommer. Jeg har ejet tidligere udgaver, og jeg lærer altid noget nyt, når en ny udgives.

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

Denne er virkelig en serie bøger - alle sammen ligner stil og omfang, nogle af dem større end andre, og alle sammen meget gode.

Jeg har programmeret i JavaScript i lang tid. Jeg har undersøgt flere versioner af JavaScript-specifikationer og fulgt udviklingen af ​​nye versioner af specifikationen nøje, men alligevel lykkedes Kyles dybe fascination af at udforske alle de små kriker og kroker at afsløre mange bits af det sprog, som jeg endnu ikke havde opdaget eller udforsket .

Hvis du troede, at "The Definitive Guide" var et dyb dykke, skal du bryde dit scuba-udstyr ud og forberede din dybhavs undervandsfaciliteter. Du er ved at se nogle JavaScript-arter, som ingen mennesker nogensinde har stødt på før (ja, inden denne serie blev skrevet alligevel).

Hvad du ikke finder i denne serie er en masse snak om softwarearkitektur, dyb programmeringsvisdom eller en overflod af softwaredesignprincipper, der let vil spænde over mange forskellige sprog. Men det vil bestemt hjælpe dig med at få en ny forståelse og en dybere forståelse af JavaScript. Kyles enestående fokus på dyb dykning i sprogfunktioner er en sjælden skat, som jeg forestiller mig, at selv TC39-teamet kunne lære noget af.

9. “JavaScript Allongé: The Six Edition” af Reginald Braithwaite

JavaScript Allongé er i det væsentlige en bog om tænkning i funktioner. Bygning af fleksibel software fra små, afkoblede enheder.

Når det er sagt, forsøger den ikke at være alt for receptpligtig eller udtalet. At låne fra introduktionen:

"JavaScript Allongé forsøger ikke at løse spørgsmålet om bedste praksis i JavaScript i den bredere sammenhæng med softwareudvikling, fordi JavaScript Allongé ikke er en bog om at øve, det er en tænkebog."

Når du læser bogen, vil du indse, at forfatteren holder sine løfter. Dette burde bestemt ikke være den første JavaScript-bog, du læser. Reginald introducerer enkle koncepter som `const` ved langsom opbygning gennem mellemliggende funktionsomfangsemner som IIFE og lukninger, efter at have demonstreret delvise applikationer og karry-funktion udtryk.

De fleste indledende JavaScript-bøger begynder klogt med at tale om værdier og hvordan man repræsenterer disse værdier med bindinger ved hjælp af `var`,` let` eller `const '. Reginald vipper rytmen med god grund - han får din hjerne til at danse. Bogen forsøger at hjælpe dig med at tænke anderledes og dybt om funktioner, og den fungerer.

Du skal læse det, når du har kendt JavaScript, når du er klar til at undersøge, hvordan man kombinerer funktionelle og objektorienterede programmeringsteknikker til at oprette JavaScript-applikationer.

10. “Node.js in Action” af Mike Cantelon, Marc Harter, TJ Holowaychuk og Nathan Rajlich

“Node.js in Action” er en god introduktion til grundlæggende Node-applikationsudvikling, der dækker vigtige emner som HTTP / HTTPS, Connect / Express middleware, realtime messaging med Socket.IO, ved hjælp af databaser og så videre. Hvis du er ny på Node, er dette et godt sted at starte.

11. “High Performance Browser Networking” af Ilya Grigorik

Det er vanskeligt at overdrive betydningen af ​​stor applikationsydelse. Barbering af millisekunder fra sideindlæsningstider og reducering af UI-jank leverer investeringsafkast, der kun kan konkurreres med en stor revision af brugergrænsefladedesign.

Denne bog dækker overvejelser med stor effekt, såsom HTTP2, streaming af data, WebSockets, WebRTC, DataChannel og så videre.

Med andre ord, denne bog er den definitive guide til at opbygge en mere succesrig applikation ved at optimere dens ydelsesprofil.

12. "Web Audio API" af Boris Smus

Hver ægte JavaScript Rock Star har brug for denne bog. Når alt kommer til alt er du ikke en rigtig JS-rockstjerne, før du tilslutter din guitar til din webbrowser. Jeg ved, at jeg sagde, at dette var bøger “enhver JavaScript-udvikler skal læse”, men denne er kun til JavaScript-udviklere, der elsker at lege med lyde og musik. De fleste JavaScript-udviklere kunne slippe af sted med aldrig at lære dette API, og det ville slet ikke skade dem - men det er kedeligt.

Denne bog er primært på min liste, fordi jeg elsker musik og lydteknik. Web Audio API er faktisk et system med relaterede API'er til generering og manipulering af lyd ved hjælp af webplatformstandarder. Du kan bruge det i browsere og i Node.

For at bruge web-lyd-API'en manipulerer du noder i en graf. Normalt vil jeg bare henvise dig til en praktisk henvisning, men medmindre du er lydingeniør, kan du føle dig lidt overvældet. Denne bog guider dig gennem de forskellige typer lydknudepunkter og lærer dig, hvordan du væver dem sammen, arbejder med timing-API'et for nøjagtigt at planlægge lyde, manipulere parametre over tid, anvende lydeffekter og endda skabe lydvisualiseringer.

Med andre ord er det meget sjovt.

Start din gratis lektion på EricElliottJS.com

Eric Elliott er forfatteren af ​​bøgerne, "Komponering af software" og "Programmering af JavaScript-applikationer". Som medstifter af EricElliottJS.com og DevAnywhere.io lærer han udviklere vigtige softwareudviklingsevner. Han bygger og rådgiver udviklingshold til kryptoprojekter og har bidraget til softwareoplevelser for Adobe Systems, Zumba Fitness, The Wall StreetJournal, ESPN, BBC og topoptagelseskunstnere, herunder Usher, Frank Ocean, Metallica og mange flere.

Han nyder en fjern livsstil med den smukkeste kvinde i verden.