Bedste svar
Alle har tydeligvis deres egne præferencer. Selv inkluderet. Da overlapningen er begrænset, må man undre sig over, hvordan ”skal læse” bøgerne. 🙂 Det er dog altid sjovt at fremstille en liste.
- Den mytiske mandmåned
- Sikker kodning i C og C ++, anden udgave (gælder kun for C- og C ++ -udviklere, selvom der er en version til Java – med Ada har du generelt kun brug for John Barnes manual: Amazon.co.uk: John Barnes: 9781107424814: Books )
- Programlogics for Certified Compilers: Andrew W. Appel, Robert Dockins, Aquinas Hobor, Lennart Beringer, Josiah Dodds, Gordon Stewart, Sandrine Blazy, Xavier Leroy: 9781107048010: Amazon.com: Books
- The Art of Computer Programming, Vol. 1: Fundamental Algorithms, 3. udgave: 9780201896831: Computer Science Books @ Amazon.com
- Computer of Computer Programming, Volume 2: Seminumerical Algorithms (3. udgave): Donald E. Knuth: 0785342896848: Amazon.com: Books
- The Art of Computer Programming: Volume 3: Sorting and Searching (2. udgave): Donald E. Knuth: 9780201896855: Amazon.com: Books
- Farvede petri-net – modellering og validering af Samtidig | Kurt Jensen | Springer
- TCP / IP Illustrated, bind 1: protokollerne
- Unix Network Programming, bind 1: The Sockets Networking API (3. udgave): W. Richard Stevens, Bill Fenner, Andrew M. Rudoff: 9780131411555: Amazon.com: Books
- Programmering med POSIX-tråde: David R. Butenhof: 0785342633924: Amazon.com: Bøger
Selvfølgelig ikke alle disse bøger gælder for alle mennesker. Jeg er skør nok til at tackle banen som helhed, så jeg har alle disse og mange flere. Dette valg er dog nok til at få en klar forståelse af robust programmering, algoritmer, netværk, systemmodellering og forskellige softwareudviklingsmodeller. Områder, der er betydningsfulde nok til, at softwareingeniører skal være opmærksomme på dem.
Svar
Jeg vil her antage, at vi taler om en softwareingeniør, der opnåede teknisk færdighed gennem skolen, bootcamp eller enhver anden læringsmulighed.
Algoritmer er virkelig vigtige, og bogen “ Introduktion til algoritmer ” er en must-read. Jeg mener, at det at have en stærk forståelse af softwaredesign og objektorienteret design også er kritisk, og min bibel er stadig bogen “ Designmønstre: Elementer af genanvendelig objektorienteret software . ” Dens eksempler i Smalltalk gør det ikke det nemmeste at læse i dag, men jeg er ikke opmærksom på nogen anden bog med en sådan dybde og bredde om emnet.
Jeg har mødt mange ingeniører, der starter på arbejdspladsen. , og jeg bemærkede et par huller gennem årene, så jeg vil gerne foreslå bøger til hvert af disse områder.
Nye ingeniører har tendens til ikke at forstå samtidighed uanset sprog. Konceptet med at køre flere tråde parallelt og samtidig give det rigtige niveau af synkronisering mellem dem er ikke let at forstå. Jeg lærte personligt meget ved at læse “ Java Concurrency in Practice ” fra en Java-baggrund. Der er også et godt afsnit om samtidighed i “ Effektiv Java ,” den skal læses om, hvordan man koder korrekt i Java.
Cyber -sikkerhed er endelig et varmt emne i dag. Ak, junioringeniører har tendens til ikke at være opmærksomme på sikkerhedskoncepter, der gælder for deres kode. Et godt sted at starte er ved at læse OWASP top 10-liste og uddybe hver applikations sårbarhed. Jeg er en stor fan af “ 24 Deadly Sins of Software Security: Programming Flaws and How to Fix them .”
Nye ingeniører har tendens til at fokus på kodning. De mener, at kodning er det, der betyder noget, og de vil hurtigt producere god kode og undertiden stole på svær at læse kode, fordi de kan skrive den mere kortfattet. Der er kun to problemer med den tankegang: hver softwareingeniør opretter fejl, og softwareingeniører fungerer bedre i teams! Kvalitet er vigtig, og vedligeholdelsesevne er også vigtig. Personligt kan jeg godt lide bøgerne “Working Effectively with Legacy Code”, der taler om test og behovet for test for at gøre koden bedre. “ Clean Code: A Handbook of Agile Software Craftsmanship ” nærmer sig emnet vedligeholdelse, undertiden med et ekstremt synspunkt, hvilket gør det til en god bog at læse og diskutere som et team.
Nye ingeniører, især uden for college, kan have svært ved at tilpasse sig arbejdspladsen og deres nye job. Dette gælder faktisk for enhver ingeniør, faktisk enhver, der også starter et nyt job. Der er denne fantastiske bog “ De første 90 dage: dokumenterede strategier for hurtigere og smartere ”, der lærte mig flere begreber om, hvordan jeg kommer i gang på en nyt job og især behovet for struktur. Struktur er fantastisk. Det er trøstende, især i et nyt miljø. Jeg får ensartede resultater ved at anvende den samme opskrift ligesom når jeg bager en kage med min datter. Da jeg startede på Wayfair for elleve måneder siden på Native App Team, valgte jeg at stille temmelig generiske, men konsekvente spørgsmål ved min ankomst for at få landlægningen. Disse spørgsmål gav mig ikke kun en forestilling om, hvad der foregik, men fortalte mig meget om de mennesker, jeg mødtes med. Jeg gik på min faktaundersøgelsesmission i cirka en måned ved hjælp af det samme spørgeskema ved hver 1: 1, og jeg begyndte at liste mine fokusområder på dag ét.
Jeg har været i softwareudvikling i mere end tyve år, læser ledelsesbøger i de sidste ti år, så spørg mig gerne om ledelsesbøger, hvis du foretrækker nyere læsninger!