Programmer 101: Lær dig selv at kode

Du har altid gerne villet lære at bygge software selv – eller bare lave et script – men du har aldrig vidst, hvor du skulle begynde. Heldigvis er nettet fyldt med gratis ressourcer, der kan gøre dig til programmør på ingen tid.

Reneste video

Denne browser understøtter ikke video-elementet.

Siden opfindelsen af internettet har programmører brugt det til at diskutere teknikker til softwareudvikling, offentliggøre vejledninger og dele kodeeksempler, som andre kan lære af og bruge online. Hvis du er nysgerrig efter at vide, hvordan du bliver programmør, kan du komme godt fra start ved hjælp af tonsvis af gode gratis webbaserede vejledninger og ressourcer.

Først og fremmest: Bliv ikke hængt op på at vælge sprog

G/O Media kan få provision

Reklame

En almindelig faldgrube for begyndere er at gå i stå med at finde ud af, hvilket programmeringssprog der er bedst at lære først. Der er mange meninger derude, men der findes ikke ét “bedste” sprog. Her er sagen: I sidste ende er sproget ikke så vigtigt SÅ meget. Forståelse af data- og kontrolstrukturer og designmønstre betyder meget. Ethvert sprog – selv et simpelt scriptsprog – vil indeholde elementer, som du også vil bruge i andre sprog og som vil hjælpe dig med at lære. I de fag, jeg tog for at få min uddannelse i datalogi, programmerede jeg i Pascal, Assembly og C – sprog, som jeg faktisk aldrig blev betalt for at programmere professionelt. Jeg har lært mig selv alle de sprog, jeg har brugt i min karriere, ved at genbruge begreber, jeg allerede kendte, og ved at henvise til dokumentation og bøger for at lære syntaksen. Så du skal ikke være bundet af, hvilket sprog du skal lære først. Vælg den form for udvikling, du vil lave, og kom bare i gang med at bruge et, der virker.

Der er flere forskellige former for softwareudvikling, du kan lave til forskellige platforme, fra internettet til dit skrivebord til din smartphone og til en kommandolinje. I denne artikel vil vi beskrive nogle af vores foretrukne startvejledninger og ressourcer til at lære dig selv at programmere til hver større platform. Vi går ud fra, at du er en kyndig bruger, men en nybegynder, når det gælder om at håndtere kodestumper, så vi holder tingene på begynderniveau. Selv ved blot at følge en begynderprogrammeringsvejledning vil du blive glad for at se, hvor langt du kan komme.

Vejledning

Desktop Scripting

Den nemmeste måde at prøve kræfter med programmering til dit Windows- eller Mac-skrivebord er at starte med et scripting- eller makroprogram som AutoHotkey (til Windows) eller Automator (til Mac). Lige nu råber hardcore kodere i hele Lifehacker-læserkredsen op ad deres skærme og siger, at AHK eller AppleScript ikke er “rigtig” programmering. Det er måske rigtigt – teknisk set laver disse typer værktøjer bare scripting på højt niveau. Men for dem, der er nybegyndere inden for programmering, og som blot ønsker at komme i gang med at automatisere handlinger på deres skrivebord, er disse gratis værktøjer en fantastisk måde at starte på – og du vil blive overrasket over, hvor meget du kan gøre med dem.

Vejledning

For eksempel har Adam udviklet det selvstændige Windows-program, Texter, som vi alle kender og elsker, ved hjælp af AutoHotkey, så dette scriptsprog er i stand til langt mere end blot små automatiseringsprojekter. Hvis du vil i gang med AutoHotkey, kan du se Adams vejledning om, hvordan du kan omdanne enhver handling til en tastaturgenvej ved hjælp af AutoHotkey. (Tjek derefter kildekoden til Texter for at se indmaden i et fuldgyldigt AHK-baseret Windows-program.)

Reklame

Webudvikling

I stedet for at være bundet til bestemte programmeringssprog og et bestemt styresystems udseende kan du lægge dit dræbende program i browseren og køre det i skyen, som en webapp. Velkommen til den vidunderlige verden af webudvikling.

Vejledning

HTML og CSS: Det første, du skal vide for at kunne opbygge et websted, er HTML (den sideudmærkning, der udgør websider) og CSS (de stiloplysninger, der får denne udmærkning til at se pæn ud). HTML og CSS er ikke egentlige programmeringssprog – de er blot sidestruktur og stiloplysninger. Du bør dog være i stand til at skrive simpel HTML og CSS i hånden, før du begynder at bygge webapplikationer, fordi en webside er frontend for enhver webapplikation. Denne HTML-vejledning er et godt sted at starte.

JavaScript: Nu, hvor du kan layoute en statisk webside med HTML og CSS, bliver det sjovt – for det er tid til at lære JavaScript. JavaScript er webbrowserens programmeringssprog, den magi, der får dynamiske effekter på siderne til at fungere. JavaScript er også det stof, der bruges i bookmarklets, Greasemonkey-bruger scripts og Ajax, så det er nøglen til at lave alle mulige webgodbidder. Begynd at lære JavaScript her.

Reklameannonce

Server-side scripting: Når du er god til at få ting til at ske inde på en webside, bliver du nødt til at sætte noget dynamisk serverhandling bag det – og til det skal du overgå til et server-side scripting-sprog som PHP, Python, Perl eller Ruby. Hvis du f.eks. skal lave en webbaseret kontaktformular, der sender en e-mail et sted hen på baggrund af det, brugeren har indtastet, er der brug for et script på serversiden. Scriptingsprog som PHP kan også tale med en database på din webserver, så hvis du vil lave et websted, hvor brugerne kan logge ind og gemme oplysninger, er det den rette vej at gå. Det fremragende webudviklingssite Webmonkey er fuld af vejledninger til forskellige webprogrammeringssprog. Se deres PHP Tutorial for begyndere. Når du er klar, kan du se, hvordan du bruger PHP til at tale med en database i Webmonkey’s PHP and MySQL tutorial. PHP’s online-dokumentation og funktionsreference er den bedste på nettet. Hver post (som denne om strlen-funktionen) indeholder brugerkommentarer i bunden, som ofte er lige så nyttige som selve dokumentationen. (Jeg er tilfældigvis partisk for PHP, men der er masser af andre server-side scripting-sprog, som du måske vælger i stedet.)

Anbefaling

Webframeworks: I årenes løb har webudviklere været nødt til at løse og løse de samme problemer og omskrive lignende kode for at opbygge dynamiske websteder. For at undgå, at alle skal genopfinde hjulet for hvert nyt webudviklingsprojekt, har nogle programmører udviklet udviklingsrammer, som gør noget af det gentagne arbejde for dig. Den populære Ruby on Rails-ramme tager f.eks. udgangspunkt i Ruby-programmeringssproget og tilbyder en webspecifik struktur til at få udført almindelige webapplikationsopgaver. Faktisk brugte Adam Rails til at bygge sin første seriøse (og imponerende!) webapplikation, MixTape.me. Her er hans bud på, hvordan man kan bygge et websted fra bunden uden erfaring. Andre populære rammer for webudvikling omfatter CakePHP (for PHP-programmører), Django (for Python-programmører) og jQuery (for JavaScript).

Anvisning

Web-API’er: En API (Application programming interface) er en programmatisk måde, hvorpå forskellige stykker software kan tale sammen på. Hvis du f.eks. ønsker at indsætte et dynamisk kort på dit websted, skal du bruge et Google Map i stedet for at bygge dit eget tilpassede kort. Google Maps API gør det nemt at inkludere et kort i en side på programmatisk vis med JavaScript. Næsten alle moderne webtjenester, som du kender og elsker, har et API, som gør det muligt at inkludere data og widgets fra dem i din applikation, f.eks. Twitter, Facebook, Google Docs, Google Maps og listen fortsætter. Integrering af andre webapps i din webapplikation via API’er er den sidste grænse for rig webudvikling. Alle gode, store webtjeneste-API’er tilbyder grundig dokumentation og en slags quick start-guide til at afprøve den (her er f.eks. Twitters API). Go crazy.

Anvisning

Command Line Scripting

Hvis du ønsker at skrive et program, der tager tekst- eller filinput og udsender noget nyttigt, er kommandolinjen det rette sted at gøre det. Selv om kommandolinjen ikke er så sexet eller flot som en webapp eller desktop-app, kan du ikke slå den til hurtig udvikling af hurtige scripts, der automatiserer processer.

Vejledning

Flere scriptingsprog, der fungerer på en Linux-baseret webserver, fungerer også på kommandolinjen, f.eks. Perl, Python og PHP – så hvis du lærer et af disse slemme sprog, bliver du fortrolig med to sammenhænge. Min vej førte mig aldrig alt for langt ned ad Perl-vejen, men jeg lærte mig selv Python ved hjælp af den fremragende og gratis online-bog Dive into Python.

Rådgivning

Hvis det at blive en Unix-ninja er et af dine programmeringsmål, skal du absolut blive god til shell-scripting med bash. Bash er kommandolinjens scriptsprog i et *nix-miljø, og det kan gøre alt fra at hjælpe dig med at opsætte automatiserede sikkerhedskopier af din database og dine filer til at opbygge et fuldgyldigt program med brugerinteraktion. Uden nogen erfaring med at skrive bash-scripts ud over et dusin linjer endte jeg med at udvikle en komplet personlig to-do list manager i bash, Todo.txt CLI.

Add-ons

Nu til dags kan moderne webapps og browsere udvides med bits af software, der kan skrues på dem og tilføje funktioner. Udvikling af tilføjelser bliver mere og mere populært, da flere udviklere ser på eksisterende software, som Firefox eller WordPress, og tænker “Men hvis bare den kunne gøre DETTE…”

Anvendelse

Du kan gøre en hel masse i enhver webbrowser med blot en beherskelse af HTML, JavaScript og CSS. Bookmarklets, Greasemonkey-brugermanuskripter og Stylish-brugerstilarter oprettes med de samme kodestykker, som danner almindelige websider, så det er værd at lære dem, selv hvis du blot ønsker at justere et eksisterende websted med en lille kodestump.

Mere avancerede browsertilføjelser, som f.eks. Firefox-udvidelser, giver dig mulighed for at gøre mere. Udvikling af Firefox-udvidelser kræver f.eks., at du er fortrolig med JavaScript og XML (markup, der ligner HTML, men er langt mere stringent i formatet). Tilbage i 2007 gennemgik jeg, hvordan man opbygger en Firefox-udvidelse, en færdighed jeg lærte efter at være faldet over en gratis vejledning.

Reklame

Mange gratis og elskede webapplikationer tilbyder også en ramme for udvidelser, f.eks. WordPress og MediaWiki. Begge disse programmer er skrevet i PHP, så komfort med PHP er en forudsætning for at komme i gang. Her kan du se, hvordan du skriver et plug-in til WordPress. Udviklere, der vil være med på forkant med Google Wave, kan komme i gang med at skrive gadgets og bots i HTML, JavaScript, Java og Python. Jeg skrev min første Wave-bot efter denne vejledning til hurtigstart på en eftermiddag.

Anvisning

Webudvikling til skrivebordet

Det bedste ved at komme i gang med at programmere i én sammenhæng er, når du kan tage disse færdigheder med dig og anvende dem andre steder. At lære webudvikling først er en god måde at starte på, fordi der nu er måder at bruge disse færdigheder til at arbejde på desktop-applikationer også. Adobe AIR er f.eks. et køretidsmiljø på tværs af platforme, som giver dig mulighed for at bygge din app én gang og frigive den til at køre på skrivebordet for alle de operativsystemer, som AIR kører på. AIR-apps er skrevet i HTML, Flash eller Flex, så det giver dig mulighed for at anvende dine færdigheder inden for webudvikling i en desktopkontekst. AIR er en god mulighed for at udrulle desktop-apps som f.eks. en af vores 10 bedste apps, der er værd at installere Adobe AIR til.

Reklame

Udvikling af mobilapps

Mobilapplikationer som dem, du kører på din iPhone eller Android-smartphone, er i høj kurs lige nu, så du har måske drømme om at gøre et stort kup i iTunes App Store med den næste killer-app. For den nye programmør kan det dog være en hård indlæringskurve at kaste sig hovedkulds ud i mobiludvikling, da det kræver, at man er fortrolig med avancerede programmeringssprog som Java og Objective C. Det er dog værd at se, hvordan iPhone- og Android-udvikling ser ud. Se dette enkle eksempel på udvikling af iPhone-applikationer for at få en forsmag på, hvad iPhone-udviklere laver. Android-apps skrives i Java, og her er en venlig videovejledning om, hvordan opbygningen af en “Hello Android”-applikations workflow ser ud.

Rådgivning

Tålmodighed, albuefedt, forsøg og fejl

Gode programmører er en særlig race af ihærdige problemløsere, der er afhængige af de små sejre, der kommer langs en lang vej med forsøg og fejl. At lære at programmere er meget givende, men det kan også være en frustrerende og ensom oplevelse. Hvis du kan, så få en kammerat til at arbejde sammen med dig undervejs. At blive rigtig god til at programmere er som alt andet et spørgsmål om at holde fast i det, prøve ting af og få erfaring undervejs.

Rådgivning

Denne artikel er blot en selvlært programmørs top-of-mind-anbefalinger til nybegyndere. Erfarne programmører: Hvad er jeg gået glip af? Uanset dit færdighedsniveau kan du tilføje dine tanker og anbefalinger til begyndere i kommentarerne.

Gina Trapani, Lifehackers stiftende redaktør, mener, at de bedste programmører er autodidakte. Hendes ugentlige feature, Smarterware, udkommer hver onsdag på Lifehacker. Abonner på Smarterware-tag-feed for at få nye afsnit i din nyhedsoplæser.

Reklameannonce

Skriv en kommentar