door John Selawsky
Bepaal je carrièredoelen en kies een taal. Dit is het belangrijkste advies voor iedereen die nog geen ervaring heeft met programmeren en zich wil aansluiten bij de gemeenschap van ontwikkelaars. Maar hoe kun je een keuze maken als je geen idee hebt welke taal het beste bij je doelstellingen past?
Zou het niet eenvoudig zijn als er onder alle programmeertalen een “marktleider” zou zijn? Dan zouden alle nieuwkomers altijd een veilige keuze hebben – leer deze taal en je zult zeker veel gevraagd worden. Natuurlijk, dat is onmogelijk. Talen zijn “gereedschappen” voor het oplossen van talloze taken. Maar er is er toch een die als een uitstekende keuze kan worden beschouwd – het is Java.
Java is een goed gestructureerde, object-georiënteerde taal, die als gemakkelijk voor beginners kan worden beschouwd. Je kunt het vrij snel onder de knie krijgen, omdat er veel processen zijn die automatisch verlopen. Je hoeft je niet al te diep te verdiepen in “hoe de dingen daar werken”. Java is een cross-platform taal. Het stelt een programmeur in staat een applicatie te maken, die op elk apparaat kan worden ingezet. Het is de taal bij uitstek voor het Internet of Things en het juiste gereedschap voor het bouwen van applicaties op bedrijfsniveau.
Wat belangrijk is voor een “groentje”, Java heeft een van de grootste wereldwijde gemeenschappen en documentatie van hoge kwaliteit. Als je een probleem hebt, is het meer dan waarschijnlijk dat het antwoord daar klaar ligt, wachtend op jou. Nog twee voordelen van Java zijn de uitgebreide collecties en frameworks die de meeste uitdagingen waar je als Junior ontwikkelaar mee te maken krijgt, afdekken.
Ten slotte is het een taal met een respectabele achtergrond en een prominente toekomst. Twee laatste versies, verrijkt met nieuwe functies, zijn binnen zes maanden na elkaar uitgebracht. Dit helpt Java om op de eerste plaats te staan en de hoogste posities te behouden in respectabele professionele ranglijsten.
Maar zelfs als we het hebben over een programmeertaal met een lage leercurve, zijn er nog genoeg verborgen rotsen voor beginners. Hoeveel tijd heb je nodig om te leren? Welke bronnen moet je vertrouwen? Welke fouten moet je vermijden? Laten we uw leerervaring eens helemaal doornemen.
Zorg dat u de veelvoorkomende obstakels omzeilt
Zo, u bent nieuw met programmeren. Gefeliciteerd: want u kunt gebruik maken van de ervaring van andere programmeurs en de veelgemaakte fouten bij een zelfstudie vermijden. Hier volgen enkele veelgemaakte fouten.
Leren zonder een specifiek doel te stellen
Om de omvang en het gewenste kennisniveau in een bepaalde programmeertaal in te schatten, moet je allereerst een eenvoudige vraag beantwoorden: waarom moet je programmeren?
Als je serieus bent over coderen en van plan bent een Java-ontwikkelaar te worden, zul je elke dag minstens 4-5 uur moeten studeren. Maar als je gewoon je scope wilt vergroten, kun je een wat rustiger tempo kiezen. Hoe dan ook, probeer je opleiding niet nog vele jaren te verlengen, want de technologieën evolueren. Terwijl je een bepaald framework of ontwikkeltool leert om een baan te krijgen, raakt het verouderd.
Het lezen van “alles wat nuttig is” dat opduikt, is niet de beste strategie van leren. Het is prima om het algemene plan aan te passen. Maar het helemaal niet volgen zal je onvermijdelijk demotiveren.
Een poging om te veel technologieën tegelijk te leren
Dit is een volgende fout, die leidt tot leren zonder einde. Probeer je onderwijsplan niet vol te proppen met te veel technologieën en tools om een burn-out te voorkomen. Je hebt tijd nodig om de informatie te verwerken en te zien hoe alles in de praktijk werkt.
Te veel onderzoek en theorie zonder praktijk
Programmeren is een vaardigheid die je alleen met veel oefening kunt verwerven. Je hebt een serieuze achtergrond in theorie nodig, maar zolang je alleen lezingen en cursussen leest (of bekijkt), kun je niet echt coderen. Denk er maar eens over na. Niemand kan leren zwemmen zonder het te proberen. Je hebt uitleg nodig, maar vooral actie.
Alleen door veel te oefenen leer je hoe je met alledaagse problemen van programmeurs om moet gaan. Je krijgt bijvoorbeeld de gewoonte om je code regelmatig te controleren en de problemen niet te laten ophopen. U zult ook beginnen met de gemakkelijkste oplossingen. Daarna ga je over op meer verfijnde, constant werkend aan de verbetering van je code. En het belangrijkste is dat je gewend raakt aan dagelijks coderen.
Leren coderen in afzondering
Beginners twijfelen vaak of ze zich moeten aansluiten bij online programmeergemeenschappen of evenementen moeten bijwonen, voornamelijk vanwege het imposter-syndroom. Maar onthoud: niemand wil je naar beneden halen. De programmeergemeenschap werkt samen. Dit is hoe talrijke open gegevensbronnen ontstaan. Ze zijn gewend om in een team te werken, en zeker, ze waren allemaal beginners op een bepaald moment in hun leven.
Kijk maar eens: er zijn tal van forums en webbronnen over programmeren. Ontwikkelaars delen gretig hun kennis en staan open voor samenwerkingen. Je kunt online beginnen met leren, een nuttige hint krijgen van meer ervaren collega’s en later je eerste codeerproject vinden.
Zeker weten dat je op een dag alle aspecten van programmeren volledig zult begrijpen
Als iemand een pil zou ontdekken die je kunt nemen en waarmee je onmiddellijk vaardig wordt in elke programmeertaal, zou hij de rijkste persoon op aarde zijn (sorry, Jeff Bezos). Maar tot die tijd is er geen zeker einde aan je opleiding, als je ervoor hebt gekozen programmeur te worden. Zelfs als je een baan hebt, stop dan nooit met leren. Dingen veranderen snel in een programmeerwereld.
Aan de andere kant, als je nog aan het leren bent hoe je moet coderen, probeer sommige feiten te accepteren zoals ze zijn. Verdiep je niet in elk onderwerp, want de achtergrond ervan kan te “zwaar” zijn.
Maak een perfect trainingsprogramma
Het is gemakkelijker om stap voor stap je doel te bereiken. Als je de veelgemaakte fouten kent, kun je ze vermijden. Hier zijn vijf stappen die je kunt nemen om Java te leren.
- Stel een doel en kies een taal.
Java is zo’n beetje alles wat je met Java kunt doen. Je kunt applicatieservers, desktop- en mobiele applicaties en bedrijfstoepassingen bouwen en unit-tests uitvoeren. Maar een programmeertaal is natuurlijk niet alles wat je moet weten om een pro te worden. Probeer aan specifieke activiteitengebieden te denken.
De trends van vandaag zijn het bouwen van cloudgebaseerde applicaties (je zult ook de basisbeginselen van cloud computing en specifieke tools voor cloudontwikkeling moeten leren), het werken met het Internet of Things, het uitvoeren van Big data-analyses, het maken van games, enz.
2. Maak een opleidingsplan.
Ben je er klaar voor om van Java-programmeren je beroep te maken? Wijd dan dagelijks minstens 2-3 (op de werkdagen) tot 5 uur (in het weekend) aan studeren. In dat geval heb je waarschijnlijk 3 tot 6 maanden nodig om je voor te bereiden op een functie als Junior developer.
In het algemeen zal je leerproces in een paar fasen verdeeld zijn:
- Installatie van JDK (Java Development Kit) vanaf Oracle website en Installatie van Java runtime omgeving (IntelliJ IDEA, Eclipse of NetBeans);
- Leren van Java Syntax;
- Leren van Java Core;
- Leren van Java Collections;
- Leren van populaire libraries en frameworks;
- Verkennen van veelgebruikte API’s (bijvoorbeeld servlets, JSP, JDBC, JUnit);
- Maken van Git;
- Enzovoort.
Probeer je plan te volgen en houd de balans tussen theorie en praktijk. Programmeren is een vaardigheid die elke dag getraind moet worden. Als je klaar bent met het bestuderen van een bepaald onderwerp, ga dan verder met een paar codeertaken (3 tot 10, afhankelijk van de moeilijkheidsgraad).
Je kunt het bekende Pareto-principe (80/20-regel) gemakkelijk aanpassen aan het leren van Java. De “20” zal staan voor onderzoek en “80” voor praktijk. Dit is niet overdreven: je zult vier keer meer moeten coderen dan lezen om te onthouden wat je hebt geleerd en je coderingsvaardigheden te ontwikkelen. Helaas, als je je code niet in één keer schrijft, zul je alles wat je gelezen hebt de volgende dag weer vergeten. Gelukkig hoef je niet je eigen trainingsprogramma uit te vinden, als je de juiste bronnen hebt.
3. Kies de juiste tools en sluit je aan bij programmeercommunities.
Laten we eerlijk zijn: een perfecte Java-cursus bestaat niet. Sommige zullen je een grondige basiskennis geven, andere zullen je veel praktijkervaring bieden. Kies een paar platforms voor onderwijs, communicatie en praktijk. Kies een online cursus die een duidelijke uitleg van de theorie combineert met het echte coderen.
Doe mee aan de gemeenschappen, waar je elke vraag over de aspecten van het coderen op Java kunt stellen, je gedachten kunt delen en gelijkgestemden kunt vinden. De topcommunities voor Java-ontwikkelaars staan hieronder vermeld.
Gebruik meerdere bronnen voor het leren van Java
Je zult veel tools nodig hebben om je doelen te bereiken. Hier is een set “tools” voor u om te slagen.
- Strikt praktijkgericht: CodeAcademy
Dit is waarschijnlijk een van de bekendste online platforms voor het leren van tal van talen. Natuurlijk is er ook een sectie voor Java-leerders. Hier begin je met coderen vanaf de eerste les. Er zijn vrij nuttige hints, die je kunt krijgen als een bepaalde taak moeilijk lijkt (wat normaal is als je een beginner bent). De logica is eenvoudig: lees de taak, schrijf code en voer die uit om te zien wat er als resultaat gebeurt, en ga dan naar de volgende stap. De taken worden geleidelijk ingewikkelder, totdat je begint met het schrijven van je code vanaf een schone lei. De FAQ sectie is erg nuttig en je hebt de mogelijkheid om elke taak met andere studenten te bespreken.
Deze cursus kan een goede aanvulling zijn op het leren van Java. Zoals eerder gezegd, je moet coderen om het programmeren in Java onder de knie te krijgen.
2. Speel en codeer vanaf het begin: CodeGym.cc
Dit zijn online cursussen voor Java-leerders met een speciaal kenmerk – gamification. Tegenwoordig is het gebruikelijk dat online cursussen gamification-elementen bevatten, omdat ze zorgen voor directe motivatie, een gevoel van constante prestaties en het gemakkelijker maken om je doel te bereiken.
Bij CodeGym’s begin je vanaf niveau 0 in een futuristisch universum met ruimtereizen, robots en andere coole dingen. Je doel is om vier educatieve quests te voltooien om een level omhoog te gaan met een karakter – een robot. Elke quest omvat 10 levels, en elk level heeft tot 10-12 lessen, gegeven door bemanningsleden van een galactisch schip. Een les bestaat uit een minimum aan theorie en een reeks opdrachten met onmiddellijke controle en tips over hoe je je code kunt verbeteren. Je begint met coderen vanaf het begin, waarbij je heel eenvoudige taken oplost, totdat je klaar bent voor veel ingewikkeldere en omvangrijkere codeerprojecten.
Het hele verhaal zorgt ervoor dat je niet vastloopt op een bepaald onderwerp of taak, vooruitgaat en later terugkeert naar de “twisters”. Al met al, er zijn indrukwekkend 1200 + taken in een cursus. Een hoeveelheid die zich omzet in minstens 300-500 uur coderen.
3. Daag programmeurs uit: Codewars
Dit is een ander online platform met tonnen aan oefening. Hoewel het meer geschikt is voor leerlingen met op zijn minst een kleine achtergrond in programmeren. Codewars stelt je in staat om vaardigheden in een bepaalde taal aan te scherpen door het trainen van kata’s.
Je kunt je code in een browser schrijven en testcases gebruiken om het stap voor stap te controleren. Je kunt je oplossing ook vergelijken met anderen om je kennis te verbreden en de best practices te bespreken. Elke kata heeft een rang, en elke kata is een uitdaging met andere programmeurs. Wanneer je moeilijkere taken oplost, kun je meer gecompliceerde uitdagingen krijgen om je codeervaardigheden te verbeteren. Wat dit platform onderscheidt van anderen is dat het de mogelijkheid biedt om in een groep te studeren en te oefenen.
4. Luister naar de lezingen van een “pro” niveau: EdX
EdX is een onderwijsplatform opgericht door Harvard University en MIT. Het bestrijkt vele vakgebieden, waaronder Java-programmeren en vele aanverwante onderwerpen. Er zijn tal van geverifieerde inleidende cursussen en certificaatprogramma’s, aangeboden door universiteiten.
Elke cursus heeft een afgebakend tijdsbestek en bevat videocolleges met een teksttranscriptie. Het is gemakkelijk om terug te keren naar eerdere lessen en de stof te herzien. Er zijn tientallen verschillende cursussen, sommige zijn gratis. Maar toch, dit is een bron strikt voor het leren van Java theorie. Zorg ervoor dat je die cursussen versterkt met uren coderen.
Wil je op de hoogte blijven van het laatste nieuws, recensies en updates in de Java-wereld? Dat is de juiste ding om te doen. Java is voortdurend in ontwikkeling, wordt geüpgraded en brengt nieuwe functies. Zorg ervoor dat je een paar media hebt die je dagelijks kunt lezen. Een van de grootste zijn:
- Javaworld (nieuws, handige tutorials, “how to’s” en al het andere om je op de hoogte te houden van Java-programmeren);
- Java Code Geeks (een resource center voor wie Java leert met educatieve tutorials, artikelen, en tips over hoe je een baan als Java-programmeur kunt krijgen);
- DZone (tal van artikelen en gidsen voor beginners en ervaren ontwikkelaars);
- Javarevisited (een dagelijks bijgewerkte blog die tal van Java-leeronderwerpen behandelt).
Herken je nog het advies om lid te worden van een community om je opleiding effectiever te maken? Je kunt elke vraag stellen in de Java-sectie van Stack Overflow of Coderanch. Ook zijn er ten minste drie grote gemeenschappen op Reddit, zoalselearnprogramming, java en learnjava, waar je nuttige tips vindt over het leren van Java en programmeren in het algemeen. Als je meer specifieke informatie nodig hebt, bijvoorbeeld een hint over het verbeteren van je code in bepaalde taken, probeer dan de speciale helpsectie op CodeGym, waar andere studenten en “coderingscoaches” je met elk probleem zullen helpen. En tot slot heeft Oracle een uitgebreide Java Community, die openstaat voor zowel nieuwkomers als ervaren ontwikkelaars.
Programmeur zijn betekent voortdurend verbeteren en nieuwe kennis opdoen. Als je vanaf het begin aanleg hebt voor zelfstudie, zul je zeker slagen. Ben je klaar om het te proberen?