Fråga
Jag undrar vilket det bästa sättet är att lära sig programmera är? Hur programmering fungerar, hur man lär sig att skriva bra kod, vilket det viktigaste är i programmering osv.
Skulle vara jättetacksam för ett svar!
Glad Fisk
Svar
Hej Bryan.
Att lära sig programmera är en konst som tar tid att behärska, men som är väldigt roligt när man hanterar det. Till att börja med gäller det att välja ett språk att lära sig, vilket språk du väljer är upp till dig, du finner mer hjälp på,
Lär dig språket väl och lär dig hur språket är tänkt att användas. Ett bra tips är att studera källkod skriven av andra, gärna från kända open source-program, och där igenom identifiera olika medvetna val programmerarna gjort. (I ett tidigare svar har vi rekommenderat böcker om C och C++ http://publish43.hm.kunder.linpro.no/datormagazin.se/expertpanelen/programmering/cplusplus/article201381.ece)
Det är inte bara programspråket som är viktigt att lära sig, man bör även behärska verktyg som förenklar programmeringen. Sådana verktyg går oftast ut på att lokalisera buggar och minnesläckor i program samt förebygga uppkomsten av dem.
Testdriven utveckling samt enhetstestning är metodiker som försöker förebygga misstag man gör. För Java finns ett verktyg som heter JUnit och för övriga språk brukar det finnas motsvarande verktyg. Läs gärna mer om dessa metodiker i boken Pragmatic Unit Testing.
Väljer du att programmera i ett språk där man själv hanterar minnet rekommenderas ett program för att identifiera minnesläckage, i GNU/Linux kan du använda Valgrind.
Troligen kommer du, precis som alla andra programmerare, göra många misstag, därför skulle vi rekommendera ett verktyg som hanterar olika versioner av din kod. Med ett sådant verktyg kan du alltid backa dina ändringar till senaste versionen som fungerande. T ex kan du backa till en specifik dag då felet du introducerat inte fanns. Testa gärna Bazaar , SVN eller CVS.
För att lättare kunna läsa din egen kod rekommenderar vi dig att välja en kodningsstil för ditt projekt och sedan hålla dig till det så länge du arbetar med projektet.
Linuxutvecklaren Linus Torvalds har skrivit en sida om ämnet som du kan läsa, Linux kernel coding style. Precis som Torvalds skriver så kan du ta hjälp av verktyget indent. Det är så klart inte bara du själv som kommer ha nytta av det här, även andra som läser din kod kommer tacka dig.
Gör man en undersökning om vad som är viktigast kommer man troligen få lika många svar som deltagande, men kanske det viktigaste är tålamod för det tar tid att lära sig skriva bra kod.
När du känner att du behärskar grunderna kan det vara en kul grej att skriva källkoden till en robot i spelet robocode och utmana dina vänner. Till sist vill vi avsluta med att citera en kollega som svarade så här på din fråga,
”Släng på en kanna kaffe, avboka dygnsrytmen, hitta på något att programmera som hade gjort dig glad, sluta inte förrens det fungerar.
Dina hjälpmedel är manualer, api-referenser, google och irc.
Vilket språk du väljer spelar kanske inte så stor roll, du kan ju skriva något simpelt test-program på sådär 20-30 rader i ett par olika språk och se vilket du tycker känns mest intuitivt. Det går alltid att lära sig andra språk när man redan kan programmera.”
PS. För Python finns det nybörjartext på denna länk, http://wiki.python.org/moin/BeginnersGuide/NonProgrammers.