Programmieren lernen: Weisheit und Werkzeuge für die Reise
Veröffentlicht: 2022-03-11Programmieren ist eine großartige Fähigkeit. Es ist sowohl auf persönlicher als auch auf beruflicher Ebene äußerst lohnend, da es Ihnen die Möglichkeit gibt, zu bauen, zu basteln und zu erfinden. Es kann Türen zu allen Arten von Karrierewegen mit großartigen Vorteilen öffnen, sei es ein respektabler Gehaltsscheck, die Freiheit, zu arbeiten, wann und wo Sie wollen, oder alles oben Genannte.
Es ist keine Überraschung, dass sich immer mehr Menschen mit unterschiedlichem Hintergrund dafür entscheiden, Programmieren zu lernen. Doch jeder, der sich dieser Aufgabe stellt, wird schnell mit einer unangenehmen Realität konfrontiert: Programmieren lernen ist schwer.
Kompliziert und verwirrend macht ein Großteil der Codierung zunächst keinen verdammten Sinn. Entgegen den Erwartungen kann das Gefühl von „Ich verstehe es nicht“ bis weit in die Reise hinein unvermindert anhalten und dazu führen, dass sich einst helläugige Anfänger hoffnungslos, verloren und bereit fühlen, aufzugeben.
Die Moral der Geschichte lautet: Seien Sie vorbereitet. Der Weg ins Programmierer-Paradies ist lang und kann ohne das richtige Mindset am Anfang schnell seinen Reiz verlieren.
In diesem Artikel werde ich versuchen, Ihnen einige Hinweise zu geben, was Sie auf Ihrer Reise erwartet, wie Sie am besten vorgehen und welche Tools und Ressourcen Sie auf dem Weg hilfreich finden können.
Was zu erwarten ist
Vielleicht ist es offensichtlich, aber das erste, was Sie sich vergewissern sollten, ist, dass das Programmieren im Kern eine technische Disziplin ist. Die frühesten Fähigkeiten, die Sie lernen, erfordern viel „Genauigkeit“ und „Korrektheit“, und der Versuch, Abstriche zu machen, wird Sie nirgendwo hinbringen. Sie müssen zumindest ein bisschen Mathematik lernen, sowie viele Dinge, die sich wie Mathematik anfühlen , wie z. B. prozedurale Logik.
Der Punkt ist, dass das Erlernen der Grundlagen des Programmierens viel Konzentration und Übung erfordert. Unzählige Menschen, technisch versierte und nicht technisch versierte, haben diese Reise jedoch vor Ihnen unternommen, also lassen Sie sich nicht entmutigen. Wie wir sehen werden, gibt es eine Fülle von Ressourcen für Menschen wie Sie, um den Prozess so einfach wie möglich zu gestalten.
Die Lernkurve beim Programmieren ist am Anfang am steilsten. Es gibt eine riesige Menge an „Grundlagen“ zu lernen, einschließlich der verschiedenen Teile einer Programmiersprache (Ausdrücke, Variablen, Datentypen, Operatoren, Schleifen, bedingte Anweisungen, Funktionen, Klassen) und der Techniken, um zu verstehen, wie viel von Ihrem Computer Zeit und Speicherplatz, die Ihr Code verwenden wird (Komplexität). Sie werden eine Menge Code schreiben, der beim ersten Mal nicht funktioniert, also müssen Sie sich mit dem Fluch der Existenz eines jeden Programmierers abfinden: dem Debuggen.
Sobald Sie gelernt haben, wie man Code schreibt, werden Sie in der Lage sein, robusten Code zu schreiben. Code effizient, leicht lesbar, verständlich und leicht erweiterbar zu machen, ist eine Kunst, die sich ständig weiterentwickelt. Sie werden in der Lage sein, verschiedene Software-Philosophien zu erforschen und sich vom einfachen „Programmierer“ zum „Software-Architekten“ zu entwickeln. Auch dies ist ein Prozess, der viel Zeit und Übung erfordert, aber je besser Sie darin werden, desto mehr Möglichkeiten eröffnen sich Ihnen.
Wie man Programmieren lernt
Die Reise jeder Person ins Programmierparadies ist anders, aber es gibt einige gute Prinzipien, von denen alle Reisenden profitieren können. Hier ist der grundlegende Prozess, den ich empfehle, wenn Sie gerade erst anfangen:
1. Wählen Sie Ihr Ziel: Wählen Sie eine Sprache, beliebige Sprache
Wenn Sie das Programmieren ernsthaft lernen möchten, spielt die gewählte Sprache keine große Rolle. Die meisten populären Programmiersprachen teilen die gleichen grundlegenden Konzepte, und wenn Sie mit dem Programmieren in Ihrer Muttersprache wirklich den Dreh raus haben, wird es einfacher sein, eine neue Sprache zu erlernen als beim ersten Mal. Wenn Sie über ein Universitätsstudium oder ähnliches lernen, wird Ihre Sprache wahrscheinlich für Sie ausgewählt.
In jedem Fall, es sei denn, Sie wissen genau, was Sie langfristig tun möchten, empfehle ich nur fünf Sprachen in Betracht zu ziehen, die ein Gleichgewicht zwischen einfacher Erlernbarkeit, Vielseitigkeit des erworbenen Wissens und einer Fülle von langfristigen Arbeitsplätzen finden Perspektiven: Ruby , JavaScript , Python , C und Java .
Hier sind einige allgemeine Hinweise zu jedem, um Ihnen bei der Entscheidung zu helfen:
Interpretierte Sprachen
Interpretierte Sprachen sind für den Einstieg einfacher . Dies liegt daran, dass ihr Quellcode ausgeführt werden kann, sobald er geschrieben ist. Im Gegensatz dazu erfordern kompilierte Sprachen einen zusätzlichen Schritt zwischen dem Schreiben und Ausführen des Codes.
Infolgedessen ermöglichen interpretierte Sprachen eine schnellere Codierung , aber sie nutzen die Computerressourcen nicht so effizient , und es ist einfacher für Fehler, unentdeckt zu bleiben . Sie eignen sich am besten für Anwendungen, bei denen Leistung keine Priorität hat. Diese Sprachen sind sehr beliebt für die Webentwicklung. Tatsächlich ist eine davon, JavaScript, die einzige Sprache, die direkt in einem Webbrowser ausgeführt werden kann, was zu ihrem schnellen Aufstieg als eine der lukrativsten Sprachen beiträgt, die man kennen kann.
Sprache | Vorteile | Nachteile | Häufig verwendet für |
Rubin |
|
|
|
JavaScript |
|
|
|
Python |
|
|
|
Kompilierte Sprachen
Wenn Code kompiliert wird, wird er von menschenlesbarem Code in optimierten Maschinencode umgewandelt, bevor er ausgeführt wird. Das Ergebnis läuft viel schneller und effizienter als interpretierte Sprachen. Der Compiler, der dies tut, muss als Teil seiner Aufgabe sicherstellen, dass alles, was codiert wurde, „sinnvoll“ ist, und kann daher viele Arten von Fehlern identifizieren und verhindern, für die interpretierte Sprachen anfällig sind.
Aus diesem Grund ist es bei diesen Sprachen schwieriger, mit Fehlern oder schlechtem Code davonzukommen. Sie werden Sie zwingen, ein tieferes Verständnis dafür zu erlangen, was wirklich „unter der Haube“ vor sich geht, und Sie werden viel mehr darüber erfahren, wie ein Computer wirklich funktioniert . Der Preis ist, dass diese Sprachen arbeitsintensiver sind und für Anfänger normalerweise schwieriger zu lernen sind.
Kompilierte Sprachen werden in Anwendungen verwendet, die Leistung und Zuverlässigkeit erfordern, einschließlich eingebetteter Anwendungen, die auf Hardware mit engen Ressourcenbeschränkungen ausgeführt werden können, und großen, komplexen Anwendungen, bei denen selbst ein kleiner Fehler verheerende Auswirkungen haben kann.
Sprache | Vorteile | Nachteile | Häufig verwendet für |
C |
|
|
|
Java |
|
|
|
HTML und CSS: Keine Programmiersprachen
Es sollte beachtet werden, dass HTML und CSS, die in so ziemlich jeder jemals existierenden Webseite verwendet werden, keine Programmiersprachen sind . Sie sind Präsentationssprachen, die verwendet werden, um zu definieren, wie etwas aussehen und was es enthalten soll, aber nicht, wie es sich verhalten soll. Trotzdem können sie ein guter Ausgangspunkt sein, da sie viel einfacher zu erlernen sind und Ihnen beibringen, wie man Dinge richtig eintippt. Wenn Sie vorhaben, Webentwicklung zu betreiben, müssen Sie sie außerdem irgendwann sowieso lernen.
2. Fangen Sie klein an
Lernen braucht Zeit und es gibt viel zu lernen. Wenn Sie versuchen, am ersten Tag eine vollständige Anwendung zu erstellen, wird dies nicht funktionieren. Um sich die Frustration zu ersparen, beginnen Sie mit der Lösung kleiner, einfacher Probleme und arbeiten Sie sich nach oben.
Zum Beispiel ist das erste Programm, das traditionell geschrieben wird, wenn man eine neue Sprache lernt, das „Hello World“-Programm, das einfach die Worte „Hello World“ auf den Bildschirm druckt. In den meisten Sprachen ist es fast unmöglich, ein einfacheres Programm zu schreiben, und dieses Programm hat offensichtlich wenig wirklichen Nutzen. Es enthält jedoch immer noch viele der grundlegenden Teile der Sprache und eignet sich daher perfekt, um sich mit der Eingabe der Sprache vertraut zu machen.
Von hier aus können Sie etwas schreiben, das einige Zahlen addiert oder subtrahiert, und dann etwas, das Eingaben vom Benutzer entgegennimmt. Anschließend lernen Sie Bedingungen kennen, mit denen Entscheidungen getroffen werden können, und Schleifen, mit denen sich wiederholende Aufgaben ausgeführt werden. Schon bald werden Sie bereit sein, Ihr erstes Objekt zu erstellen, und an diesem Punkt können Sie damit beginnen, mit dem Erstellen vollständiger Anwendungen zu experimentieren.
3. Seien Sie geduldig
Die Kernkonzepte der Programmierung können ziemlich herausfordernd sein. Viele von ihnen sind überhaupt nicht intuitiv, wenn Sie nicht bereits wissen, wie der Computer auf einer tieferen Ebene funktioniert.
Als ich zum Beispiel anfing, fand ich das Debuggen ein ärgerlicher Prozess; es fühlte sich nicht wie Programmieren an. Anstatt neuen Code zu schreiben, der coole neue Dinge tat, verbrachte ich einen ganzen Tag damit, etwas zu durchsuchen, das ich geschrieben hatte, und versuchte herauszufinden, „Wie habe ich es diesmal vermasselt?“ Ich kratze mich am Kopf und bin bereit aufzugeben. Irgendwann stellte ich fest, dass ich irgendwo ein einzelnes Semikolon ausgelassen oder einen Tabulator anstelle eines Leerzeichens verwendet hatte, und bis ich meinen Code wieder zum Laufen brachte, war es das Ende des Tages. Ich würde mich wie ein totaler Idiot fühlen; es würde sich wie eine solche Zeitverschwendung anfühlen.

So etwas wird dir passieren, und es wird dich absolut verrückt machen. Einer der Schlüssel zum Erfolg lautet also: Seien Sie geduldig und schonen Sie sich . Einige der besten Ratschläge zu diesem Thema empfehlen, sich auf den Prozess zu konzentrieren, nicht auf die Ziele. Wenn Sie sich auf Ihr endgültiges Ziel konzentrieren („Ich möchte bis Ende Juni eine Website erstellen“), werden Sie entmutigt und fühlen sich wie ein Versager. Indem Sie sich so lange Zeit lassen, bis Sie Fortschritte machen, werden Sie erfolgreicher sein.
4. Üben Üben Üben
Wie bei jeder Fähigkeit kommt es wirklich auf Übung an, darin gut zu werden. Es gibt nichts Schöneres, als etwas zu tun, zu lernen, wie man es tut! Selbst wenn Sie nur ein paar Stunden pro Woche erübrigen können, wenn Sie regelmäßig üben, werden Sie eines Tages feststellen, dass Sie wissen, wie man programmiert. Irgendwann werden Sie eine Intuition für Dinge entwickeln, und etwas, das anfangs einen ganzen Tag gedauert hat (wie das Aufspüren eines Fehlers), kann jetzt nur noch wenige Sekunden dauern.
Wenn Sie das Gefühl haben, die Grundlagen des Programmierens mehr oder weniger verstanden zu haben, können Sie mit Ihrem ersten Projekt üben. Denken Sie an eine einfache Anwendung, die Sie erstellen möchten, z. B. eine Aufgabenliste oder einen Taschenrechner (fangen Sie auch hier klein an), und probieren Sie es aus. Dadurch lernen Sie, architektonische und gestalterische Probleme zu lösen und verschiedene Teile so zu bauen, dass sie zu einem funktionierenden Ganzen zusammenpassen. Dies sind die wesentlichen Fähigkeiten, die es Ihnen ermöglichen, sich wirklich als Programmierer zu bezeichnen.
Ressourcen
Abhängig von Ihren Zielen, Ihrem Lernstil und Ihren Mitteln möchten Sie möglicherweise verschiedene Ressourcen auf Ihrer Reise verwenden. Um Ihnen bei der Entscheidung zu helfen, welche Methoden für Sie geeignet sind, finden Sie hier eine kurze Zusammenfassung einiger Tools, die Sie verwenden können, grob geordnet von strukturierterem Lernen zu weniger strukturiertem Lernen.
Strukturiertes Lernen
Dies ist die Kategorie von Optionen, die Lehrer, Hausaufgaben, Tests, Noten, Fristen und echte Konsequenzen bieten, wenn Sie Ihr Studium nicht zu Ihrer höchsten Priorität machen. Dies sind die Optionen, bei denen Sie zum Unterricht gehen oder aus dem Programm aussteigen müssen.
Formaler Universitätsabschluss
Die teuerste, aber für viele die wertvollste Option, ein formaler Universitätsabschluss, bietet Ihnen die beste Grundlage für eine erfolgreiche Karriere in der Programmierung und Computertechnologie. Sie erhalten Anerkennung für Ihre Leistungen in Form Ihres Abschlusses (ein wichtiger Schritt nach vorne beim Eintritt in den beruflichen Markt). Aber was noch wichtiger ist, Sie werden mit einem tiefen und gründlichen Verständnis aller Computerdinge hervorgehen, und Ihre Fähigkeiten, wirklich erstklassige, effektive Software zu schreiben, werden dies widerspiegeln.
Hier sind einige der Dinge, die Sie von jedem anständigen Universitätsprogramm gründlich lernen können und für die es möglicherweise schwieriger ist, an anderer Stelle eine gründliche Anleitung zu finden.
- Elektrische Schaltungen - Die grundlegende Physik, die praktisch jeder Computerhardware zugrunde liegt.
- Digitale Logikschaltungen - Wie man Wahrheit und logische Konstrukte mit Schaltungen darstellt.
- Mikroprozessoren und Computersysteme - Wie logische Schaltkreise kombiniert werden, um eine programmierbare Rechenmaschine herzustellen. Was passiert mit all diesen kleinen Metallstiften und gedruckten Drähten?
- Betriebssysteme - Wie man einen Computer so programmiert, dass er sich selbst verwaltet, organisiert und schützt und den sicheren Betrieb mehrerer Anwendungen ermöglicht.
- Datenbanken - Wie man große Datenmengen speichert und kopiert, ohne sie zu verlieren, zu beschädigen oder das Durchsuchen unmöglich zu machen.
- Netzwerke - Wie unterschiedliche und voneinander unabhängige Computersysteme miteinander kommunizieren können.
- Höhere Mathematik - einschließlich Infinitesimalrechnung und linearer Algebra. Unverzichtbar für jede Karriere in fortgeschrittenen oder hochmodernen Bereichen.
- Signalverarbeitung - Wie man die Grenze von der analogen zur digitalen Welt und umgekehrt überschreitet.
- Numerische Methoden - Wenn reale Probleme nicht sauber in einen Computer passen.
Die Informatik- und Ingenieurschule wird Ihnen in den Arsch treten, und Sie müssen sich opfern und sich der Vollendung widmen. Aber die Belohnungen werden es wert sein. Ich kämpfte darum, meinen eigenen Abschluss zu machen, aber der Tag, an dem ich ihn erhielt, bleibt einer der stolzesten Tage meines Lebens.
Trainingslager
Sogenannte „Bootcamp“-Programme sind entstanden, um die Bedürfnisse derjenigen zu erfüllen, die nicht die Zeit oder die Ressourcen haben, um einen formalen Abschluss zu machen, aber bereit sind, hart zu arbeiten und zumindest das nötige Minimum zu lernen, um eine Karriere als Softwareentwickler zu beginnen. Sowohl hinsichtlich der Kosten als auch des erforderlichen Engagements liegen sie zwischen einem formalen Abschluss und den unten diskutierten selbstgesteuerten Optionen.
Bootcamps umfassen in der Regel 8 bis 12 Wochen intensiven Lernens und kosten etwa 10.000 US-Dollar. Sie decken in kurzer Zeit viel Material ab, in dem Sie die meisten anderen Beschäftigungen opfern müssen. Aber sie versprechen, Sie auf die reale Softwareentwicklung vorzubereiten und Sie auf die Überholspur für eine Karriere in der Programmierung zu bringen. Viele Bootcamps gipfeln in Karrieretagen oder versuchen auf andere Weise, Sie kurz nach dem Abschluss in einen bezahlten Job zu bringen.
Bootcamps sind ein relativ junges und explosives Phänomen. Daher ist es immer noch schwierig, ihre Erfolgsquote zu messen, und viele müssen noch eine nachgewiesene Erfolgsbilanz bei der Vermittlung von Absolventen in Jobs entwickeln. Vor diesem Hintergrund kann davon ausgegangen werden, dass die verfügbaren Programme nur noch besser werden, wenn diese aufkeimende neue Branche weiter wächst. Solange Sie Ihre Recherchen sorgfältig durchführen, finden Sie möglicherweise, dass dies die perfekte Option für Sie ist.
Die meisten Bootcamps sind lokale Programme, also müssen Sie sehen, was in Ihrer Stadt verfügbar ist. Wenn Sie in einer großen Metropole leben, finden Sie vielleicht auf dieser oder dieser Liste, wonach Sie suchen.
Semistrukturiertes Lernen
Jeden Tag werden mehr Ressourcen für diejenigen verfügbar, die am besten mit einem Element der Struktur und Anleitung arbeiten, aber nicht die Zeit oder die Ressourcen haben, sich für einen formalen Abschluss oder ein Bootcamp-Programm zu verpflichten. Diese Optionen werden normalerweise vollständig online angeboten und viele sind völlig kostenlos! Da die große Nachfrage nach solchen Diensten offensichtlich geworden ist, haben diese Tools schnell an Ausgereiftheit und geliefertem Wert zugenommen. Kurse in Softwareentwicklung haben natürlich einen Großteil dieser Entwicklung vorangetrieben, da das Lernen und Lehren von Software durch Software offensichtliche Vorteile hat.
Massive Open Online Courses (MOOCs)
MOOCs sind eine erstaunliche Ressource und machen große Fortschritte bei der Angleichung der Wettbewerbsbedingungen für qualitativ hochwertige und erschwingliche Bildung. Sie bieten einen Großteil der Struktur und Anleitung der weltbesten formalen Universitätskurse, sind aber online für jeden verfügbar, der über eine Internetverbindung verfügt. Viele beliebte MOOCs sind auch völlig kostenlos , obwohl für viele Kurse gegen einen Aufpreis (und eine Studienverpflichtung) auch formelle Credits erworben werden können, die den Universitäts-Credits entsprechen.
Es gibt online viele erstklassige MOOC-Plattformen mit Kursen, die von Professoren der renommiertesten Universitäten der Welt gehalten werden, und Community-Plattformen, damit Sie und Ihre Klassenkameraden auf der ganzen Welt sich gegenseitig beim Lernen helfen können. Hier sind einige der bekanntesten Anbieter:
- Coursera
- EdX
- Udacity
Beachten Sie, dass diese Kurse, wie angekündigt, Studienleistungen auf Universitätsniveau bieten. Seien Sie also besser darauf vorbereitet, hart zu arbeiten, um sie zu bestehen!
Geführte Tutorial-Websites
Wenn Sie Struktur und Anleitung mögen, aber keine Fristen, gibt es viele großartige Online-Plattformen, die automatisierte, schrittweise Schulungen durch eine Vielzahl von Bereitstellungsmethoden anbieten. Einige werden von Video-Tutorials angetrieben, andere von Text. Viele enthalten interaktive Code-Editoren, mit denen Sie in Ihrem Browser üben können. Diese geben Ihnen große Flexibilität, um in Ihrem eigenen Tempo zu lernen, sei es eine halbe Stunde Übung am Ende eines jeden Tages oder ein 10-Stunden-Marathon am Wochenende.
Während viele dieser Plattformen ein kostenpflichtiges Abonnement erfordern, um auf alle Inhalte zugreifen zu können, bieten die meisten kostenlose Testversionen an, damit Sie sofort loslegen und selbst entscheiden können, ob es für Sie funktioniert.
- Kahn Akademie
- Udemy
- Codeakademie
- Code Avengers
- Code-Schule
- Baumhaus
- Lynda
- Plural Sicht
Dies ist nur eine kurze Liste, also suchen Sie herum und sehen Sie, was es sonst noch gibt!
Unstrukturiertes Lernen
Für diejenigen, die ohne den Druck eines strukturierten Unterrichts ihren eigenen Weg finden oder ihr Wissen in ihrer Freizeit verbessern möchten, bieten die folgenden Tools einen selbstgesteuerten Ansatz. Selbst wenn Sie einen der oben genannten Ansätze wählen, finden Sie viele dieser Ressourcen möglicherweise hilfreich, um Ihr Lernen zu ergänzen oder eine Plattform zum Üben bereitzustellen.
Drill-Websites
Wenn Ihr Ziel nur darin besteht, das Lösen von Programmierproblemen zu üben, ist das Internet wieder einmal für Sie da. Die folgenden Websites bieten ständig wachsende Codierungsherausforderungen sowie interaktive Codierungsschnittstellen, um Probleme zu lösen, Ihre Lösungen spontan zu bewerten und zu vergleichen, wie sie sich mit den Lösungen anderer Benutzer schlagen.
- Übung.io
- CheckiO
- CodeChef
- CodeEval
- Codekriege
- Kodilität
- HackerRank
Videos
Das passive Erlernen des Programmierens ist nur begrenzt praktikabel, aber wenn Sie einige der tieferen Konzepte zwischen Meetings oder bei einem Glas Wein am Abend aufnehmen möchten, gehören diese Vortragsreihen zu den besten auf dem Markt. Wenn Ihnen so etwas gefällt, sehen Sie sich an, was sonst noch auf YouTube und im Internet verfügbar ist.
- MIT OpenCourseWare
- Vorlesungsreihe der Stanford University
Bücher
Trotz all der verfügbaren Wunder der Technologie gibt es für viele Menschen immer noch nichts Besseres als ein gutes Buch, in das sie eintauchen und ein tiefes Verständnis für ein Thema erlangen können. Wenn Sie auf diese Weise lernen möchten, sehen Sie sich Toptals Liste der besten kostenlosen Programmierbücher an.
Abschließend
Programmieren lernen ist eine sehr persönliche Reise. Jeder beginnt mit unterschiedlichen Ressourcen und unterschiedlichen Zielen und trifft auf dem Weg auf unterschiedliche Herausforderungen und Chancen. Machen Sie sich keine Gedanken darüber, was andere tun oder wie sie dorthin gekommen sind. Auch für erfahrene Programmierer endet die Reise nie, da es ständig Neues zu lernen gibt.
Also, mein Rat an Sie ist, gehen Sie es langsam an und genießen Sie die Reise! Es gibt viel zu entdecken und eine Welt voller Wunder erwartet Sie. Eine Reise von tausend Meilen beginnt mit einem einzigen Schritt. Hier sind ein paar gute Schuhe. Viel Glück!