Pdf downloaden Pdf downloaden

Een programmeur worden is een cumulatief proces waarbij je dag na dag en jaar na jaar vaardigheden opbouwt in een leuk en lonend vakgebied (intellectueel, mentaal en financieel). Deze gids belooft je geen magische manier om gemakkelijk programmeur te worden en de volgorde van de stappen is niet heilig, maar je krijgt wel een algemeen overzicht van hoe je een programmeur kunt worden binnen een van de moderne terreinen van het vakgebied.

    • Logica
    • Discrete wiskunde
    • Programmeertalen (bij voorkeur C++/ Java/ Python voor beginners)
    TIP VAN EEN DESKUNDIGE

    Gene Linetsky, MS

    Oprichter van startups en technisch directeur
    Gene Linetsky is oprichter van startups en softwareontwikkeleaar in de San Francisco Bay Area. Hij werkt al meer dan 30 jaar in de technologiebranche en is technisch directeur bij Poynt, een technologiebedrijf dat slimme transactiesystemen voor bedrijven maakt.
    Gene Linetsky, MS
    Oprichter van startups en technisch directeur

    Denk niet dat je een studie moet gaan volgen om programmeur te worden. Het kan nuttig zijn om vakken in een programmeertaal te volgen, maar Gene Linetsky, software-engineer en oprichter van start-ups, zegt: 'Er valt over te discussiëren of een programmeeropleiding nu helpt of niet. Probeer het programmeren in plaats daarvan als een soort van stage te zien--het gaat er vooral om dat je leert van je fouten.'

  1. Je kunt hiervoor elk eenvoudig databasepakket gebruiken, zoals:
    • MS Access
    • DB V
    • Fox Pro
    • Paradox
    • MySQL is een goede database om te leren want het is gratis, wordt veel gebruikt en worden veel benaderd middels SQL queries
  2. Programmeurs vallen meestal onder de volgende categorieën:
    • Web programmeur
    • Programmeur van desktop toepassingen
      • Besturingssysteem (OS) geörienteerd programmeur(tied to a single besturingssysteem or set of besturingssystemen)
      • Platform-onafhankelijk programmeur
    • Programmeur van gedistribueerde toepassingen
    • Library/platform/framework/core programmeur
    • Systeemprogrammeur
      • Kernel programmeur
      • Programmeur van stuurprogramma's
      • Compilerprogrammeur
    • Informaticus (wetenschappelijk)
  3. De volgende secties bespreken de taken voor verschillende typen van programmering.
    Advertentie
Methode 1
Methode 1 van 6:

Web programmeren

Pdf downloaden
  1. Webapplicaties zijn softwareonderdelen die zijn ontworpen om te werken aan de top van de internet-architectuur. Dit betekent dat de toepassingen toegankelijk zijn via browsersoftware zoals Firefox of Internet Explorer. Gebouwd zijn voor de top van de internetarchitectuur betekent niet noodzakelijkerwijs dat een actieve verbinding met het internet vereist. Het betekent dat webapplicaties zijn gebouwd op de top van standaard webtechnologieën zoals:
    • HTTP
    • FTP
    • POP3
    • SMTP
    • TCP
    • IIP-protocollen
    • HTML
    • XML
    • Coldfusion
    • ASP
    • JSP
    • PHP
    • ASP.NET
  2. (Klik met de rechtermuisknop en klik vervolgens op View Source of druk op F12.) Zoek naar diversiteit in het type/content van de website, niet het aantal website dat je bekijkt. Over het algemeen zal je tenminste 1 van elk van de volgende type websites moeten bekijken:
    • Corporate presence sites (commerciële bedrijven, non-profit bedrijven/organisaties, overheidsorganisaties)
    • Web-indexing engines (zoekmachines, meta zoeksites, gespecialiseerde zoekmachines, directories)
    • Datamining sites
    • Persoonlijke sites
    • Informatieve/encyclopedische pagina's (wiki's, informatiebladen, technische specificaties en handleidingen, blogs en dagboeken, nieuws en sites van persbureaus, gouden gids, enz.)
    • Sociale media (sociale portalen, bookmarking sites, sites voor het maken van aantekeningen)
    • Samengestelde websites (hierbij inbegrepen andere categorieën zoals wiki's en blogs)
  3. Bijvoorbeeld: brainstormschema's en MS Visio.
  4. Hierbij maak je conceptuele webdiagrammen, sitemaps en navigatiestructuren.
  5. Probeer in ieder geval één beeldbewerkingsprogramma te leren gebruiken (optioneel, maar sterk aanbevolen)
  6. Dit heeft onder andere te maken met een globaal idee van:
    • Onderliggende Webservices protocollen (HTTP, FTP, SMTP, and POP3 or IMAP4)
    • Webserver software (bij voorkeur voor het platform waarmee je meestal werkt)
    • Webbrowsing software.
    • E-mailserver en clientsoftware
  7. Ook is het verstandig om een 'What You See Is What You Get (WYSIWYG)' softwarepakket voor het bewerken van HTML te leren gebruiken.
  8. De meeste gebruikers leren JavaScript. Sommige leren VBScript, but dit is niet compatible met de meeste browsers.
  9. Probeer je potentieel te bereiken met alleen die taal. Ga alleen dan verder met de volgende stap tot je op z'n minst bekend bent met de client-side scripttaal.
  10. Als je jezelf wilt beperken tot 1 vorm van server software, leer dan één van de programmeertalen die door die software worden ondersteund. Zo niet, leer dan tenminste één programmeertaal voor elke server software.
  11. Advertentie
Methode 2
Methode 2 van 6:

Desktopsoftware programmeren

Pdf downloaden
  1. De meeste van deze programmeurs schrijven code voor zakelijke toepassingen, dus is het verstandig om een idee te hebben van de zakelijke omgeving, hun organisatie- en financiële structuur, zodat je veel tijd kunt besparen.
  2. Een introductiecursus digitale elektronica en andere computerarchitectuur is handig; maar dit kan wat te veel zijn om mee te beginnen, dus kan het lezen van een aantal inleidende tutorials (zoals deze en deze ) eerst volstaan. Je kunt terugkeren naar deze stap, nadat je een eerste programmeertaal hebt geleerd.
  3. [1] Voel je niet te goed om een dergelijke taal te leren omdat je geen kind meer bent. Een voorbeeld van een dergelijke programmeertaal is Scratch. Deze programmeertalen kun de leercurve wat minder stijl maken als je net begint. Maar deze stap blijft optioneel. Je kunt dit ook doen voor de vorige stap.
  4. Volg een introductiecursus in een procedurele programmeertaal . Ongeacht de taal die je kiest in een later stadium, je zal er op een zeker niveau procedureel programmeren voor nodig hebben. Ook wordt procedureel programmeren beschouwd als het gemakkelijkst om mee te beginnen bij het krijgen leren begrijpen wat programmeren is.
  5. Je kunt gebruik maken van de oefeningen in boeken over programmeren. Gebruik hiervoor een programmeeromgeving geschikt voor de programmeertaal van je keuze.
  6. Zorg dat je de onderstaande concepten goed begrijpt en dat je deze met relatief gemak kunt toepassen voor je verder gaat:
    • Invoer en uitvoer van gegevens van en naar gebruikers van het programma.
    • De logica en de volgorde van bewerkingen van procedurele programma's.
    • Declareren, toewijzen en vergelijken van variabelen.
    • Constructies als If..then..else en Select/switch..case.
    • Lusconstructies zoals While..do, Do..while/until, For..next.
    • De syntax van je programmeertaal voor het maken en aanroepen van procedures en functies.
    • Datatypen en het manipuleren ervan.
    • Door de gebruiker gedefinieerde datatypen (records/structs/units) en hoe ze te gebruiken.
    • Als je taal overloading functies gebruikt, probeer die dan te begrijpen.
    • De manier waarop je programmeertaal het geheugen aanspreekt (pointers, peeking, etc.)
    • Als je taal operators overloading, probeer dat dan te begrijpen.
    • Als je taal delegates/function pointers gebruikt, begrijp hoe het werkt.
  7. Het is aan te bevelen om 1 programmeertaal van elk paradigma te leren, en de meeste gevorderde programmeurs doen dat ook. Maar meestal begin je met één taal, werk je daar een tijd mee om je kennis toe te passen en te oefenen, waarna je een volgende leert. Probeer één van de volgende programmeersoorten:
    • Logisch programmeren.
    • Functioneel programmeren.
    • Object-georiënteerde paradigma's.
  8. Weeg de sterke en zwakke punten tegen elkaar af. Meestal doe je het volgende:
    • Neem eenvoudige voorbeelden van je eerdere werk in de eerste programmeertaal en herschrijf dit met je tweede programmeertaal.
    • Creëer een nieuw project en probeer deze in beide talen te implementeren. Soms, afhankelijk van het project en de taal, zal het niet mogelijk zijn om een project uit te voeren!
    • Schrijf een cheatsheet of overzichtstabel met vergelijkingen tussen soortgelijke constructies in de twee talen en functies die uniek zijn voor elk van de talen.
    • Proberen manieren te vinden om functies na te bootsen die uniek zijn voor één van de twee talen met behulp van de andere taal.
  9. Bijna alle programmeertalen hebben versies/bibliotheken die ondersteuning bieden voor visuele programmering en anderen ondersteunen console of console-achtige programmering. Dit kan worden bereikt door het volgende te doen:
    • Zorg dat je een introductie krijgt in event-driven programmeren. Het meeste visuele programmeren is op zekere hoogte afhankelijk van events en event handling (met behulp van de gekozen programmeertaal).
    • Probeer zo veel desktopsoftware als je kunt en leer begrijpen wat de software doet. De meeste softwarebedrijven bieden betaversies van hun producten die je kunt gebruiken om de software te testen. Probeer de ontwikkeling van gebruikersinterfaces bij te houden.
    • Lees artikelen of tutorials over grafische gebruikersinterfaces.
  10. Probeer je programmeerervaring uit op problemen waarmee je in het dagelijkse leven te maken krijgt. Bijvoorbeeld het schrijven van programma's die grote aantallen bestandsnamen tegelijkertijd kan wijzigen, tekstbestanden visueel vergelijkt, de namen van bestanden in een directory naar het geheugen of een tekstbestand kopieert, enz. Houd het eerst eenvoudig.
  11. Vul dit aan tot het einde, met toepassing van de technieken voor visuele programmering die je tot nu toe hebt geleerd.
  12. Verbreedt je begrip van het visuele framework/bibliotheek/pakket dat je geleerd hebt voordat je verder gaat met meer gevorderde cursussen, en besteed extra aandacht aan details en het leren van meer tips en trucs voor je framework van online bronnen.
  13. Dit zal zeer nuttig zijn voor programmeurs die aantrekkelijke gebruikersinterface-elementen willen schrijven.
  14. Games programmeren wordt beschouwd, in de meeste gevallen, als desktop programmeren. Als je van plan bent om een game-programmeur te worden, moet je meer te leren over het programmeren van games na het volgen van deze stappen. Een grafische cursus is een must voor game-programmeurs en de tweede taal van keuze in de vorige stappen moet een logische/functionele programmeertaal zijn (bij voorkeur Prolog of Lisp).
    Advertentie
Methode 3
Methode 3 van 6:

Gedistribueerde toepassingen programmeren

Pdf downloaden
  1. Distributed application programmeren wordt door velen beschouwd als het moeilijkste om te leren en vereist kennis van diverse computer en communicatietechnologieën.
  2. De stap is optioneel. Maar het is erg handig als je netwerktopologieën wilt leren begrijpen.
  3. Je hebt een goed begrip nodig van het Open Systems Interconnection (OSI) model, Ethernet, IP, TCP, UDP en HTTP voor je distributed applications kunt gaan programmeren.
  4. Onder Windows zou dat elk script zijn dat werkt met de Windows Scripting Host. Onder Linux zijn dat Bash scripts en Perl. JavaScript wordt sterk aanbevolen voor beide systemen, om de volgende redenen:
    • Het wordt ondersteund door bijna elke scripting host in welk besturingssysteem dan ook (Windows Scripting Host ondersteund JavaScript standaard, de meeste Linux distributies hebben een pakket voor JavaScript scripting console ondersteuning).
    • Het wordt door veel ontwikkelaars beschouwd als gemakkelijker om te leren.
    • Het heeft een van ALGOL afgeleide syntax waardoor je sneller vertrouwd raakt met andere programmeertalen als je een tweede programmeertaal gaat kiezen (C, C++, C#, Java en J#zijn allemaal afgeleid van de ALGOL syntax).
    • Door het leren van JavaScript raak je bekend met client-side scripting van webpagina's, wat meteen een bonus is!
  5. Later kun je meer geavanceerde programmeertechnieken gaan gebruiken en paradigma's afhankelijk van je scripttaal en wat het ondersteund. Alle scripttalen hebben wel een bepaalde aspecten van procedureel programmeren.
  6. Leer wat nodig is om dat te doen is. Eenvoudige communicatie volstaat.
  7. Bij voorkeur een die een multi-paradigmataal is zoals Python. Volg een eenvoudige inleiding tot die tweede taal. Java wordt gezien door de meeste programmeurs als de taal van keuze om vele redenen. Maar, C#wint op dit gebied snle terrein. Java en C#verdienen de voorkeur om de volgende redenen:
    • Het zijn objectgeoriënteerde programmeertalen die programmeurs in grote teams afschermen van implementatiedetails omdat beide componenten ondersteunt (blokken code, gecompileerd, die een bepaalde taak uitvoeren en kunnen worden gebruikt in andere programma's).
    • Zij ondersteunen gebeurtenis-gedreven (event-driven) programmering, naast OO en procedurele programmering tot op zekere hoogte.
    • Het framework waarop de taal is gebouwd wordt van gedistribueerd (in het geval van Java).
    • De beschikbaarheid van veel kant en klare pakketten die te maken hebben met netwerken, zowel als open-source code en (framework) ingebouwde pakketten; Dit maakt het gemakkelijker voor programmeurs voort te bouwen op het werk van anderen.
  8. Minder aandacht wordt besteed aan de gebruikersinterface-elementen zoals uitvoer, vensterontwerp en technieken, en de gebruikersinterface-elementen.
  9. Dit kan gedaan worden met behulp van boeken, online tutorials of academische cursussen. Inzicht in de architectuur van gedistribueerde toepassingen en haar concepten is echter noodzakelijk.
  10. Het wordt aanbevolen dat je ten minste een inleiding volgt in elk van deze. De meeste programmeurs van gedistribueerde toepassingen stoppen niet bij één of twee programmeertalen, maar leren ten minste één programmeertaal voor elk besturingssysteem. Dat is omdat als je wilt dat je toepassingen worden 'gedistribueerd', je ten minste een versie moet aanbieden voor elke van de grote besturingssystemen.
    • Common Object Request Broker Architecture (CORBA)
    • Simple Object Access Protocol (SOAP)
    • Asynchronous JavaScript and XML (AJAX)
    • Distributed Component Object Model (DCOM)
    • .NET Remoting
    • XML Web Services
    Advertentie
Methode 4
Methode 4 van 6:

Bibliotheek(Library)/Platform/Framework/Core programmeren

Pdf downloaden
  1. Core programmeurs zijn met name gevorderde programmeurs die de overstap hebben gemaakt van het programmeren van applicaties naar het programmeren van code units die gebruikt kunnen worden door andere programmeurs.
  2. De meeste ontwikkelaars van bibliotheken gebruiken één van deze of beide.
  3. Hoe meer programmeerparadigma's en talen je kent, des te succesvoller zul je zijn als bibliotheek-/library-/pakketprogrammeur.
  4. Als de programmeertalen die je hebt geleerd voldoen aan de ANSI/ISO/IEEE/ W3C standaard versies, en probeer deze te beheersen. Probeer waar mogelijk standaardcode te gebruiken.
  5. Dit is handig tijdens de beginfase van het worden van een bibliotheek-/pakketprogrammeur. Begin met eenvoudige pakketten zoals eenhedenconversie en niet al te moeilijke wetenschappelijke berekeningen. Als je een student bent, maak dan gebruik van de vakken die niet over programmeren gaan, om vergelijkingen en wetenschappelijke kern in programmabibliotheken te vatten.
  6. Download eerst binaries/executables van het pakket. Probeer ze te gebruiken en zoek de sterke en zwakke punten. Ben je daarmee klaar, download dan de broncode en probeer uit te vinden hoe het is gemaakt. Probeer die libraries/bibliotheken na te maken, of delen ervan. Doe dat eerst nadat je de code hebt bestudeerd en later voordat je de code heb gezien. Probeer nog weer later om deze bibliotheken te verbeteren.
  7. Leer de verschillende benaderingen die gebruikt worden voor het distribueren en implementeren van componenten naar en door programmeurs.
    • Gewoonlijk hebben bibliotheek-/pakketprogrammeurs de neiging om recursief en/of iteratief te denken als ze een probleem moeten oplossen. Probeer aan elk probleem te denken als een verzameling van kleinere problemen (een opeenvolging van eenvoudiger taken) of als een herhaald proces van het verkleinen van de omvang van het probleem tot kleinere deelproblemen, waarna de deze deelproblemen op elkaar worden gestapeld.
    • Bibliotheek-/pakketprogrammeurs hebben de neiging om te generaliseren. Dat wil zeggen dat ze, wanneer ze een eenvoudig specifiek probleem voorgeschoteld krijgen, ze meestal gaan denken aan een meer algemeen probleem en proberen dat algemene probleem op te lossen, waardoor automatisch het kleiner probleem ook wordt opgelost.
    Advertentie
Methode 5
Methode 5 van 6:

Systeemprogrammeren

Pdf downloaden
  1. Systeemprogrammeurs krijgen te maken met de wetenschap van het programmeren, niet met de specifieke implementatie ervan. Beperk je niet tot een specifiek platform.
  2. Dit kan je als volgt doen:
    • Leer hoe besturingssystemen worden geïnstalleerd.
    • Leer hoe je meerdere verschillende besturingssystemen op 1 PC installeert (optioneel, maar aanbevolen).
    • Installeer meer dan één besturingssysteem. Installeer niet alle hulpprogramma's op de systemen; gebruik liever de kale functionaliteit geboden door het besturingssysteem.
  3. Later zal je de assembly leren van andere platforms/systemen.
  4. Besteed vooral veel aandacht aan de Standard Template Library (STL) en misschien de Active Template Library (ATL).
  5. Dit zal gemakkelijker zijn als je een op Unix gebaseerd besturingssysteem kiest. Het begrijpen van het systeem waar je mee werkt zal je later goed van pas komen.
  6. Maak eerst wat kleine hulpprogramma's. Meestal is het handig om het volgende te doen:
    • Proberen om kleine tools te maken die al op je systeem aanwezig zijn.
    • Proberen om utilities die beschikbaar zijn in besturingssystemen om te zetten naar die van jou.
  7. Dit is het enige veld waarbij de eerste programmeer taal van belang is. Leer eerst ANSI C en niet C++, C#of Java en ook niet niet D. Leer daarna pas C++.
    • De beperking tot C is omdat systemen programmeren vereist dat de programmeur vertrouwd is met de volgende concepten:
      • Daadwerkelijke en volledige compilatie van de broncode.
      • Low-level object uitvoerbestanden.
      • Het koppelen van binaries.
      • Low-level machinetaal/assembly programmeren. De C-taal wordt door sommigen wel beschouwd als een vermomde of makkelijker te leren vorm van assembly. Het ondersteunt ook het invoegen van assemblercode in de C-code wanneer dat maar nodig is en het is alleen maar procedureel (net zoals assembly).
    Advertentie
Methode 6
Methode 6 van 6:

Computerwetenschapper worden

Pdf downloaden
  1. Computerwetenschappers zijn zeer gevorderde programmeurs die, in plaats van te werken aan applicaties, werken aan het ontwerpen van computertechnologieën zoals encryptie, programmeertalen en datamining algoritmes. Dit niveau kun je zelden halen zonder een academische studie en veel toewijding.
  2. Dit kun je doen middels:
    • Het volgen van een universitaire studie (de meest voor de hand liggende stap).
    • Een overzicht verkrijgen van de universitaire studie en de verschillende vakken via zelfstudie doen of middels afzonderlijke cursussen. Dit kan in theorie, maar het eerste pad is aan te bevelen.
  3. Hoe specifieker, hoe beter. Dit is afhankelijk van je voorkeuren. Hier volgen een paar van de belangrijkste velden binnen de computerwetenschappen:
    • Ontwerp van algoritmes (zoeken, sorteren, encryptie, decryptie en foutdetectie in communicatie zijn enkele voorbeelden)
    • Programmeertalen/compiler ontwerp/optimalisatie
    • Kunstmatige intelligentie (patroonherkenning, spraakherkenning, natuurlijke taal verwerking, neurale netwerken)
    • Robotica
    • Wetenschappelijke programmering
    • Werken met supercomputers
    • Computer aided design/modeling (CAD/CAM)
    • Virtual reality
    • Computergraphics (computergraphics wordt meestal ten onrechte verward met grafisch ontwerp of grafische user interfaceontwerp. Computergraphics is het vakgebied waarbij je beeld kunt gebruiken en manipuleren in computersystemen.)
  4. Je kunt ook gaan voor een masters of doctoraat.
  5. Advertentie

Tips

  • Ongeacht wat voor soort programmering je wilt proberen of op welk niveau, je kunt altijd een cursus volgen of lessen op school. Laat je niet intimideren door termen zoals 'Computerwetenschappen.' Elk vak dat je kunt volgen zonder voorkennis zou zich moeten concentreren op de basisvaardigheden van het programmeren, maar neem vooraf contact op met de docent om te controleren of het is wat je zoekt, omdat cursussen als 'Computervaardigheden' zich meer concentreren op het vertrouwd raken met office-toepassingen, etc..
Advertentie

Over dit artikel

Deze pagina is 9.900 keer bekeken.

Was dit artikel nuttig?

Advertentie