Soglia di ingresso: alta, bassa, media
Tra i programmatori si sente spesso parlare di "soglia di ingresso", un concetto che riflette la quantità di sforzo richiesta a un individuo "junior" per padroneggiare un linguaggio di programmazione a un livello sufficiente per scrivere il suo primo programma serio e trovare un lavoro. La “soglia di ingresso” è costituita dalla conoscenza:- caratteristiche della sintassi e sfumature del linguaggio;
- biblioteche;
- algoritmi e strutture dati.
Web o non Web?
ragnatela
I programmatori Web possono essere suddivisi in sviluppatori Frontend e Backend . Vale la pena capire cosa significano questi termini. Gli sviluppatori "frontend" si occupano del cosiddetto lato client, ovvero ciò che vedrà l'utente. Il "backend" è la parte software e hardware del servizio, ciò che viene eseguito sul server. Per uno sviluppatore frontend che deve decidere quale linguaggio di programmazione scegliere, il must-have è JavaScript e i suoi framework: Angular JS, React e altri. I dialetti JS non sono così popolari come i loro genitori, ma possono anche essere utili: CoffeeScript, TypeScript. Esiste anche Flash AS, prima che esistessero JScript e VBScript, ma solo i dinosauri se lo ricordano =) Inoltre, devi capire HTML e CSS .Non Web (aziendale, desktop, mobile)
Ho raggruppato appositamente questi linguaggi di programmazione in una categoria dal nome così strano. La maggior parte di essi può essere utilizzata per scrivere applicazioni aziendali, desktop e persino mobili. Python , un OOLP di facile comprensione, è diventato recentemente incredibilmente popolare grazie allo sviluppo del Machine Learning : i suoi aderenti utilizzano ampiamente Python. Il ML è un'area abbastanza giovane dell'IT e, sebbene i primi frutti siano già stati ricevuti, non mi affretterei a tuffarmi in questo settore quando si sceglie un linguaggio di programmazione. Innanzitutto, devi essere MOLTO bravo in matematica. In secondo luogo, l’ondata di popolarità potrebbe andare allo stesso modo della “blockchain” o della “nanotecnologia”. Inoltre, come ricorderete, Python viene utilizzato nello sviluppo web. C++ : classico, tutto è costruito sulla base dei “plus”. Questo linguaggio è stato il progenitore di tutti gli OOLP popolari e un principiante dovrebbe assolutamente prestarvi attenzione. Molte applicazioni popolari si basano su di esso. Ma l'alta probabilità di "darsi la zappa sui piedi" e la sintassi difficile da comprendere annullano la probabilità che un principiante possa padroneggiare questo mastodonte della programmazione. Kotlin - Java per hipsters - un mix pazzesco di OOP e programmazione funzionale. Recentemente popolare perché uno sviluppatore esperto che passa da Java a Kotlin migliora significativamente la sua produttività. Uno sviluppatore esperto si abituerà rapidamente a questo linguaggio. A proposito, lo stesso vale per Scala, ma Kotlin è popolare su Android. Java è facile da imparare per un principiante. Compreso, grazie a JavaRush : è stato qui che ho capito come scegliere un linguaggio di programmazione =) La sintassi Java è chiara, c'è la possibilità di “darsi la zappa sui piedi”, ma non critica.OPP o POP?
Approccio procedurale
L'approccio orientato alla procedura prevede la scrittura di un programma costituito da istruzioni sequenziali che possono essere assemblate in un unico insieme per risolvere efficacemente una gamma specifica di problemi. Questi linguaggi includono: C , PureBasic e Pascal . Gli stessi che portano sconforto agli studenti delle scuole superiori e delle medie. Esiste anche un GO relativamente giovane . Tuttavia, la familiarità con i linguaggi procedurali è molto utile per un potenziale sviluppatore. Per me l’immersione nei linguaggi procedurali è associata al sistema Mathematica (Wolfram) e alle attività di ricerca universitaria. Grazie ai giusti approcci algoritmici e a semplici procedure, muovendomi linearmente dall'inizio del programma alla sua fine, sono riuscito a calcolare valori rilevanti per la fisica teorica moderna. È grazie a questi linguaggi “sequenziali” che inizi a capire che a volte è più facile scrivere codice che contare da solo. Lo studio del PPP fornisce una buona formazione algoritmica, che un datore di lavoro vuole quasi sempre vedere in un candidato al momento dell'assunzione. Le fondamenta di tutto e tutti nell'IT sono costruite su linguaggi procedurali, quindi non sottovalutarli. A proposito, i principianti che decidono quale linguaggio di programmazione scegliere per imparare spesso pensano che il multithreading sia prerogativa esclusiva dell'OOP. Questo è sbagliato. I linguaggi di programmazione procedurale consentono anche di eseguire calcoli paralleli.Approccio orientato agli oggetti
Coloro che hanno iniziato con i linguaggi procedurali hanno molto spesso una buona conoscenza di matematica, algoritmi e strutture dati (ciò è dovuto all'enfasi su queste aree di conoscenza nelle università tecniche). Tuttavia, nelle realtà moderne, i programmatori di successo sono spesso quelli che hanno padroneggiato bene un altro approccio alla programmazione: orientato agli oggetti. L’ideologia OOP rende possibile costruire sistemi veramente globali. La particolarità di questo approccio è la sua somiglianza con il mondo reale:- vari oggetti interagiscono tra loro ed esistono indipendentemente l'uno dall'altro.
- gli oggetti hanno una gerarchia e sono in grado di adottare o modificare il comportamento dei loro antenati.
- Puoi operare con concetti astratti, ma solo gli oggetti realmente esistenti possono interagire.
Esempio I linguaggi procedurali sono strumenti per risolvere problemi specifici. E se il tuo compito ha subito un cambiamento, anche lieve, molto probabilmente dovrai dedicare tempo e fatica a riscrivere tutti gli algoritmi. Представим программу, описывающую автосалон, который продает легковые и грузовые автомобor, How новые, так и подержанные. В proceduresном языке для каждого an object нужно описать функции, обрабатывающие ввод or вывод данных для нового легкового, нового грузового, б/у легкового и б/у грузового автомобилей. А что предлагает ООП? При an objectно-ориентированном подходе нужно просто описать базовый класс ТРАНСПОРТ, который будет хранить в себе характеристики, присущие и тому, и другому типу автомобилей:
И методы для ввода-вывода информации. Затем создадим an objectы, наследующие характеристики класса ТРАНСПОРТ: ЛЕГКОВУШКА и ГРУЗОВИК. Они содержат уточнённую информацию, присущую именно таким видам транспорта, а также методы ввода-вывода. Внезапно руководство салона решило расширить ассортимент и продавать еще и мотоциклы. Процедурный подход предложит переписать всю логику для новых и б/у мотоциклов с самого начала, в то время How ООП-язык позволит просто создать новый an object МОТОЦИКЛ, наследующий все характеристики суперкласса ТРАНСПОРТ и содержащий уточнения. А что будет, если добавлять разные транспортные средства? Процедурная реализация будет требовать больших трудозатрат, чем ООП. Причем чем больше ассортимент, тем меньше нужно будет делать манипуляций с an objectми. |
- ООП предполагает независимую разработку отдельных модулей, предоставляя программисту or команде выбирать способ и границы соприкосновений и обмена информацией.
- Разбиение на небольшие модули намного проще для восприятия, чем монолитные proceduresы. Благодаря этому сторонний разработчик быстро разберется в твоем codeе, а ты при необходимости войдешь в новый проект.
- Изменение одного an object может ниHow не отразиться на взаимодействии с другим, но способно повлиять на иерархию дочерних an objectов. Освоив такой подход, расширение и доработка программы становится тривиальной задачей.
-
Кроссплатформенность.
Java работает везде благодаря JVM —виртуальной машине Java. Один из главных плюсов этого языка — кроссплатформенность: не нужно думать о том, Howую библиотеку подключить, Howова архитектура у конкретного процессора. «Написано однажды —работает всегда».
-
Документация.
La più ampia base documentale: documentazione ufficiale Oracle, portali di formazione, community in costante sviluppo. Le risposte alla maggior parte delle domande che sorgono durante lo sviluppo si trovano in pochi minuti, l'importante è capire cosa digitare nel motore di ricerca =)
-
Popolarità.
Java è il linguaggio di programmazione più popolare al mondo: oltre ai già citati sviluppatori Android e web, quasi tutti gli sviluppatori aziendali alle prime armi scrivono in Java. Enterprise è uno sviluppo interno necessario per le esigenze delle grandi aziende.
Ogni anno, gli odiatori prevedono la "morte di Java", dicono: " Oracle smetterà di supportarlo e in generale stai facendo delle sciocchezze ". Questo è sbagliato! Si prevede che nuove versioni di Java verranno rilasciate ogni sei mesi. Le innovazioni e le caratteristiche più importanti dell'ultima versione possono essere lette qui .
Per me, i lambda in Java 8 sono stati una rivoluzione e una scoperta, per non parlare delle nuove versioni! Ora sto lavorando a un progetto "retrogrado", quindi non approfondisco le innovazioni, ma il fatto che Java sopravviva è un dato di fatto.
-
Androide.
Android ha occupato con sicurezza oltre l'80% del mercato della telefonia mobile negli ultimi 4 anni; TV, lettori multimediali e persino i sistemi multimediali nelle auto funzionano con questo sistema operativo. E lo sviluppo di questo sistema operativo viene effettuato principalmente in Java. Immaginate quali prospettive si aprono. Quando ho trovato lavoro come sviluppatore Android mi sono interessato: quanto costa il prodotto che sto sviluppando? Si è scoperto che il prezzo annuo è di circa $ 5. Sorse una domanda ragionevole: da dove venivano i fondi per questo ufficio, per gli stipendi, i biscotti, un tavolo da ping pong, i robot e altre “cose carine”? È una questione di quantità: la nostra applicazione ha 20 milioni di utenti.
-
Stipendi.
E per finire: lo stipendio di uno sviluppatore Java è uno dei più alti del settore. Imparerai a programmare per uno scopo specifico: ottenere un buon lavoro.
Popolarità di un linguaggio di programmazione
Quando scegli un linguaggio di programmazione, devi pensare all'obiettivo finale dell'apprendimento: ottenere il tuo primo lavoro. Per valutare la popolarità delle diverse lingue, sono andato su un popolare portale di reclutamento e ho iniziato a guardare il numero di posti vacanti per varie richieste per Mosca. Puoi vedere i risultati qui sotto.Giava: | 277 |
pitone: | 227 |
php: | 188 |
C#: | 147 |
c++: | 131 |
rubino: | 40 |
scala: | 24 |
kotlin: | 20 |
RISULTATI
Ecco a cosa dovrebbe prestare attenzione un principiante quando sceglie un linguaggio di programmazione:- Popolarità (Java occupa costantemente una posizione di leadership);
- Soglia di ingresso (Per Java - media: la gamma di competenze richieste dal datore di lavoro è piuttosto ampia);
- Materiali disponibili (non ci sono portali simili a JavaRush in russo, quindi la palma va a indovinare chi =));
- Campi di applicazione: quanti più settori possono essere utilizzati con un linguaggio di programmazione, tanto più specialisti sono necessari sul mercato. Ho già parlato di multipiattaforma, ma non mi stancherò di ripeterlo.
GO TO FULL VERSION