JavaRush /Java-Blog /Random-DE /Auswahl einer Programmiersprache

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. Dies waren einige langwierige Erklärungen der Prinzipien n-ärer Zahlensysteme. Nun, als Test musste ich meine eigene Website schreiben. Dann kam es mir so vor, als gäbe es keine langweilige Beschäftigung mehr auf der Welt. Wie falsch lag ich! Leider vermittelt der schulische Informatiklehrplan kein vollständiges Bild der Arbeit in der IT und es ist nicht klar, wie man eine Programmiersprache auswählt. Auswahl einer Programmiersprache – 1Bevor sich ein Anfänger die Frage „Welche Programmiersprache soll er lernen“ stellt, sollte er sich mit den existierenden Sprachen und ihren Unterschieden vertraut machen.

Eintrittsschwelle: hoch, niedrig, mittel

Unter Programmierern hört man oft von der „Eintrittsschwelle“ – ein Konzept, das den Aufwand widerspiegelt, den ein einzelner „Junior“ benötigt, um eine Programmiersprache auf einem ausreichenden Niveau zu beherrschen, um sein erstes ernsthaftes Programm zu schreiben und einen Job zu finden. Die „Eintrittsschwelle“ besteht aus Wissen:
  • Merkmale der Syntax und Nuancen der Sprache;
  • Bibliotheken;
  • Algorithmen und Datenstrukturen.
Tatsächlich kann sogar die Arbeit in Excel als eine Art Programmierung bezeichnet werden. Dieses bekannte Office-Programm ist übrigens nicht so einfach, wie es scheint. Die Eintrittsschwelle wird zum einen die Fähigkeit sein, eine Tabelle zu erstellen, zum anderen die Kenntnis komplexer Formeln und Makros. In jedem Fall ist diese Schwelle gering. Als nächstes kommen Quasi-Sprachen: zum Beispiel die 1C- Programmierung. Dann – die am einfachsten zu erlernenden Sprachen: zum Beispiel PHP . Als nächstes folgen Sprachen mit nativer (normalerweise vom Englischen abgeleiteter) Syntax, die keine manuelle Interaktion mit dem Speicher erfordern: zum Beispiel Java , JS . Dann gibt es Sprachen, die einen äußerst sorgfältigen Umgang mit Speicher, Datenstrukturen und Algorithmen erfordern: zum Beispiel C , C++ . Junge Multiparadigmensprachen haben möglicherweise die höchste Eintrittsbarriere, denn um sie zu beherrschen, muss man mehr als einen Hund in anderen Programmiersprachen fressen: zum Beispiel Scala . Aber zunächst sollten Sie bei der Auswahl einer Sprache entscheiden, was Sie als nächstes tun möchten: Web-, Unternehmens-, Desktop- oder mobile Anwendungen entwickeln.

Web oder nicht Web?

Netz

Webprogrammierer können in Frontend- und Backend-Entwickler unterteilt werden . Es lohnt sich zu verstehen, was diese Begriffe bedeuten. „Frontend“-Entwickler befassen sich mit der sogenannten Client-Seite – dem, was der Benutzer sehen wird. „Backend“ ist der Software- und Hardware-Teil des Dienstes – was auf dem Server läuft. Für einen Frontend- Entwickler, der sich für eine Programmiersprache entscheidet, ist JavaScript und seine Frameworks ein Muss : Angular JS, React und andere. JS-Dialekte sind nicht so beliebt wie ihre Eltern, können aber auch nützlich sein: CoffeeScript, TypeScript. Es gibt auch Flash AS, bevor es JScript und VBScript gab, aber nur Dinosaurier erinnern sich daran =) Außerdem müssen Sie HTML und CSS verstehen .
Auswahl einer Programmiersprache - 2
Viele Anfänger denken, dass JavaScript und Java fast dasselbe sind; diese Sprachen sollten nicht verwechselt werden. JS hieß früher „LiveScript“ und erhielt seinen heutigen Namen gerade aufgrund der Popularität des Wortes „Java“. Als Web-Backend eignen sich PHP, Python, Ruby, Pearl, Java . Hier möchte ich die Aufmerksamkeit auf PHP lenken – über andere Sprachen werden wir später sprechen – eine der am einfachsten zu erlernenden Sprachen, die eine niedrige Einstiegsschwelle hat. Laut einer Umfrage unter bekannten Webentwicklern erfreut sich Ruby langsam aber sicher wachsender Beliebtheit: Es wird wegen seiner Kürze und Schönheit geliebt.

Nicht-Web (Unternehmen, Desktop, Mobil)

Ich habe diese Programmiersprachen speziell in eine Kategorie mit einem so seltsamen Namen eingeteilt. Die meisten von ihnen können zum Schreiben von Unternehmens-, Desktop- und sogar mobilen Anwendungen verwendet werden. Python , ein leicht verständliches OOLP, ist in letzter Zeit aufgrund der Entwicklung des maschinellen Lernens unglaublich beliebt geworden : Seine Anhänger verwenden Python in großem Umfang. ML ist ein relativ junger Bereich in der IT, und obwohl die ersten Früchte bereits Früchte getragen haben, würde ich bei der Auswahl einer Programmiersprache nicht voreilig in diese Branche eintauchen. Erstens müssen Sie SEHR gut in Mathe sein. Zweitens könnte die Popularitätswelle in die gleiche Richtung verlaufen wie bei „Blockchain“ oder „Nanotechnologie“. Darüber hinaus wird Python, wie Sie sich erinnern, in der Webentwicklung verwendet. C++ : klassisch, alles ist auf Basis der „Pluspunkte“ aufgebaut. Diese Sprache war der Vorläufer aller gängigen OOLPs und ein Anfänger sollte ihr unbedingt Aufmerksamkeit schenken. Viele beliebte Anwendungen basieren darauf. Aber die hohe Wahrscheinlichkeit, sich selbst ins Bein zu schießen, und die schwer verständliche Syntax machen die Wahrscheinlichkeit zunichte, dass ein Anfänger dieses Meisterwerk der Programmierung beherrscht. Kotlin – Java für Hipster – eine verrückte Mischung aus OOP und funktionaler Programmierung. In letzter Zeit beliebt, da ein erfahrener Entwickler, der von Java auf Kotlin umsteigt, seine Produktivität erheblich steigert. Ein erfahrener Entwickler wird sich schnell an diese Sprache gewöhnen. Das Gleiche gilt übrigens auch für Scala, allerdings ist Kotlin in Android beliebt. Java ist für Anfänger leicht zu erlernen. Einschließlich dank JavaRush : Hier habe ich verstanden, wie man eine Programmiersprache auswählt =) Die Java-Syntax ist klar, es besteht die Möglichkeit, sich „in den Fuß zu schießen“, aber nicht kritisch.

OOP oder POP?

Verfahrensansatz

Der prozedurorientierte Ansatz beinhaltet das Schreiben eines Programms, das aus sequentiellen Anweisungen besteht, die zu einem einzigen Ganzen zusammengesetzt werden können, um eine bestimmte Reihe von Problemen effektiv zu lösen. Zu diesen Sprachen gehören: C , PureBasic und Pascal . Dieselben, die Oberschüler und Grundschüler in Verzweiflung versetzen. Es gibt auch ein relativ junges GO . Allerdings ist die Vertrautheit mit prozeduralen Sprachen für einen potenziellen Entwickler sehr nützlich. Das Eintauchen in prozedurale Sprachen ist für mich mit dem Mathematica-System (Wolfram) und universitären Forschungsaktivitäten verbunden. Dank der richtigen algorithmischen Ansätze und einfachen Verfahren, die sich linear vom Anfang des Programms bis zum Ende bewegen, konnte ich Werte berechnen, die für die moderne theoretische Physik relevant sind. Dank dieser „sequentiellen“ Sprachen beginnen Sie zu verstehen, dass es manchmal einfacher ist, Code zu schreiben, als auf sich selbst zu zählen. Das Studium von PPP bietet eine gute algorithmische Ausbildung, die ein Arbeitgeber bei der Einstellung fast immer bei einem Kandidaten sehen möchte. Die Grundlagen von allem und jedem in der IT basieren auf prozeduralen Sprachen, also unterschätzen Sie sie nicht. Übrigens denken Anfänger, die entscheiden, welche Programmiersprache sie lernen möchten, oft, dass Multithreading das ausschließliche Vorrecht von OOP ist. Das ist nicht so. Mit prozeduralen Programmiersprachen können Sie auch parallele Berechnungen durchführen.
Auswahl einer Programmiersprache - 3

Objektorientierter Ansatz

Diejenigen, die mit prozeduralen Sprachen begonnen haben, verfügen meist über gute Kenntnisse in Mathematik, Algorithmen und Datenstrukturen (dies liegt an der Betonung dieser Wissensbereiche an technischen Universitäten). In der modernen Realität sind jedoch oft diejenigen erfolgreiche Programmierer, die einen anderen Programmieransatz gut beherrschen – objektorientiert. Die OOP-Ideologie ermöglicht den Aufbau wirklich globaler Systeme. Die Besonderheit dieses Ansatzes ist seine Ähnlichkeit mit der realen Welt:
  • Verschiedene Objekte interagieren miteinander und existieren unabhängig voneinander.
  • Objekte haben eine Hierarchie und sind in der Lage, das Verhalten ihrer Vorfahren zu übernehmen oder zu ändern.
  • Sie können mit abstrakten Konzepten arbeiten, aber nur wirklich existierende Objekte können interagieren.

Beispiel

Verfahrensorientierte Sprachen sind Werkzeuge zur Lösung spezifischer Probleme. Und wenn Ihre Aufgabe eine Änderung erfahren hat, auch nur eine geringfügige, müssen Sie höchstwahrscheinlich Zeit und Mühe aufwenden, um alle Algorithmen neu zu schreiben.

Представим программу, описывающую автосалон, который продает легковые и грузовые автомобoder, Wie новые, так и подержанные. В Verfahrenном языке для каждого ein Objektа нужно описать функции, обрабатывающие ввод oder вывод данных для нового легкового, нового грузового, б/у легкового и б/у грузового автомобилей. А что предлагает ООП? При ein Objektно-ориентированном подходе нужно просто описать базовый класс ТРАНСПОРТ, который будет хранить в себе характеристики, присущие и тому, и другому типу автомобилей:

  • Марка
  • Объем двигателя
  • Мощность
  • Год выпуска
  • Новый oder б/у
  • Цена

И методы для ввода-вывода информации. Затем создадим ein Objektы, наследующие характеристики класса ТРАНСПОРТ: ЛЕГКОВУШКА и ГРУЗОВИК. Они содержат уточнённую информацию, присущую именно таким видам транспорта, а также методы ввода-вывода.

Внезапно руководство салона решило расширить ассортимент и продавать еще и мотоциклы. Процедурный подход предложит переписать всю логику для новых и б/у мотоциклов с самого начала, в то время Wie ООП-язык позволит просто создать новый ein Objekt МОТОЦИКЛ, наследующий все характеристики суперкласса ТРАНСПОРТ и содержащий уточнения.

А что будет, если добавлять разные транспортные средства? Процедурная реализация будет требовать больших трудозатрат, чем ООП. Причем чем больше ассортимент, тем меньше нужно будет делать манипуляций с ein Objektами.

Итак, ООП — это стиль программирования, позволяющий объединять данные и методы одной сущности и работать с ними Wie с цельным ein Objektом. Сущности могут выстраиваться в иерархии и взаимодействовать между собой, не вдаваясь в подробности внутренней реализации друг друга. Для себя я выделяю три причины, по которым ООП — более прогрессивный подход:
  1. ООП предполагает независимую разработку отдельных модулей, предоставляя программисту oder команде выбирать способ и границы соприкосновений и обмена информацией.

  2. Разбиение на небольшие модули намного проще для восприятия, чем монолитные Verfahrenы. Благодаря этому сторонний разработчик быстро разберется в твоем Codeе, а ты при необходимости войдешь в новый проект.

  3. Изменение одного ein Objektа может ниWie не отразиться на взаимодействии с другим, но способно повлиять на иерархию дочерних ein Objektов. Освоив такой подход, расширение и доработка программы становится тривиальной задачей.
Нужно помнить о том, что один подход не противоречит другому, но иерархически ООП всё же находится выше. Собственно, почему я рекомендую именно Java? Я бы выделил следующие причины:
  1. Кроссплатформенность.

    Java работает везде благодаря JVM —виртуальной машине Java. Один из главных плюсов этого языка — кроссплатформенность: не нужно думать о том, Wieую библиотеку подключить, Wieова архитектура у конкретного процессора. «Написано однажды —работает всегда».

  2. Документация.

    Die breiteste Dokumentationsbasis: offizielle Oracle-Dokumentation, Schulungsportale, sich ständig weiterentwickelnde Community. Antworten auf die meisten Fragen, die während der Entwicklung auftauchen, können in wenigen Minuten gefunden werden. 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 erstmalige Unternehmensentwickler in Java. Enterprise ist eine Eigenentwicklung, die für die Bedürfnisse großer Unternehmen notwendig ist.

    Jedes Jahr sagen Hasser den „Tod von Java“ voraus, sie sagen: „ Oracle wird aufhören, es zu unterstützen, und im Allgemeinen machen Sie Unsinn .“ Das ist nicht so! Es wird versprochen, alle sechs Monate neue Java-Versionen zu veröffentlichen. Die wichtigsten Neuerungen und Features der neuesten Version können Sie hier nachlesen .

    Für mich waren Lambdas in Java 8 eine Revolution und eine Entdeckung, ganz zu schweigen von den neuen Versionen! Jetzt arbeite ich an einem „rückläufigen“ Projekt, also beschäftige ich mich nicht mit Innovationen, aber die Tatsache, dass Java weiterlebt, ist eine Tatsache.

    Auswahl einer Programmiersprache - 4
  4. Android.

    Android hat in den letzten vier Jahren souverän mehr als 80 % des Mobiltelefonmarktes erobert ; Fernseher, Mediaplayer und sogar Mediensysteme in Autos laufen unter diesem Betriebssystem. Und die Entwicklung für dieses Betriebssystem erfolgt hauptsächlich in Java. Stellen Sie sich vor, welche Perspektiven sich Ihnen eröffnen. Als ich einen Job als Android-Entwickler bekam, interessierte mich die Frage: Wie viel kostet das Produkt, das ich entwickle? Es stellte sich heraus, dass der Preis pro Jahr etwa 5 US-Dollar beträgt. Es stellte sich eine berechtigte Frage: Woher kamen die Mittel für dieses Büro, für Gehälter, Kekse, eine Tischtennisplatte, Roboter und andere „nette Dinge“? Es ist eine Frage der Quantität: Unsere Anwendung hat 20 Millionen Benutzer.

  5. Gehälter.

    Und zum Nachtisch: Das Gehalt eines Java-Entwicklers ist eines der höchsten in der Branche. Sie werden das Programmieren zu einem bestimmten Zweck erlernen: um einen guten Job zu bekommen.

Popularität einer Programmiersprache

Bei der Auswahl einer Programmiersprache müssen Sie über das ultimative Ziel des Lernens nachdenken – Ihren ersten Job zu bekommen. Um die Beliebtheit verschiedener Sprachen einzuschätzen, ging ich zu einem beliebten Recruiting- Portal und begann, die Anzahl der offenen Stellen für verschiedene Anfragen für Moskau zu prüfen. Die Ergebnisse können Sie unten sehen.
Java: 277
Python: 227
PHP: 188
C#: 147
c++: 131
Rubin: 40
Skala: 24
Kotlin: 20
Selbst das kürzlich populäre Python konnte Java nicht überholen. Aber das sind subjektive Daten: eine bestimmte Stadt, ein bestimmter Tag. Es gibt offizielle Quellen, wenden wir uns an sie. Laut TIOBE steht Java im Oktober 2018 an erster Stelle. Im PYPL- Ranking belegt Java den zweiten Platz, weit vor JS und konkurriert mit dem „modischen“ Python.

ERGEBNISSE

Darauf sollte ein Anfänger bei der Auswahl einer Programmiersprache achten:
  • Popularität (Java nimmt durchweg eine Spitzenposition ein);
  • Eintrittsschwelle (für Java – Durchschnitt: Das Spektrum der vom Arbeitgeber geforderten Kompetenzen ist recht breit);
  • Verfügbare Materialien (es gibt keine JavaRush-ähnlichen Portale auf Russisch, daher liegt die Handfläche darin, zu erraten, wer =));
  • Anwendungsgebiete: Je mehr Branchen eine Programmiersprache einsetzen kann, desto mehr Spezialisten werden auf dem Markt benötigt. Ich habe bereits von Cross-Plattform gesprochen, aber ich werde nicht müde, es zu wiederholen.
Natürlich gibt es überall Fallstricke, aber wer geht, wird den Weg meistern: Nur Sie können entscheiden, welche Programmiersprache Sie wählen . Viel Erfolg im Studium!
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION