Kan iedereen leren programmeren?

Pagina: 1 2 Laatste
Acties:

Acties:
  • +1 Henk 'm!

Anoniem: 350934

Topicstarter
Hallo,

In september ben ik begonnen aan de opleiding bio-informatica. Leuke opleiding, breed werkveld en met mijn interesse in biologie en een ICT-diploma in de achterzak leek me dit wel een geschikte opleiding. Inmiddels is 3/4e van het jaar achter de rug en ik begin me toch wat zorgen om mijn programmeer skills. De 'klik' is er (nog) niet en ik heb met de ogenschijnlijk meest simpele opdrachten nog de grootste moeite. Ik heb derhalve ook al meermaals gevraagd of programmeren eigenlijk wel iets is wat iedereen kan leren. Volgens mijn leraren, waarbij eentje naar zeggen in het begin ook veel moeite had met programmeren, kan iedereen het leren alleen verschilt het per persoon wanneer die magische 'klik' komt, zeg maar dat moment waarop alles ineens logisch wordt. Daar valt wel wat voor te zeggen, de één heeft er immers meer aanleg voor dan de ander, maar is het wel zo dat iedereen het echt kan leren?

Naast de informaticalessen op school ben ik begonnen aan learning Python the hard way en ik moet zeggen dat het wel helpt, hetzij gestaag. Ik kan inmiddels redelijk goed zien wat een programma doet, maar het zelf schrijven kost me nog de nodige moeite, hetgeen ook vaak resultaat in wat schaapachtig naar het scherm staren en niet weten waar te beginnen. Wanneer gebruik ik nou welke functie, et cetera. Ik snap dat ik nog in een beginfase zit, maar er zijn ook enkele klasgenootjes die het inmiddels al wel redelijk beheersen en daar ben ik uiteraard behoorlijk jaloers op. :P

Lang verhaal kort: kan iedereen (met de nodige toewijding en motivatie) leren programmeren of is daar een bepaalde logica voor nodig waar je gezegend mee moet zijn?

Acties:
  • +1 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Laatst online: 21:26

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

Ik zou graag volmondig ja roepen en niet de zwartkijker uithangen maar de harde realiteit is dat sommigen 't nooit helemaal goed onder de knie zullen/kunnen krijgen. Ja; iedereen kan leren programmeren net zoals iedereen kan leren pianospelen, maar of je een Wibi Soerjadi wordt is een tweede. De pest met programmeren is eigenlijk dat hoe meer je weet hoe meer je beseft dat je eigenlijk nog helemaal niets weet. Net zoals mijn nichtje ontzettend hard moet zwoegen zich om een beetje door (middelbare school weliswaar) wiskunde heen te ploeteren terwijl bij mij en anderen 't kwartje opeens viel en de "magische klik" waar je 't over hebt kwam en je eigenlijk zo door de jaren heen zeilt. Een stuk(je) aanleg helpt, toewijding en motivatie helpt ook, maar in-the-end heb je altijd mensen die die klik missen en misschien wel nooit zullen krijgen. Of jij er daar één van bent kun je maar op één manier uitvinden: volhouden en doorgaan :)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

Anoniem: 350934

Topicstarter
Leuk stukje wat je daar linkt. :) Jezelf vergelijken met anderen, in dit geval de klasgenoten die wèl kunnen programmeren, is ook vaak heel demotiverend en dat is ook één van mijn beweegredenen om hier een topic over te starten. Want de illusie die mijn leraar wekt, dat iedereen dus kan programmeren, vind ik maar heel moeilijk om te geloven, hoe graag ik het ook wil. Ik probeer er eigenlijk achter te komen wat nu die "magische klik" veroorzaakt, hoe het kan dat uit het niets opeens het kwartje valt. Heel veel oefenen krijg ik dan te horen, patronen herkennen, enzovoorts. Dat zal gedeeltelijk wel waar zijn, maar is het niet zo dat je jezelf een bepaalde mindset moet aanleren voordat je überhaupt begint met programmeren? Want het vereist gewoon een bepaalde manier van nadenken, net zoals bij bijvoorbeeld wiskunde.

[ Voor 23% gewijzigd door Anoniem: 350934 op 10-04-2014 02:47 ]


Acties:
  • +3 Henk 'm!

  • johnkeates
  • Registratie: Februari 2008
  • Laatst online: 09-02 16:04
Ik weet niet of het onderdeel van een mindset is, maar ik weet wel dat je de achterliggende systemen ruwweg moet kunnen doorzien.

Het hangt er van af hoe je er nu naar kijkt; als je vooral nog in de fase zit waarbij je 'magische tekst' zoals je het uit je hoofd geleerd hebt in een IDE inklopt en dan op "starten" drukt en hoopt dat het goed komt mis je een stuk basiskennis en dan is het toch wel praktisch om daar te beginnen met zoeken waarom je er nu nog zo een moeite mee hebt.

Ik neem aan dat je Windows gebruikt en daarmee nooit echt in aanraking gekomen bent met het gevoel dat alles wat er is een 'achterkant' heeft die ook gewoon door mensen gemaakt is en gewoon uit commando's, bestandjes en code bestaat. Wat je zou kunnen doen is als je tijd over hebt wat andere systemen te leren kennen. Het gaat dan niet perse om het kijken naar niet-windows, maar om het kijken naar patronen en systemen om je analytisch vermogen, of het 'doorzien' van systemen te testen.

Ik ben zelf op een dag (nouja, iets van 18 jaar geleden ofzo) lukraak begonnen, eerst met Forth op een iMac die stuk was en alleen nog maar in de OpenFirmware interface wou opstarten met een CLI. Het ging er niet zozeer om dat het ding het weer zou gaan doen, maar dat het niks kostte, er niks stuk kon gaan en het gewoon een beetje onderzoek/uit elkaar halen/doorzien werd.

Nu zal dat dan misschien wel een mindset geweest zijn, maar ik probeer er vooral een punt mee te illustreren. Je kan namelijk zoals Rob3 zegt prima iets leren, zoals iedereen de toetsen op een piano wel kan indrukken kan iedereen die kan schrijven ook wel letters op papier toeveren. Maar dat maakt je nog geen schrijver of dichter. Dat is niet anders met programmeren. De 'juiste functies' weten te gebruiken maakt je niks anders dan iemand die geleerd heeft waar je de punten en komma's behoort te zetten in een tekst.

Programmeren, of eigenlijk, software ontwikkelen (want dat is meer wat het is) gaat meer in je hoofd en met diagrammen en tekeningen en beschrijvende teksten dan met code. Ja, zonder code geen software, maar die code is slechts een resultaat van een ontwerp. Ik weet niet hoe je opleiding in elkaar steekt, bij veel opleidingen met een cruciaal programmeer-component proberen ze aan het begin een beetje het koren van het kaf te scheiden door mensen maar gewoon wat te laten maken. De mensen die overblijven hebben dan meestal het opvolgende jaar pas zaken als Software Engineering en Software Architecture. Je leert dan pas software te maken, patronen, algoritmen enz.

Misschien dat het bij jou beter andersom werkt. Eerst kijken wat je wil maken, en dat dan in een simpel diagrammetje (en als je een of andere constructie hebt waarbij je meteen al iets met GUI's moet doen ook een tekeningetje van je GUI) opschrijven wat je programma moet doen, waar het op moet reageren, wat voor beslissingen er genomen worden enz.

Op het moment dat je dan een casus voorgeschoteld krijgt, dan ga je die analyseren, en kijken wat het vraagstuk nou precies is. Dan kom je tot een paar kerntaken die het stuk software moet gaan uitvoeren, en die noteer je om te beginnen eens los van het verhaaltje. Daarna ga je kijken of er invoer en uitvoer is, en of er op bepaalde dingen gereageerd moet worden.

Stel dat je bijvoorbeeld twee keer een nummer moet invoeren, en dan de som van die twee nummers moet weergeven als uitvoer. Bijvoorbeeld:

"Jan en Sjaak werken bij een achtbaan, er zijn twee treintjes, maar ze mogen pas vanaf 10 passagiers vertrekken, en er kunnen maximaal 20 in. De treintjes moeten altijd tegelijk vertrekken, en per keer moet er genoteerd worden hoeveel mensen er tegelijk op de achtbaan zijn". Je opdracht is dan om een simpel programmaatje te maken waarbij Jan de mensen van zijn treintje in kan voeren en Sjaak die van de zijne.

Het is een beetje een slap verhaal, maar dat heb je vaak bij simpele opdrachten.

Je maakt dus een programmaatje dat twee nummers accepteert en dan als de invoer goed is een som van de invoer weergeeft. Maar alleen als allebei de invoeren een nummer tussen de 10 en de 20 is, want dat is de eis. Dan moet je dus twee keer een stukje invoer krijgen, twee keer een beslissing maken of het nummer wel tussen de 10 en de 20 is, en daarna pas een berekening uitvoeren (een simpele optelsom), en daarna uitvoer genereren. Dat klinkt allemaal wat simpel als het zo van je scherm af te lezen is, maar dat is een stukje analyse dat je op dit punt al wel zou moeten kunnen uitvoeren.

Als je op dit moment niet weet hoe je om invoer vraagt, hoe je invoer vergelijkt, hoe je invoer optelt en hoe je een resultaat weergeeft moet je inderdaad nog maar eens kijken of je het juiste vak uitprobeert ;-) Of je moet flink google belasten met al je vragen voor je antwoorden.

Stel dat je niet zou weten hoe je dit in Python doet, dan google je eerst Python IDE of Python coding tools. En daarna misschien Python introduction of Python syntax. Daarna zou je in elk geval een "Hello World" moeten kunnen maken. (Maar dat kan je ongetwijfeld al) Daarna ga je dan misschien kijken naar hoe je om input vraagt en dat in een variable opslaat, en hoe je kijkt of het nummers zijn of niet, en als het nummers zijn, hoe je er achter komt of ze groter of kleiner zijn dan bepaalde andere nummers, enz.

Als je iets simpels als dit zou kunnen uitvoeren en analyseren zou je het beste gewoon casussen kunnen opzoeken of verzinnen, en kijken of je een juiste analyse kan maken en een diagrammetje kan tekenen voor jezelf om te zien wat er moet gebeuren en wanneer.

Het makkelijkste is om dat even met een ruw Action/Activity Diagrammetje te maken (UML, dit is een van de eenvoudigste diagrammen. Je hebt een grote zwarte punt, dat is je startpunt, je hebt rechthoeken, dat zijn acties, je hebt ruitjes, dat zijn beslismomenten, en je hebt zwarte punten met een witte cirkel en een zwarte cirkel er omheen als eindpunt – hier kan je ALLE software mee uitwerken als diagram vannuit een actie/activiteit perspectief; zie: Wikipedia: Activity diagram voor resources, zie StarUML voor een gratis (maar lichtelijk crappy) programma, of Visio of gebruik gewoon een pen+papier ofzo))

Als je moeite hebt met dingen als syntax: dat is gewoon een kwestie van oefenen. Syntax is niet programmeren, maar eerder het grammatica van het code schrijven. Daar is niet echt een 'klik' voor, maar eerder gewoon leren en gebruiken. Syntax is over het algemeen beperkt, je hebt een stel regels over hoe je dingen moet doen, en als je die kent kan je foutloos code schrijven. Foutloze code staat niet garant voor een foutloze werking; als je een foutloos stukje code hebt dat niks anders doet dan zichzelf afsluiten als het uitgevoerd hebt is je code wel goed, maar je programma zal op dat moment waarschijnlijk niet doen wat je graag had gewild ;-)

Nog wat anders, als je begint met programmeren kan je er van uit gaan dat het minimaal 1.5 Jaar kost voor dat je iets kan maken dat een klein beetje zinvol of praktisch is. Veel programma's die er simpel uit zien en je soms dagelijks gebruikt hebben maanden gekost om te maken door ervaren software engineers. Sommige programma's kunnen heel snel gebouwd worden, maar dat is dan weer om dat de makers veel ervaring + kennis hadden. Op het moment heb je waarschijnlijk geen van beiden, en het kost gewoon tijd om dat te ontwikkelen. Ook als je een 'klik' hebt. (Ik heb genoeg beginnende programmeurs gezien die een 'klik' hadden met programmeren en wel even zelf een CMS of ORM gingen bouwen na een jaartje bezig te zijn geweest – het liep nooit goed af).

Het enige wat je kan doen is of nu direct stoppen als je niet tegen de onzekerheid of hard werken kan, of doorgaan als je denkt dat je gewoon iets meer tijd nodig hebt om er te komen. Ik denk dat het het laatste is, want sommige mensen hebben gewoon een stukje inzicht nog niet dat net wat later komt dan bij anderen. Maar ik ken je natuurlijk niet, dus dit is slechts op basis van het stukje tekst op dit forum hier ;)

Good luck!

Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 26-04 16:12
Misschien pessimistisch maar nee; ik geloof absoluut niet dat 'iedereen' het kan leren. Sterker nog; ik geloof dat een minderheid van de bevolking het kan. Erachter komen of het wat voor jou is, is alleen mogelijk door te blijven blokken. Maar als je het na een dik jaar nog niet leuk vindt zou ik je aanraden om een andere richting te nemen want als je als programmeur programmeren niet leuk vindt, ga je een vervelend doodlopend carrierepad in.

https://niels.nu


Acties:
  • 0 Henk 'm!

  • R4gnax
  • Registratie: Maart 2009
  • Laatst online: 05-05 10:24
Iedereen kan een paar van de basisconcepten leren waarmee het hen mogelijk wordt gemaakt om simpele programmatuur te schrijven. Je moet echter wel degelijk aanleg hebben (of heel, heel veel tijd willen spenderen) als je op grotere schaal gaat werken en nette, onderhoudbare software wilt gaan schrijven.

Mijn ervaring is overigens dat veel academici het software schrijven op dat niveau niet machtig zijn en ook voor een flink deel blind zijn voor de problemen in code van hun eigen hand. Dat zou dan ook wellicht de mening van jouw docent verklaren...

Acties:
  • 0 Henk 'm!

  • MisterEagle
  • Registratie: Juli 2010
  • Laatst online: 01:18
Ik geloof wel dat iedereen de code kan leren. De denkwijze echter is een heel ander verhaal. Veel kan je jezelf wel aanleren maar op een gegeven moment komt er meer bij kijken. Creativiteit, analytisch vermogen etc. Dit zijn dingen die lastig te leren zijn.

Acties:
  • 0 Henk 'm!

  • Waster
  • Registratie: September 2006
  • Laatst online: 14-04 17:49
Ik geloof dat iedereen alles kan leren. Ik ben een software engineer, maar als ik bioloog zou willen worden dan zou me dat lukken. Het enige wat telt is motivatie en hard werken. En natuurlijk het juiste plan om beter te worden. Maar als software engineer weet ik wel wat voor skills je allemaal nodig hebt om een beetje te kunnen programmeren:
  • Syntax van de taal begrijpen
  • API en libraries begrijpen van de taal (en eventueel externe libraries)
  • De IDE begrijpen en gebruiken.
  • Kunnen debuggen in de IDE.
  • Het build proces begrijpen
  • Op een abstracte manier naar een probleem kijken en het vertalen in een algoritme.
  • Een algoritme kunnen omzetten in code.
  • Een design kunnen modelleren met verschillende modules.
  • Het internet kunnen gebruiken om naar oplossingen te zoeken.
  • Systeemarchitectuur begrijpen zodat je configuratieproblemen kan analyseren.
  • Een plan kunnen maken.
Ik noem hier maar een lijstje die niet volledig is en waarvan misschien niet alle punten relevant is voor jou. Maar het is wel interessant om te kijken waar je zwakte zit. Dan kun je daar op focussen. Andere kunnen ook dingen sneller oppakken, omdat ze thuis misschien harder werken of misschien zijn ze al eerder met programmeren in aanraking gekomen en hebben zo een voorsprong. Toch weet ik zeker dat jij afgelopen jaar vast heel veel vooruit bent gegaan. Je begrijpt de syntax waar het eerst geheimtaal was, je kan een simpel programmaatje schrijven en een iets ingewikkelder programmaatje lezen. Je begrijpt de tools een beetje en weet een beetje hoe de API werkt en waar je informatie moet zoeken. Als je dit allemaal blijft doen dan wordt je beter dan zal het op een gegeven moment je makkelijker af gaan. En altijd vragen stellen aan je docenten. Dat is de snelste manier om beter te worden. En daarbij zal jij vast niet de enige zijn die worstelt. Er zullen er vast zijn die nog veel meer moeite met programmeren hebben dan jij. Zolang er vooruitgang is zal ik me geen zorgen maken. Dan kom je er op een gegeven moment wel. Misschien heb je nu nog niet de juiste kennis en vaardigheden. Maar op een gegeven moment wel en dan zul je ook met creatieve oplossingen komen.

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 17:38

Janoz

Moderator Devschuur®

!litemod

Oneens. Het lijstje zal wel kloppen voor een software engineer, maar voor het programmeren an sich zijn er eigenlijk maar twee echt van belang.
Waster schreef op donderdag 10 april 2014 @ 10:07:
  • Syntax van de taal begrijpen
  • API en libraries begrijpen van de taal (en eventueel externe libraries)
  • De IDE begrijpen en gebruiken.
  • Kunnen debuggen in de IDE.
  • Het build proces begrijpen
  • Op een abstracte manier naar een probleem kijken en het vertalen in een algoritme.
  • Een algoritme kunnen omzetten in code.
  • Een design kunnen modelleren met verschillende modules.
  • Het internet kunnen gebruiken om naar oplossingen te zoeken.
  • Systeemarchitectuur begrijpen zodat je configuratieproblemen kan analyseren.
  • Een plan kunnen maken.
Daarvan is de tweede nog wel goed te leren aan iedereen. De crux zit hem voornamelijk in de eerste. Dat echt goed kunnen vereist analytische denkvermogen. Daar zit het creatieve gepuzzel. Dat is het punt wat de bikkels scheidt van de gevulde koeken.

Iedereen kan het wel leren. Ik heb het toevallig mijn 6 jarige dochter nog geleerd met een simpel bordspel (Robot Turtles). Maar om daar echt goed in te worden vereist in mijn opinie een bepaalde wiring in je hoofd. En de paradox is waar. Hoe beter je hier in wordt, hoe meer je inziet dat je nog lang niet alles weet.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • TERW_DAN
  • Registratie: Juni 2001
  • Niet online

TERW_DAN

Met een hamer past alles.

Nee. Ik denk niet dat idereen het kan leren.
Je moet toch wel in staat zijn een bepaalde abstracte denkwijze aan te nemen.

Natuurlijk kun je bepaalde functies en dergelijke leren, maar op het moment dat je niet in staat bent de logica hiervan in te zien is iedere functie weer iets compleet nieuws, terwijl het vaak precies hetzelfde werkt.

Toen ik op het HBO zat snapte ik er werkelijk geen kont van. Pas toen ik aan het werk ging en me eens echt duidelijk uitgelegd werd hoe bepaalde dingen nu werkten (en dat kostte ook wel wat tijd) ging ik het snappen en kon ik ook daadwerkelijk iets zinnigs neerzetten, dan niet een stuk aan elkaar gebreide code was.

Acties:
  • 0 Henk 'm!

  • Dido
  • Registratie: Maart 2002
  • Laatst online: 19:16

Dido

heforshe

RobIII schreef op donderdag 10 april 2014 @ 02:07:
Ik zou graag volmondig ja roepen en niet de zwartkijker uithangen maar de harde realiteit is dat sommigen 't nooit helemaal goed onder de knie zullen/kunnen krijgen. Ja; iedereen kan leren programmeren net zoals iedereen kan leren pianospelen, maar of je een Wibi Soerjadi wordt is een tweede.
Dit vat eigenlijk alles samen wat ik erover zou willen zeggen. Programmeren is een creatieve bezigheid, en net zoals schrijven, schilderen en muziek maken kan iedereen het wel tot een bepaald niveau leren, maar dat betekent niet dat iedereen schrijver, schilder of muzikant kan worden.

Met puur codekloppen kun je nog een eind komen, maar de mogelijkheden nemen daar ook hard af, professioneel gesproken. Dat is namelijk net het deel van het "programmeren" dat grotendeels geautomatiseerd wordt.

Wat betekent mijn avatar?


Acties:
  • 0 Henk 'm!

  • HuHu
  • Registratie: Maart 2005
  • Niet online
Ik denk dat niet iedereen kan leren programmeren. Zelf vind ik dit een heel interessant artikel over het aanleren van programmeren aan studenten: The camel has two humps.

Eén van de conclusies hieruit is dat er een deel van de studenten nooit het concept van een programmeertaal zal snappen of accepteren. Deze mensen is programmeren niet aan te leren.

Acties:
  • 0 Henk 'm!

  • Waarnemer
  • Registratie: November 2013
  • Laatst online: 04-04 15:33
Lees dit en je ziet meteen de mindset:

Een vrouw vraagt aan haar man, een programmeur, om naar de winkel te gaan. Ze zegt, "kan je een pak melk halen? En als ze eieren hebben, neem er dan maar zes". De man komt later terug met 6 pakken melk. De vrouw vraagt verbaasd waarom hij 6 pakken melk heeft gekocht. De programmeur: "Ze hadden eieren!"

Acties:
  • 0 Henk 'm!

  • mathelicious
  • Registratie: Juni 2013
  • Laatst online: 04-05 20:10
Wat mij persoonlijk erg opvalt met programmeren (en mijn ervaring is niet erg groot) is dat je de logica moet gaan zien. Dat kwartje valt bij mij heel snel en ik merkte dan tijdens mijn opleiding ook dat ik programmeeropdrachten in minder dan de helft van de tijd doe vergeleken met 90% van de medestudenten.

Nou ben ik wiskundig aangelegd (docent wisk) en dat maakt het abstraheren van het probleem uit de context erg makkelijk. Daar zit in het begin het grootste obstakel naar mijn mening. Aha-momenten komen echt wel, ik zie het dagelijks gebeuren in mijn klassen. Voor de gemiddelde VMBO-er is wiskunde net zo moeilijk als programmeren, toch slaagt het merendeel ;)

Acties:
  • 0 Henk 'm!

  • HuHu
  • Registratie: Maart 2005
  • Niet online
Waarnemer schreef op donderdag 10 april 2014 @ 10:42:
Lees dit en je ziet meteen de mindset:

Een vrouw vraagt aan haar man, een programmeur, om naar de winkel te gaan. Ze zegt, "kan je een pak melk halen? En als ze eieren hebben, neem er dan maar zes". De man komt later terug met 6 pakken melk. De vrouw vraagt verbaasd waarom hij 6 pakken melk heeft gekocht. De programmeur: "Ze hadden eieren!"
Dat is een flauw grapje en een slecht voorbeeld.

Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 26-04 16:12
Waarnemer schreef op donderdag 10 april 2014 @ 10:42:
Lees dit en je ziet meteen de mindset:

Een vrouw vraagt aan haar man, een programmeur, om naar de winkel te gaan. Ze zegt, "kan je een pak melk halen? En als ze eieren hebben, neem er dan maar zes". De man komt later terug met 6 pakken melk. De vrouw vraagt verbaasd waarom hij 6 pakken melk heeft gekocht. De programmeur: "Ze hadden eieren!"
Dit is gewoon een nerd grapje. Het zal je verbazen maar de meeste van ons functioneren ook prima in de normale samenleving :)

https://niels.nu


Acties:
  • 0 Henk 'm!

  • Dutchie!
  • Registratie: September 2002
  • Laatst online: 07-12-2023

Dutchie!

....

Ja ik geloof dat je alles kan leren, ook programmeren. Enigste is, als het niet (snel) klikt dan moet je er heel, veel tijd in stoppen en zelfs dan ben ik van mening dat je er nooit echt goed in word.

Dat merk ik zelf in iedergeval. Het klikt bij mij niet. Maar als ik het echt zou moeten, dan moet ik er super veel tijd in stoppen dan kom ik er wel... na veel tijd. (Ik zat al 3 dagen vast met een klein probleempje in Action Script (!!) wat mijn zwager fixte in 10min... dus ja :P).

Living in Australia! - Ja, ik heb dyslectie


Acties:
  • 0 Henk 'm!

  • eL_Jay
  • Registratie: December 2010
  • Laatst online: 14-02-2023
Anoniem: 350934 schreef op donderdag 10 april 2014 @ 01:53:
Lang verhaal kort: kan iedereen (met de nodige toewijding en motivatie) leren programmeren of is daar een bepaalde logica voor nodig waar je gezegend mee moet zijn?
Volmondig ja.

Ben vorig jaar afgestudeerd op bedrijfskunde en heb nooit iets met programmeren gedaan.
Vorig jaar zomer ben ik met een aantal vrienden een IT-bureau in web en app begonnen. Ik heb het geluk dat ik door ons bedrijfsmodel geruime tijd de tijd heb gehad om te leren en de nodige begeleiding intern beschikbaar is, maar nu drie kwart jaar verder na een hoop vallen en opstaan draag ook ik eindelijk bij aan de omzet middels daadwerkelijke productie.

Het is een lange weg en heel veel meer dan basic front-end (waarvan JS het enige echte programmeren is) zit er op dit moment nog niet in maar binnen nu en 3 jaar hoop ik toch wel zowel front (html/css/JS) als back-end (php/mySQL) te beheersen.

Een baas zal ik vermoedelijk nooit worden in programmeren maar het voordeel is wel dat het werk bijna voor het oprapen ligt (zeker in Eindhoven en van .NET tot Flash) en ik met mijn basic front-end meer geld kan verdienen dan met dat waar ik voor opgeleid ben en dan ook nog eens onder mijn voorwaarden (want eigen baas)

Mijn tips voor de programeer maagden:
-Toewijding en motivatie (waar ik met 2 vingers in mijn neus door mijn hbo heen fietste is het maken van een eenvoudig playerscriptje voor mijn space shooter een stuk complexer)
-Stel jezelf een doel: waarom wil je leren programmeren en wat wil je ermee bouwen?
-Kies aan de hand van deze doelen een gebied waarin je je wil verdiepen (open/closed/web/app/machine/talen/frameworks/etc)
-Begin klein (met een MOOC hier, een epub daar en een eerste projectje) en bouw op naar steeds complexere meuk
-Doe wat je leuk vind (voor mij werkte het om javascript te leren door vette shit te gaan bouwen in Unity3d, en daar had ik (java)script's voor nodig)
-Probeer een guru/master/sensei te vinden die je kan helpen met vragen of wanneer je vast zit

Acties:
  • +1 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Laatst online: 21:26

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

eL_Jay schreef op donderdag 10 april 2014 @ 11:01:

      Matthijs91 schreef op donderdag 10 april 2014 @ 01:53:
      Lang verhaal kort: kan iedereen (met de nodige toewijding en motivatie)
      leren programmeren of is daar een bepaalde logica voor nodig waar je
      gezegend mee moet zijn?


Volmondig ja.
En dat is nou een voorbeeld van een matige programmeur :P

A of B? > Volmondig ja
Rood of groen? > Volmondig ja
1 of 0? > Volmondig ja
:X

(Niet persoonlijk bedoeld ;) :* Moest 't gewoon even aanstippen :P )

[ Voor 49% gewijzigd door RobIII op 10-04-2014 11:08 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Waarnemer
  • Registratie: November 2013
  • Laatst online: 04-04 15:33
Nee hoor, geen slecht voorbeeld... probeer maar eens aan tafel in groot gezelschap.

Je zult zien, velen kijken je aan met een blik.. en verder? Een paar schieten in de lach..
"Velen" programmeren niet/nooit. De "paar" die lachen programmeren wel/wel eens...

Als je bij die paar hoort kun je het leren...


(er is nog een groep mensen; onder de "paar" zijn ook een aantal beleefdheidslachers.... van deze zul je van enkelen een tijdje later een herkenbaar.. "ooooohh..ha" horen... ze hebben het iets moeilijker, maar ze maken ook een kans het ooit te leren)

Acties:
  • +1 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 26-04 16:12
Bij N = 1 is het succespercentage al snel 100% ja...
Waarnemer schreef op donderdag 10 april 2014 @ 11:04:
Nee hoor, geen slecht voorbeeld... probeer maar eens aan tafel in groot gezelschap.
Dat alleen programmeurs het geintje snappen is duidelijk, maar het is niets meer dan een flauwe grap: beetje zoals "There are 10 kinds of people in the world, those who understand binary and those who don't".

[ Voor 53% gewijzigd door Hydra op 10-04-2014 11:06 ]

https://niels.nu


Acties:
  • 0 Henk 'm!

  • HuHu
  • Registratie: Maart 2005
  • Niet online
Waarnemer schreef op donderdag 10 april 2014 @ 11:04:
Nee hoor, geen slecht voorbeeld... probeer maar eens aan tafel in groot gezelschap.

Je zult zien, velen kijken je aan met een blik.. en verder? Een paar schieten in de lach..
"Velen" programmeren niet/nooit. De "paar" die lachen programmeren wel/wel eens...

Als je bij die paar hoort kun je het leren...


(er is nog een groep mensen; onder de "paar" zijn ook een aantal beleefdheidslachers.... van deze zul je van enkelen een tijdje later een herkenbaar.. "ooooohh..ha" horen... ze hebben het iets moeilijker, maar ze maken ook een kans het ooit te leren)
Iemand die een gesproken taal (zoals Nederlands of Engels) gaat interpreteren als een formele taal, die is niet goed wijs. Dat "grapje" kun je gewoon op meerdere manieren interpreteren. In een gewone taal kan de tekst "neem er dan" slaan op zowel "melk" als "eieren".

Ik mag hopen dat je dit grapje niet gebruikt om je programmeurs te selecteren.

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 01-05 10:36

NMe

Quia Ego Sic Dico.

Iedereen kan leren programmeren. Niet iedereen kan zomaar een goeie programmeur worden. Hier op kantoor is het gezegde dat je een bepaalde kronkel in je hoofd moet hebben, en als je die niet hebt ga je geen leuke tijd hebben. Aan de andere kant is het ook voor matige programmeurs niet altijd heel moeilijk om werk te vinden dus dat hoeft (helaas) geen issue te zijn.

Dat gezegd hebbende: het is maar de vraag hoeveel plezier je gaat hebben in een vak waar je niet in kan uitblinken omdat het je niet ligt. Om de hierboven al gemaakte vergelijking met bijvoorbeeld muzikanten of schilders door te trekken: stel je bent muzikant en staat elke avond voor een vrijwel lege zaal te spelen of je bent schilder en je kunstwerken worden alsmaar met lauwe kritieken ontvangen. Ik kan me zomaar voorstellen dat dat het gevoel is dat je continu hebt als minder getalenteerde programmeur met een baan als programmeur.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • HuHu
  • Registratie: Maart 2005
  • Niet online
Volgens mij hanteert iedereen een beetje andere definitie van "programmeur".

Om een vergelijking te maken: iemand die een beetje op een gitaar pingelt noem je nog geen muzikant. Maar iemand die ooit eens een HTML website heeft gemaakt (misschien zelfs met PHP) is wel een programmeur.

Ik vind dat niet kloppen. Wat mij betreft ligt de lat voor "programmeur" veel hoger. Helaas noemt iedere amateur die ooit eens een website in elkaar heeft gedraaid zichzelf een programmeur. Als je vervolgens vraagt (bijvoorbeeld) of ze een red-black tree kunnen implementeren, dan ben je ze kwijt.

Acties:
  • 0 Henk 'm!

  • Waster
  • Registratie: September 2006
  • Laatst online: 14-04 17:49
Maar daar zitten weer twee stappen in. Weten wat een red-black tree is en het daadwerkelijk kunnen implementeren. Zit de bottleneck bij de kennis of de vaardigheid? Ik vergeef een gebrek aan kennis eerder dan een gebrek aan vaardigheid. Daarbij komt dat iemand met alleen een gebrek aan kennis kun je gewoon naast een senior die wel de kennis heeft zetten en hij doet voor niemand onder.

Acties:
  • 0 Henk 'm!

  • Waarnemer
  • Registratie: November 2013
  • Laatst online: 04-04 15:33
@huhu @hydra... precies... het is de interpretatie en die interpretatie heeft alles te maken met een mindset of "klik".

Het was niet zozeer bedoelt om een mop te plaatsen alswel te laten zien hoe het werkt.

Overigens is het in heel veel gevallen WEL gewenst om een taal als "formele" taal te interpreteren: Wetten, handleidingen.... dit om verwarring en discussies te voorkomen.

@huhu ik gebruik deze defenitie: http://www.vandale.nl/opz...meur&lang=nn#.U0ZieaJn224

En ik ben er niet op uit om beroepsmatige programmeurs te degraderen of hobby programmeurs te promoveren, het topic is ook "kan iedereen leren programmeren".. het gaat niet om de "beroeps" die hele specifiek programmeert. Ik ga ervan uit dat die het al hebben geleerd...

Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 26-04 16:12
Waarnemer schreef op donderdag 10 april 2014 @ 11:27:
@huhu @hydra... precies... het is de interpretatie en die interpretatie heeft alles te maken met een mindset of "klik".
Euh. Ik zeg net dat programmeurs hem wel snappen en niet-programmeurs niet. Maar dat heeft meer te maken met dat het een inside-joke is. Het zegt niks over een denk-proces, het is meer vakjargon. Die beide moppen kan ik prima aan m'n vriendin uitleggen. Ik kan m'n vriendin niet vragen een recursieve Fibo implementatie te maken.

https://niels.nu


Acties:
  • 0 Henk 'm!

  • Waarnemer
  • Registratie: November 2013
  • Laatst online: 04-04 15:33
@hydra.. het laatste is specifiek en gebonden aan het feit dat jij dat hebt geleerd.. de vraag is of ze het in zich heeft programmeren te leren (niet of ze dat wil, maar of ze het kan)

Het is oviergens de bedoeling de mop NIET uit te leggen... het "snappen" van de clue moet van nature komen... er zit geen enkel vakjargon in de mop... dan zou er wel IF .... THEN gestaan hebben...

Acties:
  • 0 Henk 'm!

  • elhopo
  • Registratie: December 2005
  • Laatst online: 01-05 10:57
Wat iedereen al zegt. Programmeren is niet anders dan 75 verschillende statements uit je hoofd leren (ik meende althans dat bijvoorbeeld Java iets van 75 verschillende statements kent). Iedereen kan een 'Hello world' maken, vooropgesteld dat het intelligentieniveau dit toelaat.
Het wordt een heel ander verhaal als je een complete applicatie moet maken. 2 cijfers optellen lukt wel, maar bijvoorbeeld een applicatie maken om logs van een aantal servers te analyseren en doorzoekbaar te maken is wel wat anders. Je moet je dan ineens vanalles gaan afvragen, en dingen verzinnen. Hoe ga je zoeken? Hoe sla je de data op? Hoe maak je het makkelijk voor de gebruiker om voor hem of haar belangrijke gegevens uit de logs te halen? Hoeveel log is er en hoe lang blijft het bewaard? Wat voor type database ga je gebruiken, en wil de klant dit wel?

Aan de andere kant... Met genoeg intelligentie en een hoop doorzettingsvermogen kun je wel ver komen. Het verschil zit hem echter wel in die 'klik'.

btw: Met alle respect, een beetje php en javascript maakt je geen ontwikkelaar...

Blijkt dat citroenvlinders helemaal niet naar citroen smaken.


Acties:
  • 0 Henk 'm!

5183

Ik zeg keihard NEE.

Een goede programmeur kan wel elke taal leren met wat inzet, maar echt programmeren dat moet in je zitten. Je moet problemen kunnen doorzien en oplossing kunnen uitdenken in je hoofd en later middels het toetsenbord overbrengen naar code. Die gave heeft niet iedereen, net als dat niet iedereen in de sales kan werken. Hoe hard je ook leert en hoe veel trucjes je ook probeert, het zit in je of het zit niet in je.

Zelf bijvoorbeeld ben ik al 15 jaar systeem/netwerkbeheerder en kan ook wat vogelen in bijvoorbeeld PHP. Allemaal op een basaal niveau, ik red me en daar is het mee gezegd. Complexe problemen kom ik niet uit, omdat ik die visie mis blijkbaar. Ben op het niveau dat ik een werkende website kan neerzetten zonder al te veel special effects.
Daarentegen is code lezen geen probleem, ik begrijp in veel talen wel wat er gebeurd. Kan het ook beredeneren en dankzij het wel aanwezig zijn van oplossend vermogen kan ik een programmeur vaak wel weer tot dienst zijn.

Hetzelfde geldt andersom, ik merk het gelijk als een programmeur een server heeft ingericht. Het ding draait en doet ongetwijfeld dat ene trucje wat de programmeur bedacht heeft. Maar voor de rest is vaak matig tot slecht in elkaar gezet.

Ik vind dat persoonlijk geen probleem, iedereen heeft zijn specialiteiten in mijn ogen. Binnen en buiten de IT.

Je moet je afvragen of je zoveel tijd en effort wil steken in iets leren waar je geen aanleg voor hebt en hoogstwaarschijnlijk ook nooit in zult uitblinken. Word je daar gelukkig van?

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 01-05 10:36

NMe

Quia Ego Sic Dico.

Waarnemer schreef op donderdag 10 april 2014 @ 12:08:
@hydra.. het laatste is specifiek en gebonden aan het feit dat jij dat hebt geleerd.. de vraag is of ze het in zich heeft programmeren te leren (niet of ze dat wil, maar of ze het kan)

Het is oviergens de bedoeling de mop NIET uit te leggen... het "snappen" van de clue moet van nature komen... er zit geen enkel vakjargon in de mop... dan zou er wel IF .... THEN gestaan hebben...
Er zit geen vakjargon in de mop, maar het is wel een denkproces dat de meeste mensen en zelfs de meeste programmeertalenten niet hebben tenzij ze ook daadwerkelijk wat programmeerkennis hebben opgedaan.

Het lijkt mij bijzonder kort door de bocht om een grap als geschikte methode aan te merken om mensen met aanleg voor programmeren te herkennen. Je zal er vast een paar programmeurs uitpikken, maar ook een paar mensen die niet kunnen of willen programmeren, en je zal een paar potentieel goeie programmeurs over het hoofd zien.

Sowieso is het niet heel erg relevant voor het beantwoorden van de vraag in dit topic. Hoe je een programmeur met aanleg herkent is niet de vraag. ;) Maar om die vraag tóch te beantwoorden: door iemand te laten programmeren en te kijken wat voor oplossingen hij verzint. :P

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Waarnemer
  • Registratie: November 2013
  • Laatst online: 04-04 15:33
@NMe.. en jij kiest dan:

de programmeur die dezelfde oplossing kiest als jij?
de programmeur die een andere (wellicht betere) oplossing kiest als jij?
de programmeur die een andere programmeertaal en dus andere (wellicht betere) oplossing kiest als jij?

Anyway leuke test als ze al afgestudeerd programmeur zijn..

Het gaat hier om "kan iedereen leren programmeren?" Je kan ze dus nog niet laten programmeren.. wat wil je ze voorschotelen? Ze hebben nog niets gezien... Je wil juist weten of ze het kunnen leren... liefst nog voordat ze aan de studie beginnen...

Laat ook even het idee los dat "programmeur" in deze discussie om het beroep gaat... het gaat om de activiteit.
Anders krijg je ook een raar verhaal als je "programmeur" vervangt door "voetballer".

Kan iedereen leren voetballen? Ja hoor, maar niet iedereen kan er zijn beroep van maken.....

Acties:
  • 0 Henk 'm!

  • Kaw
  • Registratie: Maart 2001
  • Laatst online: 16-04 14:25

Kaw

Ik denk dat de meeste mensen programmeren kunnen leren.
Er is een deel die gezegend is met een totale afwezigheid van gevoel voor logica, maar het prima doen in het domein van P&O of als verkoper. Die gaan programmeren zelfs op het meest basale niveau niet onder de knie krijgen. Die hebben al moeite om te begrijpen dat veel mailtjes in outlook en een trage pc geen verband hoeven te hebben.
Daarnaast heb je een meerderheid die met enige motivatie wel op een basisniveau zou kunnen programmeren. Een website met wat javascript bijvoorbeeld gaat prima. Of zoals vroegah die VBA code in een stukje Office.
Vervolgens heb je een groepje (waar ik me zelf toe reken) die niet bijzonder slim zijn, maar geboren lijken te zijn voor het vak van Software Engineer. Het gaat allemaal vloeiend en er je hebt geen enkel probleem om de opleiding Informatica te halen. Vervolgens denk je een ICT-goeroe en heel speciaal te zijn.
Dan kom je in het bedrijfsleven een dr. in de Biologie of Natuurkunde tegen die voor wat brood op de plank in de ICT werkt en irritant snel zonder benodigde opleiding of papieren binnen enkele weken hetzelfde kunstje doet waar jij jaren aan hebt zitten sleutelen. In het begin ben je kritisch of ze de OOP-principes wel snappen etc., maar voor deze mensen is kort vertellen dat het bestaat en wat het inhoud al voldoende om het zelf in de praktijk toe te passen. Dan voel ik met altijd wat humble en zelfs bij tijd en wijle phony zoals die link in de eerste reactie. Dat leert je ook wel te relativeren hoe belangrijk en bijzonder je vak is.

Acties:
  • 0 Henk 'm!

  • eL_Jay
  • Registratie: December 2010
  • Laatst online: 14-02-2023
RobIII schreef op donderdag 10 april 2014 @ 11:04:
[...]

En dat is nou een voorbeeld van een matige programmeur :P

A of B? > Volmondig ja
Rood of groen? > Volmondig ja
1 of 0? > Volmondig ja
:X

(Niet persoonlijk bedoeld ;) :* Moest 't gewoon even aanstippen :P )
Waar vraagt TS naar kwalitatieve eindbazen? (zoals de "ekte" programmeurs het hier blijkbaar interpreteren :+ )
TS vraagt: 'Kan iedereen (met de nodige toewijding en motivatie) leren programmeren'
Antwoord: Volmondig ja, iedere malloot kan leren regels code en functies te schrijven in relatief eenvoudige talen als javascript of html (door velen niet als programeren gezien). Dat mensen niet zomaar 1,2,3 assembly of C kunnen is een ander verhaal.

offtopic:
Grappig is om te weten dat programmeurs die 'hogere' talen beheersen meestal neerkijken op de 'lagere' talen. Ik ben ooit een prachtige tree daarvan tegengekomen maar die kan ik niet meer vinden. Zo zijn sommigen van mening dat de ekte shit in C gebeurt en dat javascript voor gaming pauper is in vergelijking met C#

[ Voor 7% gewijzigd door eL_Jay op 10-04-2014 14:33 ]


Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 26-04 16:12
Waarnemer schreef op donderdag 10 april 2014 @ 13:58:
@NMe.. en jij kiest dan:

de programmeur die dezelfde oplossing kiest als jij?
de programmeur die een andere (wellicht betere) oplossing kiest als jij?
de programmeur die een andere programmeertaal en dus andere (wellicht betere) oplossing kiest als jij?

Anyway leuke test als ze al afgestudeerd programmeur zijn..
Iets doet me vermoeden dat jij geen developer bent...

https://niels.nu


Acties:
  • 0 Henk 'm!

  • eL_Jay
  • Registratie: December 2010
  • Laatst online: 14-02-2023
Waarnemer schreef op donderdag 10 april 2014 @ 13:58:
@NMe.. en jij kiest dan:

de programmeur die dezelfde oplossing kiest als jij?
de programmeur die een andere (wellicht betere) oplossing kiest als jij?
de programmeur die een andere programmeertaal en dus andere (wellicht betere) oplossing kiest als jij?
De programmeur die de vraag achter de vraag weet te achterhalen (en die zijn er heeeeeeeeel erg weinig) en daar een passend antwoord voor bedenkt.

[ Voor 16% gewijzigd door eL_Jay op 10-04-2014 14:38 ]


Acties:
  • 0 Henk 'm!

  • Booster
  • Registratie: Februari 2000
  • Laatst online: 21-04 23:25

Booster

Superuser

Programmeren is een erg interessante activiteit, waarbij het succes naar mijn idee gedeeltelijk afhankelijk is van de hoeveelheid 'vertaalslagen' die je moet maken om tot bepaalde algoritmes te komen.

Ik denk dat programmeren voor mensen met een goed wiskundig en logisch inzicht, vaak makkelijker is om te bevatten: zij zijn vaak al gewend om op een heel abstract niveau over zaken na te denken.

Het heeft er schijn van ;) dat ik meer een visueel ingesteld persoon ben. Ik heb diploma's in de IT én in fotografie. Ik programmeer, maar ik ontwerp en fotografeer ook. Voor programmeren betekend dat, dat ik vaak zaken visualiseer om ze te begrijpen. Daarna kan ik ze efficienter oplossen of eleganter coden, of zo ervaar ik dat althans. Voor mij is dat een oplossing/vertaalslag voor mijn tamelijk zwakke wiskundige en logisch inzicht.

Maak jij ook 'vertaalslagen'? Gebruik je die om bepaalde programmeerproblemen inzichtelijk te maken? Bv analogien van biologische of natuurlijke processen? Zoja, wat voor vertaalslagen zijn dat?

Als je veel van dergelijke vertaalslagen nodig hebt, dan denk ik dat er gemakkelijker problemen ontstaan: verschillen tussen wat je dacht dat je had gemaakt, en wat je daadwerkelijk gecode hebt.

Overigens denk ik dat het voor vrijwel iedereen mogelijk is om, gegeven genoeg moeite en hersencapaciteit, de basis van programmeren te leren. Of dat genoeg is voor een baan in die markt weet ik niet. Wellicht zijn de methodes die je leraren toepassen voor jou niet zo effectief, of gaan ze te snel. Een klein blokje verkeerd plaatsen onderaan de toren kan leiden tot problemen in alle blokjes erboven.

Zelf ben ik voor een gedegen aanpak: ik denk dat het goed is voor een programmeur om een 'understanding' (zo noem ik het altijd) te hebben van de basiswerking van een computer (want die voert uiteindelijk de code uit), en daarna de basis van een operating system (want daar interacteer je mee), de basis van een taal (want daar schrijf je in), en uiteindelijk de basisprincipes van programmeren met loopjes, variabelen, etc. Als je de basiswerking van een computer begrijpt, al is het maar op een heel basaal niveau, kan dit weer helpen bij het leren en de vertaalslagen.

[ Voor 8% gewijzigd door Booster op 10-04-2014 14:41 ]

The cake is a lie | The Borealis awaits...


Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 26-04 16:12
Kaw schreef op donderdag 10 april 2014 @ 14:21:
Ik denk dat de meeste mensen programmeren kunnen leren.
Gezien de uitvalspercentages van rond de 70% op HBO-informaticaopleidingen is dat nogal een statement...

Ik weet niet wat je definitie van 'programmeren' is: die van mij is "kunnen programmeren" betekent dat je minimaal zelfstandig als junior developer aan de slag kan bij een bedrijf. Dus een klantvraag kunt vertalen naar een oplossing, eventueel met wat begeleiding. En dan valt toch al een groot deel af. Als jouw definitie een hello-world implementatie copy-pasten en compilen is, tja.

https://niels.nu


Acties:
  • 0 Henk 'm!

  • Kaw
  • Registratie: Maart 2001
  • Laatst online: 16-04 14:25

Kaw

Hydra schreef op donderdag 10 april 2014 @ 14:39:
[...]


Gezien de uitvalspercentages van rond de 70% op HBO-informaticaopleidingen is dat nogal een statement...

Ik weet niet wat je definitie van 'programmeren' is: die van mij is "kunnen programmeren" betekent dat je minimaal zelfstandig als junior developer aan de slag kan bij een bedrijf. Dus een klantvraag kunt vertalen naar een oplossing, eventueel met wat begeleiding. En dan valt toch al een groot deel af. Als jouw definitie een hello-world implementatie copy-pasten en compilen is, tja.
Op de opleiding was het vaak een motivatieprobleem en niet zozeer een gebrek aan inzicht. Je moet het leuk vinden of anders is die 4-6 jaar een volstrekte nachtmerrie. Als die 70% er dan achter komt dat het hard werken is en ook nog eens 'saai' is, voordat ze de beoogde riante (dat is wat ze voor ogen hebben) salaris gaan binnenharken, verdween het merendeel naar bedrijfskundige informatica, multimedia&design of naar een andere redelijk exacte opleiding.
Van de 70% kan ik me maar 2 heugen die er echt niets van begrepen.

Ik heb het over kunnen leren. Niet over de motivatie hebben om het te doen of om het leuk te vinden.

[ Voor 4% gewijzigd door Kaw op 10-04-2014 14:45 ]


Acties:
  • 0 Henk 'm!

  • Dido
  • Registratie: Maart 2002
  • Laatst online: 19:16

Dido

heforshe

eL_Jay schreef op donderdag 10 april 2014 @ 14:27:
TS vraagt: 'Kan iedereen (met de nodige toewijding en motivatie) leren programmeren'
Antwoord: Volmondig ja, iedere malloot kan leren regels code en functies te schrijven in relatief eenvoudige talen als javascript of html (door velen niet als programeren gezien). Dat mensen niet zomaar 1,2,3 assembly of C kunnen is een ander verhaal.
Neuh. De gequote vraag van de TS was niet wat jij er nu van maakt. Er stond wel degelijk een "of" in.

Dit fenomeen is overigens een veel-voorkomende oorzaak van opgeleverde programmatuur die wat anders doet dan de klant verwachtte.
Kaw schreef op donderdag 10 april 2014 @ 14:44:
Ik heb het over kunnen leren. Niet over de motivatie hebben om het te doen of om het leuk te vinden.
Maar... kunnen leren van wat?

Jah, programmeren.

Maar is programmeren een uitgewerkt algoritme in een programmertaal coderen?

Dan geef ik je volmondig gelijk. Dat bewijzen de outsourcing-landen wel.

Als programmeren betekent dat je zelf het probleem naar een algoritme kunt vertalen, en dat je in staat bent om het (zo goed als) programmeertaalonafhankelijk te implementeren - dan wordt de groep die het kan leren al een stuk kleiner.

Wat betekent mijn avatar?


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 01-05 10:36

NMe

Quia Ego Sic Dico.

Waarnemer schreef op donderdag 10 april 2014 @ 13:58:
@NMe.. en jij kiest dan:

de programmeur die dezelfde oplossing kiest als jij?
de programmeur die een andere (wellicht betere) oplossing kiest als jij?
de programmeur die een andere programmeertaal en dus andere (wellicht betere) oplossing kiest als jij?
Wat eL_Jay hier zegt:
eL_Jay schreef op donderdag 10 april 2014 @ 14:35:
[...]

De programmeur die de vraag achter de vraag weet te achterhalen (en die zijn er heeeeeeeeel erg weinig) en daar een passend antwoord voor bedenkt.
...maar daar wil ik aan toevoegen dat ik zou kiezen voor de programmeur die zijn keuze kan onderbouwen en daarbij nog steeds een sluitend verhaal heeft. De daadwerkelijke wens uitvinden kan al een vak op zich zijn, maar een goed onderbouwde (en vooral niet over-engineerde) oplossing vinden is dat ook.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • HansvDr
  • Registratie: Augustus 2009
  • Niet online
Uit ervaring: Nee.

Ik heb stagelopers gehad die werkelijk niks konden. En niks te leren viel.

Jammer maar helaas ongeschikt.

Acties:
  • 0 Henk 'm!

Anoniem: 296939

Ik ben van mening dat niet iedereen kan leren programmeren. Bij mij is de klik ook pas gekomen na enkele weken en daar was ik toen toch ontzettend blij mee. Ik heb met iemand in de klas gezeten die 2 jaar lang heeft geprobeerd maar er uiteindelijk toch niet in slaagde simpele vragen te analyseren (want daar zit de ware kunst achter het programmeren) en om te zetten in een oplossing.

Ook in het hoger onderwijs ben ik een hoop mede-studenten tegengekomen die er helemaal niets van bakten. Zij studeerden Toegepaste Informatica, maar de oplossingen waarmee ze kwamen, konden even goed door mijn schoonmoeder zijn bedacht.

Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 23:10
Niet iedereen kan zomaar leren programmeren. Twee informatica-docenten hebben er zelfs een artikel over geschreven: The camel has two humps (pdf). Ik quote hun abstract:
Learning to program is notoriously difficult. A substantial minority of students fails in every introductory programming course in every UK university. Despite heroic academic effort, the proportion has increased rather than decreased over the years. Despite a great deal of research into teaching methods and student responses, we have no idea of the cause.

It has long been suspected that some people have a natural aptitude for programming, but until now there has been no psychological test which could detect it. Programming ability is not known to be correlated with age, with sex, or with educational attainment; nor has it been found to be correlated with any of the aptitudes measured in conventional ‘intelligence’ or‘problem-solving-ability’ tests.

We have found a test for programming aptitude, of which we give details. We can predict successor failure even before students have had any contact with any programming language with very high accuracy, and by testing with the same instrument after a few weeks of exposure, with extreme accuracy. We present experimental evidence to support our claim. We point out that programming teaching is useless for those who are bound to fail and pointless for those who are certain to succeed.
Overigens denk ik niet dat je te snel moet denken dat je in de hopeloze groep valt. Alle begin is moeilijk, en de universiteit is de hoogste opleidingsvorm die we hebben in Nederland, dus natuurlijk zul je daar als student uitgedaagd worden. Het feit dat je het moeilijk vind is dus niet een teken dat er iets mis is.

Doordat bij informatica-opleidingen doorgaans veel studenten zitten die al wél programmeerervaring hebben, kan het lijken alsof andere studenten dommer zijn, maar dat is natuurlijk onterecht. Die eerste studenten hebben net zo goed (vaak jarenlang) moeten oefenen om hun niveau te bereiken. Het feit dat dat je die ervaring nog niet hebt opgedaan zegt niets over je capaciteit om te leren programmeren.

Acties:
  • 0 Henk 'm!

  • Dido
  • Registratie: Maart 2002
  • Laatst online: 19:16

Dido

heforshe

Anoniem: 296939 schreef op donderdag 10 april 2014 @ 15:27:
Ook in het hoger onderwijs ben ik een hoop mede-studenten tegengekomen die er helemaal niets van bakten. Zij studeerden Toegepaste Informatica, maar de oplossingen waarmee ze kwamen, konden even goed door mijn schoonmoeder zijn bedacht.
Een en ander is natuurlijk wel afhankelijk van wie jouw schoonmoeder is. Als jij met Grace Hopper's dochter bent getrouwd is het nog een aardig compliment voor die studenten.

Wat betekent mijn avatar?


Acties:
  • 0 Henk 'm!

  • zwiep
  • Registratie: November 2010
  • Laatst online: 14-03 15:47
Alles kan je leren, de ene wat sneller dan de andere.
Het magische doorzicht, het logisch denken en al die dingen waarvan anderen hier zeggen dat je op voorhand moet hebben, dat kan allemaal aangeleerd worden. Het enige dat je echt moet hebben is interesse.

Acties:
  • 0 Henk 'm!

Anoniem: 296939

Dido schreef op donderdag 10 april 2014 @ 15:44:
[...]

Een en ander is natuurlijk wel afhankelijk van wie jouw schoonmoeder is. Als jij met Grace Hopper's dochter bent getrouwd is het nog een aardig compliment voor die studenten.
Ik heb geen schoonmoeder ;)

Acties:
  • 0 Henk 'm!

  • Dido
  • Registratie: Maart 2002
  • Laatst online: 19:16

Dido

heforshe

Voor zover ik weet heeft Grace Hopper geen dochter, dus dat komt mooi uit 8)7

Wat betekent mijn avatar?


Acties:
  • +1 Henk 'm!

  • rikoos
  • Registratie: November 2002
  • Laatst online: 30-04 11:10
Ik werk nog net geen 25 jaar in de IT en heb diverse jobs doorlopen. Ooit begonnen als programmeur (JCL, C/C++, PLSQL, Pascal en Cobol). Wat mij hier vooral opvalt is dat men steeds roept dat een programmeur processen moet doorzien en dit vertalen naar een code.

Ik mis hierin het hele ontwerpen. Als het goed is, is er een goed ontwerpt gemaakt en zal je als programmeur veel niet meer hoeven te verzinnen.

Dus in bepaalde omgevingen is het goed geregeld en in sommige omgevingen niet. Kom je in een goed georganiseerde omgeving terecht dan kan iedereen daar programmeur worden. Het is allemaal niet zo moeilijk.

Acties:
  • 0 Henk 'm!

  • MrMonkE
  • Registratie: December 2009
  • Laatst online: 22-02 23:56

MrMonkE

★ EXTRA ★

Anoniem: 350934 schreef op donderdag 10 april 2014 @ 01:53:
Lang verhaal kort: kan iedereen (met de nodige toewijding en motivatie) leren programmeren of is daar een bepaalde logica voor nodig waar je gezegend mee moet zijn?
Iedereen kan dat, de kwaliteit zal verschillen afhankelijk van intelligentie, inzet en creativiteit.
Net als elke andere discipline kun je het leren en zijn er factoren die bepalen hoe goed of slecht je er in zal zijn. En sommige van die factoren zijn vaste waarden. Zo simpel is het. :/

★ Lijkt joop.nl wel hier ★


Acties:
  • 0 Henk 'm!

  • WhatsappHack
  • Registratie: Mei 2011
  • Niet online
Neen. Programmeren is gewoon zowaar te vergelijken met Frans of Duits leren: niet iedereen heeft een talenknobbel...
Daarnaast is er ook nog inzicht en/of creativiteit. Dus: nee.

Geen quote of mention @WhatsappHack? Dan niet raar opkijken als je geen reactie krijgt. ;)


Acties:
  • 0 Henk 'm!

  • Dido
  • Registratie: Maart 2002
  • Laatst online: 19:16

Dido

heforshe

rikoos schreef op donderdag 10 april 2014 @ 15:58:
Ik werk nog net geen 25 jaar in de IT en heb diverse jobs doorlopen. Ooit begonnen als programmeur (JCL, C/C++, PLSQL, Pascal en Cobol). Wat mij hier vooral opvalt is dat men steeds roept dat een programmeur processen moet doorzien en dit vertalen naar een code.

Ik mis hierin het hele ontwerpen. Als het goed is, is er een goed ontwerpt gemaakt en zal je als programmeur veel niet meer hoeven te verzinnen.

Dus in bepaalde omgevingen is het goed geregeld en in sommige omgevingen niet. Kom je in een goed georganiseerde omgeving terecht dan kan iedereen daar programmeur worden. Het is allemaal niet zo moeilijk.
Het ligt er maar aan wat je " goed geregeld" noemt. Ik zou het al programmeur op die manier niet lang uithouden - maar dat is persoonlijk.

Als je ontwerpen goed genoeg zijn, kun je ze naar India sturen en werkt het allemaal prima. Het daarvoor benodigde programmeren is inderdaad door veel mensen, zo niet alle, te leren.

Steeds meer bedrijven ontdekken echter dat ontwerpers toch nog wel eens steekjes laten vallen, en zijn steeds vakler juist op zoek naar iemand die zowel (technisch) ontwerp als implementatie in code kan regelen. Iemand die tegelijkertijd de businessprocessen begrijpt, en de benodigde IT-technologien.

Wat betekent mijn avatar?


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 01-05 10:36

NMe

Quia Ego Sic Dico.

rikoos schreef op donderdag 10 april 2014 @ 15:58:
Ik mis hierin het hele ontwerpen. Als het goed is, is er een goed ontwerpt gemaakt en zal je als programmeur veel niet meer hoeven te verzinnen.
Een beetje software engineer hoort ook gewoon zelf te kunnen ontwerpen. Ook als iemand anders iets voor je ontworpen heeft. Als je alleen maar kan programmeren wat iemand anders voor je ontworpen heeft dan ben je wat mij betreft geen programmeur maar een code monkey.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • zwiep
  • Registratie: November 2010
  • Laatst online: 14-03 15:47
Analytisch en logisch denken kan je ook oefenen en dus ook leren. Je vraagt het volgens mij op het verkeerde forum, people like to blow their own trumpets.
In coderdojo proberen we het aan kinderen in een vroeg stadium mee te geven.
http://coderdojo.com/
http://scratch.mit.edu/

Acties:
  • 0 Henk 'm!

  • Fiber
  • Registratie: Maart 2008
  • Laatst online: 22:43

Fiber

Beaches are for storming.

Definieer programmeren.

Valt iets als Alice daar ook onder? Of Lego Mindstorms...? O-)

Keep your wits sharp, your heart open and your gun loaded. And never mess with mother nature, mother in-laws and, mother freaking Ukrainians.


Acties:
  • 0 Henk 'm!

  • zwiep
  • Registratie: November 2010
  • Laatst online: 14-03 15:47
Fiber schreef op donderdag 10 april 2014 @ 16:18:
Definieer programmeren.

Valt iets als Alice daar ook onder? Of Lego Mindstorms...? O-)
Het is een begin he, van daaruit kan je zelf verder evolueren naar een andere taal of een project dat je aanspreekt.

Acties:
  • 0 Henk 'm!

  • MrMonkE
  • Registratie: December 2009
  • Laatst online: 22-02 23:56

MrMonkE

★ EXTRA ★

Mits je dat kunt.

★ Lijkt joop.nl wel hier ★


Acties:
  • 0 Henk 'm!

  • zwiep
  • Registratie: November 2010
  • Laatst online: 14-03 15:47
Je kan het leren.

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 01-05 10:36

NMe

Quia Ego Sic Dico.

zwiep666 schreef op donderdag 10 april 2014 @ 16:16:
Analytisch en logisch denken kan je ook oefenen en dus ook leren. Je vraagt het volgens mij op het verkeerde forum, people like to blow their own trumpets.
Heeft niks met zelfverheerlijking te maken. Ik speel al van kleins af aan keyboard en piano. Ik vind het leuk, maar ik ben er absoluut niet goed in. Ik kan bepaalde truukjes leren, maar ik ben geen virtuoos speler en zal dat ook nooit worden. Ik kan dus wel piano spelen, maar ik ben geen pianist. Hetzelfde geldt voor programmeren. Als je er geen aanleg voor hebt dan kun je de truukjes leren (inclusief logisch nadenken e.d.) maar je zal nooit een bijzonder getalenteerd programmeur worden. Je kunt dan programmeren, maar dat maakt je nog geen programmeur. Wat er niet in zit komt er ook niet uit.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Dido
  • Registratie: Maart 2002
  • Laatst online: 19:16

Dido

heforshe

Fiber schreef op donderdag 10 april 2014 @ 16:18:
Valt iets als Alice daar ook onder? Of Lego Mindstorms...? O-)
Zeker Lego Mindstorms (maar ook gewone Lego!) kun je zeker in de vergelijking meenemen.

Zo goed als iedereen zal voorbeeldprograamma's in dat ding kunnen proppen, veel mensen zullen er kleine aanpassingen in kunnen maken, maar lang niet iedereen krijgt het voor elkaar een robot te bouwen die een bepaalde nieuwe opdracht uitvoert die niet in het boekje staat.

Op dezelfde manier kan (bijna) iedereen wel een Lego model bouwen uit het boekje, en krijgt iedereen wel wat in elkaar geflanst zonder bouwvoorbeeld, maar lang niet idereen krijgt het voor elkaar echt iets interessant in elkaar te zetten met Lego - zonder boekjes!

En dan komen we weer terug bij het schrijven, schilderen en muziek maken: iedereen kan het leren, sommigen met heel veel moeite, tot een bepaald niveau. En dan kun je door veel oefenen nog wel een beetje beter worden, maar de meesten onder ons hebben het gewoon niet in ons om schrijver, schilder of muzikant te worden.

Wat betekent mijn avatar?


Acties:
  • 0 Henk 'm!

  • zwiep
  • Registratie: November 2010
  • Laatst online: 14-03 15:47
Ik denk niet dat de TS vroeg of hij een virtuoos kon worden.

Acties:
  • 0 Henk 'm!

Anoniem: 296939

zwiep666 schreef op donderdag 10 april 2014 @ 16:26:
Ik denk niet dat de TS vroeg of hij een virtuoos kon worden.
Nee, hij vroeg of hij kon leren programmeren en het antwoord daarop is dus: "Je kan leren programmeren tot op een bepaald niveau, maar niet iedereen zal zich dus een programmeur kunnen noemen aangezien programmeren meer is dan wat syntax typen."

Acties:
  • 0 Henk 'm!

  • zwiep
  • Registratie: November 2010
  • Laatst online: 14-03 15:47
Als ik gitaar leer spelen en ik ga in een groepje spelen en ik krijg geld voor op te treden. Ben ik dan geen gitarist?

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 01-05 10:36

NMe

Quia Ego Sic Dico.

zwiep666 schreef op donderdag 10 april 2014 @ 16:26:
Ik denk niet dat de TS vroeg of hij een virtuoos kon worden.
De vraag van de TS was langer dan alleen de titel van dit topic. ;)
zwiep666 schreef op donderdag 10 april 2014 @ 16:30:
Als ik gitaar leer spelen en ik ga in een groepje spelen en ik krijg geld voor op te treden. Ben ik dan geen gitarist?
Ja, net zoals je jezelf programmeur mag noemen wanneer je betaald wordt om te programmeren. Maar als je je werk niet goed doet omdat je het eigenlijk stiekem niet kan word je uitgejouwd en wordt het steeds moeilijker en moeilijker voor je om nog ergens op een podium te komen staan met je gitaar. Dat is als ongetalenteerd programmeur niet anders.

[ Voor 54% gewijzigd door NMe op 10-04-2014 16:32 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Fiber
  • Registratie: Maart 2008
  • Laatst online: 22:43

Fiber

Beaches are for storming.

zwiep666 schreef op donderdag 10 april 2014 @ 16:30:
Als ik gitaar leer spelen en ik ga in een groepje spelen en ik krijg geld voor op te treden. Ben ik dan geen gitarist?
Bijna iedereen kan administratief medewerker worden op een debiteuren/crediteuren afdeling na een paar jaartjes MEAO of zo. Maar lang niet iedereen kan register accountant of financial controller worden...

Zijn er in het programmeer vak ook zulke 'basis functies'...?

Keep your wits sharp, your heart open and your gun loaded. And never mess with mother nature, mother in-laws and, mother freaking Ukrainians.


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 01-05 10:36

NMe

Quia Ego Sic Dico.

Fiber schreef op donderdag 10 april 2014 @ 16:35:
[...]

Zijn er in het programmeer vak ook zulke 'basis functies'...?
Ja, maar die mensen zitten veelal in India of Oost-Europa omdat codeslaven daar goedkoper zijn.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • timberleek
  • Registratie: Juli 2009
  • Laatst online: 20-04 20:38
Ik denk inderdaad ook dat iedereen kan leren programmeren. Het "domme" programmeren is immers niet veel anders als een taal leren. (bij wijze van spreken). Alleen om het echt goed te kunnen gebruiken moet je er het juiste gevoel voor hebben.

Ik had zelf ook veel moeite met programmeren. In het begin had ik geen idee wat ik nou eigenlijk aan het doen was. Toen heb ik het een stuk later nog eens opgepakt (met een andere docent) en toen begon ik ineens door te hebben wat al die troep doet. En nee, ik ben zeker geen top programmeur. De "echte" programmeurs zullen om sommige constructies in mijn code smakelijk lachen, maar ik ben nog wel steeds bezig.

En ik kom ook langzamerhand steeds verder. Ik eerst een dom op zichzelf staand programma's. Ik wist niet beter. Geen idee hoe ik moest communiceren met de computer erachter of iets fancy moest doen. Maar door de jaren heen kom je toch achter steeds meer. Nu kan ik wel communiceren met de pc erachter en werken met bestanden. En dan kom je op internet weer een voorbeeld tegen waarvan je weer 100 nieuwe ideeën krijgt.

Zolang je er zin in blijft houden, moet je lekker doorgaan. Als je er de lol niet meer van kan inzien, is het misschien niet jouw tak van sport.

En hoewel "dom" programmeren voor iedereen te leren is, is niet iedereen even goed in een opdracht om te zetten in een stuk code. Daar loop ik ook nog wel eens tegenaan. Hoe laat ik mijn code de data zo bewerken dat ik de gewenste output krijg? Wat wil ik nou eigenlijk als output? Die manier van denken zal eerder een probleem zijn dan het leren van de "taal"

Acties:
  • 0 Henk 'm!

  • Fiber
  • Registratie: Maart 2008
  • Laatst online: 22:43

Fiber

Beaches are for storming.

NMe schreef op donderdag 10 april 2014 @ 16:39:
[...]

Ja, maar die mensen zitten veelal in India of Oost-Europa omdat codeslaven daar goedkoper zijn.
Dus als je hier in Nederland je vak van programmeren wil maken (als hoofdtaak) dan moet je er eigenlijk wel heel goed in zijn, niveau register accountant of Wibi Soerjadi, anders kun je beter een ander vak kiezen...? Voor de hobby is een ander verhaal natuurlijk.

Keep your wits sharp, your heart open and your gun loaded. And never mess with mother nature, mother in-laws and, mother freaking Ukrainians.


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 01-05 10:36

NMe

Quia Ego Sic Dico.

Fiber schreef op donderdag 10 april 2014 @ 16:46:
[...]

Dus als je hier in Nederland je vak van programmeren wil maken (als hoofdtaak) dan moet je er eigenlijk wel heel goed in zijn, niveau register accountant of Wibi Soerjadi, anders kun je beter een ander vak kiezen...? Voor de hobby is een ander verhaal natuurlijk.
Je moet er niet heel goed in zijn, maar je moet wel de aanleg hebben en dus door kunnen groeien. Er zijn zat bedrijven die geen moeite hebben met onervaren programmeurs als ze maar aan kunnen tonen dat ze de juiste kronkel in hun hoofd hebben.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • BdR
  • Registratie: Juni 2001
  • Laatst online: 20-04 09:34

BdR

TV is gooder then books

Anoniem: 350934 schreef op donderdag 10 april 2014 @ 01:53:
Lang verhaal kort: kan iedereen (met de nodige toewijding en motivatie) leren programmeren of is daar een bepaalde logica voor nodig waar je gezegend mee moet zijn?
Volgens dit artikel kan niet iedereen programmeren:
Separating Programming Sheep from Non-Programming Goats

De vraag is; Waar heb je precies moeite mee?

Als je bijv. moeite hebt met waarden aan variabelen toewijzen, zoals in dat artikel wordt genoemd, dan zal je aan het programmeren nog een hele kluif hebben. Als je steeds moet nadenken welke ingebouwde functies je wanneer moet gebruiken dan zou ik me op zich nog geen zorgen maken.

In de practijk is dat (voor mij iig) vaak een kwestie van opzoeken in de (online) documentatie of desnoods via google. Pas als je bepaalde functies echt vaak nodig hebt dan weet je ze op den duur wel uit het hoofd. Niet dat dat nou zo vreselijk nuttig is overigens, want als je van programmeertools wisselt zijn er meestal weer totaal andere functies beschikbaar.

De structuur en de keywords van een programmeer taal zijn denk ik belangrijker, dus in het geval van Python if, else, assert, break etc. Ik werk zelf niet met Python maar wat ik wel erg vreemd vind is dat de programma structuur mede afhankelijk is van indentation, dus het wel of niet inspringen (spaties aan het begin van een regel). Zoiets ben ik bij andere programmeertalen in de praktijk nog niet eerder tegengekomen, dus realiseer je dat dat echt iets eigenaardigs van Python is. Krijg je ook nog les in andere programmeertalen dan Python?

mijn web games -> Impossible Snake 2 :: Impossible Snake :: Snake Slider


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 01-05 10:36

NMe

Quia Ego Sic Dico.

Nou ben ik het in dit geval met hem eens, maar Jeff Atwood is best een elitaire eikel af en toe, dus ik neem zijn artikelen meestal met een korrel zout. :P

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • RayNbow
  • Registratie: Maart 2003
  • Laatst online: 23:34

RayNbow

Kirika <3

BdR schreef op donderdag 10 april 2014 @ 17:09:
Als je bijv. moeite hebt met waarden aan variabelen toewijzen, zoals in dat artikel wordt genoemd, dan zal je aan het programmeren nog een hele kluif hebben.
Wat als je taal geen assignments/mutable variables kent? ;)
Ik werk zelf niet met Python maar wat ik wel erg vreemd vind is dat de programma structuur mede afhankelijk is van indentation, dus het wel of niet inspringen (spaties aan het begin van een regel). Zoiets ben ik bij andere programmeertalen in de praktijk nog niet eerder tegengekomen, dus realiseer je dat dat echt iets eigenaardigs van Python is.
Python is echt niet de enige taal. Het idee om layout te gebruiken i.p.v. de scanner/parser/compiler een handje te helpen met interpunctie als accolades en puntkomma's stamt uit de jaren '60. ;)

Ipsa Scientia Potestas Est
NNID: ShinNoNoir


Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 23:10
FYI, die blogpost gaat over het artikel dat ik al eerder postte.

Acties:
  • 0 Henk 'm!

  • BdR
  • Registratie: Juni 2001
  • Laatst online: 20-04 09:34

BdR

TV is gooder then books

RayNbow schreef op donderdag 10 april 2014 @ 17:18:
[...]

Wat als je taal geen assignments/mutable variables kent? ;)


[...]

Python is echt niet de enige taal. Het idee om layout te gebruiken i.p.v. de scanner/parser/compiler een handje te helpen met interpunctie als accolades en puntkomma's stamt uit de jaren '60. ;)
Ik zei ook niet dat Python de enige is taal is die zo werkt, maar wel dat het één van de weinigen is. En accolades en puntkomma's mag dan uit de jaren '60 stammen, zelfs C# en Java werken nog steeds op die manier. :)

mijn web games -> Impossible Snake 2 :: Impossible Snake :: Snake Slider


Acties:
  • 0 Henk 'm!

  • RayNbow
  • Registratie: Maart 2003
  • Laatst online: 23:34

RayNbow

Kirika <3

Het onderwerp van de zin is "het idee om layout te gebruiken". ;)

Ipsa Scientia Potestas Est
NNID: ShinNoNoir


Acties:
  • 0 Henk 'm!

  • Kaw
  • Registratie: Maart 2001
  • Laatst online: 16-04 14:25

Kaw

Maar wat is een goede programmeur?

Bij ons wordt er flink gestuurd op codestandards, unit testing, design patterns en het toepassen van OO.
We hebben tooling om naleving van de codestandards na te rekenen en of de unit tests dekkend zijn. (>90%) Verder zijn er collega's die altijd design patterns, interfaces en abstracte classes inbouwen in alles wat ze maken. De 'beste' heeft voor elke class die hij maakt ook een abstracte versie en een interface.

Maar wat is het effect?
- Alles volgt de coding standards. Das op zichzelf best prettig. Maar het combineren van engels en nederlands, of het gebruiken van volstrekt onlogische naamgeving is niet geautomatiseerd te controleren, dus op dat punt is het een dikke zooi.
- Unit testing. Ja, we hebben voor alles unit tests, maar bij nader onderzoek is 90% gewoon een placeholder voor later rework om er echt zinnige dingen in te zetten.
- Design Patterns. Toepassen van wordt gestimuleerd. Er wordt niet gekeken of het ook nut heeft en welke het handigst is.
- OO. Een hele eenvoudige applicatie kan door het overtoepassen van interfaces en abstracte classes juist een enorme nachtmerrie worden om te onderhouden. Precies wat er nu gebeurd.

Maar oh oh oh, wat voelen ze zich elitair met 100 interfaces en 50 abstracte classes voor wat een normaal iemand met 10 classes kon doen. Het staat zo sjiek en intelligent. Je moet ze eens horen bij de koffieautomaat. Classes zoals de AbstractDataDomainFactorySynchronizerEncapsulator zijn schering en inslag.
De praktijk is dat elke programmeur zijn collega afzeikt over het opgeleverde werk, zich volkomen laat verzuipen in refactoring doormiddel van zijn eigen briljante inzichten en dat onderhoud op elke applicatie meer tijd kost dan in de tijd dat er geschreven werd wat nodig was om het te laten werken.

Er zou een nieuwe term moeten komen: "obfuscation through object oriented programming" oftewel OTOOP. En zoiets als de Enterprise Design Pattern, waarbij er zoveel mogelijk interfaces en abstracte classes met onmogelijk lange en generieke namen geschreven moet worden om indruk te maken.

Onthoud dit toekomstige consultants en OOP evangelists! Je hoeft geen regel werkende code te schrijven en je kunt het toch heel ver schoppen hiermee.

Acties:
  • 0 Henk 'm!

Anoniem: 350934

Topicstarter
Vooropgesteld, ik vind programmeren leuk om te doen. Net als in I(C)T loop je tegen problemen aan en het is gewoon leuk om in een probleem te duiken en die op te lossen. Die benadering pas ik ook toe bij programmeren. Wanneer iets niet wil sluit ik niet af, maar zoek ik op internet, in mijn boeken of blader ik de sheets van een college nog eens door, net zolang tot ik het wel snap. Op dit moment vind ik het nog vrij lastig om te bepalen of ik er aanleg voor heb. Ik neig naar nee, wiskunde vind ik vreselijk, maar dat gevoel wordt ook versterkt doordat je jezelf vergelijkt met anderen en je je daardoor een stukje onzeker voelt. Mijn 'roots' liggen eigenlijk bij grafisch ontwerp, dat is al jarenlang mijn grote hobby en daar kan ik mijn eigen stempel op drukken. Dat stukje creativiteit kan wellicht van te pas komen.

Toch blijft het door mijn hoofd spoken dit, want programmeren is natuurlijk de core van een programmeur of in mijn geval een bio-informaticus. Onlangs heb ik een interview afgenomen bij wat mensen in mijn (wellicht toekomstige) werkveld en die vertelden me dat de hoeveelheid tijd die je achter je computer zit te programmeren relatief klein is. Je bent meer bezig met databases, software ontwerpen en toepassen of aanpassen van code die ooit al geschreven is.

Na de meivakantie start de vierde periode en ik probeer tot aan de zomervakantie elke dag gewoon een dagdeel programmeren in te plannen. Anderhalf maand geleden ben ik, na wat aankloten tijdens de lessen, pas echt serieus thuis begonnen, dus het is sowieso nog heel pril allemaal. Mocht ik me er tegen die tijd nog steeds niet zeker over voelen, dan kan ik misschien maar beter gewoon weer overstappen naar iets van ICT(-beheer).
johnkeates schreef op donderdag 10 april 2014 @ 04:19:
Stel dat je bijvoorbeeld twee keer een nummer moet invoeren, en dan de som van die twee nummers moet weergeven als uitvoer. Bijvoorbeeld:

"Jan en Sjaak werken bij een achtbaan, er zijn twee treintjes, maar ze mogen pas vanaf 10 passagiers vertrekken, en er kunnen maximaal 20 in. De treintjes moeten altijd tegelijk vertrekken, en per keer moet er genoteerd worden hoeveel mensen er tegelijk op de achtbaan zijn". Je opdracht is dan om een simpel programmaatje te maken waarbij Jan de mensen van zijn treintje in kan voeren en Sjaak die van de zijne.

Het is een beetje een slap verhaal, maar dat heb je vaak bij simpele opdrachten.
Bedankt voor je opdrachtje! :P Ik heb de opdracht even gemaakt met de kennis die ik nu heb, dus zonder internet of boeken te raadplegen:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
minimaleZitplaatsen = 10 
maximaleZitplaatsen = 20 
wachtrij = 0
totaal = 0

treintjeJan = int(input("Zeg Jan, hoeveel plekken zijn bezet? ")) 
if treintjeJan >= minimaleZitplaatsen and treintjeJan <= maximaleZitplaatsen:
    zitplaatsenJan = treintjeJan
else:
    if treintjeJan < minimaleZitplaatsen:
        zitplaatsenJan = treintjeJan
    elif treintjeJan >= maximaleZitplaatsen:
        zitplaatsenJan = maximaleZitplaatsen
        wachtrij += treintjeJan - maximaleZitplaatsen
        print("Deze wagon is vol; {} mens(en) moeten in de wachtrij gaan staan.".format(treintjeJan - maximaleZitplaatsen))

treintjeKlaas = int(input("Zeg Klaas, hoeveel plekken zijn bezet? "))       
if treintjeKlaas >= minimaleZitplaatsen and treintjeKlaas <= maximaleZitplaatsen:
    zitplaatsenKlaas = treintjeKlaas
else:
    if treintjeKlaas <= minimaleZitplaatsen:
        zitplaatsenKlaas = treintjeKlaas
    elif treintjeKlaas >= maximaleZitplaatsen:
        zitplaatsenKlaas = maximaleZitplaatsen
        wachtrij += treintjeKlaas - maximaleZitplaatsen
        print("De wagon is vol; {} mens(en) moeten in de wachtrij gaan staan.".format(treintjeKlaas - maximaleZitplaatsen))

if minimaleZitplaatsen < zitplaatsenJan and minimaleZitplaatsen < zitplaatsenKlaas: 
    print("De achtbaan gaat rijden met {} mensen, waarvan {} mensen in de wagon van Jan zitten en {} mensen in de wagon van Klaas zitten.".format(zitplaatsenJan + zitplaatsenKlaas, zitplaatsenJan, zitplaatsenKlaas))
    print("Voor de volgende rit staan er {} mensen in de wachtrij.".format(wachtrij))
else:
    if zitplaatsenJan < minimaleZitplaatsen:
        print("De wagon van Jan komt {} persoon tekort, de achtbaan rijdt niet".format(minimaleZitplaatsen - zitplaatsenJan))
    if zitplaatsenKlaas < minimaleZitplaatsen:
        print("De wagon van Klaas komt {} persoon tekort, de achtbaan rijdt niet".format(minimaleZitplaatsen - zitplaatsenKlaas))


Zal ongetwijfeld behoorlijk omslachtig zijn dit, maar ik ben druk bezig met functies leren.
BdR schreef op donderdag 10 april 2014 @ 17:09:
[...]

Volgens dit artikel kan niet iedereen programmeren:
Separating Programming Sheep from Non-Programming Goats

De vraag is; Waar heb je precies moeite mee?

Als je bijv. moeite hebt met waarden aan variabelen toewijzen, zoals in dat artikel wordt genoemd, dan zal je aan het programmeren nog een hele kluif hebben. Als je steeds moet nadenken welke ingebouwde functies je wanneer moet gebruiken dan zou ik me op zich nog geen zorgen maken.
Op dit moment ben ik bezig met functies (def() dus) en ik vind lastig om te bepalen wanneer (en waarom) je welke informatie aan een functie meegeeft. Daarnaast heb ik er moeite mee om in te schatten wanneer je nu wat moet gebruiken bij het schrijven van een programma. Hierbij doel ik dus op al die 'functies' als map, filter, split en noem het allemaal maar op. Daar zijn er ook zo ontzettend veel van. Maar goed, dat komt allemaal wel als ik de boel een beetje beter leer kennen. Belangrijker is dat ik ze uiteindelijk juist weet toe te passen.

Acties:
  • 0 Henk 'm!

  • R4gnax
  • Registratie: Maart 2009
  • Laatst online: 05-05 10:24
Kaw schreef op donderdag 10 april 2014 @ 17:36:
Maar wat is een goede programmeur?
De essentie van wat een goede programmeur maakt is het hebben van een knobbel voor oplossend vermogen dat je toestaat om moeilijke problemen te vertalen in simpele, begrijpbare, onderhoudbare (en als het even mag; efficiënte) oplossingen.

Mensen die het soort wangedrocht astronaut architectuur verheerlijken zoals jij beschrijft zijn geen goede programmeurs, maar wat in het engels one trick ponies genoemd wordt. Ze houden zich krampachtig vast aan een aangeleerde basis set en proberen onderdelen daaruit ad nauseum aaneen te koppelen om tot een oplossing te komen.

Dat werkt tot op zekere hoogte, maar op een gegeven moment bereikt dat een punt waar complexiteit en koppeling zo hoog wordt dat je nergens meer chocola van kunt maken. Je zou kunnen zeggen dat het een soort punt van critical mess bereikt.

[ Voor 14% gewijzigd door R4gnax op 10-04-2014 19:41 ]


Acties:
  • 0 Henk 'm!

  • maikoool
  • Registratie: Juli 2009
  • Laatst online: 03-05 15:44
Dat ziet er verdacht veel uit als Python. Lees even http://legacy.python.org/dev/peps/pep-0008/ door. Dat zal helpen je code mooier en leesbaarder te maken.

Het idee achter functies en het gebruik ervan leer je na een tijdje wel kennen. Het is voornamelijk om een bepaald proces te herhalen. Functies die al bestaan hebben (hopelijk) documentatie waaraan je kan afleiden wat de functie doet, en welke argumenten je waarom meegeeft.

Stel (vrij simpel voorbeeld), je werkt in een project waar je vaak bedragen inclusief BTW wilt berekenen. Nu zou je elke keer dat je dat wilt doen een bedrag met 0.21 kunnen vermenigvuldigen. Maar als de BTW verhoogd wordt, ga je nog een hele kluif hebben (afhankelijk van de grootte van het programma) om deze waarden te vervangen. Het is dus handig hiervoor een functie te maken. De functie neemt een bedrag in, en geeft dat bedrag + de BTW terug. Dat ziet er ongeveer zo uit:

Python:
1
2
def met_btw(bedrag):
    return bedrag * 1.21


Men roept deze functie bijvoorbeeld zo aan:
Python:
1
2
bedrag = int(input("Welk bedrag wil je met BTW terugkrijgen?"))
print met_btw(bedrag)


Wanneer het btw tarief verandert hoef je dus alleen maar je functie aan te passen naar het nieuwe tarief. Welke nadelen dit kan hebben in dit simpele voorbeeld gaan we nu geen aandacht aan besteden.

Je zou dus je code in een functie kunnen stoppen, en deze code meerdere malen aanroepen in hetzelfde programma, bijvoorbeeld tot Jan en/of Klaas naar huis gaat.


Met Python word het lastig als een functie zo gedefinieerd staat:
Python:
1
2
def some_function(*args, **kwargs):
    return 'something'


Hierdoor kan het wat wazig worden wat er nog allemaal in de functie mag. Je geeft op de volgende manier argumenten mee aan dit soort functies:
Python:
1
print some_function(2, 'asdasd', True, False, pretty_printing=True, language='en')


*args is een lijst, en **kwargs is een dict. Deze variablen bevatten in de functie het volgende:
Python:
1
2
3
4
5
args = [2, 'asdasd', True, False]
kwargs = {
    "pretty_printing": True,
    "language": "en"
}


Om te weten te komen wat zulke functies precies verwachten en doen met je argumenten, moet je aan de code of de documentatie afleiden.

Om terug te komen naar de vraag van het topic: ik denk niet dat iedereen kan leren programmeren. Vooral niet als ze niet willen maar moeten programmeren (denkt aan de informatica lessen van havo4). Ik denk echter aan het zien van jouw posts dat jij wel kan leren programmeren :)

Acties:
  • 0 Henk 'm!

  • RayNbow
  • Registratie: Maart 2003
  • Laatst online: 23:34

RayNbow

Kirika <3

Anoniem: 350934 schreef op donderdag 10 april 2014 @ 17:45:
Bedankt voor je opdrachtje! :P Ik heb de opdracht even gemaakt met de kennis die ik nu heb, dus zonder internet of boeken te raadplegen:

code:
1
*snip*


Zal ongetwijfeld behoorlijk omslachtig zijn dit, maar ik ben druk bezig met functies leren.
De belangrijkste truc zit erin om de overeenkomsten en de verschillen te herkennen tussen bepaalde stukken code.

Zo komt eerst dit gedeelte voor:

Python:
1
2
3
4
5
6
7
8
9
10
treintjeJan = int(input("Zeg Jan, hoeveel plekken zijn bezet? ")) 
if treintjeJan >= minimaleZitplaatsen and treintjeJan <= maximaleZitplaatsen:
    zitplaatsenJan = treintjeJan
else:
    if treintjeJan < minimaleZitplaatsen:
        zitplaatsenJan = treintjeJan
    elif treintjeJan >= maximaleZitplaatsen:
        zitplaatsenJan = maximaleZitplaatsen
        wachtrij += treintjeJan - maximaleZitplaatsen
        print("Deze wagon is vol; {} mens(en) moeten in de wachtrij gaan staan.".format(treintjeJan - maximaleZitplaatsen))


Vervolgens komt daarna vrijwel hetzelfde stukje voor, met kleine aanpassingen.

Nu moet je het volgende kunnen inzien:
Afbeeldingslocatie: http://tweakers.net/ext/f/jmuh27qmdUcWNFbfENggJmC1/full.png

Zie je de rode vlekken? Dat zijn de verschillen. De rest is wat hetzelfde is.
[...]

Op dit moment ben ik bezig met functies (def() dus) en ik vind lastig om te bepalen wanneer (en waarom) je welke informatie aan een functie meegeeft.
De informatie die je aan een functie meegeeft is de informatie die je grotendeels op de "gaten" van de functie (de rode vlekken hierboven) moet invullen.

Waarom grotendeels? Nou, sommige "gaten" in de code is geen informatie die je weet, maar juist wilt weten: het beoogde effect of uitvoer. In dit geval is zitplaatsenGAT wat je wilt berekenen en dit is dan ook het resultaat (returnwaarde) van de functie.

Nu is er nog één probleem: de variabele wachtrij wordt door beide stukken code gebruikt en aangepast! Dit gedeelte van de code kun je moeilijk rechtstreeks in een functie plaatsen. Functies horen (normaalgesproken) niet aan andere variabelen te zitten.
Een van de mogelijke oplossingen is om het aantal wachtende als tweede returnwaarde te introduceren.

Als je dit allemaal bij elkaar voegt (en wat variabelen van naam veranderd), dan krijg je iets als:

Python:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
def prompt(naam):
    wachtenden = 0
    aantalMensen = int(input("Zeg {}, hoeveel mensen?".format(naam)))
    if minimaleZitplaatsen <= aantalMensen <= maximaleZitplaatsen:
        zitplaatsenBezet = aantalMensen
    elif aantalMensen < minimaleZitplaatsen:
        zitplaatsenBezet = aantalMensen
    elif aantalMensen > maximaleZitplaatsen:
        zitplaatsenBezet = maximaleZitplaatsen
        wachtenden = aantalMensen - maximaleZitplaatsen
        print("Deze wagon is vol; {} mens(en) moeten in de wachtrij gaan staan.".format(wachtenden))
    
    return zitplaatsenBezet, wachtenden

# * snip *

zitplaatsenJan, wachtendenJan = prompt("Jan")
zitplaatsenKlaas, wachtendenKlaas = prompt("Klaas")
wachtrij = wachtendenJan + wachtendenKlaas

# * snip *


Let wel, dit is niet per se perfecte code. Er zijn nog genoeg dingen die kunnen worden verbeterd. :)

Ipsa Scientia Potestas Est
NNID: ShinNoNoir


Acties:
  • 0 Henk 'm!

  • Red devil
  • Registratie: December 1999
  • Laatst online: 20:59
Waarom programmeer je niet iets wat gelijk matched met je opleiding?

- wees nr43434 die een BLAST parser maakt
- maak een script/programma die een BLAST database maakt en die doorzoekt met een eiwit
- nog een leuke, concateneer meerdere MSA zodat je daar later een phylogenetische boom van kunt bouwen
- doe een bacteriele gen predictie en zoek vervolgens naar een eiwit domein in alle voorspelde eiwitten mbv verschillende tools

etc etc.
IMO zijn programmeer opdrachten veel leuker/beter te doen als ze matchen met je eigen vakgebied/interesses :)

Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 26-04 16:12
rikoos schreef op donderdag 10 april 2014 @ 15:58:
Ik mis hierin het hele ontwerpen. Als het goed is, is er een goed ontwerpt gemaakt en zal je als programmeur veel niet meer hoeven te verzinnen.
Een software engineer (ik gebruik expliciet de term programmeur niet) zal juist zelf dat ontwerp gedaan hebben. Wat jij beschrijft is een typische code monkey. Ik beschrijf mezelf ook nooit als 'programmeur' om die verwarring te voorkomen.
Vrijwel iedereen kan Hello World (of een robotje vooruit / achteruit laten rijden) leren. Maar software engineering is wel ff een stukje complexer dan dat.
BdR schreef op donderdag 10 april 2014 @ 17:09:
De structuur en de keywords van een programmeer taal zijn denk ik belangrijker, dus in het geval van Python if, else, assert, break etc. Ik werk zelf niet met Python maar wat ik wel erg vreemd vind is dat de programma structuur mede afhankelijk is van indentation, dus het wel of niet inspringen (spaties aan het begin van een regel). Zoiets ben ik bij andere programmeertalen in de praktijk nog niet eerder tegengekomen, dus realiseer je dat dat echt iets eigenaardigs van Python is.
Euh nee. Hoe een taal precies z'n scope definieert is compleet niet relevant. Een goeie SE zal ook zonder problemen een andere taal oppakken. Het verschil tussen programmeermethodologieen (impleratief, OO, functioneel) is veel groter dan tussen verschillende talen.

Het gaat om het denkproces: het opdelen van een probleem in kleine brokjes, die oplossen en implementeren in code. Software Engineering heeft geen ene ruk met taalsyntax te maken. Op een SE opleiding leer je ook geen taalsyntax anders dan "dit is een for-loop en in Java doe je dat toevallig zo".
RayNbow schreef op donderdag 10 april 2014 @ 20:14:
Let wel, dit is niet per se perfecte code. Er zijn nog genoeg dingen die kunnen worden verbeterd. :)
Dat een deel van je NAAM van je variabelen variabel is bijvoorbeeld? Vind het een enorm krom voorbeeld.

[ Voor 21% gewijzigd door Hydra op 10-04-2014 20:51 ]

https://niels.nu


Acties:
  • 0 Henk 'm!

  • RayNbow
  • Registratie: Maart 2003
  • Laatst online: 23:34

RayNbow

Kirika <3

Hydra schreef op donderdag 10 april 2014 @ 20:49:
[...]


Dat een deel van je NAAM van je variabelen variabel is bijvoorbeeld? Vind het een enorm krom voorbeeld.
Wat dacht je van het behandelen van 1 concept per keer? ;)

Ik wilde illustreren dat de oorspronkelijke code van de TS een herhaling van bijna identieke code bevatte. Ik behandelde slechts een fragment.

Als de TS oplet, dan zal hij inderdaad zien dat er nog steeds herhalende patronen in de code zit. Sterker nog, in het nieuwe stukje code komt het zelfs voor:
Python:
1
2
zitplaatsenJan, wachtendenJan = prompt("Jan")
zitplaatsenKlaas, wachtendenKlaas = prompt("Klaas")


De volgende stap is om andere datastructuren te introduceren, zoals lijsten of dictionaries. Met die kennis kun je dan het fragment herschrijven naar:

Python:
1
2
3
4
5
zitplaatsen = {}
wachtenden = {}

zitplaatsen["Jan"], wachtenden["Jan"] = prompt("Jan")
zitplaatsen["Klaas"], wachtenden["Klaas"] = prompt("Klaas")


Er zit nog steeds een herhalend patroon in, maar als je herhalingslussen aan je abstractiearsenaal toevoegt, kun je de code weer herschrijven:

Python:
1
2
3
4
5
6
operators = ["Jan", "Klaas"]
zitplaatsen = {}
wachtenden = {}

for operator in operators:
    zitplaatsen[operator], wachtenden[operator] = prompt(operator)


Nogmaals, ik gaf aan dat de herschreven code niet perfect was, maar dat is ook niet het doel wanneer je bepaalde concepten probeert te doceren. Je leert van fouten, niet van het lezen van perfecte code.

Ipsa Scientia Potestas Est
NNID: ShinNoNoir


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 05-05 12:36

.oisyn

Moderator Devschuur®

Demotivational Speaker

Laat het aan de GoTers over om een discussie over het kunnen leren van programmeren te laten verzanden in een discussie over code 8)7.

Ik kwam eigenlijk alleen een linkje delen: http://countaleph.wordpre...figure-out-if-i-can-code/

[ Voor 6% gewijzigd door .oisyn op 10-04-2014 22:06 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • martin_v_z
  • Registratie: Januari 2012
  • Laatst online: 04-05 14:01
Als je echt interesse hebt denk ik dat de meeste mensen wel kunnen leren programmeren. Ik denk dan ook dat de meeste vaardigheden aan te leren zijn, alleen kost het veel tijd. Ik heb ooit wel eens gehoord dat het ongeveer 10.000 uur kost om een vaardigheid meester te worden. Of dit nu schilderen, muziek spelen of programmeren is. Het punt is alleen dat veel mensen er gewoon niet genoeg interesse in hebben om door te zetten en jezelf elke keer weer uit te dagen om iets nieuws te doen. Zo is het ook bij programmeren, heel veel blijven ook zitten in hun comfort zone, en dan wordt je alleen heel goed in het deel dat je al kan. Mijn punt is dat je jezelf niet teveel moet afrekenen dat je nu nog met de handen in het haar zit en af en toe er niets van begrijpt. Veel lezen, leren en vooral veel doen, dan kom je er wel. :)

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 01-05 10:36

NMe

Quia Ego Sic Dico.

martin_v_z schreef op donderdag 10 april 2014 @ 21:47:
Als je echt interesse hebt denk ik dat de meeste mensen wel kunnen leren programmeren. Ik denk dan ook dat de meeste vaardigheden aan te leren zijn, alleen kost het veel tijd. Ik heb ooit wel eens gehoord dat het ongeveer 10.000 uur kost om een vaardigheid meester te worden.
Ik zal mijn eigen anecdote maar weer even oprakelen: ik speel al meer dan 20 jaar keyboard en piano. Ik heb er zeker meer dan 4000 uur in gestoken, maar ik kan nog steeds niet zomaar iets naspelen als ik het hoor, ik kan nog steeds niet zonder uitgebreid oefenen een stuk foutloos van papier naspelen en ook liedjes die ik al heel lang ken speel ik soms nog eens fout. Nog een keer anderhalf keer zoveel tijd erin stoppen gaat dat echt niet verbeteren. ;)

Voor sommige dingen heb je gewoon een aangeboren talent nodig. Zonder dat kun je het wel leren maar ben je waarschijnlijk niet uitzonderlijk goed.

10.000 uur is trouwens verdomd veel. Als je een half uur per dag de tijd neemt ben je er met 50 jaar nog niet. Met 2 uur per dag doe je daar zo'n 13 jaar over. Lijkt me een te hoog aantal. ;)

[ Voor 8% gewijzigd door NMe op 10-04-2014 21:55 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • martin_v_z
  • Registratie: Januari 2012
  • Laatst online: 04-05 14:01
NMe schreef op donderdag 10 april 2014 @ 21:53:
[...]

Ik zal mijn eigen anecdote maar weer even oprakelen: ik speel al meer dan 20 jaar keyboard en piano. Ik heb er zeker meer dan 4000 uur in gestoken, maar ik kan nog steeds niet zomaar iets naspelen als ik het hoor, ik kan nog steeds niet zonder uitgebreid oefenen een stuk foutloos van papier naspelen en ook liedjes die ik al heel lang ken speel ik soms nog eens fout. Nog een keer anderhalf keer zoveel tijd erin stoppen gaat dat echt niet verbeteren. ;)

Voor sommige dingen heb je gewoon een aangeboren talent nodig. Zonder dat kun je het wel leren maar ben je waarschijnlijk niet uitzonderlijk goed.

10.000 uur is trouwens verdomd veel. Als je een half uur per dag de tijd neemt ben je er met 50 jaar nog niet. Met 2 uur per dag doe je daar zo'n 13 jaar over. Lijkt me een te hoog aantal. ;)
Ik denk ook zeker dat je bij sommige dingen meer tijd nodig hebt om het te leren dan andere. Ook is het natuurlijk belangrijk hoe je die uren besteed. Ik geef je ook wel gelijk niet iedereen zal echt uitblinken in een vaardigheid, ongeacht hoeveel tijd je er in stopt. Maar ik denk zeker dat iedereen wel redelijk kan leren programmeren of zoals jouw voorbeeld muziek kan leren spelen. Maar er zullen inderdaad veel mensen zijn die niet op gehoor kunnen spelen en altijd moeten oefenen op een stuk. Dat geeft niet toch? Zolang je er maar plezier in hebt.

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 05-05 12:36

.oisyn

Moderator Devschuur®

Demotivational Speaker

Dat is leuk als het een hobby is, maar in de professionele sfeer wordt er wat meer van je verwacht.

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • RayNbow
  • Registratie: Maart 2003
  • Laatst online: 23:34

RayNbow

Kirika <3

.oisyn schreef op donderdag 10 april 2014 @ 22:07:
Dat is leuk als het een hobby is, maar in de professionele sfeer wordt er wat meer van je verwacht.
Nu hangt het natuurlijk af van je beroep welke eisen er gesteld worden aan je programmeervaardigheden. Er zit een verschil tussen bijv. een willekeurige wetenschapper die zo nu en dan wat Python code schrijft ter ondersteuning van zijn of haar experimenten of iemand die voor zijn brood in teamverband een complexe AAA game in elkaar moet kloppen. :p

Ipsa Scientia Potestas Est
NNID: ShinNoNoir


Acties:
  • 0 Henk 'm!

  • Alain
  • Registratie: Oktober 2002
  • Niet online
Wat ik in deze discussie een beetje mis is de gradatie's in programmeurs. Zo kun je van een programmeur die alleen code klopt waarvan hem verteld wordt hoe het moet werken tot software engineers / designers die veel dieper in de materie zitten.

Als ik de topic start lees gaat het om een opleiding waarbij de student veel moet weten van zijn vak en hier wat wiskundige / programmeer trucjes op los moet laten. Als je in staat bent om op het niveau van je opleiding te denken, moeten dit soort dingen niet onmogelijk zijn. Hetzij met wat extra inspanning. :)

You don't have to be crazy to do this job, but it helps ....


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 05-05 12:36

.oisyn

Moderator Devschuur®

Demotivational Speaker

RayNbow schreef op donderdag 10 april 2014 @ 22:15:
[...]

Nu hangt het natuurlijk af van je beroep welke eisen er gesteld worden aan je programmeervaardigheden. Er zit een verschil tussen bijv. een willekeurige wetenschapper die zo nu en dan wat Python code schrijft ter ondersteuning van zijn of haar experimenten of iemand die voor zijn brood in teamverband een complexe AAA game in elkaar moet kloppen. :p
Die wetenschapper is dan ook geen programmeur van beroep :)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • Fiber
  • Registratie: Maart 2008
  • Laatst online: 22:43

Fiber

Beaches are for storming.

NMe schreef op donderdag 10 april 2014 @ 21:53:
[...]

10.000 uur is trouwens verdomd veel...
Ruim vijf jaar bij een 40 urige werk/studieweek... Als je daar dan ook nog goede docenten bij hebt dan kan zelfs mijn digibete 72 jarige moeder nog leren programmeren...

Keep your wits sharp, your heart open and your gun loaded. And never mess with mother nature, mother in-laws and, mother freaking Ukrainians.


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 01-05 10:36

NMe

Quia Ego Sic Dico.

Fiber schreef op donderdag 10 april 2014 @ 22:34:
[...]

Ruim vijf jaar bij een 40 urige werk/studieweek... Als je daar dan ook nog goede docenten bij hebt dan kan zelfs mijn digibete 72 jarige moeder nog leren programmeren...
Alleen als die 10k uur kloppen. Ik heb op school gezeten met mensen die op de eerste dag al briljante programmeurs waren en met mensen die zelfs bij hun afstuderen nog geen letter code konden schrijven...

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Fiber
  • Registratie: Maart 2008
  • Laatst online: 22:43

Fiber

Beaches are for storming.

NMe schreef op donderdag 10 april 2014 @ 22:35:
[...] en met mensen die zelfs bij hun afstuderen nog geen letter code konden schrijven...
Dan hebben ze hun best niet gedaan of op z'n best hun tijd aan andere min of meer nuttige zaken besteed.

Als je echt 10.000 uur serieus je best doet onder deskundige begeleiding zonder de kantjes er af te lopen kan iedereen leren programmeren. Zelfs ik. Als iemand het betaalt dan wil ik het best bewijzen... ;)

Keep your wits sharp, your heart open and your gun loaded. And never mess with mother nature, mother in-laws and, mother freaking Ukrainians.


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 01-05 10:36

NMe

Quia Ego Sic Dico.

Fiber schreef op donderdag 10 april 2014 @ 22:38:
[...]

Dan hebben ze hun best niet gedaan of op z'n best hun tijd aan andere min of meer nuttige zaken besteed.
Er waren mensen bij die meer tijd in hun studie staken dan ik. Bij sommigen is gewoon de aanleg er écht niet. Doe je niks aan.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Fiber
  • Registratie: Maart 2008
  • Laatst online: 22:43

Fiber

Beaches are for storming.

NMe schreef op donderdag 10 april 2014 @ 22:41:
[...]

Er waren mensen bij die meer tijd in hun studie staken dan ik. Bij sommigen is gewoon de aanleg er écht niet. Doe je niks aan.
Het was vast geen ruim vijf jaar (van 50 weken x 40 uur) en jullie hadden vast meer vakken dan alleen programmeren en waarschijnlijk ook geen echt goede leraren...

Keep your wits sharp, your heart open and your gun loaded. And never mess with mother nature, mother in-laws and, mother freaking Ukrainians.


Acties:
  • 0 Henk 'm!

  • rty
  • Registratie: November 2011
  • Niet online

rty

Idd, blijkbaar was programmeren niet erg belangrijk voor de opleiding, anders hadden ze ook niet kunnen afstuderen.

Acties:
  • 0 Henk 'm!

  • jessy100
  • Registratie: November 2010
  • Laatst online: 22:08
Ik ben van mening dat iedereen kan leren programmeren, Maar niet iedereen kan een programmeur zijn. Iemand die kan programmeren kan bouwen wat hem verteld word. Een programmeur denkt mee over het project en geeft hier toevoeging aan.

Acties:
  • 0 Henk 'm!

Anoniem: 241683

Fiber schreef op donderdag 10 april 2014 @ 22:44:
[...]

Het was vast geen ruim vijf jaar (van 50 weken x 40 uur) en jullie hadden vast meer vakken dan alleen programmeren en waarschijnlijk ook geen echt goede leraren...
40 uur per week in je studie steken :+

Acties:
  • 0 Henk 'm!

Anoniem: 350934

Topicstarter
Bedankt maikoool en RayNbow voor jullie uitleg, daar kan ik zeker wat mee! Ik sta uiteraard nog in de kinderschoenen wat het programmeren betreft en mijn code evolueert hopelijk mee wanneer ik bijvoorbeeld met functies, classes en OO kan programmeren. Maar dat is uiteraard ook een proces van oefenen, iets wat ik natuurlijk blijf doen.
Red devil schreef op donderdag 10 april 2014 @ 20:31:
Waarom programmeer je niet iets wat gelijk matched met je opleiding?
IMO zijn programmeer opdrachten veel leuker/beter te doen als ze matchen met je eigen vakgebied/interesses :)
De projectopdrachten en colleges informatica zijn allemaal gerelateerd aan de opleiding, dus we werken bijvoorbeeld met DNA-sequenties, maken simulaties van celprocessen, enzovoorts. Als ik thuis aan het oefenen ben, zijn dit ook vaak opdrachten met een biologisch karakter. Een simpele casus met Henk en Klaas is echter wat minder intimiderend en beter te behappen. :)
martin_v_z schreef op donderdag 10 april 2014 @ 21:47:
Als je echt interesse hebt denk ik dat de meeste mensen wel kunnen leren programmeren. Ik denk dan ook dat de meeste vaardigheden aan te leren zijn, alleen kost het veel tijd. Ik heb ooit wel eens gehoord dat het ongeveer 10.000 uur kost om een vaardigheid meester te worden.
Ik heb dat boek gelezen, maar dat is (deels) ook alweer ontkracht. Uiteindelijk draait het toch om aanleg en talent. Je kunt met duizenden uren energie vast wel ergens goed in worden (al is 'goed' ook maar relatief), maar een uitblinker zul je er waarschijnlijk niet mee worden.
AlainS schreef op donderdag 10 april 2014 @ 22:32:
Als ik de topic start lees gaat het om een opleiding waarbij de student veel moet weten van zijn vak en hier wat wiskundige / programmeer trucjes op los moet laten. Als je in staat bent om op het niveau van je opleiding te denken, moeten dit soort dingen niet onmogelijk zijn. Hetzij met wat extra inspanning. :)
In principe klopt dat wel, ja. Bio-informatica draait volledig om het verwerken van data die uit het lab komt. Biologie en chemie spelen daarin natuurlijk een belangrijke rol, maar zijn wel ondergeschikt aan informatica.
Pagina: 1 2 Laatste