Hvordan ved man hvor god man er?

Tags:    php

Hej Udviklere

Jeg har været i gang med at programmere PHP i et godt stykke tid efterhånden, men jeg ved egentligt ikke hvor god jeg er. Jeg synes det er svært at finde ud af fordi når jeg skriver med folk på nettet er det som om de fleste kan programmere omend ikke meget så en smule, hvor dem jeg kender i den virkelige verden ikke kender så meget til alt det bagved.

Hvad adskiller en god programmør fra en rookie? Og kan man overhovedet sætte en karakter på sine evner?

Hvis der er nogen der har det på samme måde som mig, eller måske ved hvordan man kan finde ud af hvor god man virkelig er så synes jeg I skulle byde ind i denne tråd!

Fortsat god fredag aften! ;)



Kender godt fornemmelsen, godt nok ikke så meget med php (endnu), men med andre programmerings sprog.. En ide til at finde en "karakter" som du nu så fint kalder det, kunne vel være at få noget feedback af andre mennesker? Eller i det hele taget lave nogle websites for andre, og så se om de synes om det du har lavet.. :D

Vil mene det er lidt svært at give en decideret karakter når det gælder programmering osv.. Men man har vel altid en eller anden fornemmelse af hvor man ligger?!

- Emil



For fem år siden syntes jeg selv, at jeg havde totalt styr på programmering. I dag er jeg meget bevidst om, hvor lidt jeg ved. Jeg tør slet ikke tænke på, hvor galt det står til om yderligere fem år :-)

Det er svært at måle, hvor god man er, du kan jo tage udgangspunkt i Dreyfuss modellen: http://en.wikipedia.org/wiki/Dreyfus_model_of_skill_acquisition

Den indeler os i fem grupper rangerende fra novice til ekspert og definerer, hvornår man er i de forskellige grupper.
En novice har brug for kontekst frie regler. Dvs. at de skal på det nærmeste have at vide, at når X sker, så gør du Y. Og hvis der så sker noget uventet, så står novicen på herrens mark.

Eksperten ligger på den anden side. Regler hæmmer eksperten, som altid helt instinktivt gør "det rigtige" helt uden at tænke over det, og ofte uden at kunne forklare det.

Modellen har været brugt inden for alle områder. Musikere, atleter, sygeplejersker og så videre, og man er kommet frem til, at det tager ca. 10 års "deliberate practice" (denne term kan Googles) at nå til ekspert niveau, og det er uanset hvilket emne, det handler om.

Deliberate practice betyder, at man virkelig arbejder med et emne og konstant søger at udfordre sig selv. Man har ikke nødvendigvis 10 års erfaring bag sig bare fordi, man har arbejdet med et emne i 10 år. Man kan sagtens have ét år gentaget ni gange.

Det betyder også, at du kan blive ekspert i stort set alt. Det eneste, det kræver, er, at du udfordrer dig selv dagligt i ca. 10 år :-)

Du kan prøve at se hvor på Dreyfuss stigen, du befinder dig mht. programmering.



Det er et rigtigt svært spørgsmål at svare på.
http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect

Jeg ville nok stille mig spørgsmålet "i forhold til hvem?" og så prøve at sammenligne.



Som "gammel smølf" i it-branchen vil jeg sige at det ikke kun kommer an på hvor godt du kan programmere.

Jeg ville f.eks. aldrig ansætte en som ikke samtidig forstod lidt af de forretningsprocesser som ligger til grundlag for systemet der skal udvikles. Så at sammenligne sig med andre, om man forstår en syntax i et programmeringssprog virker forkert i mine øjne. For det kan vi alle lære, men er ikke ensbetydende med at man kan programmere et godt system.



Brian
Giver dig helt ret, og lige så meget at personen måske kender kundekontakt og forretningsetik og normer.
Ikke alle og enhver der kan snakke ordentligt til en kunde, få dem til at føle de er hele ens verden og de får noget af værdi, eller de ved hvordan man kan hente nye opgaver med hjem og dialog hvis der kommer uenigheder om en aftale fx.
Men det kan også være meget individuelt, for jeg arbejder sammen med en gammel grå hund som går meget op i man får brackets/tuborg paranteser rundt om dine if-statements uanset om de er one-liners, men nogle ting som er meget mere vigtige for fx mig er han ligeglad med.
Har fx rettet fejl i vores fælles kode hvor at det ville være basic for mig, men ikke hans.
Så det meget forskelligt hvor din standart ligger, og hvad man har vægt på i sin kode så kan være meget svært at sammenligne - og hvad man har lært. Har arbejdet med en der har været 20-25 år i branchen som jeg lærte der er noget der hedder continue.
Så længe du selv leverer god gode du kan stå inde for når en anden skal overtage, både med fejl, stil og læsbarhed (du ikke nester alting i string x = (ageIsLegal.Equals(true) ? "Du er godkendt" : "Du er for ung"; og så vil bygge engelsk valg ind i den - så du får en (useEnglish.Equals(true)) ind over.



Når jeg betragter andre udviklere er jeg ikke så interesseret i hvor gode de er til den ene eller den anden teknologi. Det er langt mere interessant hvor gode de er til at lære nye ting og sætte sig ind i helt nye problemstillinger. Jeg synes det er vigtigere at have en bred viden frem for at være ekspert i et enkelt område. De erfaringer man får fra ét område kan ofte bruges på andre områder, enten bevidst eller ubevidst.
Jeg vil give "gammel smølf" helt ret: Der er langt mere til softwareudvikling end syntax og værktøjer. Men jeg tror man skal have nogle års erfaring før man for alvor indser det. Og så er vi tilbage til Dreyfus-modellen.



Jeg kan varmt anbefale bogen "Pragmatic thinking and learning". Den handler om, hvordan man bedst muligt tilegner sig ny viden, både vertikalt og horisontalt. Det er også den bog, hvor jeg først stødte på Dreyfus modellen.

Der er faktisk lidt kritik til dem, som har nået ekspert niveau. De er så meget inde i tingene, at de kan have svært ved at forstå, at andre ikke også er det. De kommer hurtigt frem til konklusioner uden at kunne redegøre for, hvordan de er nået dertil. De taler hurtigt og undlader detaljer, som, de mener, er åbenlyse.

Derfor er eksperter ofte ikke de rette personer til at undervise andre eller tale med kunder, og regler, som gælder for andre, bør ikke gælde for eksperterne for regler hæmmer dem. De er til gengæld gode at have med på holdet, for de arbejder hurtigt og kommer med gode resultater og kan overskue kompleksitet uden problemer.

Men læs bogen (det er jo snart sommerferie :-) ), den forklarer alting meget bedre end jeg kan. Der er også tips til, hvordan man selv opnår mere.



Dejlig diskussion, som faktisk er meget relevant, for hvad vil det sige at være god? Engang troede jeg at jeg skulle være ekspert i alt (folkeskole mentalitet), men allerede nu har jeg valgt at si det meste fra og kun koncentrere mig om nogle få ting. Læs: programmering, forretningsprocesser og udviklingsprocesser, hvor jeg har visse emner som jeg dykker ned. Nogle er horisontal, andre vertikal. Faktisk har jeg nogle knudepunkter hvor programmeringen og processforståelsen lapper over, og det er disse jeg tror jeg bliver ekspert i om et par år eller 10 :-)

Robert: fed bog. Den tror jeg at jeg vil fremskaffe.



Indlæg senest redigeret d. 13.06.2011 10:56 af Bruger #1151
t