Hva er de må-lese bøkene for programvareingeniører?

Beste svaret

Alle har åpenbart sine egne preferanser. Meg inkludert. Ettersom overlappingen er begrenset, må man lure på hvor «må lese» bøkene er. 🙂 Det er imidlertid alltid morsomt å lage en liste.

  1. Den mytiske årsdagen
  2. Sikker koding i C og C ++, andre utgave (gjelder bare C- og C ++ -utviklere, selv om det finnes en versjon for Java – med Ada trenger du generelt bare John Barnes manual: Amazon.co.uk: John Barnes: 9781107424814: Books )
  3. 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
  4. The Art of Computer Programming, Vol. 1: Fundamental Algorithms, 3. utgave: 9780201896831: Computer Science Books @ Amazon.com
  5. Computer of Computer Programming, Volume 2: Seminumerical Algorithms (3. utgave): Donald E. Knuth: 0785342896848: Amazon.com: Books
  6. The Computer of Computer Programming: Volume 3: Sorting and Searching (2. utgave): Donald E. Knuth: 9780201896855: Amazon.com: Books
  7. Colored Petri Nets – Modelling and Validation of Samtidig | Kurt Jensen | Springer
  8. TCP / IP Illustrated, Volum 1: Protokollene
  9. Unix Network Programming, Volume 1: The Sockets Networking API (3rd Edition): W. Richard Stevens, Bill Fenner, Andrew M. Rudoff: 9780131411555: Amazon.com: Books
  10. Programmering med POSIX-tråder: David R. Butenhof: 0785342633924: Amazon.com: Books

Tydeligvis, ikke alle disse bøkene gjelder alle mennesker. Jeg er gal nok til å takle banen som helhet, så jeg har alle disse og mange flere. Dette valget er imidlertid nok til å få en solid forståelse av robust programmering, algoritmer, nettverk, systemmodellering og ulike programvareutviklingsmodeller. Områder som er viktige nok til at programvareingeniører bør ta hensyn til dem.

Svar

Jeg vil her anta at vi snakker om en programvareingeniør som oppnådde teknisk dyktighet gjennom skolen, bootcamp eller andre læringsmuligheter.

Algoritmer er virkelig viktige, og boka “ Introduksjon til algoritmer ” er en må-lese. Jeg tror at det å ha en sterk forståelse av programvaredesign og objektorientert design også er viktig, og bibelen min er fremdeles boken « Designmønstre: Elements of Reusable Object-Oriented Software . ” Eksemplene i Smalltalk gjør det ikke det enkleste å lese i dag, men jeg er ikke kjent med noen annen bok med så stor dybde og bredde om emnet.

Jeg har møtt mange ingeniører som starter på arbeidsplassen. , og jeg la merke til noen hull i løpet av årene, så jeg vil foreslå bøker for hvert av disse områdene.

Nye ingeniører pleier ikke å forstå samtidighet uansett språk. Konseptet med å kjøre flere tråder parallelt mens du gir riktig synkroniseringsnivå mellom dem, er ikke lett å forstå. Jeg lærte personlig mye ved å lese “ Java Concurrency in Practice ” fra en Java-bakgrunn. Det er også en god del om samtidighet i “ Effektiv Java ,” må du lese om hvordan du koder riktig i Java.

Cyber -sikkerhet er endelig et hett tema i våre dager. Akk, junioringeniører har en tendens til ikke å være klar over sikkerhetskonsepter som gjelder koden deres. Et godt sted å begynne er ved å lese OWASP topp 10-listen og utforske hvert applikasjons sårbarhet. Jeg er en stor fan av « 24 Deadly Sins of Software Security: Programming Flaws and How to Fix them

Nye ingeniører pleier å fokus på koding. De mener at koding er det som betyr noe, og de vil produsere god kode raskt, noen ganger avhengig av vanskelig å lese kode fordi de kan skrive den mer kortfattet. Det er bare to problemer med den tankegangen: hver programvareingeniør lager feil, og programvareingeniører jobber bedre i team! Kvalitet er viktig, og vedlikehold er også viktig. Personlig liker jeg bøkene «Working Effectively with Legacy Code» som snakker om testing og behovet for testing for å gjøre koden bedre. “ Clean Code: A Handbook of Agile Software Craftsmanship ” nærmer seg temaet vedlikehold, noen ganger med et ekstremt synspunkt, noe som gjør det til en flott bok å lese og diskutere som et team.

Nye ingeniører spesielt utenfor college kan ha vanskelig for å tilpasse seg arbeidsplassen og deres nye jobb. Dette er faktisk sant for enhver ingeniør, faktisk hvem som helst, som også starter en ny jobb. Det er denne flotte boka “ De første 90 dagene: dokumenterte strategier for å komme raskere og smartere ” som lærte meg flere konsepter om hvordan jeg kommer i gang på en ny jobb, og særlig behovet for struktur. Strukturen er flott. Det er trøstende, spesielt i et nytt miljø. Jeg får jevnlige resultater ved å bruke den samme oppskriften akkurat som når jeg baker en kake med datteren min. Da jeg begynte på Wayfair for elleve måneder siden på Native App Team, valgte jeg å stille ganske generiske, men likevel konsistente spørsmål ved ankomst for å få landet. Disse spørsmålene ga meg ikke bare en forestilling om hva som foregikk, men fortalte meg mye om menneskene jeg møtte. Jeg gikk gjennom faktaoppdraget mitt i omtrent en måned ved å bruke det samme spørreskjemaet hver 1: 1, og jeg begynte å liste opp fokusområdene mine på dag én.

Jeg har vært i programvareutvikling i mer enn tjue år, lest lederbøker de siste ti årene, så spør meg gjerne om lederbøker hvis du foretrekker nyere lesninger!

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *