Anders är en webbutvecklare och hårdrockare som gillar brädspel, kaffe och öl.

Detta är ett arkiverat inlägg, som importerats hit för referens. Det kan se konstigt ut och innehålla utdaterad information eller inaktuella åsikter.

Bokfrossa!

Jag har aldrig haft någon riktig mentor eller skolning när det gäller webbutveckling. Ända sedan jag skaffade intresset 1998 har jag letat upp saker på egen hand. Likväl är det inte förrän det senaste året som saker verkligen har börjat hända. Allt började när en vän påbjöd mig att kika på 'semantisk HTML' under sommaren 2005.

Det jag slutligen hade snubblat över är den insikt som är nödvändig för alla webbutvecklare på presentationsnivån: Det finns flera standardiserade sätt att tackla problem, och varenda en av dem har ett eget syfte och kringliggande miljö. Hur att skilja dem åt var för mig en resa som var tumultartad i två år, men som nu lugnat ner sig till en underbar resa i lagom takt.

Hur skall jag lära mig?

(X)HTML, CSS, DOM, JavaScript ... listan blir lång. Och det blir inte bättre av att många av de standards som finns har överlappande egenskaper, där de kan uppnå samma resultat. När skall det ena användas framför det andra, och vad är motiven? Vad är egentligen varje standard för något?

Jag jobbade länge i blindo, försökte själv. Jag kom på mycket, men det tog tid och gick för långsamt. Efter en tid halkade jag in på utvecklingsbloggar, främst 456 Berea Street och Friendly bit. Dessa kom att agera som de mentorer och lärare jag fram tills dess hade saknat. Jag fick dessutom tips på bra utvecklingsböcker, och det är längs den vägen jag gått. Jag hittade några riktiga guldkorn, och skall nu ägna resten av detta inlägg till dessa.

Allra först vill jag dock uppmärksamma detta:

Kunskapsnivåer för (X)HTML

  1. Hå-te-äm ... va?
  2. HTML? Det är de där taggarna du gör text fet och kursiv med.
  3. Kontrollerna jag drar och släpper i min IDE ser bra ut i Internet Explorer, varför skall jag bry mig om HTML?
  4. Ja, jag har hört om de där nya flashiga ul- och h1-taggarna, men jag håller mig till mina pålitliga vänner table-, img- och br-taggar.
  5. Hur skapar jag en datatabell med spans och divar?
  6. Hrm. Jag undrar vilken listtyp som är mest semantiskt för den här delen av dokumentet ...
  7. Jag tycker HTML 4.01 och XHTML 2.0 inte är semantiska nog, så jag jobbar på ett eget markup-språk.

Kunskapsnivåer för CSS

  1. CSS? det där multiplayer-spelet?
  2. Ja, jag använder det för att ta bort understrukningen på länkar ibland.
  3. Nä, jag gillar inte divar, tabeller är enklare att jobba med.
  4. Ja, jag har hört att det skall vara bra, men jag kan inte använda det för att ...
  5. CSS? Oja, jag använder divar för alla mina layouter!
  6. Jag använder CSS till layout och design, det är mycket bättre eftersom ...
  7. Vilken version av CSS? Ah, just det! Läste du min bok om ...

Med dessa nivåer i åtanke är det lättare att berätta hur böckerna kan hjälpa.

HTML Mastery

En av de viktigaste insikterna jag har vunnit är att allt blir ett helvete utan en bra och uttänkt struktur. Jag har under förgående år fått möjlighet att jobba med projekt som delar samma HTML, men har egen layout. HTMLdokumenten, inte skrivna av mig, led av divitis och spanmani och jag har aldrig stött på något så komplext ur layoutsynpunkt. Jag insåg här styrkan i att hålla det rent, semantiskt och snyggt - rätt element för rätt jobb. Jag behövde dock någonting som kunde leda mig till nivå sex i ovanstående lista, och den här boken var ett mycket klokt val.

Den behandlar ingående vad HTML är och vad HTML skall ansvara för, och tvärtom. Den dödar myter om XHTML kontra HTML, och avhandlar för- och nackdelar om alla element en utvecklare kan använda. Grundläggande stilmallar omnämns, och en framtidsreflektion(HTML 2.0, XForms, HTML 5 med mera) avrundar boken. För mig fräschade den upp och gjorde mig återfödd på många ställen, men bekräftade också att jag varit på rätt spår men inte kunnat få sista pusselbiten på plats.

Rekommenderas till alla som inte trivs på fjärde nivån och vill avancera.

CSS Mastery

Ett annat bekymmer jag länge drogs med var bristen på rättframa lösningar åt komplexa problem. Redundans och selektoritis spökade och hägrade, och gjorde mina stilmallar löjligt långa och komplexa. Jag låg då på nivå fem; jag ville använda stilmallar, men reflekterade inte så mycket över varför. Vad jag behövde var en kunskapsdatabas som jag kunde ta inspiration av, och som kunde lära mig den gyllene medelvägen - den sanna styrkan i CSS.

Jag fann den i CSS Mastery. Boken gör det rättframt och enkelt att skapa snygga stilmallar till navigering, två- och trekolumnslayouter, bildskuggor, moderna bildkartor, runda hörn och annat. Den beskriver också den så kallade boxmodellen, och hur den fungerar - vilket hade besparat mig en massa problem om jag läst den för 3-5 år sedan. Lösningarna är genuina och fungerar i mycket lång utsträckning. Termerna 'progressive enchancement' och 'graceful degradation' kommer också på tal: morötter ges till de som använder moderna webbläsare, utan att de som inte gör det går miste om vare sig användbarhet eller tillgänglighet.

Även användbara fulhack och filters, som är den sista utvägen för ni-vet-vilken-webbläsare behandlas. I kombination med HTML mastery utgör den här boken ett kompakt men liväl brett bibliotek och riktlinjer för att göra webbplatser enligt standards.

Rekommenderas till alla som är på nivå fyra, vill fortsätta och behöver hjälp att veta hur de skall bära sig åt.

Sista ord

Personligen har jag kommit till sjätte nivån inom såväl CSS som (X)HTML. Jag funderar mer på klassnamn och semantik än annat, kan motivera till varför jag gör som jag gör, och kommer på mig själv med att det går snabbare att bygga sidor (även om jag har långt kvar till att kunna klassa migs jälv som 'tidseffektiv'). Googles spindlar och crawlers gillar också mitt arbete, vilket syns på mina höga placeringar vid sökningar. Sjunde nivåerna är inget som går att satsa på - antingen hamnar man där om 10-15 år, eller så inte.

Det jag jobbar på just nu är att börja blanda in det tredje elementet, det vill säga beteende, i mina sidor. JavaScript i kombination med DOM är vad jag läser om just nu - mer om det kommer i framtiden.

Långt inlägg, det här. Mest flams, men litet nyttigt hoppas jag att det innehöll.