Leren programmeren.... (niet de syntax!)

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • MisterEagle
  • Registratie: Juli 2010
  • Laatst online: 13:48
Daar is die vraag weer! Hoe leer ik programmeren? :+ [/sarasm] toch denk ik dat dit wel mijn vraag is. Laat mij het toelichten:

Programmeren an sich vind ik niet zo lastig om een plek te vinden waar ik (weer) kan beginnen. Waar ik wel mee struggle zijn alle zaken er omheen. Ik kan dit dan ook niet goed verwoorden en daardoor er niet goed op zoeken. Wellicht denk ik zelfs te ingewikkeld maar ik hoop dat jullie daar inzicht in kunnen geven.

Vroeger, 20 jaar geleden, heb ik mezelf samen met een klasgenoot PHP 'aangeleerd'. Vroeger betekende dat dat je in de html code ergens willekeurig een stuk php toevoegde. Had je ergens gegevens uit een database nodig? hop alles daar op die pagina. Het voelde als één geheel. Niet zozeer als front en backend.
Als ik annu 2019, na ruim 10 jaar niets meer met PHP te hebben gedaan, of welke taal dan ook overigens, weer wil beginnen lukt het schrijven van code nog steeds wel. Maar praat ik met mensen die er verstand van hebben hoor ik termen als front en backend, api's, templates etc. Nu snap ik de termen an sich wel (en deze zijn te googlen) maar hoe / waar leer ik hoe ik hier het beste mee kan werken? Ik zou graag het programmeren weer oppakken namelijk, maar dan wel volgens best practises van nu en niet van 20 jaar terug.

Wil overigens in het begin focussen op websites / apps. Later door naar java of c#

Beste antwoord (via MisterEagle op 27-10-2019 18:32)


  • krvabo
  • Registratie: Januari 2003
  • Laatst online: 01-10 21:11

krvabo

MATERIALISE!

In vergelijking met 'vroeger' (ik begon in 2003) is het vooral veel professioneler en meer afgebakend geworden. Iedereen doet zijn eigen stukje, en elk stukje heeft weer componenten die iets doen. Waar je vroeger op performance moest letten is dat nu grotendeels iets van het verleden. Daarom voelt het ook allemaal complexer aan, omdat je denkt dat je van elk onderdeel alles moet weten. Zodra je het echter gaat zien als black-box, 'something goes in, something comes out' werkt het een stuk fijner (en gestructureerder). Ik ga even een hoop termen op je afgooien, wat je mogelijk helpt in je zoektocht tutorials te vinden.

Allereerst: versiebeheer. Hoewel niet noodzakelijk om het te kennen als beginneling is het wel iets dat je soms echt kan redden, en als je het professioneel wilt doen dan is het eigenlijk wel een vereiste. Git is tegenwoordig wel zo'n beetje het populairst. Je hebt een Git For Windows, die als je het installeert, je meteen een soort 'linux op windows' geeft. Dan heb je dus een command line die meteen prettig aanvoelt, en composer gebruiken makkelijk maakt.

Professionele ontwikkeling gebeurt tegenwoordig ook niet echt meer op een 'WAMP' (windows, apache, mysql, php/perl)-omgeving, maar vaak in virtualisatie/containers zoals een Docker of Vagrant + virtualbox. Hierin werk je dan met name in dezelfde linux-omgeving als je server (met alles exact hetzelfde - nooit meer "it works on my machine"). Om er écht lekker mee samen te werken is Windows Subsystem for Linux (WSL) een aanrader.
(Bovenstaand is meer een 'dit is wat er gebruikt wordt' en niet 'dit is vereist om up to date te zijn' - genoeg partijen die nog wel meer basic werken, of juist nog verder geabstraheerd)

Veel ontwikkeling gebeurt nu inderdaad in frameworks die een hoop van de basics voor je wegnemen. Hierboven wordt Laravel genoemd, maar je hebt ook Yii, Symfony, en vele anderen. Symfony lijkt professioneel gezien ook echt veel gebruikt. De leercurve is echt wel een dingetje, maar als je het eenmaal begrijpt kun je met weinig code heel veel bereiken. En werken met zo'n framework dwingt je ook om 'modern' MVC te werken, anders werkt het gewoon niet ;)

Veel frameworks hebben ook een database-abstractielaag zoals Doctrine. Hiermee bouw je niet zelf je queries meer op, maar gaat alles via objecten. Elke tabel wordt een entity (object), en in die objecten leg je de koppelingen naar andere entiteiten, zoals 'leraar' aan 'school'. Je kunt alsnog wel zelf queries bakken, maar dit wordt sterk afgeraden tenzij strikt noodzakelijk. Als je het echter hebt staan kun je echter wel dingen doen als
PHP:
1
$teacher->getSchool()->getParkingSpots()->findOpenSpots();
.

Qua ontwikkelomgeving is het phpstorm die veruit vooraan loopt. Een erg handige IDE met zoveel handige features dat je ze waarschijnlijk nooit gebruikt totdat iemand zegt 'je kunt ook zo..'.Eigenlijk is PHPstorm een must, maar dat is ook meteen vrij prijzig als je hobbybobt. Netbeans is een gratis alternatief.

Er zijn nog veel meer dingen, en dat kan je echt allemaal zomaar niet ergens lezen. Ga vooral dingen doen. Zoek op 'php framework', kies er een uit die je aanstaat, en ga er mee aan de slag. Dan krijg je vanzelf dingen als 'install using composer', waarna je dat installeert en er mee aan de gang kunt gaan. Vaak bieden pakketten ook echt nog wel een zipbestandje aan, maar als je even tien minuten besteedt aan composer werkend krijgen dan bespaart het je uiteindelijk erg veel tijd en moeite. (Je krijgt er zelfs een gratis class autoloader bij ;) )

Pong is probably the best designed shooter in the world.
It's the only one that is made so that if you camp, you die.

Alle reacties


Acties:
  • 0 Henk 'm!

  • Matis
  • Registratie: Januari 2007
  • Laatst online: 08:57

Matis

Rubber Rocket

Met jouw PHP ervaring, zou ik op zoek gaan naar een MVC-framework en daar een tutorial voor volgen.
Laravel is een mooi begin. Een MVC-framework dat ik ook veel heb gebruikt.

Je scheidt de door jou genoemde onderdelen (database, frontend en backend).

If money talks then I'm a mime
If time is money then I'm out of time


Acties:
  • 0 Henk 'm!

  • MisterEagle
  • Registratie: Juli 2010
  • Laatst online: 13:48
Ik ga daar eens naar onderzoeken, thanks.

Zodra ik op hun installatie / how to start kijk ben ik ze al kwijt.. installeren via commando's. Leuk maar ik werk op windows? Zie ook veel composer genoemd worden, nog nooit van gehoord maar zal daar morgen ook eens naar zoeken

Acties:
  • 0 Henk 'm!

  • Montaner
  • Registratie: Januari 2005
  • Laatst online: 01-09 08:19
MisterEagle schreef op zondag 27 oktober 2019 @ 17:33:
Ik ga daar eens naar onderzoeken, thanks.

Zodra ik op hun installatie / how to start kijk ben ik ze al kwijt.. installeren via commando's. Leuk maar ik werk op windows? Zie ook veel composer genoemd worden, nog nooit van gehoord maar zal daar morgen ook eens naar zoeken
Ok en wat heb je toen gedaan? Composer opgezocht? Is er gewoon voor Windows... en kijk dan op de site even naar wat het is/doet.

In generieke zin kan je ook googlen naar package en dependency manager. Bv: https://teamtreehouse.com...ndency-or-package-manager

Acties:
  • 0 Henk 'm!

  • MisterEagle
  • Registratie: Juli 2010
  • Laatst online: 13:48
Montaner schreef op zondag 27 oktober 2019 @ 17:39:
[...]

Ok en wat heb je toen gedaan? Composer opgezocht? Is er gewoon voor Windows... en kijk dan op de site even naar wat het is/doet.

In generieke zin kan je ook googlen naar package en dependency manager. Bv: https://teamtreehouse.com...ndency-or-package-manager
Ja heb de site van composer gevonden, zag er niet heel pro uit maar morgen ga ik m doorspitten. (Momenteel gebroken stuitje.. kan niet heel lang aan de pc zitten 😑
)

Maar dit wat er nu dus komt dat is dus waar ik naar opzoek ben, is er iets van een overkoepelende tutorial, boek, film, whatever om hierin bekend te raken? Of is dit gewoon product voor product afgaan en bij elk nieuw iets daarin verdiepen. (Met t risico dat je heel lang iets omslachtig doet tot je de betere oplossing tegenkomt)

Acties:
  • Beste antwoord
  • +8 Henk 'm!

  • krvabo
  • Registratie: Januari 2003
  • Laatst online: 01-10 21:11

krvabo

MATERIALISE!

In vergelijking met 'vroeger' (ik begon in 2003) is het vooral veel professioneler en meer afgebakend geworden. Iedereen doet zijn eigen stukje, en elk stukje heeft weer componenten die iets doen. Waar je vroeger op performance moest letten is dat nu grotendeels iets van het verleden. Daarom voelt het ook allemaal complexer aan, omdat je denkt dat je van elk onderdeel alles moet weten. Zodra je het echter gaat zien als black-box, 'something goes in, something comes out' werkt het een stuk fijner (en gestructureerder). Ik ga even een hoop termen op je afgooien, wat je mogelijk helpt in je zoektocht tutorials te vinden.

Allereerst: versiebeheer. Hoewel niet noodzakelijk om het te kennen als beginneling is het wel iets dat je soms echt kan redden, en als je het professioneel wilt doen dan is het eigenlijk wel een vereiste. Git is tegenwoordig wel zo'n beetje het populairst. Je hebt een Git For Windows, die als je het installeert, je meteen een soort 'linux op windows' geeft. Dan heb je dus een command line die meteen prettig aanvoelt, en composer gebruiken makkelijk maakt.

Professionele ontwikkeling gebeurt tegenwoordig ook niet echt meer op een 'WAMP' (windows, apache, mysql, php/perl)-omgeving, maar vaak in virtualisatie/containers zoals een Docker of Vagrant + virtualbox. Hierin werk je dan met name in dezelfde linux-omgeving als je server (met alles exact hetzelfde - nooit meer "it works on my machine"). Om er écht lekker mee samen te werken is Windows Subsystem for Linux (WSL) een aanrader.
(Bovenstaand is meer een 'dit is wat er gebruikt wordt' en niet 'dit is vereist om up to date te zijn' - genoeg partijen die nog wel meer basic werken, of juist nog verder geabstraheerd)

Veel ontwikkeling gebeurt nu inderdaad in frameworks die een hoop van de basics voor je wegnemen. Hierboven wordt Laravel genoemd, maar je hebt ook Yii, Symfony, en vele anderen. Symfony lijkt professioneel gezien ook echt veel gebruikt. De leercurve is echt wel een dingetje, maar als je het eenmaal begrijpt kun je met weinig code heel veel bereiken. En werken met zo'n framework dwingt je ook om 'modern' MVC te werken, anders werkt het gewoon niet ;)

Veel frameworks hebben ook een database-abstractielaag zoals Doctrine. Hiermee bouw je niet zelf je queries meer op, maar gaat alles via objecten. Elke tabel wordt een entity (object), en in die objecten leg je de koppelingen naar andere entiteiten, zoals 'leraar' aan 'school'. Je kunt alsnog wel zelf queries bakken, maar dit wordt sterk afgeraden tenzij strikt noodzakelijk. Als je het echter hebt staan kun je echter wel dingen doen als
PHP:
1
$teacher->getSchool()->getParkingSpots()->findOpenSpots();
.

Qua ontwikkelomgeving is het phpstorm die veruit vooraan loopt. Een erg handige IDE met zoveel handige features dat je ze waarschijnlijk nooit gebruikt totdat iemand zegt 'je kunt ook zo..'.Eigenlijk is PHPstorm een must, maar dat is ook meteen vrij prijzig als je hobbybobt. Netbeans is een gratis alternatief.

Er zijn nog veel meer dingen, en dat kan je echt allemaal zomaar niet ergens lezen. Ga vooral dingen doen. Zoek op 'php framework', kies er een uit die je aanstaat, en ga er mee aan de slag. Dan krijg je vanzelf dingen als 'install using composer', waarna je dat installeert en er mee aan de gang kunt gaan. Vaak bieden pakketten ook echt nog wel een zipbestandje aan, maar als je even tien minuten besteedt aan composer werkend krijgen dan bespaart het je uiteindelijk erg veel tijd en moeite. (Je krijgt er zelfs een gratis class autoloader bij ;) )

Pong is probably the best designed shooter in the world.
It's the only one that is made so that if you camp, you die.


Acties:
  • 0 Henk 'm!

  • Ernemmer
  • Registratie: Juli 2009
  • Niet online
Mooie samenvatting, maar volgens mij is TS op zoek naar een boek of zo, waar hij dit alles uitgebreid kan bestuderen.

Acties:
  • 0 Henk 'm!

  • MisterEagle
  • Registratie: Juli 2010
  • Laatst online: 13:48
krvabo schreef op zondag 27 oktober 2019 @ 18:16:
In vergelijking met 'vroeger' (ik begon in 2003) is het vooral veel professioneler en meer afgebakend geworden. Iedereen doet zijn eigen stukje, en elk stukje heeft weer componenten die iets doen. Waar je vroeger op performance moest letten is dat nu grotendeels iets van het verleden. Daarom voelt het ook allemaal complexer aan, omdat je denkt dat je van elk onderdeel alles moet weten. Zodra je het echter gaat zien als black-box, 'something goes in, something comes out' werkt het een stuk fijner (en gestructureerder). Ik ga even een hoop termen op je afgooien, wat je mogelijk helpt in je zoektocht tutorials te vinden.

Allereerst: versiebeheer. Hoewel niet noodzakelijk om het te kennen als beginneling is het wel iets dat je soms echt kan redden, en als je het professioneel wilt doen dan is het eigenlijk wel een vereiste. Git is tegenwoordig wel zo'n beetje het populairst. Je hebt een Git For Windows, die als je het installeert, je meteen een soort 'linux op windows' geeft. Dan heb je dus een command line die meteen prettig aanvoelt, en composer gebruiken makkelijk maakt.

Professionele ontwikkeling gebeurt tegenwoordig ook niet echt meer op een 'WAMP' (windows, apache, mysql, php/perl)-omgeving, maar vaak in virtualisatie/containers zoals een Docker of Vagrant + virtualbox. Hierin werk je dan met name in dezelfde linux-omgeving als je server (met alles exact hetzelfde - nooit meer "it works on my machine"). Om er écht lekker mee samen te werken is Windows Subsystem for Linux (WSL) een aanrader.
(Bovenstaand is meer een 'dit is wat er gebruikt wordt' en niet 'dit is vereist om up to date te zijn' - genoeg partijen die nog wel meer basic werken, of juist nog verder geabstraheerd)

Veel ontwikkeling gebeurt nu inderdaad in frameworks die een hoop van de basics voor je wegnemen. Hierboven wordt Laravel genoemd, maar je hebt ook Yii, Symfony, en vele anderen. Symfony lijkt professioneel gezien ook echt veel gebruikt. De leercurve is echt wel een dingetje, maar als je het eenmaal begrijpt kun je met weinig code heel veel bereiken. En werken met zo'n framework dwingt je ook om 'modern' MVC te werken, anders werkt het gewoon niet ;)

Veel frameworks hebben ook een database-abstractielaag zoals Doctrine. Hiermee bouw je niet zelf je queries meer op, maar gaat alles via objecten. Elke tabel wordt een entity (object), en in die objecten leg je de koppelingen naar andere entiteiten, zoals 'leraar' aan 'school'. Je kunt alsnog wel zelf queries bakken, maar dit wordt sterk afgeraden tenzij strikt noodzakelijk. Als je het echter hebt staan kun je echter wel dingen doen als
PHP:
1
$teacher->getSchool()->getParkingSpots()->findOpenSpots();
.

Qua ontwikkelomgeving is het phpstorm die veruit vooraan loopt. Een erg handige IDE met zoveel handige features dat je ze waarschijnlijk nooit gebruikt totdat iemand zegt 'je kunt ook zo..'.Eigenlijk is PHPstorm een must, maar dat is ook meteen vrij prijzig als je hobbybobt. Netbeans is een gratis alternatief.

Er zijn nog veel meer dingen, en dat kan je echt allemaal zomaar niet ergens lezen. Ga vooral dingen doen. Zoek op 'php framework', kies er een uit die je aanstaat, en ga er mee aan de slag. Dan krijg je vanzelf dingen als 'install using composer', waarna je dat installeert en er mee aan de gang kunt gaan. Vaak bieden pakketten ook echt nog wel een zipbestandje aan, maar als je even tien minuten besteedt aan composer werkend krijgen dan bespaart het je uiteindelijk erg veel tijd en moeite. (Je krijgt er zelfs een gratis class autoloader bij ;) )
Thanks voor je uitgebreide antwoord! Ga hiermee verder zoeken!
Heb, omdat ik studeer, een phpstorm licentie voorlopig. Github had ik ook al gevonden en zal ik verder naar zoeken. Thanks nogmaals om me in de juiste richting te zetten, ook aan de andere reageerders!

Acties:
  • 0 Henk 'm!

  • Ben(V)
  • Registratie: December 2013
  • Laatst online: 16:43
Kleine kanttekening.

Als je iets meer wilt dan alleen webpagina's maken doe je er verstandig aan PHP te vergeten, dat is een kromme programeer taal gemaakt voor het maken webpagina's en verder eigenlijk nergens geschikt voor.

Kies voor een fatsoenlijk gestructureerde object georiënteerde programmeertaal.

[ Voor 7% gewijzigd door Ben(V) op 28-10-2019 10:01 ]

All truth passes through three stages: First it is ridiculed, second it is violently opposed and third it is accepted as being self-evident.


Acties:
  • 0 Henk 'm!

  • MisterEagle
  • Registratie: Juli 2010
  • Laatst online: 13:48
Ben(V) schreef op maandag 28 oktober 2019 @ 10:00:
Kleine kanttekening.

Als je iets meer wilt dan alleen webpagina's maken doe je er verstandig aan PHP te vergeten, dat is een kromme programeer taal gemaakt voor het maken webpagina's en verder eigenlijk nergens geschikt voor.

Kies voor een fatsoenlijk gestructureerde object georiënteerde programmeertaal.
Is hierin Python bijvoorbeeld beter als backend? (Zou ik dan bijvoorbeeld beter voor Django kunnen gaan?)

Acties:
  • +2 Henk 'm!

  • Croga
  • Registratie: Oktober 2001
  • Laatst online: 03-10 22:27

Croga

The Unreasonable Man

MisterEagle schreef op maandag 28 oktober 2019 @ 13:41:
Is hierin Python bijvoorbeeld beter als backend? (Zou ik dan bijvoorbeeld beter voor Django kunnen gaan?)
Iedere taal heeft zo zijn eigen dingetjes. Stellen dat PHP ongeschikt is voor andere dingen dan websites bouwen is schromelijk overdreven. Python is niet persé beter als backend.

De meeste bedrijven gooien hun backend nogsteeds in iets van C++, C#, Java. Maar PHP wordt zeker ook nogsteeds regelmatig gebruikt voor backend werk, net als Python en Perl (of eigenlijk moet ik daar zeggen: Voor server-side werk. PHP, Python en Perl zitten nogsteeds vooral in web-based omgevingen).

Ik ben zelf ook bezig om na 10 jaar weer terug richting software development te gaan. Ik had nog nooit PHP geprogrammeerd maar met 2 dagen leren kan ik nu PHP programmeren. Uiteindelijk is de denkwijze oneindig veel belangrijker dan de syntax; die laatste staat of valt met je Google-fu, niet met je kennis van de taal. Zoals @krvabo al aangeeft zijn andere zaken veel belangrijker (geworden). Zoals kennis van containering, cloud platformen, frameworks, automatische test/integreer/uitrol systemen, wellicht zelfs zaken als backlog management tooling, versie beheer, BDD tooling. Er is zo veel bij gekomen om het leven van de software ontwikkelaar makkelijker te maken (en vooral om te zorgen dat hij zich bezig kan houden met code schrijven die er toe doet ;-))

Acties:
  • +3 Henk 'm!

  • PatrickH89
  • Registratie: November 2009
  • Laatst online: 04-10 21:35
Ben(V) schreef op maandag 28 oktober 2019 @ 10:00:
Kleine kanttekening.

Als je iets meer wilt dan alleen webpagina's maken doe je er verstandig aan PHP te vergeten, dat is een kromme programeer taal gemaakt voor het maken webpagina's en verder eigenlijk nergens geschikt voor.

Kies voor een fatsoenlijk gestructureerde object georiënteerde programmeertaal.
Absolute onzin. Er is niets inherent mis met PHP wat je ervan weerhoudt om stabiele en gestructureerde applicatie te ontwikkelen. De PHP wereld heeft zeker niet stilgestaan de afgelopen jaren. Uiteraard moet je wel de right tool for the job kiezen en best practices volgen. PHP is een backend taal, vergelijkbaar met Python en Ruby. Wil je ook een desktop app ontwikkelen of een mobiele app dan is PHP uiteraard niet de tool for the job (kan nog steeds als backend/api gebruikt worden natuurlijk).

https://phptherightway.com/ is een zinnige resource als je met PHP best practices wilt gebruiken.

Acties:
  • +2 Henk 'm!

  • Ben(V)
  • Registratie: December 2013
  • Laatst online: 16:43
PHP had al lang begraven moeten zijn.

Het is ontwikkelt voor het maken van webpagina's en in de loop der tijd uitgebreid met allerlei extra functionaliteiten waardoor het nu een ongestructureerde spaghettibrij geworden is.
Hetzelfde geld voor dat wangedrocht dat ze Java noemen.

Als je snelheid nodig hebt kies je voor C++ of voor C# en als je veel functionaliteit en support belangrijk vind neem je Python.

En mensen die nog steeds PHP propageren zijn dezelfde dinosaurussen die nog aan Basic (of VB) hangen.

Mijn advies zou zijn neem Python, dan ben je ook in een klap portable naar elk beschikbaar OS.
En als je op een PC ontwikkelt, neem dan Visual Studio dan heb je een prima IDE, debugger en versie beheer tool ineen.
In samenwerking met github heb je ook een prima deployment omgeving.

[ Voor 20% gewijzigd door Ben(V) op 28-10-2019 14:47 ]

All truth passes through three stages: First it is ridiculed, second it is violently opposed and third it is accepted as being self-evident.


Acties:
  • +4 Henk 'm!

  • Croga
  • Registratie: Oktober 2001
  • Laatst online: 03-10 22:27

Croga

The Unreasonable Man

Ben(V) schreef op maandag 28 oktober 2019 @ 14:42:
PHP had al lang begraven moeten zijn.

Het is ontwikkelt voor het maken van webpagina's en in de loop der tijd uitgebreid met allerlei extra functionaliteiten waardoor het nu een ongestructureerde spaghettibrij geworden is.
Hetzelfde geld voor dat wangedrocht dat ze Java noemen.

Als je snelheid nodig hebt kies je voor C++ of voor C# en als je veel functionaliteit en support belangrijk vind neem je Python.

En mensen die nog steeds PHP propageren zijn dezelfde dinosaurussen die nog aan Basic (of VB) hangen.
C++ had al lang begraven moeten zijn. Het is een slechte tussenvorm tussen C met redelijk directe toegang tot hardware (/abstraction layers) en C# wat een beetje normaal te programmeren is. Ondertussen kun je in C++ niet fatsoenlijk programmeren omdat je zelf aan dingen moet denken die het platform zou moeten doen terwijl je de performance van fatsoenlijke directe toegang ook niet hebt.

Met andere woorden: Het is heel erg makkelijk om een programmeertaal af te zeiken en nog veel makkelijker om vervolgens de gebruikers van een taal weg te zetten als "dinosaurussen" maar geen van beiden wordt ook maar iemand beter van, noch verhoogd het je eigen status. Niet doen dus.

Daarnaast zit het voor- of nadeel van een taal soms in performance, soms in eenvoud, soms in markt, soms in waar het op dit moment voor gebruikt wordt maar zeker nooit in dinosaurussen.

Overigens wel een goede tip voor TS: Mischien moet je VBA een kans geven :P

Acties:
  • 0 Henk 'm!

  • kwaakvaak_v2
  • Registratie: Juni 2009
  • Laatst online: 02-06 12:29
Ben(V) schreef op maandag 28 oktober 2019 @ 14:42:


Als je snelheid nodig hebt kies je voor C++ of voor C# en als je veel functionaliteit en support belangrijk vind neem je Python.
Dat is toch die taal waarbij dinosauriërs ook niet naar V3 wilde overstappen voordat de opperdino eindelijk de pleister er af durfde te trekken en V2 daadwerkelijk uit te faseren. En nu hoopvol af moet wachten of dit ook daadwerkelijk gaat gebruiken.

Driving a cadillac in a fool's parade.


Acties:
  • 0 Henk 'm!

  • armageddon_2k1
  • Registratie: September 2001
  • Laatst online: 27-07 10:18
@kwaakvaak_v2 Python2 / Python3 rant is getting old. Echt serieus elke library die je zinnig zou willen gebruiken is al lang om naar 3.

Engineering is like Tetris. Succes disappears and errors accumulate.


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03-10 16:38

.oisyn

Moderator Devschuur®

Demotivational Speaker

Croga schreef op maandag 28 oktober 2019 @ 14:48:
[...]

C++ had al lang begraven moeten zijn. Het is een slechte tussenvorm tussen C met redelijk directe toegang tot hardware (/abstraction layers) en C# wat een beetje normaal te programmeren is. Ondertussen kun je in C++ niet fatsoenlijk programmeren omdat je zelf aan dingen moet denken die het platform zou moeten doen terwijl je de performance van fatsoenlijke directe toegang ook niet hebt.
Ik weet dat dit slechts een poging was om het argument dat gegeven werd te ridiculiseren, maar hier klopt gewoonweg niets van ;). De hardware is in C++ niet meer afgeschermd dan in C, en bovendien kun je makkelijker code schrijven die performanter is dan C.

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:
  • +1 Henk 'm!

  • kwaakvaak_v2
  • Registratie: Juni 2009
  • Laatst online: 02-06 12:29
armageddon_2k1 schreef op maandag 28 oktober 2019 @ 14:56:
@kwaakvaak_v2 Python2 / Python3 rant is getting old. Echt serieus elke library die je zinnig zou willen gebruiken is al lang om naar 3.
Zelfde telt ook voor de eeuwige PHP rant ;)

Driving a cadillac in a fool's parade.


Acties:
  • +2 Henk 'm!

  • Ozzie
  • Registratie: Februari 2004
  • Laatst online: 17:22
Ben(V) schreef op maandag 28 oktober 2019 @ 14:42:
PHP had al lang begraven moeten zijn.

Het is ontwikkelt voor het maken van webpagina's en in de loop der tijd uitgebreid met allerlei extra functionaliteiten waardoor het nu een ongestructureerde spaghettibrij geworden is.
Hetzelfde geld voor dat wangedrocht dat ze Java noemen.

Als je snelheid nodig hebt kies je voor C++ of voor C# en als je veel functionaliteit en support belangrijk vind neem je Python.

En mensen die nog steeds PHP propageren zijn dezelfde dinosaurussen die nog aan Basic (of VB) hangen.

Mijn advies zou zijn neem Python, dan ben je ook in een klap portable naar elk beschikbaar OS.
En als je op een PC ontwikkelt, neem dan Visual Studio dan heb je een prima IDE, debugger en versie beheer tool ineen.
In samenwerking met github heb je ook een prima deployment omgeving.
Juist... Als beginner zou ik gewoon alles negeren wat hierboven staat. Elke programmeer taal heeft zo zijn voor en nadelen en die zijn niet zo kort door de bocht als hier word beweerd.

Ik kan ook wel zeggen: Mijn advies zou zijn neem Java. Dan ben je in een klap portable naar elk OS, als je besluit dat je een android app wil maken kan je meteen uit de voeten. Met IntellijJ Community Edition heb je een dijk van een IDE.

Maar hetzelfde kan je zeggen over PHP, C#, C, C++, Scala, Go, Rust, etc, etc.

"Write code as if the next maintainer is a vicious psychopath who knows where you live."


Acties:
  • 0 Henk 'm!

  • PatrickH89
  • Registratie: November 2009
  • Laatst online: 04-10 21:35
Ben(V) schreef op maandag 28 oktober 2019 @ 14:42:
PHP had al lang begraven moeten zijn.

Het is ontwikkelt voor het maken van webpagina's en in de loop der tijd uitgebreid met allerlei extra functionaliteiten waardoor het nu een ongestructureerde spaghettibrij geworden is.
Hetzelfde geld voor dat wangedrocht dat ze Java noemen.

Als je snelheid nodig hebt kies je voor C++ of voor C# en als je veel functionaliteit en support belangrijk vind neem je Python.

En mensen die nog steeds PHP propageren zijn dezelfde dinosaurussen die nog aan Basic (of VB) hangen.

Mijn advies zou zijn neem Python, dan ben je ook in een klap portable naar elk beschikbaar OS.
En als je op een PC ontwikkelt, neem dan Visual Studio dan heb je een prima IDE, debugger en versie beheer tool ineen.
In samenwerking met github heb je ook een prima deployment omgeving.
Ik ben benieuwd of je meer redenen hebt om PHP te vermijden dan alleen die blanket statements (die ook stuk voor stuk onzin zijn overigens). Ik vermoed gezien je haast om OP te waarschuwen voor het gevaar wat PHP heet dat je nooit serieus hebt ontwikkeld dmv PHP, dus ik verwacht er niet heel veel van. ;)

Acties:
  • +1 Henk 'm!

  • Ed Vertijsment
  • Registratie: Juli 2014
  • Laatst online: 09:29
MisterEagle schreef op maandag 28 oktober 2019 @ 13:41:
[...]

Is hierin Python bijvoorbeeld beter als backend? (Zou ik dan bijvoorbeeld beter voor Django kunnen gaan?)
Django is heel vriendelijk naar nieuwkomers met duidelijke tutorials, het aan de gang krijgen van een project in productie is echter wat lastiger, daar is PHP beter in.

Er is veel kritiek op PHP, soms beter beargumenteerd dan anders maar ik zal daar niet al te veel over moeilijk doen. Als je eenmaal wat gevoel hebt programmeren kun je vaak vrij makkelijk swappen. De herkenbaarheid die je nu met PHP kunt ervaren zou ik gebruiken om lekker aan de gang te gaan. Daar heb je nu meer aan dan opnieuw beginnen.

Acties:
  • 0 Henk 'm!

  • MisterEagle
  • Registratie: Juli 2010
  • Laatst online: 13:48
PatrickH89 schreef op maandag 28 oktober 2019 @ 14:14:
[...]


Absolute onzin. Er is niets inherent mis met PHP wat je ervan weerhoudt om stabiele en gestructureerde applicatie te ontwikkelen. De PHP wereld heeft zeker niet stilgestaan de afgelopen jaren. Uiteraard moet je wel de right tool for the job kiezen en best practices volgen. PHP is een backend taal, vergelijkbaar met Python en Ruby. Wil je ook een desktop app ontwikkelen of een mobiele app dan is PHP uiteraard niet de tool for the job (kan nog steeds als backend/api gebruikt worden natuurlijk).

https://phptherightway.com/ is een zinnige resource als je met PHP best practices wilt gebruiken.
Thanks voor deze link! Erg interessant en kan ik zeker mee uit de voeten

Acties:
  • +1 Henk 'm!

  • Jackxl
  • Registratie: November 2008
  • Laatst online: 03-10 16:54
Ik heb nog niemand gehoord over JavaScript. Wat mij betreft de enige echte programmeertaal al het andere had allang begraven moeten zijn.

Maar alle grappen daargelaten:
https://github.com/gothinkster/realworld

Deze hebben mij enorm geholpen.
Overstappen op JavaScript kan ik overigens wel aanraden. Het is namelijk enorm universeel.

Acties:
  • 0 Henk 'm!

  • TweakerNummer
  • Registratie: September 2001
  • Niet online
Jackxl schreef op dinsdag 29 oktober 2019 @ 00:49:
Ik heb nog niemand gehoord over JavaScript. Wat mij betreft de enige echte programmeertaal al het andere had allang begraven moeten zijn.

Maar alle grappen daargelaten:
https://github.com/gothinkster/realworld

Deze hebben mij enorm geholpen.
Overstappen op JavaScript kan ik overigens wel aanraden. Het is namelijk enorm universeel.
JavaScript had nooit geboren mogen worden...

Ondanks dat is het erg aan te raden. Je kan er de client front-end, server front-end en server back-end mee programmeren om zo snel met dit model bekend te raken. Dit is drastisch anders als bij "PHP van 20 jaar terug" waar de webserver PHP code omzette in HTML en dat aan de client gaf.

Als je rustig aan wilt beginnen kan je bij Ajax (Asynchronous JavaScript And XML) + PHP starten: https://www.w3schools.com/php/php_ajax_php.asp.

[ Voor 8% gewijzigd door TweakerNummer op 29-10-2019 01:36 . Reden: Verder is fout... ]


Acties:
  • +1 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Modbreak:Laten we hier niet verzanden in de vraag welke taal nu beter is, zie ook
Devschuur® Beleid: Welke programmeertaal moet ik leren?

De vraag gaat hier juist over meer abstracte vraagstukken.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • +1 Henk 'm!

  • BarôZZa
  • Registratie: Januari 2003
  • Laatst online: 14:35
krvabo schreef op zondag 27 oktober 2019 @ 18:16:
In vergelijking met 'vroeger' (ik begon in 2003) is het vooral veel professioneler en meer afgebakend geworden. Iedereen doet zijn eigen stukje, en elk stukje heeft weer componenten die iets doen. Waar je vroeger op performance moest letten is dat nu grotendeels iets van het verleden. Daarom voelt het ook allemaal complexer aan, omdat je denkt dat je van elk onderdeel alles moet weten. Zodra je het echter gaat zien als black-box, 'something goes in, something comes out' werkt het een stuk fijner (en gestructureerder). Ik ga even een hoop termen op je afgooien, wat je mogelijk helpt in je zoektocht tutorials te vinden.

Allereerst: versiebeheer. Hoewel niet noodzakelijk om het te kennen als beginneling is het wel iets dat je soms echt kan redden, en als je het professioneel wilt doen dan is het eigenlijk wel een vereiste. Git is tegenwoordig wel zo'n beetje het populairst. Je hebt een Git For Windows, die als je het installeert, je meteen een soort 'linux op windows' geeft. Dan heb je dus een command line die meteen prettig aanvoelt, en composer gebruiken makkelijk maakt.

Professionele ontwikkeling gebeurt tegenwoordig ook niet echt meer op een 'WAMP' (windows, apache, mysql, php/perl)-omgeving, maar vaak in virtualisatie/containers zoals een Docker of Vagrant + virtualbox. Hierin werk je dan met name in dezelfde linux-omgeving als je server (met alles exact hetzelfde - nooit meer "it works on my machine"). Om er écht lekker mee samen te werken is Windows Subsystem for Linux (WSL) een aanrader.
(Bovenstaand is meer een 'dit is wat er gebruikt wordt' en niet 'dit is vereist om up to date te zijn' - genoeg partijen die nog wel meer basic werken, of juist nog verder geabstraheerd)

Veel ontwikkeling gebeurt nu inderdaad in frameworks die een hoop van de basics voor je wegnemen. Hierboven wordt Laravel genoemd, maar je hebt ook Yii, Symfony, en vele anderen. Symfony lijkt professioneel gezien ook echt veel gebruikt. De leercurve is echt wel een dingetje, maar als je het eenmaal begrijpt kun je met weinig code heel veel bereiken. En werken met zo'n framework dwingt je ook om 'modern' MVC te werken, anders werkt het gewoon niet ;)

Veel frameworks hebben ook een database-abstractielaag zoals Doctrine. Hiermee bouw je niet zelf je queries meer op, maar gaat alles via objecten. Elke tabel wordt een entity (object), en in die objecten leg je de koppelingen naar andere entiteiten, zoals 'leraar' aan 'school'. Je kunt alsnog wel zelf queries bakken, maar dit wordt sterk afgeraden tenzij strikt noodzakelijk. Als je het echter hebt staan kun je echter wel dingen doen als
PHP:
1
$teacher->getSchool()->getParkingSpots()->findOpenSpots();
.
Vergeet niet dat de kennis die je hebt opgedaan in 2003 nog altijd van waarde is en dat de basis wel degelijk belangrijk is. Performance is ook nog altijd belangrijk is en om zeep geholpen kan worden.
Als je niet precies weet wat er op de achtergrond gebeurt, dan heb je grote kans dat je hele inefficiëntie code aan het schrijven bent. De abstractielagen kunnen enorm veel queries genereren en elk record moet weer gemapt worden naar een object, niet enorm slim als het puur is voor bijvoorbeeld een join.
Voorbeeld: collega's hadden pagina's met wat genestelde loopjes, resultaat: 80.000 queries die uitgevoerd werden(plus alle mapping van de results), laadtijd van ruim een minuut en geen idee hoe ze dit konden optimaliseren.

Basiskennis vormt nog altijd de basis imo.

Acties:
  • +1 Henk 'm!

  • PatrickH89
  • Registratie: November 2009
  • Laatst online: 04-10 21:35
BarôZZa schreef op donderdag 31 oktober 2019 @ 07:26:
[...]

Vergeet niet dat de kennis die je hebt opgedaan in 2003 nog altijd van waarde is en dat de basis wel degelijk belangrijk is. Performance is ook nog altijd belangrijk is en om zeep geholpen kan worden.
Als je niet precies weet wat er op de achtergrond gebeurt, dan heb je grote kans dat je hele inefficiëntie code aan het schrijven bent. De abstractielagen kunnen enorm veel queries genereren en elk record moet weer gemapt worden naar een object, niet enorm slim als het puur is voor bijvoorbeeld een join.
Voorbeeld: collega's hadden pagina's met wat genestelde loopjes, resultaat: 80.000 queries die uitgevoerd werden(plus alle mapping van de results), laadtijd van ruim een minuut en geen idee hoe ze dit konden optimaliseren.

Basiskennis vormt nog altijd de basis imo.
N + 1 is inderdaad en vrij groot (meestal ORM) probleem. Als OP de basis te pakken heeft is het wijs om zich in te lezen over dit soort problemen. Nu is N + 1 zo common dat elk ORM er in de documentatie wel een oplossing voor heeft, dus dat zal niet lastig zijn.

Acties:
  • 0 Henk 'm!

  • BarôZZa
  • Registratie: Januari 2003
  • Laatst online: 14:35
????
PatrickH89 schreef op donderdag 31 oktober 2019 @ 09:?400g:
[...]?????


N + 1 is inderdaad en vrij groot (meestal ORM) probleem. Als OP de basis te pakken heeft is het wijs om zich in te lezen over dit soort problemen. Nu is N + 1 zo common dat elk ORM er in de documentatie wel een oplossing voor heeft, dus dat zal niet lastig zijn.
Dat begrijp ik, maar is niet geheel m'n punt. Mijn punt is dat je gewoon de basis moet kennen. Leuk als je met een framework een basisapp in elkaar kan klikken en dan lijkt het alsof je snel resultaat boekt, maar als je geen SQL query kan schrijven blijf je op niveau aap steken. Vroeg of laat loop je ertegen aan en dan had je gehoopt dat je gewoon de basis had geleerd ipv de snelle route te pakken. Bij de juniors met wie ik werk heb je ook zo door wie de gemakkelijke weg hebben gepakt en wie er begrijpen wat de magic daadwerkelijk doet.

Acties:
  • +1 Henk 'm!

Verwijderd

MisterEagle schreef op maandag 28 oktober 2019 @ 13:41:
[...]

Is hierin Python bijvoorbeeld beter als backend? (Zou ik dan bijvoorbeeld beter voor Django kunnen gaan?)
Python-Django is echt een hele leuke ontdekkingsreis om de draad weer mee op te pakken (I've been there)
Het begint extreem eenvoudig en is naargelang je kunde en interesse tot iets groots uit te bouwen! Voordeel is dat je Python ook voor veel meer in kunt zetten dan alleen maar voor je web-projecten.

Acties:
  • 0 Henk 'm!

  • XWB
  • Registratie: Januari 2002
  • Niet online

XWB

Devver
krvabo schreef op zondag 27 oktober 2019 @ 18:16:
Qua ontwikkelomgeving is het phpstorm die veruit vooraan loopt. Een erg handige IDE met zoveel handige features dat je ze waarschijnlijk nooit gebruikt totdat iemand zegt 'je kunt ook zo..'.Eigenlijk is PHPstorm een must, maar dat is ook meteen vrij prijzig als je hobbybobt. Netbeans is een gratis alternatief.
Ik moet zeggen dat Visual Studio Code ook ontzettend goed werkt, en een prima alternatief voor PhpStorm is.

March of the Eagles


Acties:
  • +3 Henk 'm!

  • naitsoezn
  • Registratie: December 2002
  • Niet online

naitsoezn

Nait Soez'n!

Als ik de TS lees, dan lijkt de programmeertaal totaal ondergeschikt te zijn, geen idee waarom opeens de focus daarop gekomen is. Er wordt geworsteld met termen als backend, frontend, api's en template, dat heeft vrij weinig tot niets te maken met de programmeertaal.

Volgens mij is TS gewoon op zoek naar een soort crash course (web) development / '(dev-)ict in general'. Ik heb geen idee waar je die moet zoeken, maar de focus zou imho in ieder geval niet op het programmeren moeten liggen want de taal is eigenlijk altijd van ondergeschikt belang.

't Het nog nooit, nog nooit zo donker west, of 't wer altied wel weer licht


Acties:
  • +1 Henk 'm!

  • MisterEagle
  • Registratie: Juli 2010
  • Laatst online: 13:48
naitsoezn schreef op donderdag 31 oktober 2019 @ 19:00:
Als ik de TS lees, dan lijkt de programmeertaal totaal ondergeschikt te zijn, geen idee waarom opeens de focus daarop gekomen is. Er wordt geworsteld met termen als backend, frontend, api's en template, dat heeft vrij weinig tot niets te maken met de programmeertaal.

Volgens mij is TS gewoon op zoek naar een soort crash course (web) development / '(dev-)ict in general'. Ik heb geen idee waar je die moet zoeken, maar de focus zou imho in ieder geval niet op het programmeren moeten liggen want de taal is eigenlijk altijd van ondergeschikt belang.
Dit klopt, hoewel de syntax me niet altijd even eenvoudig meer afgaat, snap ik t principe van object georienteerd programmeren wel, die syntax leer ik dus wel weer.
Meer ben ik opzoek naar hoe om te gaan met alles eromheen. Simpel gezegd vroeger voor een website maakte ik 3 mappen aan en dat was het wel qua structuur (core, pages, images) .

Als ik nu kijk naar structuren, (externe) library's, packages etc, maar ook zaken als docker (snap t nut inmiddels) composer (ook helder, maar ben nog van de tijd waarin je alles zelf schreef of opnaam) en cdn's (heet dat zo? in elk geval extern linken van bv bootstrap) dat is allemaal nieuw en zou zo fijn zijn als daar een complete handleiding/naslagwerk voor was/is
Pagina: 1