Je wilde altijd al leren hoe je zelf software maakt – of gewoon af en toe een scriptje in elkaar flanst – maar je wist nooit waar je moest beginnen. Gelukkig staan er op internet veel gratis hulpmiddelen waarmee u in een mum van tijd een programmeur kunt worden.
Deze browser ondersteunt het video-element niet.
Sinds de uitvinding van het internet gebruiken programmeurs het om software-ontwikkelingstechnieken te bespreken, tutorials te publiceren en codevoorbeelden te delen zodat anderen ervan kunnen leren en ze online kunnen gebruiken. Als je nieuwsgierig bent hoe je programmeur kunt worden, kun je een vliegende start maken door gebruik te maken van de vele gratis web-gebaseerde tutorials en bronnen.
First Things First: Blijf niet hangen in het kiezen van een taal
Advertentie
Een veel voorkomende valkuil voor beginners is het vastlopen in de vraag welke programmeertaal het beste is om eerst te leren. Er zijn veel meningen, maar er is niet één “beste” taal. Het zit zo: uiteindelijk maakt de taal niet zo veel uit. Het begrijpen van data- en controlestructuren en design patterns is heel belangrijk. Elke taal – zelfs een eenvoudige scripttaal – zal elementen bevatten die je ook in andere talen zult gebruiken en die je zullen helpen bij het leren. In de lessen die ik volgde om mijn graad in Computerwetenschappen te behalen, programmeerde ik in Pascal, Assemblage en C-talen waarin ik nooit professioneel betaald werd om in te programmeren. Ik heb mezelf elke taal aangeleerd die ik in mijn carrière heb gebruikt, door concepten die ik al kende te hergebruiken en door documentatie en boeken te raadplegen om de syntaxis te leren. Dus, laat je niet opjagen over welke taal je eerst moet leren. Kies het soort ontwikkeling dat je wilt doen, en ga gewoon aan de slag met een taal die werkt.
Er zijn verschillende soorten software-ontwikkeling die je kunt doen voor verschillende platforms, van het web tot je desktop tot je smartphone tot een commandoregel. In dit artikel beschrijven we een aantal van onze favoriete tutorials en bronnen om jezelf te leren programmeren voor elk platform. We gaan ervan uit dat je een ervaren gebruiker bent, maar een beginner als het gaat om code snippets, dus we houden het op beginners niveau. We houden het dus op beginnersniveau. Zelfs als u een programmeerhandleiding voor beginners volgt, zult u al blij zijn te zien hoe ver u kunt komen.
Aanbeveling
Desktop Scripting
De eenvoudigste manier om zelf te programmeren voor uw Windows- of Mac-desktop is te beginnen met een script- of macroprogramma zoals AutoHotkey (voor Windows) of Automator (voor Mac). Op dit moment schreeuwen de hardcore programmeurs in het Lifehacker lezerspubliek naar hun beeldschermen dat AHK of AppleScript geen “echt” programmeren zijn. Dat kan waar zijn-technisch gezien doen dit soort tools gewoon high-level scripting. Maar voor diegenen die nieuw zijn met programmeren en gewoon hun voeten nat willen maken met het automatiseren van acties op hun desktop, zijn deze gratis programma’s een fantastische manier om te beginnen-en je zou verbaasd zijn hoeveel je er mee kunt doen.
Advertentie
Adam heeft bijvoorbeeld de standalone Windows-applicatie die we allemaal kennen en waarderen, Texter, ontwikkeld met behulp van AutoHotkey, dus deze scripttaal is tot veel meer in staat dan alleen kleinschalige automatiseringsprojecten. Om met AutoHotkey aan de slag te gaan, kunt u Adams zelfstudie bekijken over hoe u met AutoHotkey van elke actie een sneltoets kunt maken. (Bekijk daarna de broncode van Texter om het binnenste van een volwaardige op AHK gebaseerde Windows-toepassing te zien.)
Advertentie
Web Development
In plaats van gebonden te zijn aan specifieke programmeertalen en het uiterlijk van een bepaald besturingssysteem, kunt u uw killerapplicatie in de browser plaatsen en in de cloud uitvoeren, als een webapp. Welkom in de wondere wereld van webontwikkeling.
Advertentie
HTML en CSS: Het eerste wat u moet weten om een website te bouwen, is HTML (de opmaak waaruit webpagina’s zijn opgebouwd) en CSS (de stijlinformatie waarmee die opmaak er mooi uitziet). HTML en CSS zijn geen echte programmeertalen – het zijn slechts pagina-structuur en stijl-informatie. U moet echter in staat zijn eenvoudige HTML en CSS met de hand te schrijven voordat u webtoepassingen gaat bouwen, omdat een webpagina de voorkant van elke webtoepassing is. Deze HTML-tutorial is een goede plaats om te beginnen.
JavaScript: Nu u een statische webpagina kunt maken met HTML en CSS, wordt het pas echt leuk, want het is tijd om JavaScript te leren. JavaScript is de programmeertaal van de webbrowser, de magie die dynamische in-page-effecten mogelijk maakt. JavaScript is ook de basis van bookmarklets, Greasemonkey-gebruikersscripts en Ajax, dus het is de sleutel tot het maken van allerlei webtoepassingen. Begin hier met het leren van JavaScript.
Advertentie
Server-side scripting: Als je eenmaal goed bent in het maken van dingen op een webpagina, moet je er een dynamische serveractie achter zetten – en daarvoor moet je een server-side scripttaal gaan gebruiken, zoals PHP, Python, Perl of Ruby. Om bijvoorbeeld een web-gebaseerd contactformulier te maken dat ergens een email stuurt gebaseerd op wat een gebruiker heeft ingevuld, is een server-side script nodig. Scripttalen zoals PHP kunnen ook praten met een database op uw webserver, dus als u een site wilt maken waar gebruikers kunnen inloggen en informatie kunnen opslaan, is dat de manier om te gaan. De uitstekende webontwikkelingssite Webmonkey staat vol met tutorials voor verschillende web programmeertalen. Zie hun PHP Handleiding voor Beginners. Als u klaar bent, kijk dan hoe u PHP kunt gebruiken om met een database te praten in WebMonkey’s PHP en MySQL tutorial. PHP’s online documentatie en functie referentie is de beste op het web. Elk item (zoals deze over de strlen functie) bevat commentaren van gebruikers onderaan die vaak even nuttig zijn als de documentatie zelf. (Ik ben toevallig een voorstander van PHP, maar er zijn genoeg andere server-side scripting talen die je in plaats daarvan zou kunnen gebruiken.)
Advertentie
Webframeworks: In de loop der jaren hebben webontwikkelaars steeds dezelfde problemen moeten oplossen en soortgelijke code moeten herschrijven om dynamische websites te bouwen. Om te voorkomen dat iedereen voor elk nieuw webontwikkelingsproject het wiel opnieuw moet uitvinden, hebben sommige programmeurs ontwikkelingsframeworks bedacht die wat repetitief werk voor u doen. Het populaire Ruby on Rails framework, bijvoorbeeld, gebruikt de Ruby programmeertaal en biedt een web-specifieke structuur om veel voorkomende web applicatie taken uit te voeren. Adam heeft Rails zelfs gebruikt om zijn eerste serieuze (en indrukwekkende!) webapplicatie te bouwen, MixTape.me. Hier is zijn uitleg over hoe je een website kunt bouwen zonder ervaring. Andere populaire frameworks voor webontwikkeling zijn CakePHP (voor PHP-programmeurs), Django (voor Python-programmeurs), en jQuery (voor JavaScript).
Advertentie
Web-API’s: Een API (Application programming interface) is een programmatische manier voor verschillende stukken software om met elkaar te praten. Als u bijvoorbeeld een dynamische kaart op uw website wilt zetten, wilt u een Google Map gebruiken in plaats van uw eigen kaart te bouwen. De Google Maps API maakt het eenvoudig om met JavaScript programmatisch een kaart in een pagina op te nemen. Bijna elke moderne webservice die u kent en liefhebt, heeft een API waarmee u gegevens en widgets ervan kunt opnemen in uw toepassing, zoals Twitter, Facebook, Google Docs, Google Maps, en de lijst gaat maar door. Het integreren van andere webapps in uw webapplicatie via API’s is de laatste grens van rijke webontwikkeling. Elke goede, grote web service API biedt grondige documentatie en een soort van snelstartgids om het uit te proberen (hier is die van Twitter, bijvoorbeeld). Doe eens gek.
Advertentie
Command Line Scripting
Als je een programma wilt schrijven dat tekst- of bestandsinvoer aanneemt en iets nuttigs produceert, dan is de commandoregel de juiste plaats om dat te doen. Hoewel de commandoregel niet zo sexy of mooi is als een webapp of desktop-app, kun je er niet aan tippen voor de snelle ontwikkeling van snelle scripts die processen automatiseren.
Advertentie
Verschillende scripttalen die op een Linux-gebaseerde webserver werken, werken ook op de commandoregel, zoals Perl, Python en PHP, dus als je een van deze slechteriken leert, ben je in twee contexten thuis. Mijn pad heeft me nooit ver op het Perl pad gebracht, maar ik heb mezelf Python geleerd met behulp van het uitstekende en gratis online boek, Dive into Python.
Advertentie
Als een Unix ninja worden een van je doelen als programmeur is, moet je absoluut goed worden in shell scripting met bash. Bash is de commandoregel scripttaal van een *nix-omgeving, en het kan alles, van het helpen opzetten van geautomatiseerde back-ups van uw database en bestanden tot het bouwen van een volwaardige applicatie met gebruikersinteractie. Zonder enige ervaring met het schrijven van bash scripts van meer dan een dozijn regels, heb ik uiteindelijk een volledige persoonlijke to-do lijst manager in bash ontwikkeld, Todo.txt CLI.
Add-ons
Nu zijn moderne webapps en browsers uitbreidbaar met stukjes software die er op worden geschroefd en mogelijkheden toevoegen. De ontwikkeling van add-ons wint aan populariteit omdat meer ontwikkelaars naar bestaande software kijken, zoals Firefox of WordPress, en denken: “Maar als het ook DIT kon…”
Advertentie
Je kunt een heleboel doen in elke webbrowser met slechts een beetje kennis van HTML, JavaScript en CSS. Bookmarklets, Greasemonkey-gebruikersscripts en Stylish-gebruikersstijlen worden gemaakt met dezelfde stukjes code die gewone webpagina’s maken, dus ze zijn het leren waard, zelfs als u alleen een bestaande site wilt aanpassen met een klein stukje code.
Meer geavanceerde browsertoevoegingen, zoals Firefox-extensies, laten u meer doen. Voor het ontwikkelen van Firefox-extensies is bijvoorbeeld kennis nodig van JavaScript en XML (opmaak die lijkt op HTML, maar veel strenger is qua formaat). In 2007 heb ik beschreven hoe je een Firefox-extensie bouwt, een vaardigheid die ik heb opgedaan nadat ik op een gratis tutorial was gestuit.
Advertentie
Vele gratis en geliefde webapplicaties bieden ook een uitbreidingsraamwerk, zoals WordPress en MediaWiki. Beide programma’s zijn geschreven in PHP, dus kennis van PHP is een eerste vereiste om aan de slag te kunnen. Hier lees je hoe je een plug-in voor WordPress schrijft. Ontwikkelaars die mee willen liften op het voorfront van Google Wave kunnen aan de slag met het schrijven van gadgets en bots in HTML, JavaScript, Java, en Python. Ik schreef mijn eerste Wave-bot volgens deze snelstarttutorial in één middag.
Advertentie
Webontwikkeling voor de desktop
Het mooiste van programmeren in een bepaalde context is wanneer je die vaardigheden kunt gebruiken om ze elders toe te passen. Eerst webontwikkeling leren is een goede manier om te beginnen, omdat er nu manieren zijn om die vaardigheden ook op desktoptoepassingen toe te passen. Adobe AIR is bijvoorbeeld een platformonafhankelijke runtime-omgeving waarmee je je app één keer kunt bouwen en vrijgeven om op het bureaublad te draaien voor elk besturingssysteem waarop AIR draait. AIR-apps zijn geschreven in HTML, Flash of Flex, zodat u uw vaardigheden op het gebied van webontwikkeling kunt toepassen in een desktopcontext. AIR is een geweldige optie voor het implementeren van desktop-apps, zoals een van onze top 10 apps die de moeite waard zijn om Adobe AIR voor te installeren.
Advertentie
Ontwikkeling van mobiele apps
Mobiele applicaties zoals die op je iPhone of Android-smartphone zijn op dit moment een rage, dus je droomt er misschien van om rijk te worden in de iTunes App Store met de volgende killer-app. Voor de nieuwe programmeur kan het echter een zware leercurve zijn om zich in de mobiele ontwikkeling te storten, omdat je vertrouwd moet zijn met geavanceerde programmeertalen zoals Java en Objective C. Het is echter de moeite waard om te bekijken hoe iPhone- en Android-ontwikkeling eruit zien. Bekijk dit eenvoudige voorbeeld van iPhone applicatie-ontwikkeling om een voorproefje te krijgen van wat iPhone-ontwikkelaars doen. Android-apps worden geschreven in Java, en hier is een vriendelijke videotutorial over hoe het bouwen van een “Hello Android”-applicatieworkflow eruitziet.
Advertentie
Geduld, elleboogvet, vallen en opstaan
Goede programmeurs zijn een speciaal ras van hardnekkige probleemoplossers die verslaafd zijn aan de kleine overwinningen die komen langs een lang pad van vallen en opstaan. Leren programmeren geeft veel voldoening, maar het kan ook een frustrerende en eenzame ervaring zijn. Als je kunt, zoek dan een vriend om met je samen te werken. Echt goed worden in programmeren is, net als alles, een kwestie van volhouden, dingen uitproberen en gaandeweg ervaring opdoen.
Aanbeveling
Dit artikel is slechts een top-of-mind advies van een autodidact-programmeur voor beginners. Ervaren programmeurs: Wat heb ik gemist? Wat je niveau ook is, zet je ideeën en aanbevelingen voor beginners in de comments.
Gina Trapani, de oprichtster van Lifehacker, denkt dat de beste programmeurs autodidact zijn. Haar wekelijkse rubriek, Smarterware, verschijnt elke woensdag op Lifehacker. Abonneer u op de Smarterware tag feed om nieuwe afleveringen in uw nieuwslezer te krijgen.
Advertentie