Unter der Schicht von Code schlägt eine Sprache, die danach dürstet, erlernt zu werden.

Zum Zeitpunkt des Schreibens dieses Artikels bringt die Suche nach «welche Programmiersprache sollte man als erstes lernen» 517 Millionen Suchergebnisse. Jede dieser Webseiten lobt eine bestimmte Sprache, und 90 % von ihnen empfehlen letztendlich Python oder JavaScript.
Ohne lange Umschweife möchte ich offiziell erklären, dass alle 517 Millionen Webseiten falsch liegen und verkünden, dass die Sprache, die man zuerst lernen sollte — fundamentale Logik.
Es reicht nicht aus, nur zu wissen, wie man codiert. Der Markt ist so gesättigt mit Absolventen von Universitäten und Kursen, dass die Position eines Junior Entwicklers praktisch nicht mehr existiert. Um in der heutigen Welt erfolgreich zu sein, müssen Sie sowohl codieren als auch über fortgeschrittenes fundamentales logisches Denken verfügen.
* Hier und weiterhin beachten Sie bitte, dass dies eine Übersetzung ist und die Situation auf dem Arbeitsmarkt für den Autor und in Ihrem Land unterschiedlich sein kann (wie auch andere Nuancen), was jedoch den Originalartikel nicht schlechter macht — Anm. d. Ü.
Meine erste Informatikstunde
Mein erstes Treffen mit der Informatik war ein Wahlfach, das ich in der 10. Klasse belegte. Am ersten Tag, als ich den Klassenraum betrat, war ich begeistert, eine große Menge Eiscreme-Eimer und verschiedene Toppings vor mir zu sehen. Nachdem sich alle gesetzt hatten, verkündete die Lehrerin:
„Heute werden wir selbstgemachte Cremespeisen probieren. Aber unter einer Bedingung: Sie müssen eine Liste konkreter Anweisungen erstellen, wie man das Dessert zubereitet, und ich werde diesen folgen“
„Kein Problem“, dachte ich, „diese Stunde wird nicht lange dauern“. Nach etwa einer Minute hatte ich ein großartiges Rezept für mein Traumeis skizziert:
- Drei Kugeln Himbeereis in eine Schüssel schöpfen und legen
- Die Schokoladensauce öffnen und zwei Esslöffel in dieselbe Schüssel hinzufügen
- Schlagsahne in die Schüssel geben
- Alles mit Zuckerstäbchen bestreuen und eine Kirsche oben drauf legen
Meine Lehrerin — der „Computer“ in dieser netten Metapher — gab eine sarkastischere, wörtlichere Darstellung, als ich je zuvor gesehen hatte. Sie stach begeistert mit einem Eislöffel in den Eimer Eis, ohne auch nur den Deckel zu berühren.
„Gut, gut, aber zuerst muss man ihn öffnen!“, rief ich, während ich versuchte, die Leckerei schneller zu bekommen.
„Du hast das nicht in die Anleitung geschrieben, und ich konnte dir kein Eis zubereiten. NÄCHSTER!“
Lass uns die Zeit bis Versuch Nr. 2 überbrücken
- Öffne das himbeereis, indem du den Deckel abnimmst
- Drei Kugeln Himbeereis in eine Schüssel schöpfen und legen
- Die Schokoladensauce öffnen und zwei Esslöffel in dieselbe Schüssel hinzufügen
- Schlagsahne in die Schüssel geben
- Bestreue das Ganze mit Zuckerstangen und lege eine Kirsche oben drauf
Nun sollte es wirklich keine Probleme mehr geben. Ich habe sogar vorsichtshalber sichergestellt, dass alle Zutaten für mein kulinarisches Meisterwerk bereitliegen.
Die Lehrerin nahm den Deckel ab, schöpfte und legte drei Kugeln Eis in die Schüssel. „Endlich beginnt mein wunderbarer Rahmeis, Realität zu werden!“ Dann öffnete sie die Schokoladensauce und fügte zwei Esslöffel in die Schüssel hinzu. Sie „fügte zwei Esslöffel Schokoladensauce hinzu“ – denkt nicht falsch – sie legte natürlich die Löffel selbst in die Schüssel. Ohne Sauce in ihnen. Wieder einmal habe ich es versäumt, alles genau zu beschreiben. Nachdem alles im gleichen Geiste erledigt war, hielt ich eine Schüssel mit Eis und zwei Löffeln in der Hand, die kaum unter einem Meer von Schlagsahne sichtbar waren. Obenauf lagen ein paar Zuckerstangen.
Es scheint, dass ich in diesem Moment endlich begriffen habe: Der Computer ist Logik im Vakuum. Er kennt die Umstände nicht und zieht keine Schlussfolgerungen. Er befolgt nur klar formulierte Anweisungen und folgt ihnen Wort für Wort.
Mein Endergebnis war das Resultat einer langen, aber notwendigen Reihe von Versuch und Irrtum:
- Öffne, falls dies noch nicht geschehen ist, jede der folgenden Verpackungen: Himbeereis, Schokoladensauce, Schlagsahne, Zuckerstangen.
- Nimm eine Schüssel und stelle sie vor dich
- Nimm einen Eisportionierer und lege nacheinander drei Kugeln Himbeereis in die Schüssel. Lege den Eisportionierer zurück an seinen Platz.
- Nimm die Flasche mit der Schokoladensauce, schöpfe Sauce und gieße den Inhalt eines Esslöffels in die Schüssel. Wiederhole das Schöpfen und Gießen mit der Sauce noch einmal. Lege den Löffel und die Flasche zurück an ihren Platz.
- Nimm die Verpackung mit der Schlagsahne und halte sie kopfüber über die Schüssel, und gieße sie für 3 Sekunden über das Eis, bevor du die Verpackung wieder an ihren Platz zurücklegst.
- Nimm die Flasche mit den Zuckerstangen, schütte etwa vierzig Stangen in die Schüssel und lege die Flasche zurück an ihren Platz.
- Nimm eine Kirsche aus der Kirschen-Schüssel und lege sie oben auf das Eis.
- Übergib dem Schüler die Schüssel mit dem fertigen Rahmeis und den Löffel.
Der letzte Punkt war besonders wichtig, denn ohne ihn begann die Lehrerin beim vorletzten Mal einfach, mein Eis zu essen.
Aber das ist Programmierung. Eine angespannte Erstellung eines sorgfältigen Satzes von Anweisungen für den Computer. Im Grunde genommen ist das, worauf es bei jeder Programmiersprache ankommt — das Verfassen von Anweisungen.
Karriere in der Programmierung
Programmierung hat einen Punkt erreicht, an dem es schwierig ist, sie als einzelne Branche zu besprechen, genauso wie es schwierig ist, das Wort „Programmierer“ als Beschreibung für eine Stelle zu verwenden. Zwei Entwickler können vom Markt gleich gefragt sein, obwohl sie völlig unterschiedliche Sprachen beherrschen, und das bedeutet, dass die Fähigkeit, zu entwickeln, wichtiger ist als das Wissen über eine bestimmte Sprache. Ein universelles Attribut, das allen erfolgreichen Entwicklern gemeinsam ist — fundamentale Logik.
Der beste Programmierer ist derjenige, der in der Lage ist, den Code aus einem neuen Blickwinkel zu betrachten. Und das ist grundlegend wichtig, denn die meisten Softwareprodukte sind eine Ansammlung von undokumentierten Fragmenten schlechten Codes. Sie müssen ständig wieder zusammengefügt werden, während man die Lücken nach Bedarf schließt. Menschen, die nicht in der Lage sind, unzusammenhängende Punkte mit einer einzigen Linie zu verbinden, werden für immer in der zweiten Reihe stehen müssen.
All dies führt mich zu einer weiteren Deklaration, diesmal fettgedruckt: Fundamentale Kenntnisse waren immer und werden immer von höchster Bedeutung für Programmierer sein..
Sprachen kommen und gehen. Frameworks veralten, und Unternehmen reagieren auf die Nachfrage, indem sie den Technologie-Stack ändern. Gibt es etwas, das sich nie ändern wird? Ja — fundamentale Kenntnisse, die so genannt werden, weil sie die Basis für alles bilden!
Wie man fundamentale Kenntnisse verbessert
Foto von Christopher auf
Wenn Sie einen Ausgangspunkt zur Verbesserung des fundamentalen logischen Denkens suchen, versuchen Sie, hier zu beginnen:
Kennen Sie die Komplexität Ihres Programms
auch bezeichnet als Big O Die „Algorithmuskomplexität“ bezieht sich auf die Abhängigkeit der Zeit, die für die Ausführung eines Programms benötigt wird, von der Größe seiner Eingabedaten. (n). Es ist ein wichtiger Schritt, die verwendeten Algorithmen im Auge zu behalten.
Kennen Sie Ihre Datenstrukturen
Datenstrukturen sind das Fundament jeder modernen Software. Zu wissen, welche Struktur in welchem Fall verwendet werden sollte, ist eine eigenständige Disziplin. Datenstrukturen stehen in direktem Zusammenhang mit der Komplexität zur Laufzeit, und die Wahl der falschen Struktur kann zu grundlegenden Leistungsproblemen führen. Die Suche nach einem Element in einem Array ist gleich O(n), was auf die Kosten der Verwendung von Arrays als Eingabedaten hinweist. Die Suche in einer Hash-Tabelle ist O(1), was bedeutet, dass in diesem Fall die Suchzeit für einen Wert unabhängig von der Anzahl der Elemente ist.
Zu meinen Vorstellungsgesprächen kamen Menschen, die behaupteten, die Suche in einem Array sei schneller als in einer Hash-Tabelle. Das war ein sicheres Zeichen dafür, dass man sie nicht einstellen sollte – kenne deine Datenstrukturen.
Lies / Schau / Höre
Solche Seiten wie , und sind eine ausgezeichnete Wahl, um neue Programmiersprachen zu lernen. Aber für die Grundlagen greife auf Bücher über allgemeine Prinzipien, Praktiken und Kodierungsstile zurück. Die am häufigsten empfohlenen Bücher sind „Entwurfsmuster“, „Refactoring: Verbesserung bestehender Codes“, „Code komplett“, „Sauberer Code“ und „Der pragmatische Programmierer“. Schließlich sollte jeder Entwickler eine Kopie der „“ zur Hand haben.
Übung macht den Meister!
Du kannst kein Spiegelei braten, ohne Eier zu brechen. Solche Seiten wie , , , und bieten Tausende interessanter Aufgaben zur Überprüfung deiner Kenntnisse über Datenstrukturen und Algorithmen. Versuche dein Glück bei der Lösung eines Problems, das dich anspricht, lade deine Version auf Github hoch und schaue dir danach an, wie andere dazu gekommen sind. Das bringt uns zum letzten Punkt:
Lies den Code anderer
Der größte Fehler, den man auf dem Weg der Softwareentwicklung machen kann, ist, diesen Weg allein zu gehen. Softwareentwicklung ist zu einem großen Teil Teamarbeit. Wir erstellen zusammen Standards, machen zusammen Fehler und trotz aller Rückschläge werden wir gemeinsam besser. Die Zeit, die du mit dem Lesen des Codes anderer verbringst, wird sich vielfach auszahlen. Stelle nur sicher, dass es sich um guten Code handelt.
Der beste Rat, den ich Ihnen geben kann, ist, sich niemals dafür zu schämen, etwas noch nicht zu wissen. Wie bereits erwähnt, ist unsere Branche riesig und die Anzahl der Technologien ist überwältigend. Es erfordert viel Zeit und Mühe, um ein Gesamtbild zu entwickeln, noch mehr, um in etwas Bestimmtem ein Profi zu werden, und um ein Meister in seinem Bereich zu werden, benötigt man noch viel mehr. Ich werde Sie wissen lassen, wenn ich es selbst erreicht habe.
Quelle: habr.com
