CodeGym /Java-Blog /Random-DE /Auswahl einer Programmiersprache
John Squirrels
Level 41
San Francisco

Auswahl einer Programmiersprache

Veröffentlicht in der Gruppe Random-DE
Mit dem Programmieren bin ich zum ersten Mal in der Schule im Informatikunterricht in Berührung gekommen. Diese bestanden aus einigen langwierigen Erklärungen zur Funktionsweise n-ärer Zahlensysteme. Und natürlich gab es einen Test, bei dem Sie eine eigene Website schreiben mussten. Damals schien es mir, dass es keinen langweiligeren Beruf geben könnte. Wie falsch lag ich! Leider vermittelt ein Informatikprogramm an einer weiterführenden Schule kein vollständiges Bild der IT-Arbeit und erklärt nicht, wie man eine Programmiersprache auswählt. Bevor sich ein Anfänger die Frage „Welche Programmiersprache soll ich lernen?“ stellt, sollte er sich damit vertraut machen, welche Sprachen es gibt und wie sie sich voneinander unterscheiden. Auswahl einer Programmiersprache – 1

Eintrittsschwelle: Hoch, niedrig, mittel

Programmierer sprechen oft von der „Eintrittsschwelle“ – ein Konzept, das den Aufwand widerspiegelt, den ein bestimmter „Junior-Entwickler“ benötigt, um eine Programmiersprache ausreichend gut zu beherrschen, um sein erstes ernsthaftes Programm zu schreiben und einen Job zu finden. Die „Eintrittsschwelle“ besteht aus Kenntnissen über:
  • Syntaxbesonderheiten und Nuancen der Sprache
  • Bibliotheken
  • Algorithmen und Datenstrukturen.
Das Arbeiten in Excel könnte man sogar als eine Art Programmierung bezeichnen. Dieses bekannte Office-Programm ist übrigens nicht so einfach, wie es scheint. Für einen Benutzer könnte die Eintrittsschwelle die Möglichkeit sein, eine Tabelle zu erstellen. Zum anderen könnten es Kenntnisse über komplexe Formeln und Makros sein. In beiden Fällen ist dieser Schwellenwert gering. Als nächstes kommen Quasi-Sprachen wie die 1C -Programmierung. Dann gibt es noch die am einfachsten zu erlernenden Sprachen, z. B. PHP . Darüber hinaus verfügen wir über Sprachen mit nativer Syntax (normalerweise abgeleitet vom Englischen), für die Sie sich nicht um die Speicherverwaltung kümmern müssen, z. B. Java und JS . Dann gibt es Sprachen, die einen äußerst sorgfältigen Umgang mit Speicher, Datenstrukturen und Algorithmen erfordern, zum Beispiel C undC++ . Junge Sprachen mit mehreren Paradigmen, zum Beispiel Scala , haben vielleicht die höchste Einstiegsschwelle, denn um sie zu beherrschen, muss man tief in so viele Programmierparadigmen eintauchen. Bevor Sie sich jedoch für eine Sprache entscheiden, sollten Sie entscheiden, was Sie als Nächstes tun möchten: für das Web, Unternehmen, Desktop oder mobile Geräte entwickeln.

Web oder nicht Web?

Netz

Webprogrammierer können in Frontend- und Backend- Entwickler unterteilt werden. Sie sollten verstehen, was diese Begriffe bedeuten. Frontend-Entwickler sind an der Client-Seite beteiligt, also daran, was der Benutzer sieht. Im „Backend“ geht es um die Bearbeitung und Speicherung von Daten – dem Teil eines Dienstes, der auf einem Server ausgeführt wird. Für einen Frontend- Entwickler, der entscheidet, welche Programmiersprache er lernen möchte, sind JavaScript und JavaScript-Frameworks (Angular JS, React und andere) unerlässlich. JS-Dialekte wie CoffeeScript und TypeScript sind nicht so beliebt wie ihre Eltern, können aber auch nützlich sein. Es gibt auch ein Flash AS, und früher gab es JScript und VBScript, aber nur Dinosaurier erinnern sich daran =) Darüber hinaus müssen Sie HTML verstehenund CSS . Auswahl einer Programmiersprache – 2Viele Anfänger denken, dass JavaScript und Java fast dasselbe sind. Verwechseln Sie diese Sprachen nicht. JS hieß früher „LiveScript“ und erhielt seinen heutigen Namen nur aufgrund der Beliebtheit des Wortes „Java“. Für einen Web-Backend- Entwickler sind PHP, Python, Ruby, Perl und Java geeignet. Hier möchte ich mich auf PHP konzentrieren (über die anderen Sprachen sprechen wir später). PHP ist eine der am einfachsten zu erlernenden Sprachen mit einer niedrigen Einstiegsschwelle. Laut einer Umfrage unter bekannten Webentwicklern erfreut sich Ruby langsam aber sicher wachsender Beliebtheit – es wird wegen seiner Prägnanz und Schönheit geliebt.

Nicht Web (Unternehmen, Desktop, Mobilgerät)

Ich habe die folgenden Programmiersprachen absichtlich mit einem seltsamen Namen in dieser Kategorie zusammengefasst. Mit den meisten davon können Sie Unternehmens-, Desktop- und sogar mobile Anwendungen schreiben. Python ist eine leicht verständliche objektorientierte Programmiersprache und erfreut sich in letzter Zeit aufgrund des Wachstums des maschinellen Lernens (ML) großer Beliebtheit: ML-Entwickler nutzen Python in großem Umfang. MList ein relativ neuer Bereich in der IT, und obwohl wir bereits gesehen haben, dass er Früchte trägt, würde ich mich bei der Auswahl einer Programmiersprache nicht auf diese Branche stürzen. Zunächst benötigen Sie ein AUSGEZEICHNETES Verständnis der Mathematik. Zweitens könnte die Welle der Popularität auf die gleiche Weise weitergehen wie bei „Blockchain“ oder „Nanotechnologie“. Sie erinnern sich vielleicht daran, dass Python in der Webentwicklung verwendet wird. C++: eine klassische Sprache, in der alles auf dem „Plus-Plus“-Operator basiert. Diese Sprache ist der Vorfahre aller gängigen objektorientierten Programmiersprachen und ein Anfänger sollte ihr unbedingt Aufmerksamkeit schenken. Viele beliebte Anwendungen wurden damit geschrieben. Aber die hervorragende Chance, sich selbst ins Bein zu schießen, und die schwer verständliche Syntax lassen die Wahrscheinlichkeit, dass ein Anfänger dieses Meisterwerk der Programmierung beherrscht, auf Null sinken. Kotlin, das wie Java für Hipster ist, ist eine verrückte Mischung aus OOP und funktionaler Programmierung. Es erfreut sich in letzter Zeit großer Beliebtheit, da ein erfahrener Entwickler durch den Wechsel von Java zu Kotlin seine Produktivität erheblich steigern kann. Ein erfahrener Entwickler wird sich schnell mit dieser Programmiersprache vertraut machen. Das Gleiche gilt übrigens auch für Scala, allerdings ist Kotlin in der Android-Welt beliebt. Java ist für Anfänger leicht zu erlernen. Vor allem mit Hilfe von CodeGym =) ist die Java-Syntax verständlich und es besteht zwar die Gefahr, sich „selbst ins Bein zu schießen“, aber nicht kritisch.

OOP oder POP?

Der prozessuale Ansatz

Der prozedurorientierte Ansatz beinhaltet das Schreiben eines Programms, das aus sequentiellen Anweisungen besteht, die zu einem einheitlichen Ganzen zusammengesetzt werden können, um eine bestimmte Reihe von Problemen effektiv zu lösen. Zu diesen Sprachen gehören C , PureBasic und Pascal . Mit anderen Worten, die Sprachen, die Oberstufenschülern und Studenten Verzweiflung bereiten. Es gibt auch den relativ jungen GOSprache. Allerdings ist es für einen potenziellen Entwickler sehr nützlich, mit prozeduralen Sprachen vertraut zu sein. Mein Eintauchen in prozedurale Sprachen erfolgte mit dem Wolfram Mathematica-System und universitärer Forschung. Richtige Algorithmen und einfache Verfahren, die sich linear vom Anfang des Programms bis zum Ende bewegen, ermöglichten es mir, Werte zu berechnen, die für die moderne theoretische Physik relevant sind. Diese „sequentielle“ Programmiersprache ist genau das Richtige, um Ihnen zu verdeutlichen, dass es manchmal einfacher ist, Code zu schreiben, der Berechnungen manuell durchführt. Das Erlernen verfahrensorientierter Programmierung (POP) bietet eine gute algorithmische Ausbildung, die ein Arbeitgeber fast immer bei einem Bewerber sehen möchte. Absolut alles in der IT basiert auf prozeduralen Sprachen, also unterschätzen Sie sie nicht. Übrigens, Anfänger, die sich für eine Programmiersprache entscheiden, denken oft, dass nur OOP-Sprachen Multithreading unterstützen. Das ist nicht wahr. Prozedurale Programmiersprachen ermöglichen auch parallele Berechnungen. Auswahl einer Programmiersprache – 3

Der objektorientierte Ansatz

Diejenigen, die mit prozeduralen Sprachen begonnen haben, sind in der Regel gut mit Mathematik, Algorithmen und Datenstrukturen vertraut (aufgrund des Schwerpunkts technischer Universitäten auf diesen Bereichen). Dennoch sieht die Realität heute so aus, dass erfolgreiche Programmierer in der Regel diejenigen sind, die einen anderen Programmieransatz beherrschen: das objektorientierte Paradigma. Mit der OOP-Ideologie können Sie wirklich globale Systeme aufbauen. Ein Merkmal dieses Ansatzes ist seine Ähnlichkeit mit der realen Welt:
  • Verschiedene Objekte interagieren miteinander und existieren unabhängig voneinander.
  • Objekte haben eine Hierarchie und können das Verhalten ihrer Vorfahren übernehmen oder ändern.
  • Sie können abstrakte Konzepte verwenden, aber nur tatsächlich existierende Objekte können interagieren.

Beispiel

Verfahrensorientierte Sprachen sind Werkzeuge zur Lösung spezifischer Probleme. Wenn sich Ihre Aufgabe auch nur geringfügig ändert, müssen Sie wahrscheinlich Zeit und Mühe aufwenden, um alle Algorithmen neu zu schreiben.

Stellen Sie sich ein Programm vor, das ein Autohaus beschreibt, das sowohl neue als auch gebrauchte Autos und Lastwagen verkauft. In einer prozeduralen Sprache müssen Sie Funktionen definieren, die die Eingabe oder Ausgabe von Daten für jede Entität verarbeiten: ein neues Auto, ein neuer LKW, ein Gebrauchtwagen und ein gebrauchter LKW. Was bietet OOP? Bei einem objektorientierten Ansatz müssen wir lediglich eine Fahrzeug-Basisklasse definieren, die die gemeinsamen Merkmale aller Fahrzeugtypen speichert:

  • Machen
  • Hubraum
  • Pferdestärken
  • Jahr
  • Neu oder gebraucht
  • Preis

Und Methoden zum Aufnehmen und Versenden von Informationen. Dann erstellen wir Objekte, die die Eigenschaften der Fahrzeugklasse erben: Auto und LKW. Sie enthalten fahrzeugspezifische Informationen sowie Ein-/Ausgabemethoden.

Plötzlich beschließt die Geschäftsführung des Autohauses, das Angebot um das Angebot von Motorrädern zu erweitern. Beim prozeduralen Ansatz müssten wir die gesamte Logik für neue und gebrauchte Motorräder neu erstellen, während wir mit einer OOP-Sprache einfach eine neue Motorradklasse erstellen können, die alle Merkmale der Fahrzeug-Superklasse erbt und motorradspezifische Verfeinerungen enthält.

Und was würde passieren, wenn wir verschiedene Fahrzeuge hinzufügen würden? Eine prozedurale Implementierung würde mehr Arbeit erfordern als OOP. Und je größer die Aufstellung, desto weniger Operationen mit Objekten sind erforderlich.

OOP ist also ein Programmierstil, der es Ihnen ermöglicht, Daten und Methoden in einer einzigen Entität zu kombinieren und mit ihnen als einheitliches Objekt zu arbeiten. Entitäten können in einer Hierarchie angeordnet werden und miteinander interagieren, ohne sich mit den internen Implementierungsdetails des jeweils anderen zu befassen. Ich nenne drei Gründe, warum OOP für mich der fortschrittlichere Ansatz ist:
  1. Bei OOP handelt es sich um die unabhängige Entwicklung einzelner Module, die es einem Programmierer oder Team ermöglicht, die Methode und Grenzen des Kontakts und Informationsaustauschs zu wählen.
  2. In kleine Module unterteilter Code ist viel einfacher zu lesen als monolithische Prozeduren. Dadurch kann ein Außenstehender Ihren Code schnell verstehen und Sie können bei Bedarf einem neuen Projekt beitreten.
  3. Eine Klasse kann geändert werden, ohne die Interaktion einer anderen Klasse zu beeinträchtigen, eine solche Änderung kann sich jedoch auf die Hierarchie untergeordneter Objekte auswirken. Sobald Sie diesen Ansatz beherrschen, wird das Erweitern und Ändern eines Programms zu einem Kinderspiel.
Denken Sie daran, dass ein Ansatz nicht im Widerspruch zum anderen steht, OOP jedoch immer noch höher in der Hierarchie steht. Warum empfehle ich Java? Folgende Gründe möchte ich hervorheben:
  1. Plattformübergreifend.

    Dank der Java Virtual Machine (JVM) funktioniert Java überall. Einer der Hauptvorteile dieser Sprache ist ihre plattformübergreifende Natur: Sie müssen nicht darüber nachdenken, welche Bibliothek hinzugefügt werden soll oder welche Architektur ein bestimmter Prozessor hat. „Einmal schreiben, überall hinlaufen.“

  2. Dokumentation.

    Es gibt eine enorme Dokumentationsbasis: offizielle Oracle-Dokumentation, Schulungsportale und eine sich ständig weiterentwickelnde Community. Auf die meisten Fragen, die während der Entwicklung auftauchen, lassen sich in wenigen Minuten Antworten finden. Die Hauptsache ist zu verstehen, was man in die Suchmaschine eingeben muss =)

  3. Popularität.

    Java ist die beliebteste Programmiersprache der Welt: Neben den oben genannten Android- und Webentwicklern schreibt fast jeder Unternehmensentwickler in Java. Unter Enterprise versteht man die für die Bedürfnisse großer Konzerne notwendige interne Unternehmensentwicklung.

    Jedes Jahr sagen Hasser den „Tod Javas“ voraus. Sie sagen: „ Oracle wird die Unterstützung einstellen. Sie verschwenden völlig Ihre Zeit. “ Das ist nicht wahr! Sie versprechen, alle sechs Monate neue Java-Versionen zu veröffentlichen.

    Für mich waren die Lambda-Ausdrücke in Java 8 revolutionär und eine Offenbarung, ganz zu schweigen von den neuen Versionen! Ich arbeite derzeit an einem „Legacy“-Projekt, daher beschäftige ich mich nicht mit den neuesten Innovationen, aber es ist eine Tatsache, dass Java lebt.

    Auswahl einer Programmiersprache – 4
  4. Android.

    In den letzten vier Jahren hat Android durchweg mehr als 80 % des Mobiltelefonmarktes inne . Fernseher, Mediaplayer und sogar Auto-Infotainmentsysteme laufen auf diesem Betriebssystem. Und die App-Entwicklung für dieses Betriebssystem erfolgt hauptsächlich in Java. Stellen Sie sich vor, welche Perspektiven sich eröffnen. Als ich einen Job als Android-Entwickler bekam, fragte ich mich, wie viel das Produkt, das ich entwickelte, wert war. Wie sich herausstellte, betrug der Preis etwa 5 US-Dollar pro Jahr. Da stellt sich die Frage: „Woher kommt dann das Geld für dieses Büro, die Gehälter, den Snackraum, die Tischtennisplatte, die Roboter und andere Vergünstigungen?“ Die Antwort liegt im Volumen: Unsere App hat 20 Millionen Nutzer.

  5. Gehälter.

    Und jetzt das Tüpfelchen auf dem i: Das Gehalt eines Java-Entwicklers gehört zu den höchsten der Branche. Schließlich planen Sie, Programmieren aus einem bestimmten Grund zu studieren: um einen guten Job zu bekommen.

Die Popularität der Programmiersprache

Es gibt offizielle Informationsquellen, also wenden wir uns an sie. Laut TIOBE belegt Java (Stand Oktober 2019) den ersten Platz. Im PYPL- Ranking belegt Java den zweiten Platz, weit vor JS und konkurriert mit dem trendigen Python.

Abschluss

Wenn ein Anfänger über die Wahl einer Programmiersprache nachdenkt, sollte er oder sie Folgendes beachten:
  • Beliebtheit (Java nimmt durchweg eine Spitzenposition ein)
  • Eintrittsschwelle (für Java ist sie mittel: Arbeitgeber verlangen ein ziemlich breites Spektrum an Fähigkeiten)
  • Verfügbare Materialien (Willkommen bei CodeGym =))
  • Einsatzgebiete: Je mehr Einsatzgebiete eine Programmiersprache hat, desto mehr Spezialisten werden auf dem Markt benötigt. Ich habe bereits erwähnt, wie Java die plattformübergreifende Entwicklung unterstützt, werde aber nicht müde, es zu wiederholen.
Natürlich gibt es überall Fallstricke, aber wer einen Schritt macht, kommt voran: Nur Sie können entscheiden, welche Programmiersprache Sie wählen. Viel Glück beim Lernen!
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION