Den ordblinde programmør

Beth Andres-Beck er programmør og ordblind og skrev i et blog-indlæg om hvilke udfordringer det medfører, men også hvilke styrker hun mener, det har givet i rollen som programmør.

To pointer, hun laver, er at auto-fuldførelse/øjeblikkelig respons på visse fejl i IDE'er, samt syntaksfremhævning, er absolut kritiske for hende, mens de bare er belejlige for mange af os andre. Det synes jeg er interessant, når man tænker på de argumenter som ofte gives både imod brugen af IDE'er og imod brugen af syntaksfremhævning.

Jeg har altid brugt syntaksfremhævning, men jeg har kun brugt IDE'er når jeg har kodet C# og Java og aldrig til andre sprog, givetvis fordi kode i disse sprog fylder meget. Jeg begyndte først at bruge run-time debuggere i forbindelse med IDE'er, og jeg synes at de hjælper mig med at holde styr på klassehierarkier; det at auto-fuldføre på standardbiblioteket eller på ens egen gigantiske kodebase kan trods alt være meget nyttigt.

Det får mig til at tænke på tre ting:

1) Forsømmer vi en mængde af studerende i starten af deres it-uddannelser ved enten at sige at farvelægning af kode er farligt, eller ved at fratage dem IDE'en fordi den ifølge nogle er alt for avanceret?

2) Hvis syntaksfremhævning gavner ordblinde programmører, er semantisk fremhævning så et bedre alternativ? Semantisk fremhævning kan forstås på flere måder, fx ved at farvelægge hver variabel unikt, eller ved at farvelægge på basis af virkefelter (scopes), i modsætning til fx farvelægning af keywords, literals mv. i sproget.

3) Hvis brugen af IDE'er er en symptom på designproblemer i et sprog, har ordblinde programmører så nemmere ved at lære sprog som nemt kodes uden brug af IDE'er?

"Diskrimination" er et hårdt ord at bruge, men jeg følte selv et behov for at rette dette indlæg igennem for ikke at sige, at jeg følte mig doven og glemsom når jeg bruger en IDE - en mand med krykker er vel sjældent "doven i benene". ;-)

Er du ordblind programmør, og hvad synes du gavner mest når du arbejder?

Simon Shines billede
Simon er tidligere studieblogger på Version2, har læst datalogi på DIKU og et enkelt år økonomi. Han arbejder som FinTech-udvikler og er ved at starte et detektivbureau. Han kan godt lide funktionsprogrammering, oversættere, webudvikling og brætspil.

Kommentarer (7)

Torben Mogensen Blogger

Meget ordrige sprog med kompliceret syntaks (f.eks. Java eller C#) kan være en udfordring for ordblinde, men jeg vil (uden dog at være ekspert på området) tro, at sprog som f.eks. APL, der bruger en slags piktogrammer i stedet for nøgleord og har simple syntaksregler, eller LISP/Scheme/Clojure, der har en meget simpel syntaks, kunne være at foretrække for ordblinde. Dog bruger LISP-familien mange operatorer, der kun adskiller sig lidt fra hinanden (f.eks. cadr og cdar), så det kunne sikkert gøres bedre. Farvelægning af forskellige operatorer i forskellige farver kunne sikkert hjælpe.

Hvad IDE'er angår, så er jeg ikke tilhænger af dem til undervisningsbrug for folk, der ikke tidligere har programmeret. Det sker for nemt, at nybegyndere blot vælger de forslag, IDE'en kommer med, i stedet for at tænke sig om. Det er lidt som at lære at skrive med stavekontrol slået til. IDE'er er fint som værktøj til hurtigere udvikling, når man først kender sproget, ligesom stavekontrol er fint til at fange slåfejl for folk, der allerede kan stave. Men, ligesom en ordblind ikke kan stole på stavekontrollens valg, og derfor kommer til at lave fejl, så kan en begynderprogrammør heller ikke stole på IDE'ens valg, og vil alt for nemt komme til at lave kode, der på overfladen ser korrekt ud (syntaks, typer, m.m.), men som ikke giver nogen mening.

At en ordblind kan have glæde af en IDE vil jeg ikke afvise, men det er nok primært til sprog med meget "boilerplate". Jeg vil tro, at en form for highlighting vil dække dette formål. Jeg har generelt ikke noget mod highligting af syntaks, matching af parenteser og lignende, for de hjælper ikke, med mindre forståelsen er til stede, hvor IDE'er og stavekontrol af nogle bruges som en substitut for forståelse.

Lasse Lindgård

Der er mange typer ordblinde og jeg har mødt et par stykker i min karriere.

Fælles for dem jeg har mødt er at de læser udmærket og især når det er kode er det ikke noget problem, fordi det er så symbolsk.

Derimod så staver de som regel ikke ret godt, hvilket kan afhjælpes af code completion, syntax highlighting, flittig copy/paste af enkeltord og stavekontrol på variabler og kommentarer.

Jeg kan ikke forstå argumentet med at et IDE fratager en evnen til at tænke selv. OK hvis det er noget som genererer meget kode ud fra wizards, men det synes jeg ikke er så populært som for 10 år siden. De IDE'er jeg bruger har mere fokus på at hjælpe når man står inde i editoren - og der kan man ikke få for meget hjælp efter min mening.

Pelle Söderling

Det er lidt som at lære at skrive med stavekontrol slået til. IDE'er er fint som værktøj til hurtigere udvikling, når man først kender sproget, ligesom stavekontrol er fint til at fange slåfejl for folk, der allerede kan stave. Men, ligesom en ordblind ikke kan stole på stavekontrollens valg, og derfor kommer til at lave fejl, så kan en begynderprogrammør heller ikke stole på IDE'ens valg, og vil alt for nemt komme til at lave kode, der på overfladen ser korrekt ud (syntaks, typer, m.m.), men som ikke giver nogen mening.

Torben, jeg synes egentlig ikke helt den sammenligning giver mening. Problemet med stavekontrollen er at der er intet der efterfølgende gør dig opmærksom på at det du valgte var forkert (altså ikke før det så at sige er for sent og folk peger fingre).

I tilfældet med IntelliSense (eller hvad man nu kalder det) så er der jo ikke på samme måde tale om forslag eller at IDE'en forsøger at gætte sig til hvad du er ved at kode nu - den giver bare hurtig adgang til en oversigt over funktioner/typer osv. tilgængelige i det scope du er i eller for den type du er ved at bruge - som du ellers ville skulle over i dokumentationen og slå op.

Men den største forskel i forhold til stavekontrollen er at hvis du skriver noget volapyk kode så giver enten compileren dig et rap over nalderne eller også virker det du laver ganske enkelt ikke - så i modsætning til stavekontrollen får du instant feedback og så er jeg egentlig ikke så bekymret for at folk ikke skal formå at lære af dette.

David Rechnagel Udsen

Som ordblind synes jeg selv at IDE'er hindrer min mulighed for udenadslære. Selvfølgelig, sprog med stort kognitivt overhead er problematisk (men det gælder ikke kun ordblinde), så enten bruger man et begrænset udsnit af et stort sprog (f.eks. C++) eller et IDE til at udvikle C++-programmel i.

Personligt undgår jeg sprog som C++ af netop den grund. Dog på mit arbejde bruger vi primært Delphi, som også har et ret stort ordforråd, som gør et IDE nødvendigt (også af andre grunde er det vist svært at udvikle Delphi-programmer uden et IDE). Men alligevel arbejder jeg hårdt på at undergrave IDE'ets funktionaliteter ved at undgå dets forslag og primært huske funktions- og klassenavnene selv. Det er praktisk når man ikke lige kan et funktionsnavn, men ellers synes jeg faktisk det er irriterende.

Mine egne irritationer med IDE'er bliver dog ofte overskygget af dets elendige forslag, indblanding i min kode, underlige uforudsete tilstande og andre fejlscenarier der ofte sker i et meget komplekst program. Et mindre sprog i et simple tekstbehandlingsprogram er mere mig. Der er måske ikke forslag, men hvis sproget har en god dokumentation så savner jeg det ikke.

Men som andre pointerer, så hjælper det at programmeringssprog ofte er meget mere symbolske og begrænset i ord end almindelige sprog. Det bør primært kun være biblioteksnavne man glemmer.

Peter Mogensen

Forsømmer vi en mængde af studerende i starten af deres it-uddannelser ved enten at sige at farvelægning af kode er farligt

Jeg undres... hvem siger det, og med hvilke argumenter?
Jeg opfatter ikke mig selv som bruger af "IDE'er". Jeg bruger Emacs, har syntax-highlighting, code-navigation, code-completion og en mængde andre ting, der bare hjælper mig med at hitte rede på hvor i koden jeg er.
Pt bruger jeg ikke så meget tid på multi-trådet kode, men jeg har tidligere (under BeOS) haft utrolig meget nytte af en IDE-debugger, der nemt gav overblik over hvad samtige tråde lavede.

Jeg kan simpelthen ikke se at den slags hjælpemidler eller IDE'er skulle være et problem.

Derimod gætter jeg på at der er et helt andet problem man kan skabe sig.
Personligt er jeg af den type der helst skal forstå hvordan ting virker inden i før de virker intuitive at bruge. Et eksempel er (hvad jeg tror mange har oplevet) at f.eks. "git" er betydeligt nemmere at forstå hvis du ved hvordan det arbejder internt.
Derfor føler jeg også at jeg har stor nytte af faktisk at have koden en del i assembler og bygget compilere i "min ungdom". Folk folk, der aldrig har prøvet det, kan det sikkert været svært at opbygge en intuitiv forståelse for hvad det er der foregår i et IDE, der automatisere for meget.
Men det løses altså ikke ved bare at tage "farvelægning af kode" fra dem.

Tine Andersen

Nu er jeg ikke som sådan programmør, udover jeg har arbejdet med forskellige redskaber til HTML-kodning. Der kan det være en støtte at elementer (syntax) er fremhævet, men det er dæleme også vigtigt, at det ikke ender i orgier af blå og sorte koder, der er svære at læse, samt at hele sætninger ikke står med fx grå baggrundsfarve (indhold) og syntaks med lilla og grønne blokke.

Jeg har været meget glad for Stones Webwriter, der også kunne tjekke om, man havde "lige mange" koder, så man fx ikke havde glemt at /B eller havde 2 af dem...

Jeg startede med at håndkode i Notepad (!), og her lærte jeg også, at det er vigtigt, at koden skal være overskuelig opstillet, at superlange linier er upraktiske, og at andres kode er noget helt andet at rette- end ens egen, der selvfølgelig var bedre... :-D

Vi har haft megen glæde af "WWW håndbogen" (som vi kærligt kalder Kogebogen) fordi, den starter meget pædagogisk, man kan lynhurtigt producere et website, og så kommer der gradvis mere og mere kød på skelettet. Der har været nærmest umuligt at finde noget tilsvarende litteratur, der lige så godt forklarer, hvordan man ellers gør. (Er dog stødt på nogen med grafik/billedbehandling), men ellers er der lang mellem snapsene.

Hvis man synes, noget er en hjælp, så skal man da bruge det. For ordblinde kan baggrundsfarver være en hjælp, og struktur og overskuelighed er godt for alle...

Mvh
Tine- der er lidt ord- og talblind

Peter Stricker

det er dæleme også vigtigt, at det ikke ender i orgier af blå og sorte koder, der er svære at læse


Jeg er helt enig. Men det er jo ikke en kritik af farver, men af forkerte farver.

Jeg er farveblind, og det gør at der er nogle farveskemaer som slet ikke passer til mig. Blandt andet det meget roste Solarized dark kan jeg ikke bruge. Der er nogle af farverne, der har for lidt kontrast til at jeg (ubesværet) kan læse teksten.

Hvis der derimod er nogle skriftfarver der ligger så tæt op ad hinanden, at jeg ikke kan se forskel på keywords og variabelnavne, så er jeg ret ligeglad med det.

Farvekodning kan være en hjælp, men det er ikke essentielt. Jeg ville aldrig fravælge det med mindre det nedsætter min læsehastighed. Og når det gør, er det altid på grund af de valgte farver.

Log ind eller opret en konto for at skrive kommentarer