Man blir aldrig skickligare än de utmaningar som man vågar utsätta sig för. Det gäller för idrottare såväl som utvecklare.

Bra utvecklare behöver bra (svåra) problem. 

tumblr_m1zr6npapp1qc4jx8o6_250

Och det blir bättre när man får (eller nästan måste) visa upp sin lösning för andra smartskallar. Lösningar blir generellt bättre när man visar upp dem av två anledningar.

  1. Stoltheten kickar in och man vill glänsa med sin smidiga lösning.
  2. De som ser din lösning fattar dessutom vad du har gjort.

Utöver det, så suger man åt sig sjukt mycket kunskap genom att kolla hur andra har löst samma problem.

Om man bidrar till något kodprojekt på GitHub eller så, lär man sig ofta genom att kolla på andra. Men de flesta projekt där flera utvecklare är inblandade brukar man ofta försöka hålla bra läsbarhet (det vill säga dumma ner och tydligggöra) så att det inte ska bli så hög tröskel för nytillkomna att komma med förbättringar. Men om du vill superoptimera din kod (som man gör i till exempel regex-golf) ska du kolla in Codewars, en tjänst där utvecklare kan posta problem och lösa andras för utmaningens skull.

På Codewars hittar du utmaningar i Javascript, Coffeescript och Ruby. En utmaning kan till exempel bestå av att skriva en funktion som vänder bak-och-fram på alla ord i en mening, men behåller ordföljden. 

Screen Shot 2014-03-10 at 20.01.49
När du har skrivit ihop din funktion och ditt test är det bara att publicera och då kan andra personer rösta på din lösning om de tycker att den är lite extra elegant.

I mitt fall blev den här utmaningen förnedrande lång i jämförelse med den mest uppröstade:

[javascript]
function reverseWords(str) {
return str.split(‘ ‘).map(function(word){
return word.split(”).reverse().join(”);
}).join(‘ ‘);
}
[/javascript]

Men för mig spelar det ingen roll att det stoltheten får sig en sveda. Utbytet blir alltid att jag får lite mer koll och något extra trick i bakfickan när nästa utmaning står för dörren.