Kiinnostavia kirjoja

From Fuksiwiki

Tässä joitain kiinnostavia tietojenkäsittelytieteen kirjoja, joista on hyötyä muutenkin kuin kursseja suoritettaessa.

Cormen, Leiserson, Rivest, Stein: Introduction to Algorithms

Cormen eli CLR eli CLRS on ollut algoritmien ja tietorakenteiden perusteos jo toistakymmentä vuotta. Se on paljon luettavampi kuin Knuth (paksu ja pedanttinen samaa aihetta käsittelevä klassinen kirjasarja, joka yleensä hankitaan kirjahyllyyn sen statusarvon vuoksi), mutta kattaa silti keskeisimmät algoritmit ja tietorakenteet sekä menetelmät niiden suunnitteluun ja analysointiin. CLRS:n perusteella pystyy halutessaan suorittamaan kurssit Tietorakenteet sekä Algoritmien suunnittelu ja analyysi, minkä lisäksi se palvelee niiden jälkeenkin käsikirjana ja hakuteoksena.

Jouni Siren

Google

"Mitä ei Google tiedä, sitä ei ole olemassa." - vanha viidakon sananlasku

Kymmenen vuotta sitten juuri kukaan ei olisi uskonut, millainen tietomäärä on nyt kenen tahansa ulottuvilla puolessa minuutissa. Etenkin teknisillä aloilla Google löytää vastauksen melkein mihin tahansa yksittäiseen kysymykseen nopeammin ja helpommin kuin sen saisi muilta ihmisiltä kysymällä. Laajoihin asiakokonaisuuksiin perehtymiseen on parempiakin välineitä, mutta esimerkiksi erilaisista tietosanakirjoista, tietokannoista ja muista vastaavista palveluista Google löytää halutun artikkelin usein nopeammin kuin niiden omat hakumenetelmät.

Googlaus on toki taito, joka vaatii harjoittelua. Alkeellisin virhe on käyttää hakusanoja samaan tapaan kuin katsoisi tietosanakirjan hakemistosta. Paljon pidemmälle pääsee kun miettii, mitkä sanat - ja missä muodoissa - todennäköisesti esiintyvät haluttua aihetta käsittelevissä teksteissä, mutta eivät muissa teksteissä kuin korkeintaan sattumalta. (Tällaisia kysymyksiä muuten käsitellään monilla koneoppimista, kieliteknologiaa, data-analyysia ja älykkäitä järjestelmiä sivuavilla kursseilla.)

Jouni Siren

Schneier: Secrets & Lies sekä Schneier: Beyond Fear

Jos tietoturva kiinnostaa, Bruce Schneierin teokset ovat ehdotonta peruslukemistoa. Niiden perussanoma on kaiken kyseenalaistaminen. Ei riitä, että jokin turvallisuusratkaisu näyttää hienolta ja kuulostaa vakuuttavalta. Ratkaisua arvioitaessa tulee miettiä, mitä sen käyttäminen maksaa, mitä se oikeasti tekee (sen sijaan, mitä sen on tarkoitus tehdä), millaisilta uhkakuvilta se suojaa, kuinka todennäköisiä ja haitallisia nämä uhkakuvat ovat, millaisia keinoja ratkaisun kiertämiseen on tai kuka joutuu maksamaan tai kerää hyödyn mistäkin. Schneierin ajatuksiin tutustuminen auttaa huomaamaan, että tietoturva on paljon muutakin kuin tekniikkaa: politiikkaa, taloutta, arvoja...

Jouni Siren

Fred Brooks: The Mythical Man-Month: Essays on Software Engineering

Brooks kertoo mukaansatempaavalla tavalla, miksi lisätyövoiman änkeäminen valmiiksi myöhässä olevaan softaprojektiin vain saa sen myöhästymään enemmän. Kirjan ensimmäinen painos ilmestyi jo yli 30 vuotta sitten, mutta sisältö on pysynyt ajankohtaisena. Sitä ei monesta alan kirjasta voi sanoa.

Sini Ruohomaa

Tom DeMarco, Timothy Lister: Peopleware — Productive Projects and Teams

Peopleware jatkaa Mythical Man-Monthin projektinhallinnallisella linjalla, mutta keskittyy enemmän aivotyötä tekevien ihmisten yleiseen johtamiseen. Tämänkin kirjan viestinä on, että monikaan projektin ongelma ei lopulta liity teknologiaan, vaan ihmisiin. Ryhmien hallinta ja ryhmäytyminen saavat ansaitusti palstatilaa. Kirjaa ryydittävät opettavaiset esimerkkitarinat.

Sini Ruohomaa

Douglas Hofstadter: Gödel, Escher, Bach: an Eternal Golden Braid

Gödel, Escher, Bach eli GEB vie lukijan pää edellä matematiikan, älykkyyden ja itseenviittausten taikamaailmaan. Kirjaa on melkoisesti, mutta sen lukemisen jälkeen onkin sitten niin fiksu olo että oksat pois. Matkan varrella tutuksi tulevat Gödelin "oho, matematiikka on rikki" -todistukset, Escherin aivonreväyttävät piirrokset ja Bachin sävellysten sisäiset kieroudet.

Sini Ruohomaa

Stuart J. Russell, Peter Norvig: Artificial Intelligence: A Modern Approach

AIMA on yksi maailman suosituimmista tekoälyn oppikirjoista, eikä suotta. Teos takaa lukijalleen erittäin hyvän perustiedon tekoälyn eri osa-alueista ja tekniikoista. Suosittelen lämpimästi iltalukemiseksi kaikille tekoälystä kiinnostuneille, erityisesti fukseille - AIMAn tiedoilla läpäisee helposti Johdatus tekoälyyn-kurssin.

Kalle Viiri

Robert C. Martin: Clean code

Aihe: Ohjelmointi Esitiedot: Ohjelmoinnin perusteet Liittyy kurssiin: Ohjelmistotuotanto

"Uncle Bob" esittelee helppolukuisessa kirjassa ohjeita ymmärrettävän ja ylläpidettävän koodin kirjottamiseen. Tärkeimpiä oppeja kirjasta ovat kenties vinkit funktioiden ja muuttujien nimeämiseen sekä metodien pieniin osiin pilkkomiseen. Kirjassa on runsaasti koodia ja hyviä esimerkkejä. Erityisesti refraktorointi esimerkit ovat havainnollisia.

Juha-Pekka Moilanen