Soglia di ingresso: alta, bassa, media
I programmatori parlano spesso della "soglia di ingresso", un concetto che riflette la quantità di sforzo richiesto a un dato "sviluppatore junior" per padroneggiare un linguaggio di programmazione sufficientemente bene da scrivere il suo primo programma serio e trovare un lavoro. La "soglia di ingresso" consiste nella conoscenza di:- peculiarità sintattiche 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 . Dovresti capire cosa significano questi termini. Gli sviluppatori di frontend sono coinvolti dal lato client, cioè da ciò che vede l'utente. Il "backend" riguarda la manipolazione e l'archiviazione dei dati, la parte di un servizio che viene eseguito su un server. Per uno sviluppatore di frontend che decide quale linguaggio di programmazione imparare, JavaScript e framework JavaScript (Angular JS, React e altri) sono essenziali. I dialetti JS, come CoffeeScript e TypeScript, non sono così popolari come i loro genitori, ma possono anche essere utili. C'è anche un AS Flash, e c'erano JScript e VBScript, ma solo i dinosauri lo ricordano =) Oltre a tutto questo, devi capire l' HTMLe CSS . Molti principianti pensano che JavaScript e Java siano quasi la stessa cosa. Non confondere queste lingue. JS era precedentemente chiamato "LiveScript" e ha ottenuto il suo nome attuale solo per la popolarità della parola "Java". Per uno sviluppatore di back-end Web , sono adatti PHP, Python, Ruby, Perl e Java. Qui voglio concentrarmi su PHP (parleremo degli altri linguaggi più avanti). PHP è uno dei linguaggi più facili da imparare, avendo una soglia di ingresso bassa. Secondo un sondaggio di noti sviluppatori web, Ruby sta lentamente ma inesorabilmente guadagnando popolarità: è amato per la sua concisione e bellezza.Non Web (aziendale, desktop, mobile)
Ho intenzionalmente combinato i seguenti linguaggi di programmazione in questa categoria con uno strano nome. Puoi utilizzarne la maggior parte per scrivere applicazioni aziendali, desktop e persino mobili. Python è un linguaggio di programmazione orientato agli oggetti di facile comprensione ed è diventato incredibilmente popolare di recente grazie alla crescita del machine learning (ML): gli sviluppatori ML fanno ampio uso di Python. MLè un'area abbastanza nuova nell'IT e, sebbene l'abbiamo già vista dare i suoi frutti, non mi precipiterei in questo settore quando scelgo un linguaggio di programmazione. Innanzitutto, avrai bisogno di un'ECCELLENTE conoscenza della matematica. In secondo luogo, l'ondata di popolarità potrebbe passare allo stesso modo di "blockchain" o "nanotecnologia". Detto questo, potresti ricordare che Python è utilizzato nello sviluppo web. C++: un linguaggio classico dove tutto è costruito sull'operatore "plus-plus". Questo linguaggio è l'antenato di tutti i popolari linguaggi di programmazione orientati agli oggetti e un principiante dovrebbe assolutamente prestare attenzione ad esso. Molte applicazioni popolari sono state scritte utilizzandolo. Ma le ottime possibilità di "spararsi ai piedi" e la sintassi di difficile comprensione portano a zero la probabilità che un principiante padroneggi questo mastodonte della programmazione. Kotlin, che è come Java per gli hipster, è un folle mix di OOP e programmazione funzionale. Recentemente è diventato popolare perché uno sviluppatore esperto che passa da Java a Kotlin può migliorare seriamente la propria produttività. Uno sviluppatore esperto si sentirà subito a suo agio in questo linguaggio di programmazione. A proposito, la stessa cosa vale per Scala, ma Kotlin è popolare nel mondo Android. Java è facile da imparare per i principianti. Soprattutto con l'aiuto di CodeGym =) la sintassi Java è comprensibile e sebbene esista il rischio di "spararsi ai piedi", non è fondamentale.OOP o POP?
L'approccio processuale
L'approccio orientato alla procedura prevede la scrittura di un programma costituito da istruzioni sequenziali che possono essere assemblate in un insieme unificato per risolvere efficacemente un insieme specifico di problemi. Tali linguaggi includono C , PureBasic e Pascal . In altre parole, le lingue che portano disperazione a studenti delle scuole superiori e laureandi. C'è anche il relativamente giovane GOlingua. Detto questo, avere familiarità con i linguaggi procedurali è molto utile per un potenziale sviluppatore. La mia immersione nei linguaggi procedurali è arrivata con il sistema Wolfram Mathematica e la ricerca universitaria. Algoritmi appropriati e procedure semplici, muovendosi linearmente dall'inizio alla fine del programma, mi hanno permesso di calcolare valori rilevanti per la fisica teorica moderna. Questo linguaggio di programmazione "sequenziale" è la cosa giusta per aiutarti a capire che a volte è più facile scrivere codice che esegua calcoli manualmente. La programmazione orientata alla procedura di apprendimento (POP) fornisce una buona formazione algoritmica, che un datore di lavoro quasi sempre vuole vedere in un candidato di lavoro. Assolutamente tutto nell'IT è costruito sulla base di linguaggi procedurali, quindi non sottovalutarli. A proposito, i principianti che decidono quale linguaggio di programmazione imparare spesso pensano che solo i linguaggi OOP supportino il multithreading. Questo non è vero. I linguaggi di programmazione procedurali consentono anche calcoli paralleli.L'approccio orientato agli oggetti
Coloro che hanno iniziato con i linguaggi procedurali di solito sono esperti in matematica, algoritmi e strutture dati (a causa dell'enfasi delle università tecniche su queste aree). Tuttavia, la realtà oggi è che i programmatori di successo sono solitamente quelli che hanno padroneggiato un approccio diverso alla programmazione: il paradigma orientato agli oggetti. L'ideologia OOP ti consente di costruire sistemi veramente globali. Una caratteristica di questo approccio è la sua somiglianza con il mondo reale:- Diversi oggetti interagiscono tra loro ed esistono indipendentemente l'uno dall'altro.
- Gli oggetti hanno una gerarchia e possono adottare o modificare il comportamento dei loro antenati.
- Puoi usare concetti astratti, ma solo gli oggetti che esistono realmente possono interagire.
Esempio I linguaggi orientati alle procedure sono strumenti per risolvere problemi specifici. Se il tuo compito cambia, anche leggermente, probabilmente dovrai dedicare tempo e fatica a riscrivere tutti gli algoritmi. Immagina un programma che descriva una concessionaria di auto che vende auto e camion, sia nuovi che usati. In un linguaggio procedurale, è necessario definire funzioni che elaborano l'input o l'output di dati per ciascuna entità: un'auto nuova, un camion nuovo, un'auto usata e un camion usato. Cosa offre OOP? Con un approccio orientato agli oggetti, è sufficiente definire una classe base Veicolo che memorizzi le caratteristiche condivise da tutti i tipi di veicolo:
E metodi per raccogliere e inviare informazioni. Quindi creiamo oggetti che ereditano le caratteristiche della classe Veicolo: Auto e Camion. Contengono informazioni che riguardano specificamente questi tipi di veicoli, nonché metodi di input/output. All'improvviso, la direzione della concessionaria decide di ampliare la gamma offrendo anche motociclette. Con l'approccio procedurale, dovremmo ricreare tutta la logica per le motociclette nuove e usate, mentre un linguaggio OOP ci consente semplicemente di creare una nuova classe Motocicletta che eredita tutte le caratteristiche della superclasse Veicolo e contiene perfezionamenti specifici per motocicletta. E cosa succederebbe se aggiungessimo vari veicoli? Un'implementazione procedurale richiederebbe più lavoro di OOP. Inoltre, maggiore è la scaletta, minore sarà il numero di operazioni che coinvolgono gli oggetti. |
- L'OOP prevede lo sviluppo indipendente di singoli moduli, consentendo a un programmatore oa un team di scegliere il metodo ei confini del contatto e dello scambio di informazioni.
- Il codice partizionato in piccoli moduli è molto più facile da leggere rispetto alle procedure monolitiche. Di conseguenza, un estraneo può comprendere rapidamente il tuo codice e, allo stesso modo, puoi partecipare a un nuovo progetto se necessario.
- Una classe può essere modificata senza influire sull'interazione di un'altra, ma tale modifica può influire sulla gerarchia degli oggetti figli. Una volta imparato questo approccio, l'espansione e la modifica di un programma diventano banali.
-
Multipiattaforma.
Java funziona ovunque grazie alla Java virtual machine (JVM). Uno dei principali vantaggi di questo linguaggio è la sua natura multipiattaforma: non c'è bisogno di pensare a quale libreria aggiungere o all'architettura di un particolare processore. "Scrivi una volta, corri ovunque."
-
Documentazione.
Esiste un'enorme base di documentazione: documentazione Oracle ufficiale, portali di formazione e una comunità in continua evoluzione. Le risposte alla maggior parte delle domande che sorgono durante lo sviluppo possono essere trovate in pochi minuti. L'importante è capire cosa inserire 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 scrivono in Java. Impresa si riferisce allo sviluppo aziendale interno necessario per le esigenze delle grandi aziende.
Ogni anno, gli odiatori predicono "la morte di Java". Dicono: " Oracle smetterà di supportarlo. Stai completamente sprecando il tuo tempo. " Questo non è vero! Promettono di rilasciare nuove versioni di Java ogni sei mesi.
Per me, le espressioni lambda in Java 8 sono state rivoluzionarie e una rivelazione, per non parlare delle nuove versioni! Attualmente sto lavorando a un progetto "legacy", quindi non approfondisco le ultime innovazioni, ma è un dato di fatto che Java è vivo.
-
Androide.
Negli ultimi 4 anni, Android ha costantemente detenuto oltre l'80% del mercato della telefonia mobile . Televisori, lettori multimediali e persino sistemi di infotainment per auto funzionano con questo sistema operativo. E lo sviluppo di app per questo sistema operativo avviene principalmente in Java. Immagina solo le prospettive che si stanno aprendo. Quando ho ottenuto un lavoro come sviluppatore Android, mi sono chiesto quanto valesse il prodotto che stavo sviluppando? Come si è scoperto, il prezzo era di circa $ 5 all'anno. Ciò pone la domanda: "allora da dove vengono i soldi per questo ufficio, gli stipendi, la sala snack, il tavolo da ping-pong, i robot e altri vantaggi? La risposta sta nel volume: la nostra app ha 20 milioni di utenti.
-
Stipendi.
E ora la ciliegina sulla torta: lo stipendio di uno sviluppatore Java è tra i più alti del settore. Dopotutto, hai intenzione di studiare programmazione per uno scopo specifico: ottenere un buon lavoro.
La popolarità del linguaggio di programmazione
Esistono fonti di informazione ufficiali, quindi rivolgiamoci a loro. Secondo TIOBE , Java è al primo posto a partire da ottobre 2019. Nella classifica PYPL , Java è al secondo posto, molto più avanti di JS e rivaleggia con il trendy Python.Conclusione
Quando un principiante contempla la scelta di un linguaggio di programmazione, questo è ciò a cui dovrebbe prestare attenzione:- Popolarità (Java occupa costantemente una posizione di leadership)
- Soglia di ingresso (per Java, è media: i datori di lavoro richiedono una gamma piuttosto ampia di competenze)
- Materiali disponibili (benvenuto in CodeGym =))
- Campi di applicazione: più sono i campi in cui viene utilizzato un linguaggio di programmazione, più specialisti sono richiesti sul mercato. Ho già menzionato come Java supporti lo sviluppo multipiattaforma, ma non mi stanco mai di ripeterlo.
GO TO FULL VERSION