Arkiv för inlägg med etikett: Codecademy

Sedan jag började blogga om olika sätt att lära sig programmera har jag stött på ett stort antal verktyg och resurser, avsedda för nybörjare i olika åldrar. En del har jag hittat via andra bloggar, artiklar och Twitterinlägg. En del har ni läsare/följare tipsat om. Några har jag själv blivit riktigt förtjust i, och puffat för i tidigare inlägg. Andra har jag bara testat lite grann och vissa har jag ännu inte hunnit prova alls.

De här verktygen har nu blivit så många att jag känner att det är dags att sammanställa dem i en lista (inte minst för min egen skull, så att jag inte glömmer bort något). Först tänkte jag dela upp dem i barn- och vuxenverktyg. Men det är rätt svårt att bestämma var gränsen ska dras. Jag har själv haft nytta av – och framför allt mycket kul med – verktyg som egentligen är avsedda för barn. Och många äldre barn som är duktiga på engelska kan säkert använda de verktyg som är till för vuxna. Så här följer de i stället rakt upp och ner, i den ordning de dök upp i mitt huvud.

1. Scratch

Scratch är ett visuellt programspråk och ett utvecklingsverktyg. Eller, lite enklare uttryckt, ett program där man ”pusslar” ihop kod i stället för att skriva den. Scratch är i första hand avsett för barn mellan 8 och 16 år, men kan förstås användas oavsett ålder. Med Scratch kan man skapa spel, animationer med mera. Man kan även dela med sig av sina projekt, och kolla in andras, på Scratchs webbplats. Kom nyligen i en ny version, som körs direkt i webbläsaren. Finns, till skillnad från flertalet verktyg nedan, på svenska.

2. Snap

Snap, eller Build Your Own Blocks som verktyget tidigare kallades, är en vidareutveckling (”extended reimplementation”, heter det på hemsidan) av Scratch. Till skillnad från originalet kräver Snap inte Flash för att fungera. Å andra sidan finns det inte på svenska och de sociala funktionerna tycks vara begränsade. Är snarare avsett för gymnasie- och högskolestudenter än för mindre barn.

3. Tynker

Tynker är ännu en Scratch-variant, som i skrivande stund bara är tillgänglig för skolor men som ”snart” (enligt hemsidan) ska släppas för privatpersoner. Körs i webbläsaren, kräver inte Flash.

4. Hopscotch

Även Hopscotch påminner rätt mycket om Scratch, men har betydligt färre funktioner och körs på Ipad. Kan användas för att skapa animationer av enklare slag (enligt tillverkaren kan man även göra spel). Rekommenderas (av tillverkaren) för personer från 8 år och uppåt.

5. Daisy the Dinosaur

Hopscotch-folket ligger även bakom Daisy the Dinosaur, en liknande Ipad-app som tycks vara avsedd för något yngre barn. Här gäller det att skapa små program som får dinosaurien Daisy att röra sig på skärmen. Det ska också gå att skapa ett eget spel om man laddar ner ett speciellt kit.

6. Greenfoot

I Greenfoot, som beskrivs som en interaktiv utvecklingsmiljö, lär man sig objektorienterad programmering i Java. Enligt Wikipedia är Greenfoot främst tänkt att användas i utbildningssyfte, på gymnasienivå och uppåt. Ska kunna användas för att skapa spel, simuleringar och andra grafiska program. Är plattformsoberoende och laddas ner här (observera att man även måste ha Java Development Kit, JDK,  på datorn).

7. Kids Ruby

Kids Ruby är ett barnanpassat utvecklingsverktyg för programmering i Ruby. Verktyget har en hjälpmeny med texter om bland annat programmeringens grunder, sköldpaddsgrafik och spelprogrammering med ramverket Gosu. Finns här för Windows-, Mac- och Linuxdatorer (inklusive Raspberry Pi). Kommer snart i en svensk version!

8. Hackety Hack

De programmerare som ligger bakom Kids Ruby har hämtat inspiration från Hackety Hack, som är ett snarlikt verktyg. Hackety Hack skapades ursprungligen av den i Rubykretsar smått legendariske programmeraren Jonathan Gillette, mer känd som ”why the lucky stiff”.

9. Codecademy

Codecademy är en utbildningssajt med interaktiva kurser i Ruby, Python, Javascript med flera programspråk. I takt med att man klarar av de olika övningarna samlar man på sig poäng och medaljer. Det finns också olika grupper för den som vill diskutera, koda tillsammans med och lära sig av andra användare.

10. Code School

En annan sajt som erbjuder interaktiva kurser i programmering är Code School. Här finns också instruktionsvideor. Flertalet kurser och filmer är bara tillgängliga för betalande prenumeranter, men det finns en hel del gratismaterial. På Code School kan man, förutom t ex Ruby, Javascript och HTML/CSS, lära sig att koda Ipad- och Iphone-appar.

11. Try Ruby

Code School driver även Try Ruby, en sajt som ursprungligen skapades av ”why” (se Hackety Hack ovan) och som för undertecknad var inkörsporten till språket Ruby. Interaktiv tutorial som bara tar cirka en kvart att slutföra. Sedan kan man med fördel gå vidare till Codecademys eller Code Schools kurser.

12. Khan Academy

Khan Academy är ytterligare en utbildningssajt som dock har ett betydligt bredare utbud än de ovan nämnda. Här kan man studera såväl konsthistoria som organisk kemi, men också få en introduktion till programmering (se under ”Computer Science”).

13. Code Monster

Code Monster är en interaktiv tutorial i Javascript avsedd för barn. Man skriver koden i en ruta och ser omedelbart resultatet i rutan bredvid. Genom att följa instruktionerna från kodmonstret (som pratar engelska) får man stegvis lära sig grundläggande saker som variabler, loopar och villkorssatser.

14. Eloquent Javascript

En annan, betydligt mer krävande, ingång till Javascript är Eloquent Javascript, som är en e-bok med interaktiva exempel/övningsuppgifter. Också en bra grundbok i programmering, för den ambitiösa nybörjaren.

15. Kojo

Kojo beskrivs som ett lärandeverktyg för programmering och matematik. Finns i en svensk version och kan användas för att skapa sköldpaddsgrafik, musik, animeringar, spel med mera. Bygger på programspråket Scala och kan antingen köras direkt från webben eller laddas ner. Kräver Java.

16. Kodu Game Lab

Med Kodu Game Lab kan ungarna skapa egna 3D-spel. Om de begriper hur man gör, vill säga. Kodu är visuellt häftigare än Scratch men också, enligt min mening, svårare att komma igång med. Som tur är finns det gott om instruktionsvideor, både på Kodus webbplats och på Youtube. Det är Microsoft som ligger bakom Kodu, och verktyget är således endast tillgängligt för Windows. Laddas ner här.

17. Alice

Alice är ett annat alternativ för dig som tycker att två dimensioner är en för lite. På hemsidan beskrivs Alice som en miljö för 3D-programmering som man kan använda för att skapa animationer, spel och videor. Tanken är att programmet ska ge en första introduktion till objektorienterad programmering. Kräver, liksom Greenfoot ovan, JDK för att fungera och kan laddas ner här (senaste versionen, även tidigare versioner finns tillgängliga på sajten).

18. Processing

Processing är ett programspråk och en utvecklingsmiljö som, enligt hemsidan, lär ut programmeringens grunder ”i en visuell kontext”. Programspråket beskrivs på Wikipedia som en förenklad version av Java. Kan köras på Windows-, Mac- och Linuxdatorer och laddas ner från webbplatsen, där man också kan titta på den här filmen om kreativ programmering med Processing.

19. Code Avengers

Roligt och effektivt lärande för alla åldrar utlovas på Code Avengers, som är en annan sajt med interaktiva tutorials. Här kan man lära sig Javascript och HTML/CSS. De första lektionerna är gratis, vill man sedan gå vidare till högre nivåer så kostar det en liten slant.

20. Sommarprogrammering.se

Sommarprogrammering.se
är en sajt som Stockholms universitet och KTH ligger bakom. Via den kan man skapa ett kurskonto och sedan gå en liten webbkurs i programmering. Det programspråk som används är Python. Man får även lära sig att använda ett terminalfönster i Windows/Unixliknande system. Observera att ingen formell ansökan till kursen krävs, utan man får tillgång till kursmaterialet direkt efter registrering. Man kan alltså gå den ”på skoj”.

Här väljer jag att dra ett streck för listan, även om jag har ytterligare några kandidater i bakhuvudet. Som synes har jag inte tagit med ”programmeringsspel” som Move the Turtle och Cargo-Bot – om dem har jag skrivit i en tidigare bloggpost. Ej heller har jag listat ”vanliga” e-böcker eller tutorials, utan ett krav har varit någon form av interaktivitet. Ett annat kriterium har varit att verktygen ska vara gratis.

Har jag missat något verktyg som absolut förtjänar att vara med? Posta gärna en länk i kommentarsfältet!

/Mats

PS. Om du absolut känner att du måste ha mer att välja på hittar du ytterligare några utbildningssajter/interaktiva tutorials här och ett stort antal resurser för kodande barn här.

Ni som har besökt den här bloggen mer än en gång har förmodligen märkt att jag under en period har varit rejält insnöad på Ruby. Och även om jag nu tycker att jag behärskar grunderna så finns det oerhört mycket kvar att utforska i Rubyvärlden. När det till exempel gäller det stora området webbapplikationer, och ramverk som Ruby on Rails och Sinatra, har jag bara skrapat lite på ytan.

Ändå har jag nu tänkt göra ett allvarligt försök att lära mig ytterligare ett nytt programspråk. Och det blir inte C++, som jag började känna lite på när jag i fjol återupptog programmeringen efter ett uppehåll på nästan två decennier, utan Javascript. En av orsakerna är att jag ofta stöter på Javascript när jag kikar på andras program, och försöker förstå hur de fungerar. Ett annat tungt vägande skäl är helt enkelt att det verkar lätt att komma igång och göra roliga saker, som grafik och spel, med Javascript.

Till att börja med tänker jag genomgå den här webbkursen om Javascript på Codecademy. Jag gillade Codecademys Rubykurs skarpt och är överhuvudtaget förtjust i modellen med interaktiva kurser. Jag ska också plöja Eloquent Javascript av Marijn Haverbeke, en gratis e-bok som du hittar här. Tips på andra bra tutorials och böcker om grunderna i Javascript mottages tacksamt (kommentera nedan eller skriv till mig på Twitter).

Barnen då? Jag kanske har fel, men jag tror inte att de är riktigt mogna för att programmera i Javascript i någon större utsträckning. Nioåringen har precis börjat bekanta sig med Ruby, som för mig känns betydligt lättare att förstå och mer intuitivt. Helst använder han dock, precis som sjuåriga dottern, fortfarande Scratch. Men visst ska jag försöka involvera dem åtminstone lite grann i mina Javascript-experiment, och då tänker jag ta hjälp av två andra böcker.

DSC_0743

Den första har jag redan läst en hel del i. Den heter Spelprogrammering.nu och är skriven av Mikael Tylmad och Pontus Walck (bild ovan). Jag tycker att de tar sig an ämnet på ett bra sätt – utgångspunkten är att det ska vara roligt att koda redan från början. Det betyder inte att de väjer för de svåra bitarna. Boken innehåller matnyttiga avsnitt om såväl objektorientering som programmering och matematik/fysik. På webbplatsen spelprogrammering.nu hittar du alla exempel från boken och annan bra information.

Den andra boken som jag ska använda för att försöka imponera på ungarna heter 3D Game Programming for Kids och är skriven av Chris Strom. Boken, som kan köpas här, är än så länge bara släppt i betaversion – den är med andra ord inte riktigt klar. I priset (24 dollar för e-boken) ingår dock även slutversionen. Jag har bara bläddrat lite i boken, men den verkar lovande.

Det faktum att jag nu ska grotta ner mig i Javascripts värld kommer förmodligen att innebära en bloggpaus på några veckor. Men jag räknar med att blogga igen innan våren är här. Hej!

/Mats

Ett bra sätt att lära sig programmera är att – programmera. Det kan låta som en tom floskel, men jag tycker att det är en rätt bra devis: även om jag vid det här laget har läst en hel del om programmering så är det oftast när jag har suttit och lekt med något litet program som polletterna har trillat ner på allvar.

Att teori bör förenas med praktik är också något som folket bakom Codecademy, en webbplats med interaktiva kurser i programmering, har tagit fasta på. Redan på sajtens startsida börjar man koda i den integrerade editorn. Sedan kan man välja mellan olika ”spår”, kurser i olika programspråk/ämnen. Själv har jag i skrivande stund betat av de fyra första delkurserna i Rubyspåret. Än så länge har jag inte stött på så mycket nytt, men det är ju aldrig fel med repetition. (Dessutom får man poäng och medaljer för varje avklarat moment, vilket man kan skryta om i sociala medier.)

Codecademy startades 2011 och konceptet har på flera sätt varit mycket framgångsrikt: sajten har hundratusentals registrerade användare och dessutom ett helt knippe riskkapitalbolag i ryggen. Hur Codecademy ska tjäna pengar och generera avkastning till ägarna är dock, vad jag förstår, än så länge oklart.

Hur som helst är sajten en finfin resurs för den som vill lära sig koda. Och det finns förstås fler sajter som lär ut programmering på ett interaktivt sätt. Ett exempel är Try Ruby, som för mig var själva inkörsporten till språket Ruby, och här ligger en hel lista med liknande webbplatser (tack igen, Sven!).

Så vad väntar du på? Testa ett nytt programspråk redan i kväll, vet jag! För egen del tänker jag ta mig an Codecademys kurs i Javascript. Ska bara samla lite mer poäng och medaljer på Rubykursen först.

/Mats