Ținerea la zi și îmbunătățirea constantă fac parte din munca unui inginer software.

Există multe modalități de a studia lucruri noi pe internet, cum ar fi MOOC-uri, tutoriale și articole. In orice caz, uneori o carte fizică este cea mai bună alegere, mai ales atunci când este o „referință” care oferă cunoștințe care vor rezista în anii următori. Îl putem pune pe raftul nostru și îl putem parcurge de fiecare dată când simțim că este necesar.

Aceasta este o listă de cărți de referință pe care le păstrez pe raftul meu de inginerie software. Sper că poate fi o sursă de inspirație pentru toată lumea care caută ceva interesant de citit! ?

Ce am pe raft

Modele de proiectare: elemente ale software-ului reutilizabil orientat pe obiecte

Acesta este un clasic.

În această carte, așa-numita „Gangă a celor Patru” prezintă 23 de modele de proiectare care a condus lumea orientată pe obiecte timp de decenii. De atunci au fost create noi tipare, dar cele din carte sunt considerate fundamentele tuturor celorlalte tipare.

Nu este o lectură ușoară, dar ar trebui să aruncați o privire doar pentru a înțelege unde puteți găsi ceea ce aveți nevoie cu fiecare ocazie. Păstrați-l pe birou și parcurgeți-l când construiți ceva și aveți senzația: „Ceea ce fac sună familiar”. Probabil veți descoperi că încercați să implementați un model de proiectare deja descris în această carte.

Ce se afla pe raftul meu de inginerie software

Cod curat: un manual de artizanat software agil

Am citit această carte în urmă cu mulți ani, dar mi-a rămas de atunci.

Aceasta este o sursă excelentă de bune practici pentru a produce un cod curat, lizibil și pentru a evita mirosurile de cod. Cartea se concentrează în principal pe Java / OOP, dar multe sfaturi pot fi aplicate fiecărui limbaj sau paradigmă de programare.

Scrierea unui cod care poate fi citit și menținut nu este un lux – este ceva orice inginer software bun ar trebui să aspire. Această carte vă va oferi cunoștințele pentru a face acest lucru.

Unchiul Bob poate fi uneori un pic extrem și nu sunt de acord cu el cu privire la toate tehnicile prezentate. Sugestia mea: citiți-o și luați cu voi doar lucrurile pe care le simțiți corecte. In orice caz, este o carte care merită citită.

1611246186 582 Ce se afla pe raftul meu de inginerie software

Learn You a Haskell for Great Good !: A Beginner’s Guide

Aceasta este o carte despre limbajul de programare Haskell, deci de ce să o cumpărați și să o păstrați ca referință? Motivele mele sunt:

  • Este o carte foarte bine scrisă și ușor de citit pe un subiect nu atât de ușor, cum ar fi programarea funcțională
  • Vă oferă fundamentul gândirii funcționale, nu doar sintaxa Haskell
  • Haskell este un limbaj foarte elegant și îmi place

Aceasta este cartea care m-a introdus în programarea funcțională. Chiar acum programez în principal în Scala, dar tranziția a fost mult mai ușoară după ce am învățat elementele de bază ale lui Haskell.

Programarea funcțională nu este ușoară, dar vă va deschide mintea. Poate fi foarte teoretic și pune-l în practică folosind Haskell va ajuta foarte mult.

Există, de asemenea, desene foarte frumoase în carte, așa că nu aveți nicio scuză pentru a nu o răsfoi. ?

1611246187 134 Ce se afla pe raftul meu de inginerie software

Teoria categoriilor pentru programatori

Această carte acoperă Teoria categoriilor, care este fundamentul paradigmei de programare funcțională.

Subiectul este destul de complex pentru non-matematicieni, dar autorul a depus eforturi mari pentru ao face ușor de înțeles pentru dezvoltatori. Recunosc că am avut unele dificultăți în a-l citi, dar aș vrea să îl trec din nou.

Această carte nu este necesară pentru a deveni un programator funcțional excelent. Citiți-l dacă vă plac provocările și doriți să aprofundați bazele teoretice ale programării funcționale.

1611246187 279 Ce se afla pe raftul meu de inginerie software

Proiectarea de aplicații intensive pentru date: ideile mari din spatele sistemelor fiabile, scalabile și menținute

Acesta este preferatul meu, poate pentru că ador sistemele distribuite! 😀

În această carte, Martin Kleppmann descrie toate aspectele diferite ale sistemelor distribuite, de la serializare la modele de consistență și consens, trecând prin diferitele motoare de baze de date. De asemenea, el explorează noi tendințe în ceea ce privește aplicațiile bazate pe date.

Într-o lume a aplicațiilor bazate pe microservicii native pentru cloud, este fundamental să cunoaștem diferitele aspecte ale unui sistem distribuit. Cunoștințele furnizate de această carte nu sunt legate de o tehnologie specifică și va fi valoroasă întreaga ta carieră în ingineria software.

Ce se afla pe raftul meu de inginerie software

Lansați-l !: Proiectați și implementați software pregătit pentru producție

O citesc acum.

Am terminat odată ce software-ul nostru este trimis la producție? Nu, acesta este doar începutul!

Această carte evidențiază ce poate merge prost după ce software-ul este introdus în producție și trebuie să se confrunte cu utilizatori reali. Descrie anti-tipare care pot submina stabilitatea software-ului nostru, precum și soluții la astfel de probleme.

Ceea ce îmi place cel mai mult la această carte este că fiecare capitol începe cu un exemplu preluat din viața reală. Apoi, autorul analizează problemele care au cauzat eșecul software-ului în producție. Cred că învățarea din exemple concrete este o abordare foarte eficientă.

1611246188 532 Ce se afla pe raftul meu de inginerie software

Introducere în algoritmi

Ce pot spune despre această carte? Cumpărați-l și păstrați-l pe birou.

Dacă sunteți inginer software, există șanse mari să aveți nevoie să studiați structurile de date și algoritmii. Nu este întotdeauna ușor să faceți față complexității sau să alegeți structura corectă a datelor.

Când apar îndoieli, deschideți această carte și veți găsi ceea ce aveți nevoie.

Pentru majoritatea oamenilor (inclusiv pentru mine) aceasta este o lectură foarte grea. De obicei citesc ceea ce trebuie să știu în acel moment și țin cartea la vedere pe biroul meu.

1611246188 218 Ce se afla pe raftul meu de inginerie software

Hiperfocus: Cum să vă gestionați atenția într-o lume a distragerii

Aceasta nu este o carte tehnică, dar se află în setul de lecturi care mi-au schimbat viața mai bine.

Munca noastră ca ingineri software constă în rezolvarea problemelor cu mintea noastră. Pentru a fi eficient în această sarcină, avem nevoie de capacitatea de a ne concentra complet asupra problemei pe care o rezolvăm.

Aici puteți găsi o mulțime de sugestii și tehnici pentru a maximiza timpul în care vă puteți concentra asupra unei sarcini. Autorul discută, de asemenea, despre importanța lăsării mintii tale să rătăcească atunci când trebuie să fii mai creativ.

Stăpânirea modului de a vă folosi atenția este ceva care vă va îmbunătăți nu numai performanța la locul de muncă, ci și orice alt aspect al vieții voastre.

1611246189 617 Ce se afla pe raftul meu de inginerie software

Ce voi adăuga la raftul meu de cărți

Programatorul pragmatic

Aceasta este una dintre cele mai faimoase cărți în dezvoltarea de software.

Sugestiile și tehnicile prezentate în această carte au influențat în bine cariera multor dezvoltatori și ingineri. Cartea a fost publicată în 1999, dar este acum disponibilă ca ediție nouă și actualizată de 20 de ani.

Nu poți rata asta. 🙂

1611246189 370 Ce se afla pe raftul meu de inginerie software

Refactoring: Îmbunătățirea proiectării codului existent

Este greu să furnizați întotdeauna cod de înaltă calitate. Termenele, urgența, o zi proastă afectează calitatea muncii tale.

De aceea refactorizarea este atât de importantă. Dacă nu am putea oferi calitate prima dată, o putem îmbunătăți ulterior pentru o mai bună întreținere. Martin Fowler (unul dintre idolii mei din lumea dezvoltării de software) descrie cele mai bune tehnici pentru o refactorizare eficientă.

Vor fi întotdeauna spațiu pe raftul meu pentru cărți care mă vor ajuta să scriu un cod mai bun.

1611246189 996 Ce se afla pe raftul meu de inginerie software

Concluzie

Aceasta este lista mea de cărți obligatorii despre ingineria software. Nu este în niciun caz o listă cuprinzătoare de cărți „importante” în acest domeniu și sunt sigur că voi adăuga din ce în ce mai multe cărți în anii următori.

Sperăm că v-am dat câteva sfaturi frumoase cu privire la următoarea carte pe care ar trebui să o citiți. ?

Te văd!?