Heitetääs jatkoksi: vähän kiinnostaisi linux-näpertely, mistä olisi hyvä aloittaa? Skeme ja C on jo tuttuja
Kun mainitset Schemen ja C:n, niin oletan, että haluaisit koodata jotain ytimen kanssa? Linuxista ei mitään kovin hyvää kirjaa ole, koska kerneli muuttuu sen verta nopeasti, että kirjat on jo vanhentuneita ilmestyessään. Edelleen vanha klassikko Unixista on
The Design and Implementation of the 4.4BSD Operating System
jonka uudempi versio on nimeltään sama, mutta "4.4BSD":n tilalle "FreeBSD". En ole tuota uudempaa lukenut, joten vaikea mennä sanomaan siitä mitään, mutta ainakin tuo vanha on todella hyvä ja lukemalla Linuxin lähdekoodia pääset suht nopeasti kärryille kun ymmärrät rakenteen. Helpointa on aloittaa tekemällä jotain triviaaleja kernel moduuleita.
Jotkut ovat maininneet tuon Stroustrupin kirjan C++:n opetteluun ja tuo on ehkä huonoin lähde, jonka tiedän aiheeseen. En ole löytänyt tuolle juuri mitään funktiota vaikka minulla se kirjahyllyssä onkin. Jos haluaa opetella C++:n niin käytännössä juuri mikä tahansa kirja on parempi ja myöhemmin hakuteoksena on olemassa parempiakin kirjoja. Erityisesti seuraavat ovat loistavia:
Modern C++ Design: Generic Programming and Design Patterns Applied
C++ Templates: The Complete Guide
Kun kaikki täällä etsivät jotain ohjelmointikirjoja, niin kannattaa opetella jonkun helpon kielen syntaksi kuten juuri Python (joka on myös tulkattava, jolloin sillä on nopea opetella ohjelmoimaan). Uusien kielten opettelu on käytännössä hyödyllistä vain siksi, että monilla kielillä on erilaiset "luonnolliset" tavat ratkaista ongelmia, joten jotkut kielet opettavat uusia tapoja lähestyä ongelmia. Tässä esim. tuo Scheme on kätevä. Kun osaa jonkun kielen, niin kannattaa siirtyä niihin kirjoihin, joissa opetetaan tietorakenteita ja algoritmeja.
Tietysti koodiorjana usein ei tietorakenteita ja monimutkaisempia algoritmeja tarvitse mihinkään, vaan ohjelmiston suunnittelu on tärkeämpää. Itse toisaalta häärään akateemisella puolella, joten en näihin sen kummemmin ota kantaa.