JavaRush /Blog Java /Random-PL /Wybór języka programowania

Wybór języka programowania

Opublikowano w grupie Random-PL
Pierwszy raz zetknąłem się z programowaniem w szkole, na lekcjach informatyki. Były to nudne wyjaśnienia zasad n-argumentowych systemów liczbowych. Cóż, w ramach testu musiałem napisać własną stronę internetową. Wtedy wydawało mi się, że nie ma na świecie nudniejszej aktywności. Jakże się myliłem! Niestety, szkolny program nauczania informatyki nie daje pełnego obrazu pracy informatyka i nie jest jasne, jak wybrać język programowania. Wybór języka programowania - 1Przed zadaniem pytania „Jakiego języka programowania wybrać do nauki” początkujący powinien zapoznać się z tym, jakie języki istnieją i jakie są między nimi różnice.

Próg wejścia: wysoki, niski, średni

Wśród programistów często można usłyszeć o „progu wejścia” – koncepcji, która odzwierciedla nakład wysiłku, jaki musi włożyć indywidualny „junior”, aby opanować język programowania na poziomie wystarczającym, aby napisać swój pierwszy poważny program i znaleźć pracę. Na „próg wejścia” składa się wiedza:
  • cechy składni i niuanse języka;
  • biblioteki;
  • algorytmy i struktury danych.
Tak naprawdę nawet pracę w Excelu można nazwać rodzajem programowania. Nawiasem mówiąc, ten znany program biurowy nie jest tak prosty, jak się wydaje. Dla jednego progiem wejścia będzie umiejętność zbudowania tabeli, dla drugiego znajomość skomplikowanych formuł i makr. W każdym razie ten próg jest niewielki. Następnie przychodzą quasi-języki: na przykład programowanie 1C . Następnie - języki najłatwiejsze do nauki: na przykład PHP . Dalej są języki z natywną (zazwyczaj wywodzącą się z języka angielskiego) składnią, która nie wymaga ręcznej interakcji z pamięcią: na przykład Java , JS . Są też języki, które wymagają niezwykle ostrożnego obchodzenia się z pamięcią, strukturami danych i algorytmami: na przykład C , C++ . Młode języki wieloparadygmatowe mają być może najwyższą barierę wejścia, ponieważ aby je opanować, trzeba zjeść więcej niż jednego psa w innych językach programowania: na przykład Scala . Ale przede wszystkim, wybierając język, powinieneś zdecydować, co chcesz dalej robić: tworzyć aplikacje internetowe, korporacyjne, desktopowe lub mobilne .

Sieć czy nie sieć?

Sieć

Programistów WWW można podzielić na programistów Frontend i Backend . Warto zrozumieć, co oznaczają te pojęcia. Programiści „frontendowi” zajmują się tzw. stroną klienta – tym, co zobaczy użytkownik. „Backend” to oprogramowanie i sprzętowa część usługi – to, co działa na serwerze. Dla programisty frontendowego decydującego o wyborze języka programowania niezbędnikiem jest JavaScript i jego frameworki: Angular JS, React i inne. Dialekty JS nie są tak popularne jak ich rodzic, ale też mogą być przydatne: CoffeeScript, TypeScript. Jest też Flash AS, wcześniej był JScript i VBScript, ale tylko dinozaury to pamiętają =) Poza tym trzeba rozumieć HTML i CSS .
Wybór języka programowania - 2
Wielu początkujących uważa, że ​​JavaScript i Java to prawie to samo, nie należy mylić tych języków. JS nazywał się kiedyś „LiveScript”, a swoją obecną nazwę zawdzięcza właśnie popularności słowa „Java”. PHP, Python, Ruby, Pearl, Java nadają się do backendu internetowego . Tutaj chciałbym zwrócić uwagę na PHP – o innych językach porozmawiamy później – jeden z najłatwiejszych do nauki języków, który ma niski próg wejścia. Ruby, sądząc po ankiecie przeprowadzonej wśród znanych twórców stron internetowych, powoli, ale systematycznie zyskuje na popularności: jest uwielbiany za swoją zwięzłość i piękno.

Inne niż internetowe (korporacyjne, stacjonarne, mobilne)

Specjalnie pogrupowałem te języki programowania w kategorię o tak dziwnej nazwie. Większość z nich można wykorzystać do pisania aplikacji korporacyjnych, desktopowych, a nawet mobilnych. Python , łatwy do zrozumienia OOLP, stał się ostatnio niezwykle popularny dzięki rozwojowi uczenia maszynowego : jego zwolennicy powszechnie używają Pythona. ML to dość młoda dziedzina w IT i choć pierwsze owoce już przyszły to nie spieszyłbym się z zagłębianiem się w tę branżę przy wyborze języka programowania. Po pierwsze, musisz być BARDZO dobry z matematyki. Po drugie, fala popularności może pójść tą samą drogą, co w przypadku „blockchain” czy „nanotechnologii”. Ponadto, jak pamiętasz, Python jest używany przy tworzeniu stron internetowych. C++ : klasyczny, wszystko budowane jest w oparciu o „plusy”. Język ten był protoplastą wszystkich popularnych OOLP i początkujący użytkownik zdecydowanie powinien na niego zwrócić uwagę. Na nim opiera się wiele popularnych aplikacji. Jednak wysokie prawdopodobieństwo „strzelenia sobie w stopę” i trudna do zrozumienia składnia negują prawdopodobieństwo opanowania przez początkującego mastodonta programowania. Kotlin - Java dla hipsterów - szalone połączenie OOP i programowania funkcjonalnego. Ostatnio popularny ze względu na fakt, że doświadczony programista przechodzący z Javy na Kotlina znacząco poprawia swoją produktywność. Doświadczony programista szybko oswoi się z tym językiem. Nawiasem mówiąc, to samo tyczy się Scali, ale Kotlin jest popularny w Androidzie. Java jest łatwa do nauczenia dla początkującego. Między innymi dzięki JavaRush : to tutaj zrozumiałem, jak wybrać język programowania =) Składnia Java jest jasna, istnieje możliwość „strzelenia sobie w stopę”, ale nie krytyczna.

OOP czy POP?

Podejście proceduralne

Podejście proceduralne polega na napisaniu programu składającego się z kolejnych instrukcji, które można złożyć w jedną całość, aby skutecznie rozwiązać określony zakres problemów. Do tych języków należą: C , PureBasic i Pascal . Te same, które przygnębiają uczniów szkół średnich i młodszych uczniów. Jest też stosunkowo młody GO . Jednak znajomość języków proceduralnych jest bardzo przydatna dla potencjalnego programisty. Dla mnie zanurzenie się w językach proceduralnych kojarzy się z systemem Mathematica (Wolfram) i działalnością badawczą uczelni. Dzięki odpowiednim podejściu algorytmicznym i prostym procedurom, przechodząc liniowo od początku programu do jego końca, udało mi się obliczyć wartości, które są istotne dla współczesnej fizyki teoretycznej. To dzięki tym „sekwencyjnym” językom zaczynasz rozumieć, że czasami łatwiej jest napisać kod, niż samodzielnie liczyć. Studiowanie PPP zapewnia dobre przeszkolenie w zakresie algorytmów, które pracodawca prawie zawsze chce widzieć u kandydata podczas zatrudniania. Podstawy wszystkiego i wszystkich w IT zbudowane są na językach proceduralnych, więc nie należy ich lekceważyć. Nawiasem mówiąc, początkujący, którzy decydują, jakiego języka programowania wybrać do nauki, często myślą, że wielowątkowość jest wyłączną prerogatywą OOP. To jest źle. Proceduralne języki programowania umożliwiają także wykonywanie obliczeń równoległych.
Wybór języka programowania - 3

Podejście obiektowe

Ci, którzy zaczynali od języków proceduralnych, najczęściej mają dobrą znajomość matematyki, algorytmów i struktur danych (wynika to z nacisku na te obszary wiedzy na uczelniach technicznych). Jednak we współczesnych realiach programistami odnoszącymi sukcesy często są ci, którzy dobrze opanowali inne podejście do programowania - zorientowane obiektowo. Ideologia OOP umożliwia budowanie systemów prawdziwie globalnych. Osobliwością tego podejścia jest jego podobieństwo do świata rzeczywistego:
  • różne obiekty oddziałują na siebie i istnieją niezależnie od siebie.
  • obiekty mają hierarchię i są w stanie przyjąć lub zmienić zachowanie swoich przodków.
  • Możesz operować abstrakcyjnymi koncepcjami, ale tylko naprawdę istniejące obiekty mogą wchodzić w interakcje.

Przykład

Języki zorientowane proceduralnie są narzędziami do rozwiązywania konkretnych problemów. A jeśli Twoje zadanie uległo zmianie, nawet niewielkiej, najprawdopodobniej będziesz musiał poświęcić czas i wysiłek na przepisanie wszystkich algorytmów.

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

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

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

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

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

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

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

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

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

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

    Najszersza baza dokumentacji: oficjalna dokumentacja Oracle, portale szkoleniowe, stale rozwijająca się społeczność. Odpowiedzi na większość pytań pojawiających się podczas opracowywania można znaleźć w ciągu kilku minut, najważniejsze jest, aby zrozumieć, co wpisać w wyszukiwarce =)

  3. Popularność.

    Java to najpopularniejszy język programowania na świecie: oprócz wyżej wymienionych programistów Androida i stron internetowych, prawie każdy programista korporacyjny, który zaczyna swoją przygodę z programowaniem po raz pierwszy, pisze w Javie. Enterprise to rozwój wewnętrzny niezbędny na potrzeby dużych korporacji.

    Co roku hejterzy przepowiadają „śmierć Javy”, mówią: „ Oracle przestanie ją wspierać i w ogóle robisz bzdury ”. To jest źle! Nowe wersje Javy mają być wydawane co sześć miesięcy. O najważniejszych innowacjach i funkcjach najnowszej wersji można przeczytać tutaj .

    Dla mnie lambdy w Javie 8 były rewolucją i odkryciem, nie mówiąc już o nowych wersjach! Teraz pracuję nad projektem „retrograde”, więc nie zagłębiam się w innowacje, ale fakt, że Java żyje, jest faktem.

    Wybór języka programowania - 4
  4. Android.

    Android od 4 lat z pewnością zajmuje ponad 80% rynku telefonów komórkowych, pod tym systemem operacyjnym działają telewizory, odtwarzacze multimedialne, a nawet systemy multimedialne w samochodach. Rozwój tego systemu operacyjnego odbywa się głównie w Javie. Wyobraź sobie, jakie perspektywy się przed tobą otwierają. Kiedy dostałem pracę jako programista Androida, zainteresowałem się: ile kosztuje produkt, który tworzę? Okazało się, że cena za rok wynosi około 5 dolarów. Pojawiło się rozsądne pytanie: skąd wzięły się fundusze na to biuro, na pensje, ciasteczka, stół do tenisa, roboty i inne „fajne rzeczy”? To kwestia ilościowa: z naszej aplikacji korzysta 20 milionów użytkowników.

  5. Wynagrodzenia.

    I na deser: zarobki programisty Java należą do najwyższych w branży. Będziesz uczyć się programowania w konkretnym celu: zdobyć dobrą pracę.

Popularność języka programowania

Wybierając język programowania, musisz pomyśleć o ostatecznym celu nauki – zdobyciu pierwszej pracy. Aby ocenić popularność różnych języków, odwiedziłem popularny portal rekrutacyjny i zacząłem przeglądać liczbę wolnych stanowisk pracy w odpowiedzi na różne zapytania dotyczące Moskwy. Wyniki można zobaczyć poniżej.
Jawa: 277
pyton: 227
PHP: 188
C#: 147
c++: 131
rubin: 40
skala: 24
kotlin: 20
Nawet popularny ostatnio Python nie był w stanie wyprzedzić Javy. Ale to są dane subiektywne: konkretne miasto, konkretny dzień. Istnieją oficjalne źródła, przejdźmy do nich. Według TIOBE, według stanu na październik 2018 r., Java zajmuje pierwsze miejsce. W rankingu PYPL Java zajmuje drugie miejsce, znacznie wyprzedzając JS i konkurując z „modnym” Pythonem.

WYNIKI

Oto na co powinien zwrócić uwagę początkujący przy wyborze języka programowania:
  • Popularność (Java niezmiennie zajmuje czołową pozycję);
  • Próg wejścia (dla Javy – średni: zakres kompetencji wymaganych przez pracodawcę jest dość szeroki);
  • Dostępne materiały (w języku rosyjskim nie ma portali podobnych do JavaRush, dlatego palma idzie zgadnąć kto =));
  • Obszary zastosowań: im więcej branż, w których można zastosować język programowania, tym więcej specjalistów jest potrzebnych na rynku. Mówiłem już o cross-platformie, ale nie znudzi mi się to powtarzać.
Oczywiście wszędzie czyhają pułapki, ale ten, kto idzie, opanuje drogę: tylko Ty możesz zdecydować, jaki język programowania wybrać . Powodzenia na studiach!
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION