Programmeur worden is een cumulatief proces dat je vaardigheden dag na dag en jaar na jaar opbouwt, en programmeren kan leuk en lonend zijn (mentaal, spiritueel en financieel). Deze gids belooft niet een magisch gemakkelijke manier te zijn om programmeur te worden, en de volgorde van de stappen is niet heilig, maar je krijgt een algemeen overzicht van hoe je een programmeur kunt worden in een van de moderne programmeergebieden.
Stappen
Stap 1. Volg een introductiecursus in een (of alle) van de volgende disciplines:
- Logica
- Discrete wiskunde
- Programmeertaal (deelnemen aan de verschillende programmeerparadigma's, beginnend van sequentieel/procedureel tot objectgericht, na functioneel en logisch programmeren. Bij voorkeur Ruby/Python/Pascal voor beginners en na enig goed begrip dieper in C++/C#/Java gaan)
DESKUNDIGE TIP
Gene Linetsky, MS
Startup Founder & Engineering Director Gene Linetsky is a startup founder and software engineer in the San Francisco Bay Area. He has worked in the tech industry for over 30 years and is currently the Director of Engineering at Poynt, a technology company building smart Point-of-Sale terminals for businesses.
Gene Linetsky, MS
Oprichter Startup & Engineering Director
Heb niet het gevoel dat je een codeerdiploma moet halen.
Hoewel het volgen van cursussen in een programmeertaal nuttig kan zijn, zegt Gene Linetsky, een software-engineer en oprichter van startups:"
Stap 2. Leer databaseconcepten zoals tabellen, views/query's en procedures
U kunt hiervoor elk eenvoudig databasepakket gebruiken, zoals:
- MS-Access
- DB V
- Fox Pro
- Paradox
- MySQL is een goede database om te leren, omdat het gratis is, veel wordt gebruikt en databases vaak worden geopend met SQL-query's
Stap 3. Bepaal wat voor soort programmeur je wilt zijn
Programmeurs vallen over het algemeen onder een van de volgende categorieën:
- web programmeur
-
Desktop applicatie programmeur
- Besturingssysteem (OS) georiënteerde programmeur (gekoppeld aan een enkel besturingssysteem of een reeks besturingssystemen)
- Platformonafhankelijke programmeur
- Gedistribueerde applicaties programmeur
- Bibliotheek/platform/framework/kernprogrammeur
-
Systeemprogrammeur
- Kernel programmeur
- Driver programmeur
- Compiler programmeur
- Programmeur wetenschapper
Stap 4. Leer de technologieën en programmeertalen met betrekking tot uw programmeergebied naar keuze
In de volgende secties worden de taken voor verschillende soorten programmering opgesplitst.
Methode 1 van 6: Webprogrammering
Stap 1. Weet wat webprogrammeren inhoudt
Webapplicaties zijn softwarecomponenten die zijn ontworpen om bovenop de internetarchitectuur te werken. Dit betekent dat de applicaties toegankelijk zijn via een webbrowsersoftware zoals Firefox of Internet Explorer. Om bovenop de internetarchitectuur te worden gebouwd, is niet per se een actieve verbinding met internet vereist. Het betekent dat webapplicaties bovenop standaard webtechnologieën worden gebouwd, zoals:
- HTTP
- FTP
- POP3
- SMTP
- TCP
- IP-protocollen
- HTML
- XML
- koude fusie
- ADDER
- JSP
- PHP
- ASP. NET
Stap 2. Blader door veel verschillende websites om meer te weten te komen over hoe ze er gewoonlijk uitzien
(Klik met de rechtermuisknop en klik vervolgens op Bron weergeven of druk op F12.) Zoek naar diversiteit in het type/inhoud van de website, niet het aantal bezochte websites. Over het algemeen moet u ten minste een van elk van de volgende typen websites bezoeken:
- Bedrijfsaanwezigheidssites (commerciële bedrijven, non-profit bedrijven/organisaties, overheidsorganisaties)
- Webindexeringsmachines (zoekmachines, metazoeksites, gespecialiseerde zoekmachines, directory's)
- Sites voor datamining
- Persoonlijke sites
- Informatieve/encyclopedische pagina's (wiki's, datasheets, technische specificaties en handleidingen met directory's, blogs en tijdschriften, sites van nieuws- en persbureaus, gele pagina's, enz.)
- Sociale sites (sociale portals, bladwijzersites, sites voor het maken van aantekeningen)
- Samenwerkingssites (dit omvat andere hierboven genoemde categorieën, zoals wiki's en blogs)
Stap 3. Leer ten minste één brainstormtechniek/-methode en een software die wordt gebruikt om die methode te implementeren
Bijvoorbeeld: brainstormdiagrammen en MS Visio.
Stap 4. Raak vertrouwd met het structureren van websites
Dit is het maken van conceptuele webdiagrammen, sitemaps en navigatiestructuren.
Stap 5. Volg een spoedcursus grafisch ontwerp
Probeer ten minste één softwarepakket voor grafische bewerking / manipulatie te leren (optioneel, maar sterk aanbevolen)
Stap 6. Leer de basis van de internetinfrastructuur
Dit omvat het verkrijgen van een basisidee over:
- Basisprotocollen voor webservices (HTTP, FTP, SMTP en POP3 of IMAP4)
- Webserversoftware (bij voorkeur een voor het platform waar u het meest aan gaat werken)
- Browsersoftware op het web.
- E-mailserver en clientsoftware
Stap 7. Leer de HTML- en CSS-talen
Misschien wilt u ook het softwarepakket "What You See Is What You Get (WYSIWYG)" aanschaffen voor het bewerken van HTML.
Stap 8. Leer XML en XML-gerelateerde technologieën, zoals XSL en XPath (optioneel maar aanbevolen)
Stap 9. Maak eenvoudige statische websites totdat u vertrouwd bent met en vertrouwd bent met HTML
Stap 10. Leer een client-side scripttaal
De meeste gebruikers leren JavaScript. Sommigen leren VBScript, maar dit is niet compatibel met de meeste browsers.
Stap 11. Maak uzelf vertrouwd met de client-side scripttaal die u hebt geleerd
Probeer uw potentieel te bereiken door alleen die taal te gebruiken. Ga pas naar de volgende stap als u op zijn minst vertrouwd bent geraakt met uw client-side scripttaal.
Stap 12. Leer ten minste één programmeertaal aan de serverzijde
Als je ervoor kiest om jezelf te beperken tot één serversoftware, leer dan een van de programmeertalen die door die software worden ondersteund. Zo niet, leer dan ten minste één programmeertaal op elke serversoftware.
Stap 13. Maak een proefproject voor jezelf nadat je klaar bent met het leren van de server-side programmeertaal.
Stap 14. Verkrijg je eigen website en experimenteer online binnen je eigen pagina
Methode 2 van 6: Programmeren van bureaubladtoepassingen
Stap 1. Weet waar u aan begint bij het programmeren van desktoptoepassingen
De meeste desktopprogrammeurs schrijven code voor zakelijke oplossingen, dus een idee krijgen van bedrijven, hun organisatorische en financiële structuur zal veel tijd besparen.
Stap 2. Leer meer over de verschillende computerhardware-architecturen
Een cursus op inleidend niveau in het ontwerpen van digitale schakelingen en een cursus in computerarchitectuur is nuttig; sommigen zien het echter als geavanceerd voor een startpunt, dus het lezen van twee of drie zelfstudieartikelen (zoals deze en deze) kan voldoende zijn. Dan kun je later teruggaan naar deze stap, nadat je je eerste programmeertaal hebt geleerd.
Stap 3. Leer een programmeertaal op instapniveau (voor kinderen)
Wees niet verlegen om zo'n taal te leren, alleen maar omdat je ouder bent dan een "kind" genoemd te worden. Een voorbeeld van deze programmeertalen kan Scratch zijn. Deze programmeertalen kunnen de pijn bij het leren van je eerste programmeertaal enorm verlichten. Deze stap is echter optioneel. Het kan ook vóór de vorige stap worden gedaan.
Stap 4. Krijg een inleiding tot de procedure, object georiënteerd, en functionele programmeerparadigma's.
Stap 5. Volg een introductiecursus in een van de procedurele programmeertalen
Het maakt niet uit welke taal u later kiest als taal van uw keuze, het vereist op een bepaald niveau procedurele programmering. Bovendien wordt door de meeste programmeurs gerapporteerd dat procedureel programmeren het gemakkelijkst te gebruiken is als startpunt om een idee te krijgen van programmeren in het algemeen.
Stap 6. Leer minstens één geavanceerde modelleringstechniek zoals UML of ORM
Stap 7. Begin met het schrijven van enkele kleine console- of console-achtige applicaties
U kunt gebruik maken van veel voorkomende kleine oefeningen in programmeertalenboeken. Kies hiervoor een tool voor het schrijven van programma's in de programmeertaal waarin je schrijft.
Stap 8. Volg een meer gevorderde cursus in de door jou gekozen programmeertaal
Zorg ervoor dat u de volgende concepten goed begrijpt en dat u ze relatief gemakkelijk kunt toepassen voordat u verder gaat:
- Het invoeren en uitvoeren van informatie aan gebruikers van een programma.
- De logische stroom en de uitvoeringsstroom van programma's in proceduretalen.
- Variabelen declareren, toewijzen en vergelijken.
- Vertakkende programmeerconstructies zoals if..then..else en select/switch..case.
- Looping-constructies zoals while..do, do..while/until, for..next.
- De syntaxis van uw programmeertaal voor het maken en aanroepen van procedures en functies.
- Gegevenstypen en het manipuleren ervan.
- Door de gebruiker gedefinieerde gegevenstypen (records/structs/eenheden) en hun gebruik.
- Als uw taal overbelastingsfuncties ondersteunt, begrijp het dan.
- De geheugentoegangsmethoden van uw taal naar keuze (aanwijzers, gluren, enz.)
- Als uw taal overbelasting van operators ondersteunt, begrijp het dan.
- Als uw taal afgevaardigden/functieaanwijzingen ondersteunt, begrijp het dan.
Stap 9. Pas de geavanceerde technieken toe die je hebt geleerd
Stap 10. Volg een introductiecursus in ten minste één andere programmeertaal in een ander programmeerparadigma
Het wordt aanbevolen om van elk paradigma één programmeertaal te leren, en de meeste gevorderde programmeurs beginnen echter meestal met één, werk een tijdje om je kennis toe te passen en te oefenen, en leer de andere later, nadat je al een echte -levenservaring in programmeren. Probeer een van de volgende taalgebieden:
- Logisch programmeerparadigma.
- Functioneel programmeerparadigma.
- Objectgeoriënteerd paradigma.
Stap 11. Probeer de twee programmeertalen die je tot nu toe hebt geleerd te vergelijken
Evalueer de sterke en zwakke punten van elk. Meestal gebeurt dit door:
- Eenvoudige voorbeelden nemen van je vroege werk in de eerste programmeertaal en het herschrijven met de tweede programmeertaal.
- Maak een nieuw project aan en probeer het in beide talen te implementeren. Soms, afhankelijk van uw projectkeuze en talen, is het mogelijk dat u het project niet in een van de talen kunt implementeren!
- Het schrijven van een spiekbriefje of samenvattende tabelvergelijkingen tussen vergelijkbare constructies in de twee talen en functies die uniek zijn voor elk van de talen.
- Probeer manieren te vinden om functies na te bootsen die uniek zijn voor een van de twee talen met behulp van de andere taal.
Stap 12. Leer visuele programmeerconcepten met een van de talen die je hebt geleerd
Bijna alle programmeertalen hebben versies/bibliotheken die visuele programmering ondersteunen en andere die console- of console-achtige programmering ondersteunen. Dit kan worden bereikt door:
- Krijg een inleiding tot evenementgestuurd programmeren. De meeste visuele programmering is op een bepaald niveau afhankelijk van gebeurtenissen en het afhandelen van gebeurtenissen (met behulp van de programmeertaal die u kiest).
- Probeer zoveel mogelijk desktopsoftware en begrijp wat de software doet. De meeste softwareontwikkelaars bieden bètatestversies van hun producten aan die u kunt gebruiken om de software te testen. Blijf op de hoogte van verbeteringen in de gebruikersinterface.
- Lees enkele artikelen of tutorials over grafische gebruikersinterfaces.
Stap 13. Begin uw kennis toe te passen op kleine softwareprojecten die u ontwerpt
Probeer uw programmeerexpertise toe te passen op problemen waarmee u in uw dagelijks leven wordt geconfronteerd. Schrijf bijvoorbeeld programma's die bestanden massaal hernoemen, tekstbestanden visueel met elkaar vergelijken, de namen van bestanden in een map kopiëren naar geheugen/tekstbestand en dergelijke. Houd het eerst simpel.
Stap 14. Maak een virtueel afstudeerproject aan
Voltooi dit tot het einde en pas de technieken van visueel programmeren toe die je tot nu toe hebt geleerd.
Stap 15. Verbreed uw begrip van het visuele raamwerk/bibliotheek/pakket dat u eerder hebt geleerd door geavanceerde cursussen te volgen, extra aandacht te besteden aan details en meer tips en trucs voor uw raamwerk te leren van online bronnen
Stap 16. Zoek naar andere pakketten/bibliotheken met visuele elementen voor uw programmeertalen en leer ze
Stap 17. Volg een cursus grafisch (geen grafisch ontwerp)
Het zal zeer nuttig zijn voor programmeurs die aantrekkelijke elementen voor de gebruikersinterface willen schrijven.
Stap 18. Overweeg om gameprogrammeur te worden (optioneel)
Game-programmering wordt in de meeste delen beschouwd als desktop-programmering. Als je van plan bent om gameprogrammeur te worden, moet je meer leren over gameprogrammering nadat je deze stappen hebt voltooid. Een grafische cursus is een must voor gameprogrammeurs en de tweede taal van keuze in de voorgaande stappen moet een logische/functionele programmeertaal zijn (bij voorkeur Prolog of Lisp).
Methode 3 van 6: Programmering van gedistribueerde toepassingen
Stap 1. Pak de programmering van gedistribueerde applicaties aan
Gedistribueerde applicatieprogrammering wordt door velen beschouwd als een van de moeilijkst te leren en vereist uiteenlopende kennis op het gebied van computer- en communicatietechnologieën.
Stap 2. Maak een snelle introductie tot telefoniesystemen en hun hardware
Deze stap is optioneel. Het is echter erg handig om netwerktopologieën te begrijpen.
Stap 3. Maak uzelf vertrouwd met netwerkhardware-architecturen en -apparaten zoals hubs, switches en routers
Stap 4. Volg een cursus netwerkprotocollen en benodigdheden
U moet een goed begrip hebben van het Open Systems Interconnection (OSI)-model, Ethernet, IP, TCP, UDP en HTTP voordat u gedistribueerde applicaties gaat programmeren.
Stap 5. Leer de XML-taal en raak er vertrouwd mee
Stap 6. Begin met het leren van een shellscripttaal
Voor op Windows gebaseerde programmering zou dat elk script zijn dat werkt met Windows Scripting Host. Voor op Linux gebaseerde programmering zijn Bash-scripts en Perl voldoende. JavaScript wordt hiervoor in beide platforms sterk aanbevolen om de volgende redenen:
- Het wordt ondersteund door bijna elke scripthost in elk besturingssysteem (Windows Scripting Host ondersteunt standaard JavaScript, de meeste Linux-distributies hebben een pakket voor JavaScript-scriptingconsole-ondersteuning).
- Het wordt door veel ontwikkelaars als gemakkelijker te leren beschouwd.
- Het heeft een van ALGOL afgeleide syntaxis die u vertrouwd maakt met veel meer andere programmeertalen wanneer u een tweede programmeertaal moet kiezen (C, C++, C#, Java en J# hebben allemaal een van ALGOL afgeleide syntaxis).
- Door JavaScript te leren, maakt u uzelf vertrouwd met client-side scripting van webpagina's, wat een extra neveneffect is!
Stap 7. Pas in eerste instantie alleen procedureel programmeren toe met uw scripttaal naar keuze
Later kunt u meer geavanceerde programmeertechnieken en paradigma's gebruiken in overeenstemming met uw scripttaal en wat deze ondersteunt. Alle scripttalen hebben op een bepaald niveau enkele procedurele programmeeraspecten.
Stap 8. Gebruik de scripttaal die u hebt geleerd om scripts te schrijven die communicatie tussen machines uitvoeren
Leer wat daarvoor nodig is. Eenvoudige communicatie is voldoende.
Stap 9. Maak een transfer naar een desktop scripting/programmeertaal
Bij voorkeur een taal met meerdere paradigma's zoals Python. Neem een eenvoudige introductie tot die tweede taal. Java wordt om vele redenen door de meeste programmeurs beschouwd als de taal bij uitstek. C# wint echter snel aan kracht op dit gebied. Java en C# hebben de voorkeur om de volgende redenen:
- Het zijn objectgeoriënteerde programmeertalen die programmeurs in grote teams afschermen van implementatiedetails, omdat ze beide componenten ondersteunen (code-eenheden, vooraf gecompileerd, die een bepaalde taak uitvoeren en in andere programma's kunnen worden gebruikt).
- Ze ondersteunen op gebeurtenissen gebaseerde programmering, evenals OO en procedurele programmering op een bepaald niveau.
- Het raamwerk waarop de taal is gebouwd, wordt van nature gedistribueerd (in het geval van Java).
- De beschikbaarheid van veel kant-en-klare pakketten die te maken hebben met netwerken, zowel als open-sourcecode als ingebouwde framework-pakketten; dit maakt het voor programmeurs gemakkelijker om voort te bouwen op het werk van anderen.
Stap 10. Concentreer je meer op de kernfuncties van de taal, vooral die welke netwerken ondersteunen
Besteed minder aandacht aan gebruikersinterface-elementen zoals uitvoer, vensterontwerp en -technieken en gebruikersinterface-elementen.
Stap 11. Volg een cursus over het ontwerp en de architectuur van gedistribueerde applicaties
Dit kan met behulp van boeken, online tutorials of academische cursussen. Het is echter noodzakelijk om de architectuur van gedistribueerde applicaties en de concepten ervan te begrijpen.
Stap 12. Leer meer over het bouwen van servicecomponenten en services met uw programmeertaal naar keuze
Stap 13. Leer een of meer van de volgende technologieën
Het wordt aanbevolen dat u op zijn minst een inleiding krijgt met al deze onderdelen. De meeste programmeurs van gedistribueerde applicaties stoppen niet bij een of twee programmeertalen, maar leren ten minste één programmeertaal op elk besturingssysteem. Dat komt omdat als u wilt dat uw toepassing wordt "gedistribueerd", u er ten minste voor elk belangrijk besturingssysteem een versie van moet verstrekken.
- Common Object Request Broker Architecture (CORBA)
- Simple Object Access Protocol (SOAP)
- Asynchrone JavaScript en XML (AJAX)
- Gedistribueerd Component Object Model (DCOM)
- . NET-afstandsbediening
- XML-webservices
Methode 4 van 6: Bibliotheek/Platform/Framework/Kernprogrammering
Stap 1. Weet wat kernprogrammering is
Kernprogrammeurs zijn slechts geavanceerde programmeurs die de overstap hebben gemaakt van programmeertoepassingen naar programmeercode-eenheden die door andere programmeurs kunnen worden gebruikt.
Stap 2. Leer een programmeertaal die het bouwen van herbruikbare componenten/pakketten ondersteunt, als je dat nog niet hebt gedaan
Stap 3. Volg een vervolgcursus UML en ORM
De meeste bibliotheekontwikkelaars gebruiken een of beide.
Stap 4. Volg een cursus software engineering
Stap 5. Leer ten minste modulaire, componentgebaseerde, objectgeoriënteerde en gebeurtenisgestuurde programmeertechnieken en -concepten
Hoe meer programmeerparadigma's en -talen je behandelt, hoe succesvoller je wordt als bibliotheek-/pakketprogrammeur.
Stap 6. Leer meer over de verschillende besturingssystemen en programmeerframeworks die door deze besturingssystemen worden ondersteund
Stap 7. Richt uw leerinspanningen op platformonafhankelijke frameworks, programmeertalen en technologieën
Stap 8. Als de programmeertalen die je tot nu toe hebt geleerd ANSI. hebben/ISO/IEEE/W3C-standaardversies, beheers de normen.
Probeer waar mogelijk standaardcode te gebruiken.
Stap 9. Probeer eenvoudige, reeds gevestigde bibliotheken na te bootsen, vooral open-sourcebibliotheken
Dit is handig tijdens de vroege fase van het worden van een bibliotheek-/pakketprogrammeur. Begin met eenvoudige pakketten zoals eenhedenconversie en tussentijdse wetenschappelijke rekenpakketten. Als je een student bent, maak dan gebruik van je niet-programmeercursussen door te proberen hun vergelijkingen en wetenschappelijke kern als bibliotheken te implementeren.
Stap 10. Zoek en probeer open-sourcepakketten in uw programmeergebied
Download eerst binaire bestanden/uitvoerbare bestanden van het pakket. Probeer het te gebruiken en vind de sterke en zwakke punten. Nadat je dat hebt gedaan, download je de bron en probeer je erachter te komen hoe het is gedaan. Probeer die bibliotheken of delen ervan opnieuw te maken. Doe dat eerst nadat je de code hebt gezien en later voordat je de code ziet. Probeer in latere fasen die bibliotheken te verbeteren.
Stap 11. Leer de verschillende benaderingen die worden gebruikt om componenten te distribueren en te implementeren voor programmeurs
- Meestal hebben bibliotheek-/pakketprogrammeurs de neiging recursief en/of iteratief te denken over alle problemen waarmee ze worden geconfronteerd. Probeer elk probleem te zien als een verzameling kleinere problemen (een opeenvolging van eenvoudigere taken) of als een herhaald proces waarbij de reikwijdte van het probleem wordt teruggebracht tot kleinere sferen en die sferen op elkaar worden gestapeld.
- Bibliotheek-/pakketprogrammeurs hebben de neiging om te generaliseren. Dat wil zeggen, wanneer ze een eenvoudig specifiek probleem voorgeschoteld krijgen, denken ze meestal aan een meer algemeen probleem en proberen ze dat algemene probleem op te lossen dat automatisch het kleinere probleem oplost.
Methode 5 van 6: Systeemprogrammering
Stap 1. Begrijp wat systeemprogrammering inhoudt
Systeemprogrammeurs houden zich bezig met de wetenschap van programmeren, niet met de specifieke implementaties ervan. Bind je niet vast aan een specifiek platform.
Stap 2. Volg de eerste drie stappen voor Desktop Applications Programmers
Stap 3. Volg een introductiecursus Lineaire Algebra
Stap 4. Volg een cursus Calculus
Stap 5. Volg een cursus Logica en/of Discrete Wiskunde
Stap 6. Maak kennis met verschillende kale besturingssystemen
Dit kan door:
- Een idee krijgen van hoe besturingssystemen worden geïnstalleerd.
- Leren hoe u verschillende besturingssystemen op één pc kunt installeren (optioneel, maar aanbevolen).
- Meer dan één besturingssysteem installeren. Installeer geen hulppakketten op de systemen; gebruik in plaats daarvan de kale functionaliteiten die door de besturingssystemen worden geboden.
Stap 7. Volg een cursus (of lees boeken) over computerhardware-architectuur
Stap 8. Ontwikkel inzicht in de verschillende computerhardwareplatforms
Stap 9. Maak een inleidende kennismaking met de assembleertaal van het hardwareplatform/besturingssysteem naar keuze
Later leer je de montage van andere platformen/systemen.
Stap 10. Leer de ANSI C- en C++-talen, samen met de concepten van procedureel programmeren
Stap 11. Begrijp en oefen C/C++ standaardbibliotheken op het platform naar keuze
Besteed bijzondere aandacht aan Standard Template Library (STL) en misschien Active Template Library (ATL).
Stap 12. Zoek online bronnen, boeken en cursussen om inzicht te krijgen in de C-smaak van uw specifieke platform
Stap 13. Oefen met het maken van geavanceerde code met C en C++
Stap 14. Leer meer geavanceerde Montage
Stap 15. Volg een cursus in het ontwerpen van besturingssystemen
Stap 16. Zoek en lees documentatie van uw specifieke platform naar keuze
Dit gaat gemakkelijker als u kiest voor een op Unix gebaseerd besturingssysteem. Begrijp het systeem waarmee u later gaat werken heel goed.
Stap 17. Oefen je opgedane kennis
Maak eerst kleine systeemhulpprogramma's. Het is meestal handig om:
- Proberen om kleine tools die al aanwezig zijn op uw systeem opnieuw te maken.
- U probeert hulpprogramma's die beschikbaar zijn in andere besturingssystemen naar die van u over te zetten.
Stap 18. Leer talen in de handigste volgorde
Dit is de enige plaats waar de eerste programmeertaal ertoe doet. Leer eerst ANSI C, niet C++, niet C#, niet Java en niet D. Leer dan C++.
-
Het beperken van de eerste taal tot C en C alleen is omdat systeemprogrammering vereist dat de programmeur bekend is met de volgende concepten:
- Echte en volledige compilatie van broncode.
- Objectuitvoerbestanden op laag niveau.
- Binaire bestanden koppelen.
- Programmeren in machinetaal/assemblage op laag niveau. Sommigen zeggen dat de C-taal een vermomde/gemakkelijker te leren assemblage is. Het ondersteunt ook het invoegen van assembleertaalcode in code wanneer u maar wilt en het is alleen procedureel (zoals montage).
Methode 6 van 6: Programmeerwetenschap
Stap 1. Weet wat een programmeerwetenschapper doet
Programmeerwetenschappers zijn zeer geavanceerde programmeurs die, in plaats van te werken aan het ontwikkelen van applicaties, werken aan het ontwikkelen van computertechnologieën zoals encryptie, programmeertalen en dataminingalgoritmen. Dit niveau wordt zelden bereikt zonder academische studie en toewijding.
Stap 2. Verzamel de wetenschappelijke kennis die gelijk staat aan een vierjarige graad in informatica
Dit kan ofwel door:
- Een echte academische graad behalen (wat meestal gebeurt).
- De contouren van de cursussen voor een dergelijk diploma halen bij een van de moderne universiteiten en de cursussen volgen, hetzij door zelfstudie of als afzonderlijke cursussen. Dit zou theoretisch kunnen worden bereikt, maar het aanbevolen pad is het eerste.
Stap 3. Bepaal een vakgebied
Hoe specifieker, hoe beter. Dit is afhankelijk van uw voorkeuren. Hier is echter een lijst met enkele van de belangrijkste onderwerpen in de wetenschap van computerprogrammering:
- Algoritmeontwerp (zoeken, sorteren, versleutelen, ontsleutelen en foutdetectie in communicatie zijn enkele voorbeelden)
- Programmeertalen/compilerontwerp/optimalisatie
- Kunstmatige intelligentievelden (patroonherkenning, spraakherkenning, natuurlijke taalverwerking, neurale netwerken)
- Robotica
- Wetenschappelijke programmering
- Super computergebruik
- Computerondersteund ontwerpen/modelleren (CAD/CAM)
- Virtuele realiteit
- Computergraphics (Computergraphics worden meestal ten onrechte verward met grafisch ontwerp of grafisch gebruikersinterfaceontwerp. Computergraphics is het vakgebied waarin wordt bestudeerd hoe grafische afbeeldingen in computersystemen moeten worden weergegeven en gemanipuleerd.)
Stap 4. Overweeg om een hogere academische graad te halen
Misschien wil je een master of een doctoraat volgen.