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.
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 . Viele 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.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:
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. |
- 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.
- 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.
- 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.
-
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.“
-
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 =)
-
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.
-
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.
-
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.
GO TO FULL VERSION