Vraag 3 - mbergevoet/weekly-nerd-2021 GitHub Wiki

Vraag 3

Je bent nu 3 maanden 24/7 code aan het klopppppen. Hopelijk heb je super veel geleerd, ben je regelmatig uitgedaagd, weet je (nog beter) waar je grenzen liggen en hoe je je verder kan en wil onwikkelen als "frontender". Of juist niet ...

In de verschillende vakken die je hebt gevolgd zijn technieken en werkwijzen aan bod gekomen die een "echte" frontender ook doet: prototypen, experimenteren, ingewikkelde code, simpele code, onderzoeken, testen, lezen, documenteren, en heel veel HTML, CSS en JS, op de client en op de server. Welke onderwerpen hebben de meeste indruk op je gemaakt? Een gastspreker of een test? Een inzicht tijdens een Discord-sessie met een van de student-assistenten? Schrijf per vak wat je hebt geleerd en wat je meeneemt als frontender.

Antwoord

Ik zal nu per vak beschrijven wat ik heb geleerd en wat indruk op mij gemaakt heeft.

Web App From Scratch Je kan meer bereiken met vanilla JavaScrip dan ik eigenlijk had gedacht (ik heb alleen een mini library gebruikt om hashroutes toe te voegen). Ik neem hier van mee dat je libraries alleen gebruikt als daarmee de code daadwerkelijk makkelijker te lezen en te schrijven is. Ook heb ik geleerd dat je soms even langs een andere kant moet denken om iets voor elkaar te krijgen. Dat ging om het ophalen van data uit de Star Wars API die ingewikkeld gestructureerd was. Met hulp van Robin (studentassistent) hadden we toch een manier bedacht hoe ik dat voor elkaar kon krijgen. En ik heb mijn kennis over API calls weer even opgefrist want de laatste keer dat ik dat deed was tijdens blok tech in het tweede jaar.

CSS To The Rescue Toen ik begon aan het vak dacht ik al best veel wist over CSS. Maar toen we eenmaal bezig waren bleek dat toch een stuk minder het geval te zijn. Ik heb veel nieuwe functionaliteiten van CSS geleerd tijdens dit vak. Denk aan clippath, hoe handig linear gradients zijn, hoe je animaties maakt, beter om gaan met position relative en absolute en nog wat andere kleinere functies. En ik heb ook geleerd dat je veel met CSS kunt bereiken zonder dat daar direct JavaScript voor nodig is. Denk aan 3D objecten en bewegende elementen of simpele button klikken. Ook heb ik geleerd om code beter te optimaliseren voor productie door slim te selecteren in CSS en onnodige styling zo veel mogelijk te vermijden.

Browser Technologies Ik heb meer leren denken aan mensen met minder goede technologie tijdens het bouwen van een werkend prototype. Client side code is erg veelzijdig zolang je maar de juiste computer of smartphone hebt. Daarom moet je er als developer rekening mee houden dat zonder al die fancy dingen de core functionaliteit altijd moet blijven werken. Bouw de code op in lagen (eerst HTML, dan CSS en tot slot JavaScript) en zorg met progressive enhancement voor een verbetering van de gebruikservaring bij elke laag die er bij komt. Ik heb ook geleerd dat door gebruik te maken van slimme server-side code, je een hoop client-afhankelijkheden kunt wegnemen. Door data op te slaan en de server delen van je applicatie te laten renderen wordt je code robuuster en kan er minder fout gaan voor gebruikers.

Progressive Web App Ik heb geleerd hoe ik een installeerbare web app kan maken met behulp van een serviceworker, caching en templating. Ik vond dit wel één van de vetste vakken van de Minor denk ik, mede doordat ik het leuk vond dat ik een eigen API mocht gebruiken. Naast het bouwen van een progressive web app heb ik geleerd hoe je een app zo goed mogelijk kunt optimaliseren door efficiente bestandstypes (denk aan webp of SVG’s voor illustraties, kleinere font formats en “minified” CSS) te gebruiken die de render tijd van een pagina drastische verlagen als er slechte internet verbinding is. Ook mede door te cachen (web pagina’s lokaal opslaan op je computer) kan dat nog veel minder worden en dat vond ik vooral heel gaaf, dat neem ik zeker mee.

Real Time Web Ik heb geleerd hoe verbindingen tussen clients werken met de library socket.io. Socket.io vond ik best lastig te begrijpen in het begin en in de tijd die ik gekregen heb om iets te bouwen was het moeilijk te realiseren. Ik ken nu dus de basis van Socket maar wat ik voornamelijk hier uit haal is dat je door veel te doen en hulp te vragen je toch nieuwe technieken of JavaScript libraries kunt leren.

Human Centered Design Ik ben er achter gekomen hoe veel mensen niet kunnen profiteren van alle mogelijkheden van het web omdat ze een bepaald iets (tijdelijk) niet kunnen. Op dat gebied is nog veel te winnen. Ik heb ook geleerd om de situatie van een beperkt persoon te analyseren en in overleg (met in mijn geval een doof persoon) iets te maken dat het digitale leven voor Darice makkelijker maakt. Ik heb leren testen en communiceren met een beperkt iemand. En ik heb conventies genegeerd om toch te maken wat ik wilde. Door geen WEBVTT te gebruiken maar gewone CSS styling om ondertiteling bij een film fragment te voegen.