2008-03-02

Varför läsa böcker?

Många har reagerat på min sista bloggpost 2007, där jag bland annat gick igenom det mesta av den jobbrelaterade facklitteratur jag läste förra året, totalt 26 titlar. "Oj vad många" och "hur hinner du läsa alla böcker" är de vanligaste kommentarerna. På ett sätt är det en ganska konstig reaktion med tanke på att jag huvudsakligen läser på väg till och från jobbet, ca 25 minuters resväg enkel väg. Och jag har alltid grämt mig över att jag läser så långsamt. Det borde alltså inte vara svårt att upprepa "bedriften" om man nu är intresserad av att läsa böcker för att utvecklas i sitt yrkesutövande.

Samtidigt är det egentligen inte alls en förvånande reaktion eftersom jag vet att jag, i jämförelse med många utvecklare jag träffat, läser ovanligt mycket facklitteratur. Jag förstår att alla inte har samma passion för sitt jobb och att det är mycket annat som konkurrerar om de fåtal timmar dygnet ställer till förfogande. Och hur viktigt är det egentligen att läsa en massa böcker? Behöver man verkligen det? Kan man inte hålla sig ajour med vad som händer genom att läsa en artikel eller två på webben då och då? Nja, inte om man talar med Bob Martin (OO- och TDD-guru, initiativtagare till Agile Manifesto) i alla fall:

"Then you don't intent do be a programmer for very long. To be a programmer you have to be an avid reader and studier. If this has to be done on your own time, so be it.

Our profession is one of the most volatile professions in existence. It is changing all the time. There is no way to remain active in this profession if you don't stay up on those changes. An hour per day is not too long to spend on this." (TDD Mailing List, 17 maj 2006)

Eller om man hellre talar med Steve McConnell, författaren till bland annat den moderna klassikern Code Complete:

"Specific features of the technical environment change every 5 to 10 years. If you aren't curious enough to keep up with the changes, you might find yourself down at the old-programmers' home playing cards with T-Bone Rex and the Brontosaurus sisters." (Code Complete, s. 822)

Man kan tycka att Martins och McConnells krav på en programmerare är väl höga, men det är därför att verkligheten ställer höga krav på oss. Visst, det tycks stundtals räcka att få in en fot i branschen och sitta av några år för att hålla sig kvar i programmeraryrket livet ut, särskilt med den senaste tidens bristande återväxt. Eftersom erfarenhet nästan alltid förefaller mätas kvantitativt snarare än kvalitativt så behöver man knappast utvecklas alls för att efter några år mer eller mindre vara garanterad försörjning som programmerare livet ut. Men om man inte är belåten med att bara försörja sig, utan verkligen vill hänga med i utvecklingen, ha koll på det man jobbar med och kunna göra ett bra jobb måste man aktivt läsa och studera.

Att hålla sig uppdaterad om utvecklingen är inte enda skälet att läsa böcker, kanske inte ens det främsta. Inom mjukvaruindustrin har vi nu ett antal decenniers erfarenheter bakom oss och vi har hunnit göra väldigt många misstag, om och om igen dessutom. Vi har också lärt oss av dessa misstag och upptäckt sätt att undvika dem. Det är närmast oansvarigt att inte tillgodogöra sig de erfarenheter som ackumulerats genom åren. Billy McCafferty uttrycker det så här på sin blogg:

"Although there is no single best practice, practices do exist which embody the lessons learned from years of painful experiences and hard won insight. This is not to say that all the practices described are not subject to critique and improvement, but they do serve as a confident starting point for engaging in our own daily practice. Ignoring them outright, which is almost a norm within the world of software development, is an injustice to the science in which we say we engage ourselves."

Steve McConnell gör en intressant jämförelse med andra yrkesgrupper:

"The software-engineering field makes extraordinarily limited use of examples of past successes and failures. If you were interested in architecture, you'd study the drawings of Louis Sullivan, Frank Lloyd Wright, and I. M. Pei. You'd probably visit some of their buildings. If you were interested in structural engineering, you'd study the Brooklyn Bridge; the Tacoma Narrows Bridge; and a variety of other concrete, steel, and wood structures. You would study examples of successes and failures in your field." (Code Complete, s. 823)

Den självklara motsvarigheten i mjukvaruindustrin är förstås att studera andras kod, design och arkitektur. En av fördelarna med konsultyrket är just den möjlighet det ofta erbjuder att få en inblick i många olika lösningar, arbetssätt m.m. Har man inte den möjligheten finns det gott om publierad kod, man kan exempelvis börja med något av alla "Open Source"-projekten på Codeplex och Sourceforge. Lyckligtvis finns det också många som samlat sina erfarenheter i just böcker:

"The first step that each of us can take to better the integrity of our science and assist with its advancement is to pick up a book. Although not all are equal, key texts infuse in us the wisdom of many years of development and the expert knowledge garnered from many mistakes." (McCafferty)

McCafferty presenterar också en lista med böcker i sin bloggpost, "a minimal course of reading for infusing such knowledge", som innehåller många bra titlar väl värda att studera.

Slutligen kan det också vara direkt välgörande för din karriär att läsa böcker och som Steve McConnell skriver i Code Complete behöver du inte ens läsa särskilt mycket för att utmärka dig:

"Pat yourself on the back for reading this book. You're already learning more than most people in the software industry becausse one book is more than most programmers read each year (DeMarco and Lister 1999). A little reading goes a long way toward professional advancement. If you read even one good programming book every two months, roughly 35 pages a week, you'll soon have a firm grasp on the industry and distinguish yourself from nearly everyone around you." (Code Complete, s. 824)

35 sidor i veckan. Det är fem sidor om dagen. Det är väl ingen bedrift?

3 kommentar(er):

Johan Idstam sa...

Jag använder mina en till två timmar pendling till att lyssna på podcasts, men du fick mig precis att ta upp bokläsandet igen. Det blir inget djup alls i en massa entimmarsprogram.

/johan/

Olof sa...

Jag längtar faktiskt tills jag börjar tågpendla igen så jag kan öka mitt läsande .. just nu bor jag så nära jobbet att jag missar denna "lucka" för läsning :)

Anonym sa...

den där boklistan är nästan ungefär vad jag läst totalt (plus enstaka böcker i diskret matematik och algoritmer) under hela min karriär inom IT - sendan ca -94. det har alltså tagit drygt 14 år att smälta innehållet. jag måste vara den trögaste konsulten på planeten. eller så är det en sak att läsa bok en annan att förstå innebörden för att omsätta det i kod. min erfarenhet är att arkitekter gillar dessa böcker skarpt. man ser det just nu väldigt väl om man följer vad som är på g inom ramverk för .net (MVC för asp.net etc) och WF. mängder av klasser och patterns - lite konkret nytta. jag kör bil till jobbet så att jag hinner läsa i lugn och ro hemma. funkar bäst för mig.

/nollkoll/