Programmierer zu werden ist ein kumulativer Prozess, der Ihre Fähigkeiten Tag für Tag und Jahr für Jahr aufbaut, und Programmieren kann Spaß machen und lohnend sein (mental, spirituell und finanziell). Dieser Leitfaden verspricht nicht, einen magisch einfachen Weg zum Programmierer zu geben, und die Reihenfolge der Schritte ist nicht heilig, aber Sie erhalten einen allgemeinen Überblick darüber, wie Sie Programmierer in einem der modernen Programmiergebiete werden.
Schritte
Schritt 1. Machen Sie einen Einführungskurs in eine (oder alle) der folgenden Disziplinen:
- Logik
- Diskrete Mathematik
- Programmiersprache (nehmen Sie an den verschiedenen Programmierparadigmen teil, beginnend von sequentiell/prozedural bis objektorientiert, nach funktionaler und logischer Programmierung. Bevorzugt Ruby/Python/Pascal für Anfänger und nach etwas gutem Verständnis tiefer in C++/C#/Java einsteigen)
EXPERTENTIPP
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
Startup-Gründer & Engineering Director
Du musst kein Programmierstudium absolvieren.
Während es hilfreich sein kann, Kurse in einer Programmiersprache zu belegen, sagt Gene Linetsky, ein Software-Ingenieur und Startup-Gründer:"
Schritt 2. Lernen Sie Datenbankkonzepte wie Tabellen, Ansichten/Abfragen und Prozeduren kennen
Dazu können Sie jedes einfache Datenbankpaket verwenden, wie zum Beispiel:
- MS-Zugriff
- DB V
- Fox Pro
- Paradox
- MySQL ist eine gute Datenbank zum Lernen, da es kostenlos ist, häufig verwendet wird und auf Datenbanken häufig mit SQL-Abfragen zugegriffen wird
Schritt 3. Entscheiden Sie, welche Art von Programmierer Sie sein möchten
Programmierer fallen im Allgemeinen unter eine der folgenden Kategorien:
- Webprogrammierer
-
Desktop-Anwendungsprogrammierer
- Betriebssystemorientierter Programmierer (gebunden an ein einzelnes Betriebssystem oder eine Reihe von Betriebssystemen)
- Plattformunabhängiger Programmierer
- Programmierer für verteilte Anwendungen
- Bibliothek/Plattform/Framework/Kernprogrammierer
-
Systemprogrammierer
- Kernel-Programmierer
- Treiberprogrammierer
- Compiler-Programmierer
- Programmierer
Schritt 4. Lernen Sie die Technologien und Programmiersprachen, die sich auf Ihr bevorzugtes Programmiergebiet beziehen
In den folgenden Abschnitten werden die Aufgaben für verschiedene Arten der Programmierung beschrieben.
Methode 1 von 6: Webprogrammierung
Schritt 1. Wissen Sie, was Webprogrammierung beinhaltet
Webanwendungen sind Softwarekomponenten, die darauf ausgelegt sind, auf der Internetarchitektur zu arbeiten. Dies bedeutet, dass der Zugriff auf die Anwendungen über eine Webbrowser-Software wie Firefox oder Internet Explorer erfolgt. Der Aufbau auf der Internet-Architektur erfordert nicht unbedingt eine aktive Verbindung zum Internet. Das bedeutet, dass Webanwendungen auf Standard-Webtechnologien aufbauen, wie zum Beispiel:
- HTTP
- FTP
- POP3
- SMTP
- TCP
- IP-Protokolle
- HTML
- XML
- Kaltfusion
- ASP
- JSP
- PHP
- ASP. NET
Schritt 2. Durchsuchen Sie viele verschiedene Websites, um zu erfahren, wie sie normalerweise aussehen
(Klicken Sie mit der rechten Maustaste und klicken Sie dann auf Quelle anzeigen oder drücken Sie F12.) Achten Sie auf Vielfalt im Typ/Inhalt der Website, nicht auf die Anzahl der besuchten Websites. Im Allgemeinen müssen Sie mindestens eine der folgenden Arten von Websites besuchen:
- Websites mit Unternehmenspräsenz (gewerbliche Unternehmen, gemeinnützige Unternehmen/Organisationen, Regierungsorganisationen)
- Webindexierungsmaschinen (Suchmaschinen, Metasuchseiten, spezialisierte Suchmaschinen, Verzeichnisse)
- Data-Mining-Sites
- Persönliche Websites
- Informations-/Enzyklopädische Seiten (Wikis, Datenblätter, technische Spezifikationen und Handbücher mit Verzeichnissen, Blogs und Zeitschriften, Websites von Nachrichten- und Nachrichtenagenturen, Gelbe Seiten usw.)
- Soziale Seiten (soziale Portale, Lesezeichenseiten, Notizenseiten)
- Kollaborative Websites (dazu gehören andere oben erwähnte Kategorien wie Wikis und Blogs)
Schritt 3. Lernen Sie mindestens eine Brainstorming-Technik/-Methode und eine Software, die verwendet wird, um diese Methode zu implementieren
Zum Beispiel: Brainstorming-Diagramme und MS Visio.
Schritt 4. Machen Sie sich mit der Strukturierung von Websites vertraut
Dabei werden konzeptionelle Webdiagramme, Sitemaps und Navigationsstrukturen erstellt.
Schritt 5. Machen Sie einen Crashkurs zum Thema Grafikdesign
Versuchen Sie, mindestens ein Softwarepaket zur Grafikbearbeitung/-manipulation zu erlernen (optional, aber dringend empfohlen)
Schritt 6. Lernen Sie die Grundlagen der Internet-Infrastruktur
Dazu gehört, sich eine Grundidee zu verschaffen über:
- Basis-Webdienstprotokolle (HTTP, FTP, SMTP und POP3 oder IMAP4)
- Webserver-Software (vorzugsweise eine für die Plattform, auf der Sie hauptsächlich arbeiten)
- Webbrowser-Software.
- E-Mail-Server und Client-Software
Schritt 7. Lernen Sie die Sprachen HTML und CSS
Vielleicht möchten Sie auch das Softwarepaket "What You See Is What You Get (WYSIWYG)" zum Bearbeiten von HTML erwerben.
Schritt 8. Lernen Sie XML und XML-bezogene Technologien wie XSL und XPath kennen (optional, aber empfohlen)
Schritt 9. Erstellen Sie einfache statische Websites, bis Sie mit HTML vertraut und vertraut sind
Schritt 10. Lernen Sie eine clientseitige Skriptsprache
Die meisten Benutzer lernen JavaScript. Einige lernen VBScript, aber dies ist mit den meisten Browsern nicht kompatibel.
Schritt 11. Machen Sie sich mit der erlernten clientseitigen Skriptsprache vertraut
Versuchen Sie, Ihr Potenzial nur mit dieser Sprache auszuschöpfen. Gehen Sie erst zum nächsten Schritt, wenn Sie sich zumindest mit Ihrer clientseitigen Skriptsprache vertraut gemacht haben.
Schritt 12. Lernen Sie mindestens eine serverseitige Programmiersprache
Wenn Sie sich auf eine Serversoftware beschränken möchten, lernen Sie eine der Programmiersprachen kennen, die von dieser Software unterstützt werden. Wenn nicht, lernen Sie mindestens eine Programmiersprache für jede Serversoftware.
Schritt 13. Erstellen Sie ein Pilotprojekt für sich selbst, nachdem Sie die serverseitige Programmiersprache gelernt haben.
Schritt 14. Besorgen Sie sich Ihre eigene Website und experimentieren Sie online auf Ihrer eigenen Seite
Methode 2 von 6: Desktop-Anwendungsprogrammierung
Schritt 1. Wissen Sie, worauf Sie sich bei der Programmierung von Desktop-Anwendungen einlassen
Die meisten Desktop-Programmierer schreiben Code für Geschäftslösungen, so dass es eine große Zeitersparnis sein wird, sich ein Bild von Unternehmen, ihrer Organisations- und Finanzstruktur zu machen.
Schritt 2. Erfahren Sie mehr über die verschiedenen Computerhardwarearchitekturen
Ein Einführungskurs in das Design digitaler Schaltungen und ein weiterer in Computerarchitektur sind nützlich; Einige sehen es jedoch als Ausgangspunkt für fortgeschritten an, so dass das Lesen von zwei oder drei Tutorial-Artikeln (wie diesem und diesem) ausreichen könnte. Dann können Sie später zu diesem Schritt zurückkehren, nachdem Sie Ihre erste Programmiersprache gelernt haben.
Schritt 3. Lernen Sie eine Programmiersprache für Einsteiger (Kinder)
Scheuen Sie sich nicht, eine solche Sprache zu lernen, nur weil Sie älter sind, als "Kind" genannt zu werden. Ein Beispiel für diese Programmiersprachen kann Scratch sein. Diese Programmiersprachen können das Erlernen Ihrer ersten Programmiersprache enorm erleichtern. Dieser Schritt ist jedoch optional. Dies kann auch vor dem vorherigen Schritt erfolgen.
Schritt 4. Holen Sie sich eine Einführung in das Verfahren, objektorientierten, und Paradigmen der funktionalen Programmierung.
Schritt 5. Nehmen Sie an einem Einführungskurs in eine der prozeduralen Programmiersprachen teil
Unabhängig davon, welche Sprache Sie später als Sprache Ihrer Wahl auswählen, ist eine prozedurale Programmierung auf einem bestimmten Niveau erforderlich. Außerdem wird von den meisten Programmierern die prozedurale Programmierung als der am einfachsten zu verwendende Ausgangspunkt genannt, um die Idee der Programmierung im Allgemeinen zu bekommen.
Schritt 6. Lernen Sie mindestens eine fortgeschrittene Modellierungstechnik wie UML oder ORM
Schritt 7. Beginnen Sie mit dem Schreiben einiger kleiner Konsolen- oder konsolenähnlicher Anwendungen
Sie können gängige kleine Übungen in Programmiersprachenbüchern verwenden. Wählen Sie dazu ein Werkzeug zum Schreiben von Programmen in der Programmiersprache, in der Sie schreiben.
Schritt 8. Nehmen Sie an einem fortgeschritteneren Kurs in Ihrer gewählten Programmiersprache teil
Stellen Sie sicher, dass Sie die folgenden Konzepte gut verstehen und relativ einfach anwenden können, bevor Sie fortfahren:
- Eingeben und Ausgeben von Informationen an Benutzer eines Programms.
- Der logische Fluss und der Ausführungsfluss von Programmen in prozeduralen Sprachen.
- Variablen deklarieren, zuweisen und vergleichen.
- Verzweigende Programmierkonstrukte wie if..then..else und select/switch..case.
- Schleifenkonstrukte wie while..do, do..while/until, for..next.
- Ihre Programmiersprachensyntax zum Erstellen und Aufrufen von Prozeduren und Funktionen.
- Datentypen und deren Manipulation.
- Benutzerdefinierte Datentypen (Records/Structs/Units) und deren Verwendung.
- Wenn Ihre Sprache das Überladen von Funktionen unterstützt, sollten Sie sie verstehen.
- Die Speicherzugriffsmethoden Ihrer bevorzugten Sprache (Zeiger, Spähen usw.)
- Wenn Ihre Sprache das Überladen von Operatoren unterstützt, sollten Sie sie verstehen.
- Wenn Ihre Sprache Delegaten/Funktionszeiger unterstützt, verstehen Sie sie.
Schritt 9. Wenden Sie die erlernten fortgeschrittenen Techniken an
Schritt 10. Nehmen Sie an einem Einführungskurs in mindestens eine weitere Programmiersprache in einem anderen Programmierparadigma teil
Es wird empfohlen, eine Programmiersprache jedes Paradigmas zu lernen, und die meisten fortgeschrittenen Programmierer beginnen jedoch normalerweise mit einer, arbeiten eine Weile, wenden Ihr Wissen an und üben es, dann lernen Sie die andere später, nachdem Sie bereits ein echtes Wissen hatten -Lebenserfahrung in der Programmierung. Probieren Sie einen der folgenden Sprachräume aus:
- Paradigma der logischen Programmierung.
- Paradigma der funktionalen Programmierung.
- Objektorientiertes Paradigma.
Schritt 11. Versuchen Sie, die beiden bisher gelernten Programmiersprachen zu vergleichen
Bewerten Sie die Stärken und Schwächen jedes einzelnen. Normalerweise geschieht dies durch:
- Nehmen Sie einfache Beispiele Ihrer frühen Arbeit in der ersten Programmiersprache und schreiben Sie sie mit der zweiten Programmiersprache neu.
- Erstellen Sie ein neues Projekt und versuchen Sie es mit beiden Sprachen zu implementieren. Abhängig von Ihrer Projekt- und Sprachauswahl können Sie das Projekt manchmal nicht in einer der Sprachen implementieren!
- Schreiben eines Spickzettels oder einer Übersichtstabelle für Vergleiche zwischen ähnlichen Konstrukten in den beiden Sprachen und Merkmalen, die für jede der Sprachen einzigartig sind.
- Versuchen Sie, mithilfe der anderen Sprache Möglichkeiten zu finden, Funktionen nachzuahmen, die für eine der beiden Sprachen einzigartig sind.
Schritt 12. Lernen Sie visuelle Programmierkonzepte in einer der Sprachen kennen, die Sie gelernt haben
Fast alle Programmiersprachen haben Versionen/Bibliotheken, die die visuelle Programmierung unterstützen, und andere, die eine konsolen- oder konsolenähnliche Programmierung unterstützen. Dies kann erreicht werden durch:
- Erhalten Sie eine Einführung in die ereignisgesteuerte Programmierung. Die meisten visuellen Programmierungen beruhen in gewisser Weise auf Ereignissen und der Ereignisbehandlung (unter Verwendung der von Ihnen gewählten Programmiersprache).
- Probieren Sie so viel Desktop-Software wie möglich aus und verstehen Sie, was die Software tut. Die meisten Softwareentwicklungsunternehmen bieten Beta-Testversionen ihrer Produkte an, mit denen Sie die Software testen können. Bleiben Sie über die Weiterentwicklungen der Benutzeroberfläche auf dem Laufenden.
- Lesen Sie einige Artikel oder Tutorials zu grafischen Benutzeroberflächen.
Schritt 13. Beginnen Sie mit der Anwendung Ihres Wissens auf kleine Softwareprojekte, die Sie entwerfen
Versuchen Sie, Ihre Programmierkenntnisse auf Probleme anzuwenden, mit denen Sie in Ihrem täglichen Leben konfrontiert sind. Schreiben Sie beispielsweise Programme, die Dateien massenhaft umbenennen, Textdateien visuell vergleichen, die Namen von Dateien in einem Verzeichnis in den Speicher/die Textdatei kopieren und ähnliches. Halten Sie es zunächst einfach.
Schritt 14. Erstellen Sie ein virtuelles Abschlussprojekt
Vervollständigen Sie dies bis zum Ende und wenden Sie die Techniken der visuellen Programmierung an, die Sie bisher gelernt haben.
Schritt 15. Erweitern Sie Ihr Verständnis des zuvor erlernten visuellen Frameworks/der Bibliothek/des Pakets, indem Sie Fortgeschrittenenkurse besuchen, den Details besondere Aufmerksamkeit schenken und weitere Tipps und Tricks für Ihr Framework aus Online-Ressourcen lernen
Schritt 16. Suchen Sie nach anderen Paketen/Bibliotheken mit visuellen Elementen für Ihre Programmiersprachen und lernen Sie diese
Schritt 17. Machen Sie einen Kurs in Grafik (nicht Grafikdesign)
Es ist sehr hilfreich für Programmierer, die ansprechende Benutzeroberflächenelemente schreiben möchten.
Schritt 18. Ziehen Sie in Erwägung, Spieleprogrammierer zu werden (optional)
Spieleprogrammierung wird in den meisten Teilen als Desktop-Programmierung angesehen. Wenn Sie Spieleprogrammierer werden möchten, müssen Sie nach Abschluss dieser Schritte mehr über die Spieleprogrammierung erfahren. Ein Grafikkurs ist ein Muss für Spieleprogrammierer und die zweite Sprache der Wahl in den vorherigen Schritten sollte eine logische/funktionale Programmiersprache sein (vorzugsweise Prolog oder Lisp).
Methode 3 von 6: Verteilte Anwendungsprogrammierung
Schritt 1. Befassen Sie sich mit der Programmierung verteilter Anwendungen
Die verteilte Anwendungsprogrammierung wird von vielen als eine der am schwersten zu erlernenden angesehen und erfordert vielfältige Kenntnisse in Computer- und Kommunikationstechnologien.
Schritt 2. Machen Sie eine schnelle Einführung in Telefoniesysteme und deren Hardware
Dieser Schritt ist optional. Es ist jedoch sehr nützlich, um Netzwerktopologien zu verstehen.
Schritt 3. Machen Sie sich mit Netzwerkhardwarearchitekturen und -geräten wie Hubs, Switches und Routern vertraut
Schritt 4. Nehmen Sie an einem Kurs über Netzwerkprotokolle und Grundlagen teil
Sie benötigen ein gutes Verständnis des Open Systems Interconnection (OSI)-Modells, Ethernet, IP, TCP, UDP und HTTP, bevor Sie mit der Programmierung verteilter Anwendungen beginnen.
Schritt 5. Lernen Sie die XML-Sprache und machen Sie sich damit vertraut
Schritt 6. Beginnen Sie mit dem Erlernen einer Shell-Skriptsprache
Bei Windows-basierter Programmierung wäre dies jedes Skript, das mit Windows Scripting Host funktioniert. Für Linux-basierte Programmierung reichen Bash-Skripte und Perl aus. JavaScript wird hierfür auf beiden Plattformen aus folgenden Gründen dringend empfohlen:
- Es wird von fast jedem Scripting-Host in jedem Betriebssystem unterstützt (Windows Scripting Host unterstützt standardmäßig JavaScript, die meisten Linux-Distributionen haben ein Paket für die Unterstützung der JavaScript-Scripting-Konsole).
- Es wird von vielen Entwicklern als einfacher zu erlernen angesehen.
- Es hat eine von ALGOL abgeleitete Syntax, die Sie mit viel mehr anderen Programmiersprachen vertraut macht, wenn Sie eine zweite Programmiersprache auswählen müssen (C, C++, C#, Java und J# haben alle eine von ALGOL abgeleitete Syntax).
- Durch das Erlernen von JavaScript machen Sie sich mit dem clientseitigen Scripting von Webseiten vertraut, was ein zusätzlicher Nebeneffekt ist!
Schritt 7. Wenden Sie zunächst nur prozedurale Programmierung mit der Skriptsprache Ihrer Wahl an
Später können Sie entsprechend Ihrer Skriptsprache und deren Unterstützung erweiterte Programmiertechniken und -paradigmen verwenden. Alle Skriptsprachen haben auf einer bestimmten Ebene einige Aspekte der prozeduralen Programmierung.
Schritt 8. Verwenden Sie die gelernte Skriptsprache, um Skripte zu schreiben, die die Kommunikation zwischen Computern durchführen
Erfahren Sie, was dafür notwendig ist. Einfache Kommunikation reicht aus.
Schritt 9. Führen Sie eine Übertragung zu einer Desktop-Skript-/Programmiersprache durch
Vorzugsweise eine Sprache mit mehreren Paradigmen wie Python. Machen Sie eine einfache Einführung in diese zweite Sprache. Java wird von den meisten Programmierern aus vielen Gründen als die Sprache der Wahl angesehen. Allerdings gewinnt C# in diesem Bereich schnell an Bedeutung. Java und C# werden aus folgenden Gründen bevorzugt:
- Sie sind objektorientierte Programmiersprachen, die Programmierer in großen Teams von Implementierungsdetails abschirmen, da sie beide Komponenten unterstützen (vorkompilierte Codeeinheiten, die eine bestimmte Aufgabe ausführen und in anderen Programmen verwendet werden können).
- Sie unterstützen ereignisgesteuerte Programmierung sowie auf einer gewissen Ebene OO und prozedurale Programmierung.
- Das Framework, auf dem die Sprache aufbaut, ist von Natur aus verteilt (im Fall von Java).
- Die Verfügbarkeit vieler vorgefertigter Pakete, die sich mit Netzwerken befassen, sowohl als Open-Source-Code als auch als Framework-integrierte Pakete; Dies macht es für Programmierer einfacher, auf der Arbeit anderer aufzubauen.
Schritt 10. Konzentrieren Sie sich mehr auf die Kernfunktionen der Sprache, insbesondere auf die, die das Netzwerk unterstützen
Achten Sie weniger auf Benutzeroberflächenelemente wie Ausgabe, Fensterdesign und -techniken sowie Benutzeroberflächenelemente.
Schritt 11. Nehmen Sie an einem Kurs über das Design und die Architekturen verteilter Anwendungen teil
Dies kann mithilfe von Büchern, Online-Tutorials oder akademischen Kursen erfolgen. Es ist jedoch erforderlich, die Architektur verteilter Anwendungen und deren Konzepte zu verstehen.
Schritt 12. Erfahren Sie mehr über das Erstellen von Serviced Components und Services mit der Programmiersprache Ihrer Wahl
Schritt 13. Lernen Sie eine oder mehrere der folgenden Technologien kennen
Es wird empfohlen, zumindest eine Einführung in alle zu erhalten. Die meisten verteilten Anwendungsprogrammierer hören nicht bei einer oder zwei Programmiersprachen auf, sondern lernen mindestens eine Programmiersprache auf jedem Betriebssystem. Das liegt daran, dass Sie, wenn Sie möchten, dass Ihre Anwendung "verteilt" wird, mindestens eine Version davon für jedes wichtige Betriebssystem bereitstellen.
- Common Object Request Broker-Architektur (CORBA)
- Simple Object Access Protocol (SOAP)
- Asynchrones JavaScript und XML (AJAX)
- Verteiltes Komponentenobjektmodell (DCOM)
- . NET-Remoting
- XML-Webdienste
Methode 4 von 6: Bibliothek/Plattform/Framework/Kernprogrammierung
Schritt 1. Wissen Sie, was Kernprogrammierung ist
Core-Programmierer sind lediglich fortgeschrittene Programmierer, die den Übergang von Programmieranwendungen zu Programmiercode-Einheiten zur Verwendung durch andere Programmierer vorgenommen haben.
Schritt 2. Lernen Sie eine Programmiersprache, die das Erstellen wiederverwendbarer Komponenten/Pakete unterstützt, falls Sie dies noch nicht getan haben
Schritt 3. Nehmen Sie an einem Fortgeschrittenenkurs in UML und ORM teil
Die meisten Bibliotheksentwickler verwenden einen oder beide.
Schritt 4. Nehmen Sie an einem Kurs in Software Engineering teil
Schritt 5. Lernen Sie zumindest modulare, komponentenbasierte, objektorientierte und ereignisgesteuerte Programmiertechniken und -konzepte
Je mehr Programmierparadigmen und Sprachen Sie abdecken, desto erfolgreicher werden Sie als Bibliotheks-/Paketprogrammierer.
Schritt 6. Erfahren Sie mehr über die verschiedenen Betriebssysteme und Programmierframeworks, die von diesen Betriebssystemen unterstützt werden
Schritt 7. Konzentrieren Sie Ihre Lernbemühungen auf plattformunabhängige Frameworks, Programmiersprachen und Technologien
Schritt 8. Wenn die bisher erlernten Programmiersprachen ANSI/ISO/IEEE/W3C-Standardversionen, die Standards beherrschen.
Versuchen Sie, wenn möglich, Standardcode zu verwenden.
Schritt 9. Versuchen Sie, einfache, bereits etablierte Bibliotheken nachzuahmen, insbesondere Open-Source-Bibliotheken
Dies ist während der frühen Phase der Ausbildung zum Bibliotheks-/Paketprogrammierer nützlich. Beginnen Sie mit einfachen Paketen wie Einheitenumrechnung und Zwischenpaketen für wissenschaftliche Berechnungen. Wenn Sie ein College-Student sind, nutzen Sie Ihre Nicht-Programmierkurse, indem Sie versuchen, ihre Gleichungen und ihren wissenschaftlichen Kern als Bibliotheken zu implementieren.
Schritt 10. Suchen und testen Sie Open-Source-Pakete in Ihrem Programmierbereich
Laden Sie zuerst Binärdateien/ausführbare Dateien des Pakets herunter. Versuchen Sie, es zu verwenden und seine Stärken und Schwächen zu finden. Nachdem Sie das getan haben, laden Sie die Quelle herunter und versuchen Sie herauszufinden, wie es gemacht wurde. Versuchen Sie, diese Bibliotheken oder Teile davon neu zu erstellen. Tun Sie dies zunächst, nachdem Sie den Code gesehen haben, und später, bevor Sie den Code sehen. Versuchen Sie in späteren Phasen, diese Bibliotheken zu verbessern.
Schritt 11. Lernen Sie die verschiedenen Ansätze kennen, die zum Verteilen und Bereitstellen von Komponenten an Programmierer verwendet werden
- Normalerweise neigen Bibliotheks-/Paketprogrammierer dazu, rekursiv und/oder iterativ an alle Probleme zu denken, mit denen sie konfrontiert werden. Versuchen Sie, sich jedes Problem als eine Ansammlung kleinerer Probleme (eine Abfolge einfacherer Aufgaben) oder als einen wiederholten Prozess vorzustellen, bei dem der Umfang des Problems auf kleinere Bereiche reduziert und dann diese Bereiche aufeinander gestapelt werden.
- Bibliotheks-/Paketprogrammierer neigen dazu, zu verallgemeinern. Das heißt, wenn ihnen ein einfaches spezifisches Problem präsentiert wird, denken sie normalerweise an ein allgemeineres Problem und versuchen, dieses allgemeine Problem zu lösen, das automatisch das kleinere löst.
Methode 5 von 6: Systemprogrammierung
Schritt 1. Verstehen Sie, was die Systemprogrammierung beinhaltet
Systemprogrammierer befassen sich mit der Wissenschaft des Programmierens, nicht mit deren spezifischen Implementierungen. Binden Sie sich nicht an eine bestimmte Plattform.
Schritt 2. Befolgen Sie die ersten drei Schritte für Desktop-Anwendungsprogrammierer
Schritt 3. Nehmen Sie an einem Einführungskurs in Lineare Algebra teil
Schritt 4. Machen Sie einen Kurs in Infinitesimalrechnung
Schritt 5. Nehmen Sie an einem Kurs in Logik und/oder diskreter Mathematik teil
Schritt 6. Machen Sie sich mit verschiedenen nackten Betriebssystemen vertraut
Dies kann erfolgen durch:
- Eine Vorstellung davon bekommen, wie Betriebssysteme installiert werden.
- Lernen, wie man verschiedene Betriebssysteme auf einem PC installiert (optional, aber empfohlen).
- Installieren von mehr als einem Betriebssystem. Installieren Sie keine Hilfspakete auf den Systemen; Verwenden Sie stattdessen die bloßen Funktionen, die von den Betriebssystemen bereitgestellt werden.
Schritt 7. Nehmen Sie an einem Kurs über Computerhardwarearchitektur teil (oder lesen Sie alternativ Bücher)
Schritt 8. Entwickeln Sie ein Verständnis der verschiedenen Computerhardwareplattformen
Schritt 9. Machen Sie sich mit der Assemblersprache der Hardwareplattform/des Betriebssystems Ihrer Wahl vertraut
Später lernen Sie den Aufbau anderer Plattformen/Systeme kennen.
Schritt 10. Lernen Sie die Sprachen ANSI C und C++ zusammen mit den Konzepten der prozeduralen Programmierung
Schritt 11. Verstehen und üben Sie C/C++-Standardbibliotheken auf der Plattform Ihrer Wahl
Achten Sie besonders auf die Standard Template Library (STL) und möglicherweise auf die Active Template Library (ATL).
Schritt 12. Durchsuchen Sie Online-Ressourcen, Bücher und Kurse, um den C-Geschmack Ihrer spezifischen Plattform zu verstehen
Schritt 13. Üben Sie das Erstellen von erweitertem Code mit C und C++
Schritt 14. Erfahren Sie mehr über die erweiterte Montage
Schritt 15. Nehmen Sie an einem Kurs zum Thema Betriebssystemdesign teil
Schritt 16. Suchen und lesen Sie die Dokumentationen Ihrer spezifischen Plattform Ihrer Wahl
Dies wird einfacher, wenn Sie sich für ein Unix-basiertes Betriebssystem entscheiden. Verstehen Sie das System, mit dem Sie später arbeiten werden, sehr gut.
Schritt 17. Üben Sie Ihr erworbenes Wissen
Erstellen Sie zunächst kleine Systemdienstprogramme. Es ist normalerweise nützlich, um:
- Versuchen Sie, kleine Tools neu zu erstellen, die bereits auf Ihrem System vorhanden sind.
- Versuchen Sie, Dienstprogramme, die in anderen Betriebssystemen verfügbar sind, auf Ihres zu portieren.
Schritt 18. Lernen Sie Sprachen in der hilfreichsten Reihenfolge
Nur hier kommt es auf die erste Programmiersprache an. Lernen Sie zuerst ANSI C, nicht C++, nicht C#, nicht Java und nicht D. Dann lernen Sie C++.
-
Die Beschränkung der ersten Sprache auf C und C allein liegt daran, dass die Systemprogrammierung erfordert, dass der Programmierer mit den folgenden Konzepten vertraut ist:
- Echte und vollständige Kompilierung des Quellcodes.
- Objektausgabedateien auf niedriger Ebene.
- Binärdateien verknüpfen.
- Low-Level-Maschinensprache/Assembly-Programmierung. Die C-Sprache gilt als getarnt/leichter zu erlernende Assembler von einigen. Es unterstützt auch das Einfügen von Assembler-Code in Code, wann immer Sie möchten, und es ist nur prozedural (wie Assemblierung).
Methode 6 von 6: Programmierwissenschaft
Schritt 1. Wissen Sie, was ein Programmierwissenschaftler tut
Programmierwissenschaftler sind sehr fortgeschrittene Programmierer, die, anstatt an der Entwicklung von Anwendungen zu arbeiten, an der Entwicklung von Computertechnologien wie Verschlüsselung, Programmiersprachen und Data-Mining-Algorithmen arbeiten. Dieses Niveau wird selten ohne akademisches Studium und Engagement erreicht.
Schritt 2. Sammeln Sie die wissenschaftlichen Kenntnisse, die einem vierjährigen Abschluss in Informatik entsprechen
Dies kann entweder erfolgen durch:
- Erwerb eines tatsächlichen akademischen Abschlusses (was normalerweise der Fall ist).
- Die Studienskizzen für einen solchen Abschluss von einer der modernen Universitäten besorgen und die Studiengänge entweder im Selbststudium oder als separate Studiengänge belegen. Dies könnte theoretisch erreicht werden, aber der empfohlene Weg ist der erste.
Schritt 3. Entscheiden Sie sich für ein Fachgebiet
Je genauer, desto besser. Dies hängt von Ihren Vorlieben ab. Hier ist jedoch eine Liste einiger der wichtigsten Themen der Informatik:
- Algorithmusdesign (Suchen, Sortieren, Verschlüsseln, Entschlüsseln und Fehlererkennung in der Kommunikation sind einige Beispiele)
- Programmiersprachen/Compilerdesign/Optimierung
- Felder der Künstlichen Intelligenz (Mustererkennung, Spracherkennung, natürliche Sprachverarbeitung, neuronale Netze)
- Robotik
- Wissenschaftliche Programmierung
- Super-Computing
- Computergestützte Konstruktion/Modellierung (CAD/CAM)
- Virtuelle Realität
- Computergrafik (Computergrafik wird normalerweise fälschlicherweise mit grafischem Design oder grafischem Benutzeroberflächendesign verwechselt. Computergrafik ist das Gebiet, in dem untersucht wird, wie Grafiken in Computersystemen dargestellt und manipuliert werden.)
Schritt 4. Ziehen Sie in Betracht, einen höheren akademischen Abschluss zu erwerben
Vielleicht möchten Sie ein Masterstudium oder eine Promotion anstreben.