Programmieren lernt man nicht an einem Tag. Es braucht Zeit, um seine Fähigkeiten zu entwickeln. Programmieren kann Spaß machen, intellektuell und spirituell erfüllend sein und sich auch finanziell lohnen. Diese Anleitung kann dir leider keine Tricks verraten, mit denen du über Nacht zum Programmierer werden kannst. Sie kann dir jedoch einen Leitfaden an die Hand geben, mit dem dir der Einstieg in die Welt des Programmierens gelingen wird.
Vorgehensweise
-
Belege einen Anfängerkurs in einem (oder allen) der folgenden Fächer:
- Logik
- Diskrete Mathematik
- Programmiersprachen (am besten C++/Java/Python für Anfänger)
EXPERTENRATStartup-Gründer & EntwicklungsleiterGene Linetsky ist Startup-Gründer und Software-Ingenieur in der San Francisco Bay Region. Er arbeitet seit über 30 Jahren in der Technologiebranche und ist derzeit Entwicklungsleiter bei Poynt, einem Technologieunternehmen, das intelligente Verkaufsterminals für Unternehmen baut.Habe nicht das Gefühl, einen Kodierungsabschluss erwerben zu müssen. Auch wenn es hilfreich sein kann, einen Kurs für eine Programmiersprache zu belegen, Gene Linetsky, Softwareentwickler und Gründer von Startups, sagt: "Man kann tatsächlich darüber streiten, ob es mehr hilft oder schadet. Stell dir das Programmieren stattdessen als eine Lehre vor - es geht hauptsächlich darum, aus deinen Fehlern zu lernen."
-
Lerne Datenbank-Konzepte wie Tabellen, Suchen, Abfragen und Prozeduren. Du kannst jede einfache Datenbanklösung verwenden, wie zum Beispiel:
- MS Access
- DB V
- Fox Pro
- Paradox
- MySQL. MySQL ist eine gute Datenbank für Einsteiger, denn sie ist frei verfügbar, weit verbreitet und der Zugriff auf die Datenbanken erfolgt mittels SQL-Abfragen.
-
Entscheide dich, was für ein Programmierer du werden möchtest. Üblicherweise teilt man Programmierer in die folgenden Kategorien ein:
- Webprogrammierer
- Programmierer für Desktop-Anwendungen
- Entwickler für betriebssystemgebundene Anwendungen, d.h. für Programme, die nur für bestimmte Betriebssysteme geschrieben wurden
- Entwickler für plattformunabhängige Software
- Programmierer für verteilte Anwendungen
- Library-, Plattform-, Framework-, Core-Programmierer
- Systemprogrammierer
- Kernel-Programmierer
- Treiber-Programmierer
- Compiler-Programmierer
- Informatiker
-
Mache dich mit den Technologien und den Programmiersprachen deines gewünschten Fachgebiets vertraut. Die folgenden Abschnitte zeigen die Profile von verschiedenen Programmieraufgaben auf.Werbeanzeige
-
Mache dich damit vertraut, was zur Web-Programmierung gehört. Web-Applikationen sind Softwarekomponenten, die auf der Internet-Architektur aufbauen. Das bedeutet, dass auf die Anwendungen von einem Browser wie Firefox oder Internet Explorer zugegriffen wird. Nur weil diese Anwendungen auf der Internetarchitektur aufgebaut werden, heißt dies nicht, dass man eine aktive Internetverbindung benötigt. Es bedeutet nur, dass die Web-Anwendungen mittels Webstandards entwickelt wurden, wie zum Beispiel:
- HTTP
- FTP
- POP3
- SMTP
- TCP
- IP-Protokolle
- HTML
- XML
- Coldfusion
- ASP
- JSP
- PHP
- ASP.NET
-
Schaue dir viele unterschiedliche Webseiten an, um herauszufinden, wie sie grundsätzlich aufgebaut sind. Klicke mit der rechten Maustaste auf einen freien Seitenbereich und wähle dann „Seitenquelltext anzeigen“, oder drücke F12. Es kommt auf unterschiedliche Website-Typen und unterschiedliche Inhalten an, nicht allein auf die Anzahl besuchter Webseiten. Du solltest dabei mindestens eine der folgenden Webseiten-Typen besuchen:
- Unternehmenshomepages und Onlinepräsenzen von gewerblichen Unternehmen, gemeinnützigen Organisationen und staatlichen Einrichtungen
- Webindizierungsdienste wie Suchmaschinen, Metasuchmaschinen, spezialisierte Suchmaschinen, Webverzeichnisse
- Data-Mining-Dienste
- Private Homepages
- Online-Enzyklopädien und Nachschlageseiten, z.B. Wikis, Verzeichnisse von Datenblättern, technischen Spezifikationen und Handbüchern, Blogs und Zeitschriften, Nachrichtenseiten, Seiten von Nachrichtenagenturen, Gelbe Seiten, usw.
- Soziale Webseiten, z.B. soziale Netzwerke, Social Bookmarking-Dienste, Social Notetaking-Dienste
- Kollaborative Seiten (dies umfasst auch einige der o.g. Kategorien, etwa Wikis und Blogs)
-
Lerne mindestens eine Brainstorming-Methode und verwende eine Software wie MS Visio, um damit z.B. Brainstorming-Diagramme zu erstellen.
-
Mache dich mit dem Strukturieren von Webseiten vertraut, d.h. wie man Web-Diagramme, Sitemaps und Navigationsstrukturen erstellt.
-
Mache einen Grafikdesign-Crashkurs. Versuche, dich wenigstens in ein Bildbearbeitungsprogramm einzuarbeiten (optional, aber sehr empfehlenswert)
-
Erlerne die Grundzüge der Internet-Infrastruktur. Dazu gehören unter anderem:
- Grundlegende Webprotokolle (HTTP, FTP, SMTP, POP3 oder IMAP4)
- Webserver-Software (am besten für die Plattform, mit der du am häufigsten arbeiten wirst)
- Webbrowser
- Mail-Server und Mail-Clients
-
Lerne HTML und CSS. Du kannst auch “What You See Is What You Get” (WYSIWYG) Programme für die HTML-Bearbeitung nutzen.
-
Lerne XML und XML-verwandte Technologien, wie etwa XSL und XPath (optional, aber empfehelnswert).
-
Erstelle einfache, statische Webseiten, bis du vertraut und sicher im Umgang mit HTML bist.
-
Lerne eine clientseitige Skriptsprache. Die meisten Anwender lernen JavaScript. Andere lernen VBScript, die allerdings mit den meisten Browsern nicht kompatibel ist.
-
Mache dich mit der clientseitigen Skriptsprache vertraut. Versuche, dein Potential nur mit dieser Sprache allein auszureizen. Gehe erst dann zum nächsten Schritt über, wenn du mit deiner clientseitigen Skriptsprache vertraut geworden bist.
-
Erlerne mindestens eine serverseitige Programmiersprache. Wenn du dich auf eine Serversoftware festgelegt hast, lerne eine der Programmiersprachen, die von dieser Software unterstützt werden. Hast du dich noch nicht festgelegt, lerne mindestens eine Programmiersprache für jede Serversoftware.
-
Erstelle ein Pilotprojekt für dich allein, sobald du die serverseitige Programmiersprache beherrschst.
-
Erstelle deine eigene Webseite und entdecke, was du mit deiner eigenen Seite machen kannst.Werbeanzeige
-
Mache dir klar, worum es sich bei der Programmierung von Desktop-Anwendungen handelt. Die meisten Desktop-Programmierer schreiben Code für Business-Lösungen. Es spart dir also jede Menge Zeit, wenn du dich über das Unternehmen deines Klienten und die organisatorischen und finanzielle Strukturen erkundigst.
-
Informiere dich über die verschiedenen Rechnerarchitekturen. Ein Einführungskurs über digitale Schaltkreise und Rechnerarchitektur kann nützlich sein. Für einige mag dies jedoch für den Einstieg zu komplex sein. Für den Anfang reicht es auch, wenn du zwei oder drei Tutorials zu diesem Thema durcharbeitest. Du kannst dann später zu diesem Schritt zurückkehren, nachdem du deine erste Programmiersprache gelernt hast.
-
Lerne eine Programmiersprache, die für Anfänger, beziehungsweise Kinder geeignet ist [1] X Forschungsquelle . Scheue dich nicht, eine solche Sprache zu lernen, nur weil du jetzt älter und kein Kind mehr bist. Ein Beispiel für solche Programmiersprachen ist Scratch. Solche Programmiersprachen machen es dir um einiges leichter, deine erste Programmiersprache zu erlernen. Dieser Schritt ist optional. Du kannst ihn auch vor dem vorhergehenden Schritt machen.
-
Lies eine Einführung zu prozeduralen, objekt-orientierten und funktionalen Programmierparadigmen.
-
Belege einen Einführungskurs in einer der prozeduralen Programmiersprachen. Kenntnisse in prozeduralen Sprachen werden dir später nützlich sein, egal für welche Sprache du dich später entscheidest. Die meisten Programmierer berichten, dass prozedurales Programmieren der einfachste Einstieg in die Welt des Programmierens ist.
-
Lerne mindestens eine fortgeschrittene Modelliertechnik, wie etwa UML oder ORM.
-
Beginne damit, kleinere Konsolenanwendungen oder ähnliche Anwendungen zu schreiben. Du kannst dazu die Übungen machen, die in verschiedenen Büchern über Programmiersprachen zu finden sind. Verwende dazu eine geeignete Software, um die Programme in deiner gewählten Programmiersprache zu schreiben.
-
Belege einen Fortgeschrittenenkurs für deine gewählte Programmiersprache. Gehe sicher, dass du die folgenden Konzepte gut verstehst und sie relativ einfach anwenden kannst, bevor du fortfährst:
- Eingabe und Ausgabe von Information an die Anwender eines Programms.
- Logischer Fluss und Ausführungsfluss von Programmen, die in prozeduralen Sprachen geschrieben wurden.
- Deklarieren, Zuordnen und Vergleichen von Variablen.
- Branching durch if..then..else und select/switch..case.
- Loop-Anweisungen wie while..do, do..while/until, for..next.
- Die Syntax deiner Programmiersprache, um Prozeduren und Funktionen zu erzeugen und aufzurufen.
- Verschiedene Datentypen und wie man sie bearbeitet.
- Benutzerdefinierte Datentypen (records/structs/units) und ihre Anwendung.
- Befasse dich mit Funktionsüberladung, wenn deine Programmiersprache dies unterstützt.
- Speicherzugriffsfunktionen der Sprache deiner Wahl (Zeiger, Peeking, usw.)
- Arbeite dich in die Überladung von Bezeichnern ein, wenn deine Sprache dies unterstützt.
- Arbeite dich in Delegat- und Funktionszeiger ein, wenn deine Sprache dies unterstützt.
-
Wende die fortgeschrittenen Techniken an, die du gelernt hast.
- Objekt-orientiertes Paradigma.
-
Belege einen Einführungskurs in mindestens einer weiteren Programmiersprache aus einem anderen Programmierpradigma. Es wird empfohlen, eine Programmiersprache aus jedem Programmierparadigma zu lernen. So machen das die meisten Programmierer. Beginne mit einer Sprache, arbeite eine Weile damit und wende dein erlerntes Wissen an. Nachdem du einige Erfahrungen mit realen Projekten gesammelt hast, eignest du dir weitere Sprachen an. Versuche es mit Sprachen aus den folgenden Bereichen:
- Logisches Programmierparadigma.
- Funktionales Programmierparadigma.
-
Versuche, die beiden Programmiersprachen, die du bisher gelernt hast, miteinander zu vergleichen. Liste die Stärken und Schwächen einer jeden auf. Versuche dazu Folgendes:
- Schreibe einige einfache Programme, die du in deiner ersten Programmiersprache geschrieben hast, noch einmal neu, aber dieses Mal in deiner zweiten Programmiersprache.
- Erstelle ein neues Projekt und versuche es mit beiden Programmiersprachen zu implementieren. Je nach Projekt und Sprache kann es jedoch sein, dass du das Projekt nicht mit einer der Sprachen realisieren kannst!
- Schreibe eine Kurzübersicht oder erstelle eine Vergleichstabelle zwischen ähnlichen Sprachkonstrukten und den Eigenheiten einer jeden Sprache.
- Versuche einen Weg zu finden, wie du die Funktionalitäten, die nur eine der Sprachen kennt, mit der anderen realisieren kannst.
-
Lerne visuelle Programmierung mit einer der Sprachen, die du beherrschst. Fast alle Programmiersprachen haben Versionen oder Programmbibliotheken, die visuelle Programmierung oder das Programmieren auf der Konsole unterstützen. Die folgenden Schritte können dir dabei helfen:
- Befasse dich mit ereignisorientierter Programmierung. Die meisten visuellen Sprachen bauen in gewisser Hinsicht auf Events und Event-Handling auf.
- Probiere so viele Desktop-Anwendungen aus, wie du kannst, und versuche zu verstehen, was jedes Programm bewerkstelligt. Die meisten Softwareentwickler bieten Beta-Versionen ihrer Produkte an, die du verwenden kannst, um die Software zu testen. Bleibe immer auf dem neuesten Stand der Entwicklungen für Benutzeroberflächen.
- Lies einige Artikel oder Tutorials über graphische Benutzeroberflächen durch.
-
Wende dein Wissen auf kleinere Softwareentwicklungsprojekte an. Versuche deine Fähigkeiten auf alltägliche Probleme anzuwenden. Du kannst zum Beispiel Programme schreiben, die viele Dateien auf einmal umbenennen, die Textdokumente visuell miteinander vergleichen, oder die Dateinamen innerhalb eines Verzeichnisses in den Speicher oder ein Textdokument schreiben. Fange klein an.
-
Stelle dir deine eigene “Abschlussprüfung”. Verwende dazu die visuellen Programmiertechniken, die du dir bislang angeeignet hast.
-
Baue deine Kenntnisse über die Visual Library aus, mit der du dich bisher beschäftigt hast, indem du fortgeschrittene Kurse besuchst, besonders auf jedes einzelne Detail achtest und dir Tipps und Tricks für dein Visual Framework aus Online-Tutorials abschaust.
-
Halte nach anderen Programmbibliotheken für visuelle Elemente für deine Programmiersprache Ausschau, und befasse dich mit ihnen.
-
Belege einen Kurs in Grafischer Darstellung (nicht Grafikdesign). Dies ist besonders hilfreich für Programmierer, die ansprechende Benutzeroberflächen gestalten möchten.
-
Werde ein Spieleprogrammierer (optional). Die Programmierung von Spielen wird größtenteils zur Desktopanwendungs-Programmierung gezählt. Wenn du beabsichtigst, Spieleprogrammierer zu werden, musst du dich weiter in diese Materie einarbeiten, nachdem du diese Schritte befolgt hast. Ein Lehrgang in Grafischer Darstellung ist zwingende Voraussetzung für Spieleprogrammierer. Die zweite Programmiersprache sollte eine logische bzw. funktionale Programmiersprache sein (vorzugsweise Prolog oder Lisp).Werbeanzeige
-
Befasse dich mit dem Programmieren von verteilten Anwendungen. Dieses Teilgebiet wird von vielen gefürchtet, da es als besonders schwer zu erlernen gilt und vielfältige Kenntnisse in Computer- und Kommunikationstechnologien erfordert.
-
Arbeite eine kurze Einführung in Telefoniesysteme und ihre Hardware durch. Dieser Schritt ist optional, aber sehr hilfreich um Netzwerktopologien zu verstehen.
-
Mache dich mit Netzwerkarchitekturen und -geräten vertraut, wie z.B. Hubs, Switches und Routern.
-
Belege einen Kurs über Netzwerkprotokolle und -grundlagen. Du brauchst eine solide Grundlage über das Open-Systems-Interconnection-Modell, Ethernet, IP, TCP, UDP und HTTP bevor du verteilte Anwendungen programmieren kannst.
-
Lerne XML.
-
Lerne eine Shell Skriptsprache. Unter Windows wäre dies jede Skriptsprache, die unter dem Windows Scripting Host funktioniert. Unter Linux reichen Bash-Scripte und Perl aus. Für beide Plattformen ist es sehr empfehlenswert, JavaScript zu lernen, denn:
- es wird von jedem Scripting Host unter jedem Betriebssystem unterstützt (Der Windows Scripting Host unterstützt standardmäßig JavaScript. Die meisten Linux Distributionen kommen mit einem Paket, das das Programmieren mit Javascript auf der Konsole ermöglicht.
- es ist recht leicht zu erlernen.
- seine Syntax ist von ALGOL abgeleitet. Dies erleichtert dir das Erlernen anderer Programmiersprachen (C, C++, C#, Java und J# bauen alle auf der ALGOL Syntax auf).
- Ein nützlicher Nebeneffekt ist, dass du dich gleichzeitig mit der clientseitigen Programmierung von Webseiten vertraut machst!
-
Nutze anfangs nur die prozedurale Programmierung deiner ersten Skriptsprache. Später kannst du dann fortgeschrittene Programmiertechniken und -paradigmen deiner Skriptsprache verwenden. Alle Skriptsprachen beinhalten gewisse prozedurale Programmierelemente.
-
Schreibe in deiner Skriptsprache Skripte für Maschine-Maschine-Kommunikationen. Einfache Kommunikationen reichen aus.
-
Steige auf eine Desktop-Programmiersprache um, am besten auf eine Multiparadigmen-Programmiersprache wie Python. Arbeite dazu einen kurzen Einführungskurs durch. Für viele Programmierer ist Java die Programmiersprache Nummer eins. C# ist allerdings rasch auf dem Vormarsch. Java und C# sind aus den folgenden Gründen zu bevorzugen:
- Sie sind objekt-orientierte Programmiersprachen, die Programmierer in größeren Teams von den Implementationsdetails abschirmen, da sie Komponenten (vorkompilierte Codeeinheiten, die eine bestimmte Aufgabe erfüllen und in anderen Programmen verwendet werden können) unterstützen.
- Sie unterstützen ereignisgesteuerte Programmierung und zum Teil auch objektorientierte und prozedurale Programmierung.
- Das Framework, auf dem die Sprache aufbaut, ist von Haus aus verteilt (im Fall von Java).
- Es gibt viele vorgefertige Pakete für die Netzwerkarbeit, sowohl Open-Source-Lösungen als auch in das Framework integrierte Pakete. Dies erleichtert es Programmierern, auf der Arbeit anderer aufzubauen.
-
Beschränke dich zunächst auf die Kernfunktionen der Sprache, insbesondere auf solche für die Netzwerkunterstützung. Überspringe Themen wie Ausgabe, Fensterdesign und -techniken und andere Einzelheiten über Benutzeroberflächen.
-
Belege einen Kurs über die Entwicklung von verteilten Anwendungen und Softwarearchitekturen. Lies dazu entsprechende Bücher, arbeite Online-Tutorials durch oder besuche einen Kurs an der Hochschule. Ein Verständnis der Architektur von verteilten Anwendungen und ihrer Begriffe ist wichtig.
-
Mache dich damit vertraut, wie man Serviced Components und Windows-Systemdienste mit deiner gewählten Porgrammiersprache erstellt.
-
Beherrsche eine oder mehrere der folgenden Technologien. Es wird empfohlen, dass du dir zunächst für alle Grundkenntnisse verschaffst. Die meisten Programmierer von verteilten Anwendungen belassen es nicht dabei, nur eine oder zwei Sprachen zu lernen, sondern lernen mindestens eine Programmiersprache für jedes der großen Betriebssysteme. Das kommt daher, dass sie für “verteilte” Anwendungen für jedes der großen Betriebssysteme eine Version bereitstellen sollten.
- 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
Werbeanzeige
Programmbibliothek-, Plattform-, Framework-, Core-Programmierung
-
Mache dich damit vertraut, was Core-Programmierung ist. Core-Programmierer sind lediglich fortgeschrittene Programmierer, die vom Programmieren von Anwendungen auf die Programmierung von Code-Einheiten umgestiegen sind, die von anderen Programmierern verwendet werden.
-
Lerne eine Programmiersprache, die es dir erlaubt, wiederverwendbare Komponenten oder Pakete zu erstellen (falls du das nicht schon gemacht hast).
-
Belege einen Kurs über UML und ORM. Die meisten Entwickler von Programmbibliotheken nutzen eine oder beide Sprachen.
-
Belege einen Kurs über Softwareentwicklung.
-
Beschäftige dich zumindest mit modularen, komponentenbasierten, objekt-orienterten und ereignisgesteuerten Programmiertechniken und Begriffen. Je mehr Programmierparadigmen und -sprachen du dabei abdeckst, umso erfolgreicher wirst du als Programmbibliotheks- oder Paketentwickler.
-
Lerne mehr über die unterschiedlichen Betriebssysteme und Programmiergerüste, die von diesen Betriebssystemen unterstützt werden.
-
Lege dein Hauptaugenmerk beim Lernen auf plattformunabhängige Programmiergerüste, -sprachen und -technologien.
-
Wenn die Programmiersprachen, die du bisher gelernt hast, die ANSI-, ISO-, IEEE-, W3C-Standards unterstützen, beherrsche diese Standards. Versuche, so weit wie möglich standardisierten Code zu schreiben.
-
Versuche, einfache, bereits etablierte Programmbibliotheken nachzugestalten, insbesondere Open-Source-Bibliotheken. Gerade in der frühen Lernphase als Programmbibliotheks- oder Paketprogrammierer kann dies von Nutzen sein. Arbeite zunächst mit einfachen Paketen wie Einheitsumrechnern und semiprofessionellen wissenschaftlichen Rechnern. Wenn du Student bist, kannst du die Gleichungen und die wissenschaftlichen Eckdaten deiner Kurse in eine Programmbibliothek zusammenfassen.
-
Suche nach Open-Source-Paketen in deinem gewünschten Feld. Lade zunächst die Binärcodes oder ausführbaren Dateien des Pakets herunter. Verwende diese Pakete und finde ihre Stärken und Schwächen heraus. Nachdem du das gemacht hast, lade dir den Quelltext herunter und versuche herauszufinden, wie die Pakete erstellt wurden. Versuche diese Programmbibliotheken oder Teile davon selber zu erstellen. Versuche dies zunächst, nachdem du dir den Quelltext angesehen hast, und später dann, ohne den Quelltext vorher gesehen zu haben. Zu einem späteren Zeitpunkt kannst du versuchen, diese Bibliotheken zu verbessern.
-
Lerne die verschiedenen Herangehensweisen, mit denen Programmierer die Komponenten verteilen und verwenden.
- Programmbibliotheks- und Paketprogrammierer beleuchten ein Projekt normalerweise von allen Seiten, um alle denkbaren Probleme zu entdecken, mit denen sie konfrontiert werden können. Versuche, jedes Problem als eine Menge kleinerer Probleme, eine Abfolge einfacher Schritte, bzw. als ein sich wiederholender Prozess zu sehen, durch den das ursprüngliche Problem in kleinere Sinneinheiten zerlegt wird und diese einzelnen Herausforderungen dann hierarchisch geordnet werden.
- Programmbibliotheks- und Paketprogrammierer verallgemeinern häufig. Wenn sich ihnen also ein bestimmtes, einfaches Problem stellt, denken sie normalerweise an ein allgemeineres Problem und versuchen dieses allgemeine Problem zu lösen, wodurch automatisch auch das kleinere Problem gelöst wird.
Werbeanzeige
-
Mache dich mit dem Gebiet der Systemprogrammierung vertraut. Systemprogrammierer kümmern sich um die „Wissenschaft” des Programmierens und nicht die spezifischen Anwendungsmöglichkeiten. Lege dich nicht auf eine bestimmte Plattform fest.
-
Folge den ersten drei Schritten für die Programmierung von Desktopanwendungen.
-
Belege einen Einführungskurs in Linearer Algebra.
-
Belege einen Kurs in Analysis.
-
Belege einen Kurs in Logik und/oder Diskreter Mathematik.
-
Arbeite dich in verschiedene “bare-metal” Architekturen ein. Hierfür solltest du verstehen,
- wie Betriebssysteme installiert werden.
- wie man verschiedene Betriebssysteme auf einem PC installieren kann (optional, aber empfehlenswert).
- wie man mehr als ein Betriebssystem installiert. Installiere dabei keine Hilfspakete, sondern verwende ausschließlich die von den Betriebssystemen bereitgestellte Grundfunktionalität.
-
Belege eine Kurs über Rechnerarchitektur (oder lies dir alternativ dazu ein Buch zu diesem Thema durch).
-
Entwickle eine Verständnis für die unterschiedlichen Computerhardwareplattformen.
-
Gewinne ein grundlegendes Verständnis von der Assemblersprache der Hardwareplattform, bzw. des Betriebssystems deiner Wahl. Später dann solltest du dich auch über Assembler anderer Plattformen und Systeme informieren
-
Lerne ANSI C und C++, einschließlich der Konzepte des prozeduralen Programmierens.
-
Verstehe, wie C/C++ Standardprogrammbibliotheken auf der Plattform deiner Wahl erstellt werden. Beachte vor allem die Standard Template Library (STL) und eventuell auch die Active Template Library (ATL).
-
Suche nach Online-Ressourcen, Büchern und Lehrgängen, um die Eigenheiten von C auf deiner speziellen Plattform kennen zu lernen.
-
Schreibe komplexeren Code mit C und C++.
-
Arbeite mit komplexeren Assemblern.
-
Belege einen Kurs über die Erstellung von Betriebssystemen.
-
Lies dir die Dokumentation der Plattform deiner Wahl durch. Dies ist einfacher für UNIX-basierte Betriebssysteme. Arbeite dich sehr genau in die Funktionsweise deines Betriebssystems ein.
-
Wende dein angeeignetes Wissen an. Erstelle zuerst kleinere Systemprogramme. Es ist normalerweise sinnvoll,
- kleinere Dienstprogramme nachzugestalten, die bereits auf deinem System sind.
- Dienstprogramme, die auf anderen Betriebssystemen laufen, auf dein System zu migrieren.
-
Lerne Sprachen in der Reihenfolge, in der sie dir am nützlichsten sind. Nur hierbei ist die erste erlernte Programmiersprache entscheidend. Lerne zuerst ANSI C, nicht C++, nicht C#, nicht Java und auch nicht D. Lerne erst dann C++.
- Die erste Programmiersprache allein auf C festzulegen ist sinnvoll, da die Systemprogrammierung die Kenntnis folgender Konzepte verlangt:
- Eigentliche und vollständige Kompilierung von Quelltext.
- Low-level Objekt Ausgabedateien
- Zusammenfügen von Binärdateien.
- Low-level Maschinensprache bzw. Assembler-Programmierung. Als Assembler lässt sich C einfacher erlernen. C ist wie der Assembler eine prozedurale Programmiersprache und es lassen sich in C auch Assembleranweisungen in regulären Code integrieren.
Werbeanzeige - Die erste Programmiersprache allein auf C festzulegen ist sinnvoll, da die Systemprogrammierung die Kenntnis folgender Konzepte verlangt:
-
Informiere dich, was ein Informatiker macht. Informatiker sind fortgeschrittene Programmierer, die daran arbeiten, Computertechnologien wie Verschlüsselungen, Programmiersprachen und Data-Mining-Algorithmen zu entwickeln, anstatt lediglich Anwendungen zu programmieren. Dieses Niveau erreicht man selten ohne Fleiß und ein Hochschulstudium.
-
Erarbeite dir die wissenschaftlichen Grundlagen, wie man sie in einem grundständigen Studiengang Informatik erhält. Dazu kannst du:
- ein Informatikstudium aufnehmen (dies ist der Regelfall).
- dir die Studienpläne eines Informatikstudiums ansehen und die Kurse entweder im Selbststudium erarbeiten oder als eigenständige Kurse belegen. Theoretisch ist dies eine Möglichkeit, aber praktisch solltest du dich eher für die zuvor genannte Variante entscheiden.
-
Wähle ein Spezialgebiet. Je spezieller, desto besser. Dies hängt natürlich von deinen Präferenzen ab. Hier ist eine Auflistung der größten Teilgebiete der Informatik:
- Entwicklung von Algorithmen (z.B. Suchen, Ordnen, Verschlüsselung, Entschlüsselung und Fehlerdetektion in Kommunikationen)
- Programmiersprachen, Compilerentwicklung, Optimierung
- Künstliche Intelligenz (Mustererkennung, Spracherkennung, Sprachverarbeitung, neurale Netzwerke)
- Robotik
- Wissenschaftliches Programmieren
- Supercomputing
- Computer Aided Design und Computer Aided Modeling (CAD/CAM)
- Virtuelle Realität
- Computergrafik (nicht zu verwechseln mit Grafikdesign oder dem Design von grafischen Benutzeroberflächen. Computergrafik ist ein Teilgebiet der Informatik, das sich mit der computergestützten Erzeugung und Bearbeitung von Grafiken in Computersystemen befasst).
-
Überlege dir, einen weiterführenden Studiengang zu belegen. Vielleicht möchtest du einen Master oder gar einen Doktor in Informatik machen?
-
Lerne die Technologien und Programmiersprachen, die zu deinem gewählten Fachgebiet gehören.Werbeanzeige
Tipps
- Unabhängig davon, was du programmieren möchtest, oder welches Fähigkeitsniveau du erreichen möchtest, solltest du dir überlegen, ein Informatikstudium an einer Hochschule zu beginnen. Lass dich nicht von den Bezeichnungen “Informatik” oder “Computer Science” abschrecken. Jedes Modul, das keine Vorkenntnisse voraussetzt, behandelt die Grundlagen der Informatik und bringt dir das Programmieren von der Pike auf bei. Lass dich aber trotzdem von einem Dozenten oder der Studienberatung beraten, ob der Studiengang oder die Kurse richtig für dich sind. Manche EDV-Kurse oder Computerdidaktik-Kurse lehren lediglich den Umgang mit Officeprogrammen und dergleichen.