Acties:
  • 0 Henk 'm!

  • warzaw
  • Registratie: November 2012
  • Laatst online: 01-10 19:07
Hallo allemaal,

Ik wilde graag dit topic ter discussie openstellen, omdat ik denk dat het relevant is voor een grote groep IT professionals die er dagelijks voor hun werk mee te maken hebben. Het gaat over het bijleren van vaardigheden die je nodig hebt voor/in je werk. De reden dat ik hierover begin is eigenlijk omdat je denk ik met een gerust hart kan zeggen dat de ontwikkelingen in IT-land erg snel gaan. Elke 5 jaar zijn er weer nieuwe paradigma's voor softwareontwikkeling, elke maand schieten er wel weer meerdere potentieel kanshebbende frameworks uit de grond waar velen over vijf jaar niet eens (meer) het bestaan van afweten.

Even kort over mezelf: 32 jaar, werkzaam als software engineer bij een middelgroot bedrijf, heb altijd een persoonlijke voorkeur gehad voor het oplossen van informatietechnologische problemen, waarbij ik graag zoveel mogelijk werk op het snijvlak van business en de IT. Waar ik nu op zoek naar ben is eigenlijk hoe de IT'ers hier aankijken tegen bijleren om skills op te doen voor je werk, nu en in de toekomst. Denk hierbij aan:

- Strategie om een overload aan informatie tegen te gaan (denk aan: leren van de trucs van een nieuw framework, waar je over een paar jaar niks meer mee kan).
- Waarop moet de focus liggen om zogezegd 'duurzaam' te investeren in je carriere (bij je huidige werkgever of markttechnisch gezien?). Ik denk zelf dat de achterliggende (programmeer)concepten belangrijk zijn, maar ik ben ook realistisch genoeg om te snappen dat werkgevers in het algemeen het gewoon belangrijk vinden dat je uit de voeten kunt met techniek X of Y (bv. Spring/Hibernate, JEE, AngularJS).
- Zijn seminars/conferenties wel zo zinvol? Ik heb zelf de indruk dat het heel leuk is om de stand van de technologie een keer gezien te hebben, maar leer je er nu daadwerkelijk zoveel van?

Ik denk dat het belangrijk is dat je je 'thuis' voelt in een bepaalde manier van denken en ook in de vaardigheid die nodig is voor een specifieke klus. Zo zal ik mij bijvoorbeeld niet snel thuisvoelen in C/C++ vanwege bv. het complexe geheugenmanagement. Maar hoe doe je deze vaardigheden op zonder grote investeringen te doen (in termen van tijd) en hiermee uiteindelijk de plank mis te slaan op de lange termijn?

Wat is jullie visie hierop?

Acties:
  • 0 Henk 'm!

  • Zoijar
  • Registratie: September 2001
  • Niet online

Zoijar

Because he doesn't row...

warzaw schreef op zondag 21 september 2014 @ 16:08:
Elke 5 jaar zijn er weer nieuwe paradigma's voor softwareontwikkeling
Volgens mij is het de afgelopen 25 jaar al OOP/imperatief/functioneel :) Ik zie wat betreft paradigma's eigenlijk niks veranderen. Soms is functioneel ineens weer even een hot topic. Programmeren blijft programmeren, alleen de taal en libraries veranderen soms.
Ik denk dat het belangrijk is dat je je 'thuis' voelt in een bepaalde manier van denken en ook in de vaardigheid die nodig is voor een specifieke klus. Zo zal ik mij bijvoorbeeld niet snel thuisvoelen in C/C++ vanwege bv. het complexe geheugenmanagement. Maar hoe doe je deze vaardigheden op zonder grote investeringen te doen (in termen van tijd) en hiermee uiteindelijk de plank mis te slaan op de lange termijn?
Je zal nooit de plank misslaan door C++ "geheugenmanagement" te kennen, omdat dat namelijk neerkomt op een goed ontwerp en duidelijke ownership. Het is dus eigenlijk een hele algemene manier van tegen software aankijken.

Goede tip is niet elke keer meteen met de nieuwste hype meehollen. Dingen zijn vaak zoals ze zijn voor een rede en daar is jaren over nagedacht door alle beste programmeurs; als er echt een framework/taal/library was dat alles zou oplossen, dan was die al veel eerder bedacht.

[ Voor 11% gewijzigd door Zoijar op 21-09-2014 16:33 ]


Acties:
  • 0 Henk 'm!

  • Lethalis
  • Registratie: April 2002
  • Niet online
Oeh, een onderwerp waar ik wel vaker hoofdpijn door heb gekregen :P

Duurzaam investeren komt voor mij neer op vooral het leren van concepten. Voor mij is het leren van GoF design patterns bijvoorbeeld een duurzame investering. Het maakt niet uit in welke taal of met welk framework ik moet werken, de design patterns komen altijd terug.

Net zoals dat je veel kunt leren over security. Of over project en risk management methoden (lees: iteratieve ontwikkelmethoden).

Maar goed, ik schiet soms ook met hagel. Daarmee bedoel ik dat ik in korte tijd misschien wel 10 verschillende frameworks of API's uitprobeer. Soms ook in meerdere talen (C#, Java, Objective C). Het doel is dan niet om in al die dingen goed te worden, maar om inzicht te krijgen in hoe "anderen het opgelost hebben".

Het kan dus bijvoorbeeld voorkomen dat ik thuis iets met Java en JSF pruts, om vervolgens tot de conclusie te komen dat iets dat ik op mijn werk met ASP.Net doe, een stuk handiger kan.

Wat de nieuwste hypes betreft: doe minimaal een "hello world" achtig testproject ermee. Zo begon het op mijn werk met jQuery en later AngularJS ook. Nu gebruiken we het overal.

Als je vernieuwend en concurrerend wil zijn als software ontwikkelaar, dan kun je soms ook niet anders. Kun je wel stug volhouden aan oudere bestaande frameworks, maar dan word je echt te kijk gezet door anderen die wel met nieuwe technieken veel mooiere dingen bouwen.

Software ontwikkeling staat nou eenmaal niet stil.

PS:
En ja, het kost tijd. Veel tijd :P Ik ga (meestal) wel om 5 uur naar huis, maar thuis probeer ik wel nieuwe dingen uit, lees ik relevante boeken of volg ik zelfs nog cursussen. It comes with the job.

Ik ben zo'n eikel die zijn collega's om 10 uur 's ochtends op zondag zomaar een mailtje kan sturen over hoe probleem X of Y op de zaak veel handiger opgelost kan worden ;)

[ Voor 10% gewijzigd door Lethalis op 21-09-2014 18:04 ]

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


Acties:
  • 0 Henk 'm!

  • t_captain
  • Registratie: Juli 2007
  • Laatst online: 02-10 17:42
Paar tips:

- Ontwikkel je breed. Paar jaar .NET gedaan, kijk of je ook eens iets in de Java hoek kunt doen. Niet alleen qua talen, maar ook qua toepassingen.

- Zoek de verdieping. Code staat niet op zichzelf maar implementeert een design. Verdiep je in vraagstukken waarom je in een specifieke situatie een bepaald design pattern wil toepassen.

- Coursera!

Acties:
  • 0 Henk 'm!

  • Sissors
  • Registratie: Mei 2005
  • Niet online
warzaw schreef op zondag 21 september 2014 @ 16:08:
Ik denk dat het belangrijk is dat je je 'thuis' voelt in een bepaalde manier van denken en ook in de vaardigheid die nodig is voor een specifieke klus. Zo zal ik mij bijvoorbeeld niet snel thuisvoelen in C/C++ vanwege bv. het complexe geheugenmanagement. Maar hoe doe je deze vaardigheden op zonder grote investeringen te doen (in termen van tijd) en hiermee uiteindelijk de plank mis te slaan op de lange termijn?
Nu is mijn C/C++ ervaring enkel met microcontrollers, oftewel projecten van beperkt formaat. Echter het geheugenmanagement is toch niks meer dan altijd als je new called, er ook in elk mogelijk pad van je programma een delete moet plaatsvinden? (Zelfde voor malloc/free).

Hoe je die vaardigheden op doet? Makkelijkste zou ik zeggen door klein te beginnen.

Acties:
  • 0 Henk 'm!

  • secret17
  • Registratie: April 2002
  • Laatst online: 06-09 13:46
Ik zit zelf in een vergelijkbaar schuitje: nu +/- 7 jaar werkzaam als consultant/software engineer, en dan ga je steeds beter nadenken over hoe je efficient en effectief met je (eigen) tijd om kunt gaan om bij te blijven in het vak. Mijn aanpak komt wel overeen met wat hierboven al wordt genoemd: vooral focussen op de duurzame/tijdloze kennis en vaardigheden. Concreet komt dat neer op:

- Procesmatig: agile werkmethodes goed beheersen. Niet alleen doen wat er in het boekje staat maar vooral ook snappen waarom je een standup, iteraties, een backlog, etc bijhoudt. De invulling hiervan is nl weer op ieder project verschillend, en je moet je dus wel kunnen aanpassen, zonder de principes overboord te hoeven gooien.

- Architectuur: logische architecturen kennen (dus techniekonafhankelijk) en kunnen omzetten in een technische architectuur. Dus wel op de hoogte blijven van welke tools en framework er beschikbaar zijn en wat ze kunnen, maar niet de hele API uit je hoofd te hoeven weten.

- Programmeren: pattern en principes goed kennen. Ervaring met verschillende paradigma's (OO, functioneel, imperatief of logisch) is een pré. Uiteraard jezelf steeds blijven verbeteren in het schrijven van vooral overzichtelijke, leesbare code. De programmeertaal bepaalt wel enigzins hoe je zaken het beste opdeelt, maar de gewoonte om er een overzichtelijk geheel van te maken i.p.v. een brei is gewoon een vaardigheid en techniek-onafhankelijk.

En verder natuurlijk altijd je persoonlijke/sociale ontwikkeling in de gaten houden. Luisteren, juiste vragen kunnen stellen, goed in verschillende omgevingen mee kunnen draaien, etc. Maar dat geldt natuurlijk voor heel veel beroepen. :)

Edit: wat betreft de inhoudelijk kennis van frameworks hoorde ik laatst wel een goede: de Just-In-Time programmer. 9 vd 10 keer heb je de inhoudelijke kennis van een nieuw framework helemaal niet (direct) nodig omdat je niet op ieder project de nieuwste frameworks gebruikt. De theorie was dus om gewoon even heel hard je best te doen alle ins en outs van iets te leren op het moment dat je wel zeker weet dat je iets gaat gebruiken. Brengt meteen de mogelijkheid voor 'learning-on-the-job' met zich mee. Dus wat je in je in eigen tijd aan theorie en API-kennis leert, kun je op je werk direct gebruiken en/of toetsen. Werkt prima voor mij. :)

[ Voor 16% gewijzigd door secret17 op 22-09-2014 12:02 ]

There can be only fun

Pagina: 1