En av de saker man bör lära sig när man lär sig programmera är att
programmering är kommunikation,
inte med datorn utan med andra människor som någon gång i framtiden ska arbeta vidare med ens program.
(Eller med en själv, om tre år när man glömt hur man tänkte när man skrev det där gamla programmet.)
Därför är utseendet på programkoden alltid viktig:
bra namn på variabler, bra indentering, rätt val av kontrollstrukturer, och så vidare.
Om exempelvis inte indenteringen stämmer med de logiska nivåerna i programmet, så blir programmet mer svårläst.
Men även andra former av kommunikation än själva programkoden är viktig när man programmerar.
Många tror att programmering är ett ensamarbete, där man sitter ensam vid sin dator
och arbetar, gärna i en källare utan fönster.
Men sanningen är att den som arbetar med programmering ofta behöver samarbeta och kommunicera med andra människor.
Ett exempel på detta är att fråga om hur man gör något,
antingen direkt till en person skriftligen eller muntligen,
eller till en hel gemenskap, till exempel på fråge-och-svars-webbplatsen
Stack Overflow.
Att ställa frågor på ett bra sätt är faktiskt ganska svårt.
Några råd när man ska skicka en fråga via mail eller på ett forum:
-
Beskriv problemet. "Det fungerar inte" räcker inte.
-
En bra början är att skriva en informativ och rättvisande rubrik.
"En fråga", "Problem", "Det fungerar inte" eller "C++" är inte bra rubriker.
-
Beskriv vad som händer.
"Det fungerar inte" räcker inte.
-
Om du får felmeddelanden, kopiera och klistra in exakt de felmeddelanden som du fick.
"Den skriver att det inte fungerade" räcker inte.
"Den sa något om pointer type och error" räcker inte heller.
-
Glöm inte att beskriva vad det var du ville göra.
Datorn gjorde förmodligen precis det du sa åt den att göra,
även om det inte var vad du hade tänkt dig,
och det kan vara svårt för den som läser att gissa vad det var du hade tänkt.
-
Beskriv den miljö du använder.
Vilket operativsystem? Vilken kompilator? Vilken version av kompilatorn?
-
Skicka med ett exempel.
Det ska vara ett minimalt, fungerande exempel som uppvisar problemet.
-
Minimalt:
Ta bort så mycket av exemplet som det går.
Ingen vill sätta sig in i hundratals rader med programkod i onödan.
-
Fungerande:
Ta bort så mycket av exemplet som det går,
men inte mer än att det fortfarande går att provköra.
Kontrollera detta genom att provköra!
-
Uppvisar problemet:
Exemplet måste förstås fortfarande ha det problem som frågan gäller.
Kontrollera detta genom att provköra!
-
Glöm inte provköra exemplet för att kontrollera
att det fortfarande fungerar och fortfarande uppvisar problemet.
-
Kopiera och klistra in exemplet,
efter att du provkört det.
Det är mycket lätt att råka göra fel när man ändrar i programkod.
-
Ja, det är mycket att tänka på bara för att ställa en fråga,
men ofta är det exakt detta som den som ska lösa problemet åt dig måste göra
för att isolera och identifiera vad som är fel!
Här är några länkar att läsa:
Thomas Padron-McCarthy
(thomas.padron-mccarthy@oru.se),
30 december 2013