Re-learning to code

Home / Blog / Re-learning to code
Re-learning to code

Ik heb het gemist het programmeren maar ik heb het weer opgepakt. Sinds vorige maand heb ik mijn prioriteiten zo ingedeeld dat programmeren de hoogste is geworden. Waarom? Omdat ik weet hoe leuk ik het vond toen ik het 20 jaar geleden mee bezig was en ook omdat ik niet afhankelijk wil zijn van prototype software om mijn prototypes te maken. Ik wil gewoon werkende code kunnen opleveren en wie weet misschien wel bijspringen in een front-end team. Een andere motivator is om mijn kinderen het programmeren bij te brengen. Ik vind het even belangrijk als leren lezen en schrijven en ik wil ze graag kunnen helpen. Ik hoor je denken: “What happend? Waarom ben je gestopt met programmeren?”
Ik zal het je vertellen…

 

Assembler

Het begon allemaal op mijn 17e. Ik vond computers supertof. Mijn broer en ik waren er dag en nacht mee bezig en ik had besloten dat ik wilde leren hoe een computerprogramma werkt. Daarom besloot ik Technische Informatica te gaan doen. Op de Middelbare Technische School kreeg ik voor het eerst te maken met programmeren en wel ik de pre-historische Assembler, een low-level programmeertaal die niet zo zeer een taal is maar meer werkt op basis van machineinstructies. Ik weet nog dat ik kilometers code (instructies) moest typen voor ik het zinnetje “Hello World” op het scherm kreeg, waar ik SUPERtrots op was. Ge-wel-dig vond ik het! Het feit dat ik de computer kon vertellen wat hij moest tonen op het scherm. Kijk, ik heb de code even opgezocht:

************* Assembler code voor "Hello World" **********************
section	.text
   global _start     ;must be declared for linker (ld)
	
_start:	            ;tells linker entry point
   mov	edx,len     ;message length
   mov	ecx,msg     ;message to write
   mov	ebx,1       ;file descriptor (stdout)
   mov	eax,4       ;system call number (sys_write)
   int	0x80        ;call kernel
	
   mov	eax,1       ;system call number (sys_exit)
   int	0x80        ;call kernel

section	.data
msg db 'Hello, world!', 0xa  ;string to be printed
len equ $ - msg     ;length of the string

***************************************************************

Pascal

Na Assembler kwam Pascal met zijn signature begin en end instructies. Ik weet nog goed dat ik een vriend in de klas had, die heel goed was met Pascal. Hij had zelfs een grafisch spelletje voor zijn broertje geprogrammeerd. Ik was zo onder de indruk dat ik, nu ik er achteraf over nadenk, in die tijd over mijn “programmeerdrempeltje” ben gestruikeld. Ik was 17 jaar, perfectionistisch, zeer onder de indruk en daardoor heel onzeker geworden want waarom kon hij dat nou “zomaar” en ik niet? Waarom leek het allemaal Abcadabra voor mij? Ik vond het steeds moeilijker om in de klas, zittend naast die vriend, zo te stuntelen tot ik op een gegeven moment alleen nog maar thuis wildeprogrammeren want daar zou niemand me op de vingers kijken.

**************** Pascal code voor "Hello World"**********************
program HelloWorld;

begin
 writeln('Hello World');
end.
***************************************************************

Even over die onzekerheid en perfectionisme; kijk even naar deze interessante TedTalk over hoe meiden worden opgevoed om perfect en risicovermijdend te zijn en jongen om stoer em risicovol te zijn in relatie tot onder andere het leren programeren.

Java

Ondanks mijn onzekerheid was ik vastberaden om door te gaan in de computers en ging na de MTS naar de Hogeschool om daar Hogere Informatica te doen. Daar kreeg ik al snel Java en dat was een feestje. Ik was er verslingerd aan en ik heb zelfs een hele zomervakantie dag in en dag uit zitten Java’en. Het leukste was om grafisch vormen en fractals op het scherm te tekenen met Java. In die tijd hadden we nog geen dikke online programmeercomunities zoals Stackoverflow of handige online cursussen als freeCodeCamp. Nee, we deden het met boeken en ik weet zelfs de titel en auteur nog van mijn favoriete Java boek: “En dan is er Java…” van Gertjan Laan. De 1e druk ligt nog ergens in de berging met 100.000 aantekeningen erin. Met liefde heb ik het van kaft tot kaft doorgewerkt en heb er leuke herinneringen aan overgehouden.

************* Java code voor "Hello World"**********************
public class HelloWorld {

    public static void main(String[] args) {
        // Prints "Hello, World" to the terminal window.
        System.out.println("Hello, World");
    }

}
*************************************************************** 

C++

Toen kreeg ik C++ en kwam ik voor het eerst in aanraking met “Object georienteerd programmeren”. Ik leerde in classes (stukjes code die bij elkaar hoort) te programmeren en die stukjes te hergebruiken. Ik vond het zeer pittig maar dat kwam vooral omdat ik me zo druk maakte om wat anderen wel niet van mijn programmeer-skills zouden denken. (Precies wat Reshma verteld in haar TedTalk)  Wat ook niet hielp was dat er rond die tijd wat droevige gebeurtenissen in privé-sfeer gaande waren waardoor mijn focus en drive minder waren. Een naast familielid was ernstig ziek geworden. We moesten op de Hogeschool een text editor bouwen in C++ en dat is een moment geweest waarop ik voor het eerst dacht: “Wat voor editor moet het voor de gebruiker zijn? Wat heeft hij nodig? Zit hij wel op mijn editor te wachten”. Echter werd daar geen aandacht aan besteed in de les. Aldaar was de UX’er in mij wakker geworden.

************* C++ code voor "Hello World"**********************
#include 

main()
{
    cout << "Hello World!";
    return 0;
}
*************************************************************** 

PHP

De lessen op school gingen gewoon verder en PHP was toen enorm hot. Ik heb mijn 3e jaars stage gewerkt aan een PHP-opdracht en voor mijn afstudeerproject heb ik een formulierengenerator gemaakt met in PHP. Met die generator kon je blokken content plaatsen om zo formulieren te genereren die je dan in een database kon opslaan of kon uitprinten. Ondanks dat ik het wel heb afgemaakt was het niet het mooiste stukje werk dat ik ooit opleverde. Rond deze tijd was de zorg voor ons familielid mijn prioriteit en was programeren meer een blok aan het been dan een toffe bezigheid.

************* PHP code voor "Hello World"**********************
<! --php Print "Hello, World!"; -- >
*************************************************************** 

Van programeren naar UX

Mijn droom was om naar de Universiteit te gaan en nu ik de Hogeschool had afgerond werd het tijd om een vervolgstudie te kiezen. Ik was rond die tijd blijven hangen op een “programmeerplateau” ik had het gevoel dat de rest van de klas het veel sneller oppikte en ik zat er gewoon niet lekker in. Ik heb dit altijd heel erg jammer gevonden en achteraf bedenk ik me dat mijn koppie er toen gewoon niet naar stond in verband met alles wat er thuis gaande was. Een ding wist ik wel, ik wilde even niets meer met programeren doen want ik had mijn eerste doel bereikt: “Erachter komen hoe een computerprogramma werkt.” Maar hoe nu verder? Herinner je je nog dat ik vertelde dat de UX’er in mij ontwaakde toen ik de text editor moest programmeren? Die vraagstukken rond het bouwen van een applicatie bleven door mijn hoofd zweven en ik dook het internet op. Ik stuitte op de master “Human Centered Computing” wat later omgedoopt werd naar “Human Centered Multimedia” aan de Universiteit van Amsterdam. (In die tijd werd de term “User Experience Design” nog niet zo gebezigd.) Deze master paste bij de vraagstukken die in mijn hoofd zweefden en zodoende ben ik van het programmeren afgezwaaid en meer richting de onderzoekswereld gegaan.

en terug naar programmeren (met UX)

Het is nu 2017 en ik ben eens heel goed bij mezelf te raden gegaan en heb besloten dat het tijd is om de code weer op te pakken. De tijden zijn veranderd; Ik ben ouder geworden en mijn onzekerheid is een stuk minder. Daarnaast heb ik een drietal drijfveren om mij op het spoor te houden en de programmeerhobbels aan te gaan; Coden om mijn UX diensten te verbeteren, Coden omdat ik het mijn kids wil leren en Coden om mijn onzekeren ik van 17 jaar te laten zien dat ik het wel degelijk kan.

Cheers!

Francesca

Leave a Reply

Your email address will not be published. Required fields are marked *