Hoe programmeerervaring professionaliseren?

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Didius
  • Registratie: Februari 2006
  • Laatst online: 15-07-2024
Ik heb een vraag, of eerder een peiling naar ervaring of tips of ideeën, enz..

Ik heb mezelf leren programmeren in het middelbaar, maar dit was echt wel basis. Bij het verder studeren (master in de wiskunde) kwam daar wat object georiënteerd programmeren bij en een cursus als Algoritmen en datastructuren, Wiskundige optimalisatie met van die oplossingstechnieken (gretige algoritmen, verdeel en heers, branch en bound, etc..). Mezelf SQL geleerd (met behulp van een boek), ook verschillende projectjes uitgewerkt (met php, javascript en recent met node.js en electron) enzoverder.

Via dit pad is mijn programmacode al veel verbeterd. Je kent het gevoel wel dat wanneer je de eerste programma's die je geschreven hebt terug bekijkt en denkt, 'wow, dat is echt wel prutswerk, nu zou ik dat volledig anders schrijven'.

Toch heb ik het gevoel (en het is eerder een feit) dat ik nog steeds pruts. Dit vergeleken met echte professionele programmeurs. Ik heb het gevoeld dat alles wat je leest in boeken of online tutorials, waar men vaak van die 'eenvoudige' programmaatjes maakt, toch tekort schiet. Hoe pak je eigenlijk best grote programmeerprojecten aan? Hoe structureer je echt van die projecten zodat dit schaalbaar en eenvoudig te onderhouden is... Dat wordt naar mijn gevoel zelden aangebracht?

Ik zou dus mijn programmeerkennis willen *professionaliseren* maar weet niet echt hoe. Is dit gevoel herkenbaar? En hoe overkom ik dit?

Ik was begonnen met grotere open-source projecten (met code op github bijvoorbeeld) te bekijken maar dat lijkt moeilijk om daar uit te leren. Andere ideeën? Misschien ben ik de enige die met dit probleem worstelt vandaar ik even pols...

Acties:
  • +2 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 23-06 13:51

NMe

Quia Ego Sic Dico.

Verwacht je hier een eenduidig makkelijk antwoord op? Er zijn complete studies die je leren hoe je een goeie developer moet zijn en zo'n studie beperkt zich niet tot het programmeren zelf. Je leert ook projectmanagement, softwaredesign en -architectuur, enz. De juiste manier om dit goed te leren is ofwel een bedrijf vinden dat je de ruimte biedt om jezelf te ontwikkelen als developer, ofwel een studie volgen.

Om maar even een vergelijking te trekken: wat je hier vraagt is ongeveer equivalent aan de vraag hoe je een goeie dokter moet worden. Je hebt op de middelbare school leren reanimeren maar als je nu een gebroken been behandelt vind je toch dat je echt prutswerk aflevert vergeleken met echte dokters.

'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!

  • JukeboxBill
  • Registratie: Juni 2003
  • Nu online
Ik snap je probleem. Zelf programmeer ik ook op hobbyniveau, al vanaf dat ik mijn eerste PC, een X86 IBM-kloon kocht. Eerst in Basic maar al gauw overgestapt op Pascal en later OOP Delphi. Daardoor wordt je min of meer wel gedwongen om structureel te programmeren, dus dat scheelt wel.

Voor mijn werk heb ik een keer een softwareproject begeleid, welke werd uitgevoerd door een softwarebedrijf. Toen begreep ik dat het programmeren maar een beperkt deel is van software-ontwikkeling. Ik heb bij dat project alleen te maken gehad met de ontwikkelaar. Het uiteindelijke programmeren is daarna een "simpele vertaalslag", die voor mij achter de schermen gebeurde.

Zoals de meeste amateurs doe ik wel aan software ontwerp, maar dat loopt parallel met het programmeren. Je doet het zonder daar bewust mee bezig te zijn. Natuurlijk moet ik voor een ingewikkeld geval wel eens een soort stroomschema of iets van een basisontwerp maken, maar dat blijft altijd maar zeer beperkt.

Mijn grootste programmeerwerk betrof een programma voor familie met een metaalbewerkingsbedrijf. Die hadden behoefte aan een programma om van CAD-tekeningen een CNC-programma te maken, om daarmee de machines aan te sturen.
Het begon als een simpel DOS command-line programma en is uitgemond in een Windows applicatie met heel veel mogelijkheden. Tijdens de ontwikkeling was het wel nodig om aan software-design te doen, omdat je moet voldoen aan de wensen van een ander en het bespaart veel programmeerwerk om eerst de wensen duidelijk te hebben en dan pas te gaan programmeren.

Ik heb ooit met het idee gespeeld om van programmeren mijn werk te maken, totdat ik erachter kwam dat een programmeur maar betrekkelijk weinig verdient. In de praktijk ben je als programmeur niets anders dan een vertaler.
Het geld wordt binnengehaald door de ontwikkelaars en projectmanagers.

Soms ben ik bijna gelukkig


Acties:
  • +1 Henk 'm!

  • Dido
  • Registratie: Maart 2002
  • Laatst online: 30-06 20:11

Dido

heforshe

JukeboxBill schreef op zondag 4 november 2018 @ 14:00:
Ik heb ooit met het idee gespeeld om van programmeren mijn werk te maken, totdat ik erachter kwam dat een programmeur maar betrekkelijk weinig verdient. In de praktijk ben je als programmeur niets anders dan een vertaler.
Het geld wordt binnengehaald door de ontwikkelaars en projectmanagers.
Dat hangt een beetje af van wat voor definities je hanteert. Een code-monkey verdient inderdaad minder dan een (systeem)ontwikkelaar, maar in de praktijk zijn ze allebei "programmeur" - alleen op een ander niveau. En die tweede doet ook nog wel wat meer dan alleen regels code schrijven.

De programmeur die zuiver een volledig uitgewerkt functioneel ontwerp omzet in regels sourcecode verdient niet veel - maar daar zijn er ook steeds minder van (nodig).

On-topic:

Zelfs na 18 jaar professioneel programeren denk ik bij oude code van mezelf nog steeds dat ik het nu beter zou doen. En dat is maar goed ook: zodra dat niet meer zo is, ben ik in de tussentijd dus niet beter geworden en dan wordt het wellicht tijd om te stoppen met progarmmeren.

In die zin ben je dus al op een belangrijke manier aan het verbeteren.

Daarnaast merk ik dat het heel belangrijk is om ervaring op te doen in een professionele omgeving waar je feedback krijgt van collega's. Theorie is leuk, maar de praktijk is toch altijd anders. Het is goed om een gedegen basis te hebben waarmee je in een professionele omgeving mee kunt draaien, maar echt goed wordt je pas op de vloer. Kijk naar de eisen die gesteld worden aan een junior ontwikkelaar, probeer daaraan te voldoen, en ga aan de slag :)

[ Voor 32% gewijzigd door Dido op 04-11-2018 14:10 ]

Wat betekent mijn avatar?


Acties:
  • 0 Henk 'm!

  • Didius
  • Registratie: Februari 2006
  • Laatst online: 15-07-2024
NMe schreef op zondag 4 november 2018 @ 13:22:
Verwacht je hier een eenduidig makkelijk antwoord op? Er zijn complete studies die je leren hoe je een goeie developer moet zijn en zo'n studie beperkt zich niet tot het programmeren zelf. Je leert ook projectmanagement, softwaredesign en -architectuur, enz. De juiste manier om dit goed te leren is ofwel een bedrijf vinden dat je de ruimte biedt om jezelf te ontwikkelen als developer, ofwel een studie volgen.

[...]
Ik verwacht zeker geen eenduidig makkelijk antwoord. Ik besef dat de vraag niet evident is.
Een studie volgen is wel leuk en leerzaam, maar het is toch nog iets anders met de praktijk. (zoals Dido zei).

Om op de analogie van de arts terug te komen, ik heb misschien wel leren reanimeren maar er is niets wat me tegenhoudt om te leren hoe ik een gebroken been *behandel* zonder daarbij de volledige opleiding tot arts te moeten genieten.
Dido schreef op zondag 4 november 2018 @ 14:06:
[...]

Daarnaast merk ik dat het heel belangrijk is om ervaring op te doen in een professionele omgeving waar je feedback krijgt van collega's. Theorie is leuk, maar de praktijk is toch altijd anders. Het is goed om een gedegen basis te hebben waarmee je in een professionele omgeving mee kunt draaien, maar echt goed wordt je pas op de vloer. Kijk naar de eisen die gesteld worden aan een junior ontwikkelaar, probeer daaraan te voldoen, en ga aan de slag :)
Ik denk dat dit eigenlijk de essentie vormt.
Ik heb ook al gedacht dat een mogelijkheid om tot een nieuw niveau te geraken zou zijn om werk te zoeken als Junior developer. Ik vermoed dat bedrijven junior devs concreet opleiden om op zo'n gestructureerde methode te werk te gaan, hetgeen rekening houdt met schaalbaarheid in grote projecten.

Nu heb ik al werk, wat ik graag behoud, en zoek ik dus naar een manier om die bedrijfservaring toch te kunnen opdoen... Ik neem je tip van die eisen wel mee en zal dat eens opzoeken.
JukeboxBill schreef op zondag 4 november 2018 @ 14:00:
[...]
Het begon als een simpel DOS command-line programma en is uitgemond in een Windows applicatie met heel veel mogelijkheden. Tijdens de ontwikkeling was het wel nodig om aan software-design te doen, omdat je moet voldoen aan de wensen van een ander en het bespaart veel programmeerwerk om eerst de wensen duidelijk te hebben en dan pas te gaan programmeren.
Ik herken me in je verhaal. Me eens verdiepen in software-design lijkt dus ook een aanrader. Bedankt!

[ Voor 0% gewijzigd door Didius op 04-11-2018 15:08 . Reden: dt fout ]


Acties:
  • +2 Henk 'm!

  • Lethalis
  • Registratie: April 2002
  • Niet online
Programmeren is een leerproces dat nooit eindigt.

Je leert altijd nieuwe dingen, maar ook niet alles dat in eerste instantie handig is, blijkt dat ook op de langere termijn te zijn.

Zo blijf ik altijd bezig met het zoeken naar de meest optimale weg om een doel te bereiken. En mijn ideeën daarover veranderen continu.

Prutsers zijn we allemaal :P

PS
Ik programmeer al 15 jaar fulltime. Na 5 jaar vond ik mezelf een expert. Na 10 jaar was ik wel okee. Nu vind ik bijna alles prutswerk dat ik doe :) Het kan altijd beter.

[ Voor 19% gewijzigd door Lethalis op 04-11-2018 18:54 ]

Ask yourself if you are happy and then you cease to be.


Acties:
  • 0 Henk 'm!

  • Mugwump
  • Registratie: Mei 2017
  • Laatst online: 07:08
Didius schreef op zondag 4 november 2018 @ 12:49:
Ik heb een vraag, of eerder een peiling naar ervaring of tips of ideeën, enz..

Ik heb mezelf leren programmeren in het middelbaar, maar dit was echt wel basis. Bij het verder studeren (master in de wiskunde) kwam daar wat object georiënteerd programmeren bij en een cursus als Algoritmen en datastructuren, Wiskundige optimalisatie met van die oplossingstechnieken (gretige algoritmen, verdeel en heers, branch en bound, etc..). Mezelf SQL geleerd (met behulp van een boek), ook verschillende projectjes uitgewerkt (met php, javascript en recent met node.js en electron) enzoverder.

Via dit pad is mijn programmacode al veel verbeterd. Je kent het gevoel wel dat wanneer je de eerste programma's die je geschreven hebt terug bekijkt en denkt, 'wow, dat is echt wel prutswerk, nu zou ik dat volledig anders schrijven'.


Ik zou dus mijn programmeerkennis willen *professionaliseren* maar weet niet echt hoe. Is dit gevoel herkenbaar? En hoe overkom ik dit?

Ik was begonnen met grotere open-source projecten (met code op github bijvoorbeeld) te bekijken maar dat lijkt moeilijk om daar uit te leren. Andere ideeën? Misschien ben ik de enige die met dit probleem worstelt vandaar ik even pols...
Uiteindelijk is er natuurlijk maar één manier om je programmeerkennis echt te professionaliseren, namelijk er je professie van maken. ;)
Ik heb ondanks een revelante studie (technische informatica) toch echt veruit het meest geleerd in de praktijk, zeker wat het ontwikkelen van software betreft. Door te doen leer je wat wel en wat niet werkt, zie je hoe anderen werken en denken, krijg je feedback van (meer ervaren) collega's op code die je produceert en ga zo maar door.
Nog steeds werk ik met mensen die ik veel competenter inschat op specialistische aspecten van de software-ontwikkeling, maar ik merk daarnaast ook wel dat mijn veelzijdigheid ook wel weer een sterk punt is. Het verbaast me ook steeds weer hoeveel mensen er in de IT werken die na meer dan tien jaar nog steeds heel weinig lijken te snappen van software-ontwikkeling.
Toch heb ik het gevoel (en het is eerder een feit) dat ik nog steeds pruts. Dit vergeleken met echte professionele programmeurs. Ik heb het gevoel dat alles wat je leest in boeken of online tutorials, waar men vaak van die 'eenvoudige' programmaatjes maakt, toch tekort schiet. Hoe pak je eigenlijk best grote programmeerprojecten aan? Hoe structureer je echt van die projecten zodat dit schaalbaar en eenvoudig te onderhouden is... Dat wordt naar mijn gevoel zelden aangebracht?
Ook daarvoor geldt dat het een kwestie van vallen en opstaan is. In het bedrijfsleven is het vaak al lastig genoeg om enigszins helder te krijgen wat de behoefte is van "de business" en dat is vaak de basis voor keuzes die je maakt op het gebied van structurering van software. Niet zelden doe ik een project waar we met enige mazzel halverwege een beetje helder beginnen te krijgen wat nou echt de behoefte is en kan de software geleidelijk aan die kant op 'herschreven' worden. Het komt ook niet zelden voor dat dit pas gebeurt tegen de tijd dat het budget er al volledig doorheen is. Grote projecten doe je ook nooit alleen en daar ligt ook een belangrijk deel van de uitdaging om goede en onderhoudbare software te schrijven. Niet zelden heb ik een paar niet al te beste software-ontwikkelaars binnen een paar maanden vanuit het niets een volkomen ononderhoudbare brei code zien produceren. Kwaliteitscontrole / -garantie middels code reviews, pair programming en meer van dat soort zaken kan helpen, maar je hebt simpelweg ook te maken met mensen. Niet iedereen functioneert even goed in een team, kan tegen (opbouwende) kritiek, is geïnteresseerd in meer dan iets opleveren dat werkt en ga zo maar door. Dat is ook altijd een uitdaging bij het opleveren van kwalitatief goede software.
Er is ook niet zoiets als inherent schaalbare of goed onderhoudbare code. Er zijn natuurlijk legio basisprincipes, maar zeker in het geval van schaalbaarheid hangt het er maar net vanaf op welk gebied je schaalbaar wilt zijn. Het is altijd een kwestie van afwegingen en voor- en nadelen. Wat betreft schaalbaarheid is dit nog wel een aardige leestip die theoretische fundamenten met praktische toepassing combineert overigens.
Veel van wat je leest in boeken of tutorials is inderdaad een geïdealiseerde werkelijkheid zonder alle complexiteiten waar je in de praktijk mee wordt geconfronteerd, daarom moet je ook praktijkervaring opdoen.

"The question of whether a computer can think is no more interesting than the question of whether a submarine can swim" - Edsger Dijkstra


Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 09:50
Didius schreef op zondag 4 november 2018 @ 12:49:
Ik zou dus mijn programmeerkennis willen *professionaliseren* maar weet niet echt hoe. Is dit gevoel herkenbaar? En hoe overkom ik dit?
Waarom? Wil je er je beroep van maken? Zo niet dan zou ik gewoon lekker blijven hobbyen. Het grootste deel leer je gewoon on the job; en dat duurt gewoon jaren. En dan is het ook nog belangrijk of je een opleiding hebt of niet; een opleiding helpt je sneller nieuwe dingen op te pakken en daarbij kom je 'hoger' op de ladder binnen wat opdrachten betreft. Dus voor je een dergelijke route inslaat moet je je echt afvragen wat je nu precies wil.

https://niels.nu


Acties:
  • 0 Henk 'm!

  • chris
  • Registratie: September 2001
  • Laatst online: 11-03-2022
NMe schreef op zondag 4 november 2018 @ 13:22:
Verwacht je hier een eenduidig makkelijk antwoord op? Er zijn complete studies die je leren hoe je een goeie developer moet zijn en zo'n studie beperkt zich niet tot het programmeren zelf. Je leert ook projectmanagement, softwaredesign en -architectuur, enz. De juiste manier om dit goed te leren is ofwel een bedrijf vinden dat je de ruimte biedt om jezelf te ontwikkelen als developer, ofwel een studie volgen.

Om maar even een vergelijking te trekken: wat je hier vraagt is ongeveer equivalent aan de vraag hoe je een goeie dokter moet worden. Je hebt op de middelbare school leren reanimeren maar als je nu een gebroken been behandelt vind je toch dat je echt prutswerk aflevert vergeleken met echte dokters.
Ik heb genoeg mensen gezien de hoge cijfers haalden bij een studie informatica, maar echt niet konden programmeren. Ook andersom: heel goede programmeurs die niet goed waren in informatica.

Ik zou meerdere manieren proberen om te leren: je kan open-source code lezen, boeken lezen, je kan dingen bouwen, samenwerken met mensen, verschillende talen/paradigma's uitproberen, video's kijken, etc. Voor mij werkte 't goed om een combinatie van alles te doen (maar uiteindelijk leer ik zelf 't meest van dingen maken). Als je iemand kan vinden om mee samen te werken kan dat ook erg effectief zijn. Ik denk dat 't goed is in de breedte te kijken, maar ook dat 't fijn is om één taal/platform echt goed te kunnen. Op den duur kan je dit uitbouwen naar meer.

Zoals je zelf schrijft: veel is vooral ervaring. Daar zijn niet zo veel shortcuts voor: lekker dingen bouwen, fouten maken, analyseren (al dan niet onbewust) en volgende keer ben je weer een beetje beter.

Acties:
  • 0 Henk 'm!

  • Mastermind
  • Registratie: Februari 2000
  • Laatst online: 26-06 12:53
Didius schreef op zondag 4 november 2018 @ 12:49:
Ik heb een vraag, of eerder een peiling naar ervaring of tips of ideeën, enz..
Toch heb ik het gevoel (en het is eerder een feit) dat ik nog steeds pruts. Dit vergeleken met echte professionele programmeurs. Ik heb het gevoeld dat alles wat je leest in boeken of online tutorials, waar men vaak van die 'eenvoudige' programmaatjes maakt, toch tekort schiet. Hoe pak je eigenlijk best grote programmeerprojecten aan? Hoe structureer je echt van die projecten zodat dit schaalbaar en eenvoudig te onderhouden is... Dat wordt naar mijn gevoel zelden aangebracht?
Als je aan een groot programmeerproject begint kun je het best het gestructureerd opzetten en de nieuwste versies van het framework gebruiken.
Zo is voor webontwikkeling ASP.NET Core 2.0 een goede, en als je dan het MVC-pattern gebruikt en goed de SOLID-principes toepast, dan is het in de toekomst ook nog onderhoudbaar.

Acties:
  • 0 Henk 'm!

  • Lachiam
  • Registratie: November 2018
  • Laatst online: 24-07-2021
Ik zit hier zelf ook mee, ik heb al ervaring(zelfaangeleerd)front en back-end in webdevelopment en zou graag toch van mijn hobby mijn beroep willen maken. Ik werk nu in een heel andere branche, ben ondertussen 28 en vader van 2 kinderen dus echt veel tijd voor scholing heb ik niet (moet wel gewoon werken voor de kost). Nu ben ik benieuwd of er veel waarde word gehecht aan bijv een mscd 70-480 certificaat( zit eraan te denken dit examen te doen) en of dit naast een groot portfolio van projecten op github genoeg kan zijn om een baan te vinden hierin.

Acties:
  • +1 Henk 'm!

  • Mugwump
  • Registratie: Mei 2017
  • Laatst online: 07:08
Lachiam schreef op maandag 12 november 2018 @ 20:13:
Ik zit hier zelf ook mee, ik heb al ervaring(zelfaangeleerd)front en back-end in webdevelopment en zou graag toch van mijn hobby mijn beroep willen maken. Ik werk nu in een heel andere branche, ben ondertussen 28 en vader van 2 kinderen dus echt veel tijd voor scholing heb ik niet (moet wel gewoon werken voor de kost). Nu ben ik benieuwd of er veel waarde word gehecht aan bijv een mscd 70-480 certificaat( zit eraan te denken dit examen te doen) en of dit naast een groot portfolio van projecten op github genoeg kan zijn om een baan te vinden hierin.
Ik vind persoonlijk (en vele mensen in het vakgebied met mij) een portfolio met projecten op Github een heel stuk interessanter dan een Microsoft certificaatje.

"The question of whether a computer can think is no more interesting than the question of whether a submarine can swim" - Edsger Dijkstra


Acties:
  • +1 Henk 'm!

  • Cloud
  • Registratie: November 2001
  • Laatst online: 24-06 13:05

Cloud

FP ProMod

Ex-moderatie mobster

Als je het portfolio op Github al hebt en het lijkt je leuk op die manier te verdiepen dan kun je het er natuurlijk bij doen. Maar wat een bedrijf belangrijk vindt verschilt natuurlijk heel erg. Eigen code op GH is over het algemeen wel de duidelijkste graadmeter, certificeringen zijn toch vaak gedeeltelijk stampwerk.

Je zou in vacatures kunnen kijken wat bedrijven voor eisen stellen aan junior developer rollen, om te zien waar ze waarde aan hechten naast werkervaring :)

Never attribute to malice that which can be adequately explained by stupidity. - Robert J. Hanlon
60% of the time, it works all the time. - Brian Fantana

Pagina: 1