Archief - Wat studeren om apps te kunnen maken?

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

MrKend54l

Legacy Member
Recipe4hate zei:
Ergens kan ik je wel volgen, maar zoals al gezegd in dit topic: programmeren is niet alleen algoritmisch denken/schrijven.

Crappy code...ok, maar in veel teams is er ook een concept zoals 'code review' of 'crosstesting', waarbij de dev ook nog een pak bijleert...
Als ik kijk hoe mijn code er een tijd geleden uitzag tov. de code die ik nu schrijf, enkel en alleen door code reviews, sta ik al een heel eind verder.

Sommige mensen hebben gewoon sneller een concept/structuur beet.
Ik zie de 'intelligentere' devs dan ook eerder doorgroeien naar posities als analyst, teamlead, senior dev...

Uiteindelijk: als uw programma doet wat het moet doen, is de 1e fase bereikt - is je programma dan beter of slechter dan iemand die een master heeft?
Refactoring, clean code, onderhoudbaarheid, loose coupling enz zijn concepten die dan pas in het spel komen, maar hebben IMO niks met de kwaliteit van het programma zelf te maken.

Iemand die prefab code aanpast, is volgens mij eerder een scriptkiddie of iemand die als hobby iets opzet.

Just my 2 cents :)
Maar goed wat is dan crappy code?
Als je een programma schrijft wat enkel jij kan lezen dan is het in mijn ogen geen goed programma.

Ik weet ook niet goed wat jij juist doet qua programming. Maar ik kan mij voorstellen dat als jij vaak triviale dingen moet doen dat je dan gewoon copy paste uit een prefab. En ik kan mij dan ook voorstellen dat er programmeurs zijn die enkel maar triviale dingen doen die dus ook enkel maar prefab gebruiken.

Je kan moeilijk elke dag opnieuw het warm water uitvinden. En dingen zoals bubblesort bestaan nu eenmaal dus waarom zou je dit dan opnieuw schrijven als je het gewoon kan kopiëren?

Emerxill

Legacy Member
MrKend54l zei:
Maar goed wat is dan crappy code?
Als je een programma schrijft wat enkel jij kan lezen dan is het in mijn ogen geen goed programma.

Ik weet ook niet goed wat jij juist doet qua programming. Maar ik kan mij voorstellen dat als jij vaak triviale dingen moet doen dat je dan gewoon copy paste uit een prefab. En ik kan mij dan ook voorstellen dat er programmeurs zijn die enkel maar triviale dingen doen die dus ook enkel maar prefab gebruiken.

Je kan moeilijk elke dag opnieuw het warm water uitvinden. En dingen zoals bubblesort bestaan nu eenmaal dus waarom zou je dit dan opnieuw schrijven als je het gewoon kan kopiëren?
Weinig of niks van informatica kennen en toch zo'n neerbuigende houding blijven aannemen...ge moet maar durven.

Soit, een "programma" taxeren op de leesbaarheid van de code, sterk. Een functioneel goede applicatie kan perfect onleesbare en/of crappy code bevatten.
Goed geschreven code maakt de code testbaar, onderhoudbaar, uitbreidbaar,... maar maakt het programma zelf niet goed of slecht.

Je kan inderdaad het warm water moeilijk elke dag opnieuw uitvinden, daarmee dat je bestaande code moet hergebruiken, niet copy-pasten. Als er 1 developer in mijn team ooit een algoritme uit een bestaande library copy-paste, dan stamp ik die buiten...vanaf het 11e verdiep.

En iemand zijn coding-skills beoordelen op zijn diploma is, toch ook een ferm staaltje van hokjes denken.
Mijn ervaring is dat masters veeleer "fancy" dingen proberen te doen en meer het warm water proberen uit te vinden, wat vaak resulteert in moeilijker lees- en testbare code.
Terwijl bachelors vaker een specifieke programmeertaal beter beheersen waardoor ze meer gebruik maken van reeds bewezen en uitgebreid geteste code uit bestaande libraries.
Elk zijn typische eigenschappen dat imho evenwaardige applicaties kan opleveren.

De kracht van een goede master zit hem imo in het analyseren van complexe problemen en dat te vertalen in code.

MrKend54l

Legacy Member
Emerxill zei:
Weinig of niks van informatica kennen en toch zo'n neerbuigende houding blijven aannemen...ge moet maar durven.

Soit, een "programma" taxeren op de leesbaarheid van de code, sterk. Een functioneel goede applicatie kan perfect onleesbare en/of crappy code bevatten.
Goed geschreven code maakt de code testbaar, onderhoudbaar, uitbreidbaar,... maar maakt het programma zelf niet goed of slecht.

Je kan inderdaad het warm water moeilijk elke dag opnieuw uitvinden, daarmee dat je bestaande code moet hergebruiken, niet copy-pasten. Als er 1 developer in mijn team ooit een algoritme uit een bestaande library copy-paste, dan stamp ik die buiten...vanaf het 11e verdiep.

En iemand zijn coding-skills beoordelen op zijn diploma is, toch ook een ferm staaltje van hokjes denken.
Mijn ervaring is dat masters veeleer "fancy" dingen proberen te doen en meer het warm water proberen uit te vinden, wat vaak resulteert in moeilijker lees- en testbare code.
Terwijl bachelors vaker een specifieke programmeertaal beter beheersen waardoor ze meer gebruik maken van reeds bewezen en uitgebreid geteste code uit bestaande libraries.
Elk zijn typische eigenschappen dat imho evenwaardige applicaties kan opleveren.

De kracht van een goede master zit hem imo in het analyseren van complexe problemen en dat te vertalen in code.

Dat is zeker niet de bedoeling hoor.

Maar ik snap uw uitleg niet zo goed. Jij spreekt over code hergebruiken maar je copy paste het niet.
Wat moet ik mij dan voorstellen hierbij?

Recipe4hate

Legacy Member
ofwel DRY principe :)
Nooit code 2 keer schrijven

ofwel een idee ergens van halen, maar niet blind kopieren.

nameless

Legacy Member
MrKend54l zei:
Maar ik snap uw uitleg niet zo goed. Jij spreekt over code hergebruiken maar je copy paste het niet.
Wat moet ik mij dan voorstellen hierbij?

Als je bv een encryptie algoritme nodig hebt, ga je waarschijnlijk een bestaande library van een 3th party gebruiken ipv van zelf een implementatie ervan te schrijven. Aangezien die library al door 100'en anderen in gebruik is.

Volgens gebruiken zowat 99% van alle dev's tegenwoordig 'prefab' code omdat het gewoon niet efficient om alles zelf te schrijven.

MrKend54l

Legacy Member
nameless zei:
Als je bv een encryptie algoritme nodig hebt, ga je waarschijnlijk een bestaande library van een 3th party gebruiken ipv van zelf een implementatie ervan te schrijven. Aangezien die library al door 100'en anderen in gebruik is.

Volgens gebruiken zowat 99% van alle dev's tegenwoordig 'prefab' code omdat het gewoon niet efficient om alles zelf te schrijven.
Kijk ja dat is ook hoe ik het zie.
Als je niet bezig bent met super innoverende dingen dan zou ik het nut niet zien om elke dag nieuwe code te schrijven. Je neemt gewoon bestaande stukken en voegt deze samen om in harmonie met elkaar te werken.

Daarbij komt dit net ten goede lijkt mij. Als je een sorteer algoritme nodig hebt e. Je neemt steeds dezelfde lap code. Ja dan werkt het altijd hetzelfde, ziet het er altijd hetzelfde uit en dus test je het elke keer hetzelfde. Zo krijg je een standaard wat in mijn ogen enkel voordelen heeft.
Ik kan die stukken code of algoritmes beschrijven als bouwstenen. Door het samenvoegen van meerdere bouwstenen bekom je een goed leesbaar programma dat gestandariseerd is. Zo levert elke programmeur altijd dezelfde kwaliteit af.

Emerxill

Legacy Member
MrKend54l zei:
Kijk ja dat is ook hoe ik het zie.
Als je niet bezig bent met super innoverende dingen dan zou ik het nut niet zien om elke dag nieuwe code te schrijven. Je neemt gewoon bestaande stukken en voegt deze samen om in harmonie met elkaar te werken.

Daarbij komt dit net ten goede lijkt mij. Als je een sorteer algoritme nodig hebt e. Je neemt steeds dezelfde lap code. Ja dan werkt het altijd hetzelfde, ziet het er altijd hetzelfde uit en dus test je het elke keer hetzelfde. Zo krijg je een standaard wat in mijn ogen enkel voordelen heeft.
Ik kan die stukken code of algoritmes beschrijven als bouwstenen. Door het samenvoegen van meerdere bouwstenen bekom je een goed leesbaar programma dat gestandariseerd is. Zo levert elke programmeur altijd dezelfde kwaliteit af.

Het gaat zelfs verder, die libraries moet je "importeren" in je applicatie en gewoon oproepen. Daar komt geen copy-paste van een lap code bij kijken. In Java bijvoorbeeld, zijn dat reeds gecompileerde classes. Strikt genomen kan je niet meer aan die code.
Die functionaliteit hoeft de developer die ze gebruikt dan ook niet meer te testen, want die is al getest door de ontwikkelaars van die library.

Om terug te komen op je "bubblesort" om een collectie te sorteren: in zowat elke programmeertaal roept de developer gewoon een sorteer functie op die bij de taal is geleverd, welk algoritme erachter zit weet de overgrote meerderheid zelfs niet. Het is niet belangrijk, aangezien geen enkel programmeertaal het zich kan permitteren om om niet minstens voor O(n log(n)) performantie te gaan.

HUSKE

Legacy Member
Denk verder dat er maar weinig masters zijn die echt heel lang blijven programmeren.
Dat wordt snel eentonig en op termijn te duur. Deed na 5 jaar vooral het design en uitdenken van een oplossing en een bachelor mocht dat in code omzetten zodat er meer tijd vrijkwam voor nieuwe projecten.

Nu bedenk ik ook enkel concepten, test al eens iets (code zonder enig opvangnet :p) en doe een proof of concept en geef dat dan uit handen aan de developers. Moet zeggen dat de bachelors de syntax veel beter beheersen dan ikzelf en zij over het puur code schrijven minder lang doen.
Maar het 'denkwerk' zit er dan eigenlijk ook al op.

metalleke

Legacy Member
MrKend54l zei:
Kijk ja dat is ook hoe ik het zie.
Als je niet bezig bent met super innoverende dingen dan zou ik het nut niet zien om elke dag nieuwe code te schrijven. Je neemt gewoon bestaande stukken en voegt deze samen om in harmonie met elkaar te werken.

Daarbij komt dit net ten goede lijkt mij. Als je een sorteer algoritme nodig hebt e. Je neemt steeds dezelfde lap code. Ja dan werkt het altijd hetzelfde, ziet het er altijd hetzelfde uit en dus test je het elke keer hetzelfde. Zo krijg je een standaard wat in mijn ogen enkel voordelen heeft.
Ik kan die stukken code of algoritmes beschrijven als bouwstenen. Door het samenvoegen van meerdere bouwstenen bekom je een goed leesbaar programma dat gestandariseerd is. Zo levert elke programmeur altijd dezelfde kwaliteit af.

Je hebt duidelijk geen/weinig ervaring in software ontwikkeling. Er is gewoon een gigantisch verschil in niveau, zelfs rond de verschillende scholingsniveau's.
Ik heb al op verschillende projecten samen gewerkt met intern/extern masters/bachelors/... it/niet-it diploma. En op basis van een papier kun je toch amper inschatten.

Als je het toch wilt zien als bouwstenen. Een simpele analogie. Iedere metser bouwt een muur, en toch zal de ene recht zijn terwijl de andere zal scheef zijn. ;)

Btw, hoeveel super innoverende jobs zijn er in IT?

HUSKE zei:
Denk verder dat er maar weinig masters zijn die echt heel lang blijven programmeren.
Dat wordt snel eentonig en op termijn te duur. Deed na 5 jaar vooral het design en uitdenken van een oplossing en een bachelor mocht dat in code omzetten zodat er meer tijd vrijkwam voor nieuwe projecten.

Nu bedenk ik ook enkel concepten, test al eens iets (code zonder enig opvangnet :p) en doe een proof of concept en geef dat dan uit handen aan de developers. Moet zeggen dat de bachelors de syntax veel beter beheersen dan ikzelf en zij over het puur code schrijven minder lang doen.
Maar het 'denkwerk' zit er dan eigenlijk ook al op.

En dan krijg je architecten die een oplossingen "bedenken" die het ontwikkelen niet waard zijn. Effe paar jaar op projecten, veel wisselen en dan verhuren als senior/architect/... (wat van titel ge erop wilt plakken).
Soit verre van allemaal natuurlijk. Maar komt jammer genoeg veel voor.

MrKend54l

Legacy Member
metalleke zei:
Je hebt duidelijk geen/weinig ervaring in software ontwikkeling. Er is gewoon een gigantisch verschil in niveau, zelfs rond de verschillende scholingsniveau's.
Ik heb al op verschillende projecten samen gewerkt met intern/extern masters/bachelors/... it/niet-it diploma. En op basis van een papier kun je toch amper inschatten.

Als je het toch wilt zien als bouwstenen. Een simpele analogie. Iedere metser bouwt een muur, en toch zal de ene recht zijn terwijl de andere zal scheef zijn. ;)

Btw, hoeveel super innoverende jobs zijn er in IT?



En dan krijg je architecten die een oplossingen "bedenken" die het ontwikkelen niet waard zijn. Effe paar jaar op projecten, veel wisselen en dan verhuren als senior/architect/... (wat van titel ge erop wilt plakken).
Soit verre van allemaal natuurlijk. Maar komt jammer genoeg veel voor.
Wat ik vooral merk is dat de programmeurs precies hun job willen beschermen. Het allemaal een beetje verbloemen en het moeilijker doen lijken dan het werkelijk is.
Ik ben het volledig eens met het feit dat programmeren zonder kennis onmogelijk is.
Maar ik kan mij evengoed voorstellen dat grote stukken algoritme, software en logica reeds voorgekauwd zijn. Het is dus een kwestie van alle blokken te nemen en de juiste verbindingen te leggen.

En als het complex en innoverend moet zijn dan schakelen ze iemand in die de krijtlijnen schrijft en de programmeurs die wederom de basic code er rond maken.

metalleke

Legacy Member
MrKend54l zei:
Wat ik vooral merk is dat de programmeurs precies hun job willen beschermen. Het allemaal een beetje verbloemen en het moeilijker doen lijken dan het werkelijk is.
Ik ben het volledig eens met het feit dat programmeren zonder kennis onmogelijk is.
Maar ik kan mij evengoed voorstellen dat grote stukken algoritme, software en logica reeds voorgekauwd zijn. Het is dus een kwestie van alle blokken te nemen en de juiste verbindingen te leggen.

En als het complex en innoverend moet zijn dan schakelen ze iemand in die de krijtlijnen schrijft en de programmeurs die wederom de basic code er rond maken.

Moeilijk? Nee, inderdaad veel ontwikkelaars hebben het moeilijk om iets simpel en duidelijk uit te leggen. Verkopers doen dit wel eens met opzet ;) En er zijn veel ontwikkelaars die problemen hebben met de simpele problemen. Is waarschijnlijk wel wat eigen aan de IT sector.

Veel grote stukken software zijn inderdaad al geschreven. Als je een bepaalde software van de grote spelers gebruikt heb je out of the box al heel veel functionaliteit.
Maar dan begint het pas. Het is dan inderdaad de correcte stukken kiezen en de verbindingen leggen. Maar toch loopt het zo vaak mis. Ik denk dat je het toch iets te simpel ziet

Als je complex en innoverende software wil schrijven, zal je toch de (technische) krijtlijnen moeten laten schrijven door iemand die (technisch) zeer sterk staat en veel ervaring heeft. Maw iemand die ook ontwikkeld heeft.

Recipe4hate

Legacy Member
MrKend54l zei:
Wat ik vooral merk is dat de programmeurs precies hun job willen beschermen. Het allemaal een beetje verbloemen en het moeilijker doen lijken dan het werkelijk is.
Ik ben het volledig eens met het feit dat programmeren zonder kennis onmogelijk is.
Maar ik kan mij evengoed voorstellen dat grote stukken algoritme, software en logica reeds voorgekauwd zijn. Het is dus een kwestie van alle blokken te nemen en de juiste verbindingen te leggen.

En als het complex en innoverend moet zijn dan schakelen ze iemand in die de krijtlijnen schrijft en de programmeurs die wederom de basic code er rond maken.

Nee hoor.
We moeten toch steeds onze sourcecode opleveren bij het afronden van een project.
En als we niet willen vasthangen aan een 'onderhoudscontract', moet je je code leesbaar maken.

MrKend54l

Legacy Member
Recipe4hate zei:
Nee hoor.
We moeten toch steeds onze sourcecode opleveren bij het afronden van een project.
En als we niet willen vasthangen aan een 'onderhoudscontract', moet je je code leesbaar maken.

Echt de wereld op zijn kop :P ik zou net wel mijn programma + onderhoudscontract willen verkopen hoor.
Rare rakkers die it'ers :P

Recipe4hate

Legacy Member
Keer op keer terug naar je oude software gaan die je, volgens u, 'complex en onleesbaar' maakt, is niet zo tof ;)

CakezAndMuffinz

Legacy Member
azamato zei:
De titel zegt het eigenlijk al maar ik wil graag apps leren maken. Ik heb veel idee?n om leuke apps te kunnen maken en ze zijn ook verschillend van elkaar maar dat lijkt mij enorm moeilijk.. Wat moet ik hier voor studeren? Ik heb toegepaste informatica gestudeerd op de hogeschool maar dat ging niet zo vlot (wiskunde.. buh..) ben ik hopeloos?

Je kan Applicatieontwikkeling studeren aan de KdG in Antwerpen.

Emerxill

Legacy Member
MrKend54l zei:
Wat ik vooral merk is dat de programmeurs precies hun job willen beschermen. Het allemaal een beetje verbloemen en het moeilijker doen lijken dan het werkelijk is.
Ik ben het volledig eens met het feit dat programmeren zonder kennis onmogelijk is.
Maar ik kan mij evengoed voorstellen dat grote stukken algoritme, software en logica reeds voorgekauwd zijn. Het is dus een kwestie van alle blokken te nemen en de juiste verbindingen te leggen.

En als het complex en innoverend moet zijn dan schakelen ze iemand in die de krijtlijnen schrijft en de programmeurs die wederom de basic code er rond maken.

Heeft niks met beschermen of verbloemen te maken, het is gewoonweg zo eenvoudig niet te veralgemenen. Zoals metalleke al aangaf, het verschil in niveau is gigantisch.
Waar ik werk ben ik een goede designer/developer, bij andere bedrijven waar de software niet zo complex hoeft te zijn zou ik een of andere guru (waarvoor ik mijzelf absoluut niet aanzie) zijn aangezien ze geen nood hebben aan specialisten.

Ivm voorgekauwde logica: bekijk het zoals een huis bouwen. Een aannemer gaat de klei ook niet in de kleiputten zelf uit gaan schuppen om daar bakstenen van te maken of de gasketel, zonnepanelen, warmtepomp zelf in elkaar steken.
Neen, dit "implementeert" hij allemaal. Maar hij gaat nog altijd een architect nodig hebben om het grondplan uit te werken en in bepaalde gevallen een bouwkundig ingenieur, maar hij moet wel nog altijd het huis zetten. En een goede aannemer denkt met de bouwheer mee en begrijpt wat de bouwheer wilt.

Een goede programmeur is de dag van vandaag veel meer dan een code-monkey. Code "kakken" kan iedereen. Maar om de business er rond te snappen, de codebase beheersen (=weten welke functionaliteit er al bestaat zodat je niet 2x iets anders schrijft om eigenlijk hetzelfde te doen), de code op een zodanige manier ontwerpen zodat de heel applicatie niet in elkaar stuikt als er ergens 2 regels code worden aangepast, dat maakt een goede programmeur. Iemand die geen raket naar de maan ontwerpt, terwijl de klant eigenlijk om een shuttlebuske tussen de parking en een winkelcentrum heeft gevraagd.

Zo had ik ooit eens een discussie bij mijn thuis met een schoolmeester(ke) die programmeren ook "pap gemakkelijk" vond omdat hij les daarin geeft. Maar van persistency had hij nog nooit gehoord "dat zal ook wel gemakkelijk zijn", concurrency en multithreading waren hem ook compleet vreemd. OO "da's alles in verschillende bestanden steken, da's toch ook poepsimpel"...wat polymorfisme was wist hij niet. De term kende hij wel, maar wat dat beest precies doet wist hij toch niet uit te leggen.
Tot ik hem een programmaatje liet zien dat ik voor mijn eigen heb geschreven - in de taal waar hij leg gaf-, snapte hij maar de helft "ja, ik doe alles in notepad++, dat programma van u (Eclipse), dat maakt het allemaal onoverzichtelijk"...

Een telmachientje programmeren dat kan optellen, aftrekken, vermenigvuldigen en delen krijg ik ook aan een 8-jarige geleerd hoor. Maar die die gaat daarom nog geen applicatie kunnen schrijven dat de stockbeheer van een transportbedrijf beheert.

Recipe4hate

Legacy Member
Emerxill zei:
Zo had ik ooit eens een discussie bij mijn thuis met een schoolmeester(ke) die programmeren ook "pap gemakkelijk" vond omdat hij les daarin geeft. Maar van persistency had hij nog nooit gehoord "dat zal ook wel gemakkelijk zijn", concurrency en multithreading waren hem ook compleet vreemd. OO "da's alles in verschillende bestanden steken, da's toch ook poepsimpel"...wat polymorfisme was wist hij niet. De term kende hij wel, maar wat dat beest precies doet wist hij toch niet uit te leggen.
Tot ik hem een programmaatje liet zien dat ik voor mijn eigen heb geschreven - in de taal waar hij leg gaf-, snapte hij maar de helft "ja, ik doe alles in notepad++, dat programma van u (Eclipse), dat maakt het allemaal onoverzichtelijk"...

Sorry hoor, maar als je polymorfisme niet kan uitleggen, hoor je al geen programmeerles te geven aan anderen...

whacker

Legacy Member
Even terug on topic: ik ben afgestudeerd TI met geen enkel uur wiskunde in Hogeschool. Was toen al in verschillende scholen zo (2003 begonnen). Was ook een vereiste want dat interesseerde mij niet.
Lijkt me dat je van in het begin je school/programma niet deftig hebt gekozen.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan