Lära sig programmering: skolan väljer C++

Pratade med grabben idag om skolan och de kurser i programmering som han kommer att få ta nästa år.


Enligt honom så lär skolan ut C++!? Hur tänkte man då? C++ är ett av de svåraste programmeringsspråk som finns.


Jag vet vad jag pratar om, jag har programmerat flera år i C++. 1995 släpptes Java och det är det populäraste språket idag. Det är betydligt lättare att lära sig. Det är betydligt lättare att hitta ett jobb som Java-programmerare än i något annat programmeringsspråk.


Nu börjar det i o f bli en viss brist på C++ programmerare eftersom de fortfarande finns gamla system som behöver underhållas. Spelprogrammering görs fortfarande i C++ eftersom det fortfarande anses vara det som ger bäst prestanda. Detta är antagligen inte sant längre nu när Java har utvecklats under många år.


En annan anledning kan vara att det finns inte möjlighet att programmera i Java till konsoler som X-Box.


Med spel så menar jag spel till PC, Playstation och X-box. Online spel som poker är så gott som alltid skrivna i Java.


Dock: varför ge ungdomar en så svår start?


Grabben tog ett tag till med programmering

Igår fick grabben prova lite mer programmering. Uppgiften var att slumpvis välja en karaktär till WoW.

Inte så enkelt som man kanske tror. Dessutom introduktion till Eclipse, utvecklingsmiljön. Mycket att smälta på ett kort kvällspass.

Vi kom bara till att välja sida (faction) och ras. Sedan ska man utifrån ras välja en klass. Kruxet är att givet en ras så är det olika klasser som är möjliga. Är man en "Blood Elf" kan man inte vara "Warriror".

Så den informationen måste struktureras upp på ett sätt att det blir enkelt att plocka fram den.

Vi han prata om det lite grann och han blir smått frusterad av att jag säger "det finns fler sätt".  Det är liksom inte som i skolan att det finns ett rätt svar, annat än att programmet ska göra rätt. Men hur, där finns det många svar.

Lära sig programmering

Ja, det är dags för ämnet igen. En viss grabb i min närhet har nu blivit utsatt för mitt första försök att lära någon programmera. Han saknar helt förkunskaper och är 16 år. Intresse finns.

Vi har haft en bok som utgångspunkt "Head First Java".  Häromdagen hade vi en kort genomgång så nu vet han vad en klass är och hur den ska ligga i en fil. Han har lärt sig statement och loop samt "curly braces". Max en timme.

Från boken tog jag en idé om att sätta upp ett program, sönderklippt, på kylskåpet med magneter. Uppgiften gick ut på att arrangera om snuttarna så att programmet, när det exekverade, skrev ut en liten text.

Jag trodde att det var för svårt. Jag trodde han inte skulle tycka det var kul. Jag hade väldigt fel.

Med lite hjälp att "exekvera" så klarade han det, trots att jag inte presenterat villkorliga uttryck tidigare så förstod han det ändå.

Jag är imponerad.




Lära sig programmera, del 3


Nu har jag tittat lite på en släkting till BlueJ, Greenfoot. Den påminner om BlueJ och kommer också den från Australiens universitetsvärld. Jag hittade den via länk från Bluej:s sida. Faktum är att den verkar bygga helt på BlueJ. Tittar man i installationskatalogen hittar man bluej.jar m.fl.

Greenfoot riktar sig till en yngre publik, tonåringar gissar jag. Redan från start har man en tvådimensionell grafik att börja med och tutorial handlar om wombats som äter blad. Man ger figurerna ett beteende och sedan startar man världen varpå de kutar runt och äter de löv de hittar.

Jag tycker att det är en bra idé men samtidigt märker jag ett problem med både Alice och Greenfoot, det som lockar är det grafiska. Samtidigt är det också det som gör det svårare. Grafik blir snabbt "matematiskt" och det kan avskräcka en del.

wombat En wombat.

Här är en lärare som bloggar om Greenfoot.

Jag funderar fortfarande hur man skulle koppla ihop det här med webb. Ett problem med webb är ju att det är alltid så många parametrar och andra tekniska detaljer som man ska kunna. Det måste man reducera för att en complete noob inte ska ge upp direkt.

Mera om lära sig programmera

Jaha, provade lite Alice och det var småkul. Visserligen är själva 3D-motorn trist men det gav en del nya tankar. Detta med halvfärdiga kodrader som man stoppar in i en slags editor var en sak. Sedan introduktionen av att köra flera av saker samtidigt "Do together".

Men det känns som det finns en bit kvar för Alice innan det blir bra.

Som en händelse fick jag ett mail från BlueJ så jag laddade ner den senaste versionen. Här fokuserar man på den objektorienterade aspekten.

BlueJ låter dig skapa klasser i ett klassdiagram som sedan du kan editera Java-koden för med en inbyggd editor. Du har en liten yta som du kan instansiera objekt från klasserna genom att köra konstruktorn. Sedan kan du köra instansmetoder på objekten. Blir visuellt.

Känns rätt men kanske kan vara svårt att motivera människor om de inte får se lite grafik eller webbsidor.

Just i kombination med webbsidor skulle vara en skön idé. Typ att man skapar sitt formulär som syms i BlueJ och sedan kan man köra lite flödeslogik på servern.

Kanske Java 6 innehåller tillräckligt för att göra detta möjligt. En Derby-databas och webservice till det...hm...

Tyvärr verkar det vara lite problem med kvalitén eftersom BlueJ hänger sig när jag ska skapa en Jar. Men jag kanske bara ska ha lite mer tålamod.

Dagens dumheter: Lär någon att programmera

Aktuellt idag..

Arbetar med prestandaproblemen på jobbet. Nästa vecka drar vi på med 8 veckors kap-test. Tog mig attans tid att hitta ett fel som jag rättade idag. I testfallen. Min vanliga approach är att förstå felet innan jag fixar det. Lönar sig alltid. Men jag kan inte förklara att testfallen gav grönt på UNIX och rött i Windows.

Tittade igår på Alice. Har haft tankarna snurrande lite kring hur man lär sig programmera. Idag hittade jag en sida med diskussioner om ämnet som började med en fråga om hur man lär någon programmera som inte är så intresserad. I det här fallet var det en som gjorde webbsajter åt folk och drog sig fram genom att hitta kodsnuttar utan att fatta vad han gjorde. Sign of the times. Vi gör så nu för tiden.

Hursomhelst. Alice kan verkligen bli något sedan EA släppt sina SIMS-figurer till Alice och de som jobbar med Alice insett att hitta på en helt egen syntax ger problem vid övergången till riktig Java.

(Skulle skapa en länk men fick timeout, den här sajten alltså e ju seg)

Hsh så hittar jag tillbaka till ämnet om lära sig programmera, då och då. Tidigare har jag tittat på BlueJ och mitt arbete på IT-arkitekt kursen handlade ju om Naked Objects. Min sida om NO fick faktiskt en lärare från KTH att ringa.

Idag kollade jag en del om att använda Ruby som språk för att lära sig. Hittade faktiskt en interaktiv kurs där man kunde skriva koden i webbläsaren och så kördes det . Var ju kul tills man kom till hakparanteser som används till arrayer. Då verkade det inte fungera med svenskt tangentbord. Öhhh.

Nåväl, vilken novell, Alice satsar på 3D-grejer som kan röra sig så man kan göra små filmer eller interaktiva prylar. Klart roligare än att lära sig plussa variabler på en kommandorad.

Da coolest var att jag rätt snabbt sprang på TECH som de gjorde på MIT tror jag det var. När? 1970!

I ingressen skrev man att det kunde lära studenter programmera och kunna bli kommersiellt bara man gjorde en remake. Vilka drömmare vi programmerare är och har alltid varit. He he. Vi lever på drömmar om koola progs som vi ska skriva. Har en hel hög själv.

RSS 2.0