Knjige koje predlažem svim svojim studentima softverskog inženjerstva

Ovaj članak je prevod originalnog teksta Ostina Henlija, profesora na Univerzitetu u Tenesiju gde predaje na departmanu za elektrotehnički inženjering i računarstvo. 

Moji studenti povremeno zatraže savet šta da čitaju. Uvek preporučujem iste naslove i zbog toga sam odlučio da napravim ovu listu. Primetićete da nekolicina nije direktno povezana sa softverskim inženjeringom, niti sa računarskim naukama! 

 

Rekao bih da su studenti do sada dovoljno izloženi stručnoj literaturi (i biće izloženi), pa im zbog toga preporučujem korisne naslove koji ne deluju kao da su povezani sa strukom, na prvi pogled. Za one koji traže stručne knjige pobrojao sam nekoliko naslova na kraju članka (ne zamerite što nisam uvrstio i SICP) Knjige koje preporučujem su:

• The Design of Everyday Things
• Predictably Irrational
• Outliers
• Creativity, Inc
• Coders at Work
• The Mythical Man-Month

The Design of Everyday Things (Don Norman)

Ova knjiga je na mene imala najveći uticaj, The Design of Everyday Things. Bila je prva knjiga koju mi je preporučio moj mentor na doktorskoj disertaciji. Predstavlja važnu lekciju iako nije u direktnoj vezi sa razvojem softvera: softver mora biti koristan, a ukoliko nije nije mnogo važno koliko je brz ili koje pogodnosti pruža. Čitanjem sam počeo ozbiljnije da promišljam o problemu korisnosti i kako mu pristupati. Kad sledeći put ne možete da rukujete mikro-talasnom shvatićete o čemu pričam – niste vi krivi.

Poenta: Ne kriviti korisnike, nego učiti od njih – u svemu postoji dizajn.

Predictably Irrational (Den Arijeli)

Prvi korak ka bihevioralnoj ekonomiji i teoriji donošenja odluka napravio sam uz ovu knjigu. Knjiga navodi više studija koje su pokušale da analiziraju i objasne kako ljudi donose odluke i koje su to kognitivne prepostavke od kojih često polazimo. Veliki broj primera u knjizi posmatran je iz aspekta psihologije cena, ali se često spominje i socijalni kontekst. Uzmimo za primer čokoladu – zbog čega uzimamo manje čokolade kada nas neko ponudi nego kada bi nas nudili čokoladom koja košta jedan peni? Ako vas ovakve teme interesuju predlažem i Misbehaving (Ričard Taler). 

Poenta: Doneti odluku je teško, ali možemo da izbegnemo mnogo prepreka koje nas svakodnevno koče.

Outliers (Malkolm Gladvel)

Outliers pruža više istraživanja koje uporedo proučavaju slučajeve poraza i uspeha. Iza svakog uspeha, bilo da je reč o profesionalnom igraču hokeja, učeniku osnovne škole ili izvršnom direktoru, postoji mnogo kompleksnija priča nego što pretpostavljamo. Neki izuzetno nadareni ljudi provedu sasvim običan život, dok drugi postanu milijarderi. Neophodno je biti pametan, ali tu se priča ne završava jer su važni i šarm, sreća i podrška. Mala napomena: Knjiga znatno generalizuje i pojednostavljuje zamršene okolnosti, ali i dalje pruža odlične zaključke.

Poenta: Iza uspeha i poraza krije se mnogo toga što se na prvu loptu ne vidi.

Creativity, Inc (Ed Ketmul)

Knjiga prati Ketmulovo putovanje od doktorske disertacije u računarstvu, preko rada u Lucasfilm-u, sve do pozicije tehničkog direktora u Pixar-u, sa Stiv Džobsom. Pored svog zabavnog karaktera obogaćena je i lekcijama iz menadžmenta.  Kada sledeći put intervjuišete kandidata za radno mesto zapitajte se može li vam on u budućnosti biti šef? Setimo se da je Ed samo hteo da pravi animirane filmove…

Poenta: Potrebne su neistinktivne strategije za menadžment inženjera i kreativnog sektora.

Coders at Work (Piter Sibel)

Coders at Work je zbirka intervjua značajnih imena iz sveta programiranja. Kao da slušate podcast ili čitate objave na blogu. Imaćete priliku da saznate o iskustvima Peter Norvig-a prilikom rada za Google i NASA-u. Za one čije su sfere interesovanja startapi i preduzetništvo, preporučujem iz iste serije Founders at Work.

Poenta: Mnogo može da se nauči dok se čita o iskustvima drugih.

The Mythical Man-Month (Frederik Bruks)

The Mythical Man-Month zamišljena je kao kolekcija eseja koji objašnjavaju probleme u menadžmentu programerskih projekata. Pojedini aspekti softverskog inženjeringa nisu doživeli promenu još od 70-ih. Na primer, ako projekat kasni dodavanjem novih programera kasniće još više. Nisam je čitao dok sam studirao, niti moji studenti, i zbog toga mislim da je dobro da je na listi.

Poenta: Čak i kad je pročitate, neki od navedenih problema vas neće zaobići.

Ako ste razočarani jer niste pronašli knjige o programiranju, predlažem da posetite Vikipediju i potražite među člancima o data strukturama naslove koji su u vezi sa kompilatorima, funkcionalnim programiranjem i AI-jem. Moji predlozi:

• Writing an Interpreter in Go

Learn you a Haskell

• Programming Game AI by Example

Napomena: autor je u originalnom članku stavio linkove sa Amazonom uz svoj affiliate kod, ostavili smo ih takve i u ovom prenosu.