Stai cercando un programmatore informatico per lavorare nella tua azienda? Se sei giunto in questa pagina probabilmente hai in mente un progetto importante che vorresti implementare con l’aiuto di uno sviluppatore di software esperto, vuoi avere il lavoro finito in tempi rapidi, a costi fissi senza pagare uno stipendio ogni mese. Forse stai cercando un programmatore Java o uno esperto in Python, hai sentito parlare di questi linguaggi ma non sei certo qual’è il più appropriato.
Prima di andare avanti vorrei farti una panoramica generale di cosa il mercato digital oggi offre e, alla fine della lettura di questo articolo, sarai pronto per scegliere il giusto professionista che si adegui alle tue esigenze. Anche se l’articolo può sembrarti lungo ti consiglio comunque di arrivare sino alla fine, questo potrà farti risparmiare tempo e denaro: alla fine dell’articolo sarai in grado di capire qual’è il miglior sviluppatore da adeguare alle tue esigenze.
Indice
Introduzione
Nella mia carriera da programmatore informatico ho incontrato moltissimi sviluppatori, ingegneri, developer di ogni genere, validi o meno validi. Alcuni di loro sono veramente in gamba, conoscono il mondo digital, le giuste tecnologie da applicare al singolo problema, il giusto metodo e hanno le giuste competenze supportate da anni di studi certificati. Ma ho visto anche presunti professionisti che si spacciano per tali, che spesso non fanno altro che comprare e vendere lavori fatti da indiani o persone che vivono in luoghi dove il costo della vita è minore (con tutti i problemi che poi si presentano quando ci sono modifiche da effettuare ai progetti in corso..). Ecco perché bisogna fare attenzione prima di scegliere un professionista e decidere di firmare un contratto.
Affidatevi sempre a gente competente e qualificata per lavorare al vostro progetto!
Fatta questa piccola premessa che può sembrare banale ma non così scontata, possiamo iniziare partendo esattamente dal tuo progetto.
Cosa fa il programmatore informatico?
Lo sviluppatore non fa altro che tradurre un’idea in codice. Sviluppare software significa impartire comandi al computer in un linguaggio comprensibile solo da esso. Il calcolatore non può comprendere il linguaggio dell’uomo, ma riesce a comprendere un linguaggio intermedio, cioè un linguaggio comprensibile dall’uomo e dalla macchina. Questo linguaggio, scritto dal programmatore informatico, sarà poi convertito in codice binario, cioè il linguaggio compreso ed eseguito dalla macchina, che fisicamente sono impulsi elettrici nel nostro computer.
Programmare codice è un’attività che richiede un grande dispendio di energie, sia perché bisogna pensare a come implementare (scrivere) il codice che funzioni per il nostro obiettivo, sia perché il codice richiede una lunga revisione.
Avrete sicuramente sentito parlare delle versioni alpha o beta. Queste versioni sono semplicemente delle versioni di un software che necessita ulteriori accorgimenti e correzioni perché potrebbe contenere dei bug che lo rendono instabile. I bug non sono altro che degli errori di programmazione che necessitano di essere corretti. Dovete sapere che è quasi impossibile scrivere codice senza produrre errori: vi capitava quando a scuola facevate il tema in classe, la necessità di rileggere per controllare se c’erano concetti da riscrivere in maniera chiara e senza errori?
Quando il vostro programmatore informatico vi dirà che sta facendo attività di debugging, vi starà semplicemente dicendo che sta correggendo gli errori nel software che ha appena scritto per voi!
Ma qual è la prima cosa che dovete considerare quando scegliete il vostro sviluppatore? Partite sempre dal tipo di applicazione che volete sviluppata. Si tratta di un’applicazione web? Si tratta di un programma desktop o per smartphone? Tutti questi casi richiedono uno specialista diverso, “addestrato” a svolgere un lavoro specifico su un tipo di dispositivo diverso. E ogni specialista è specializzato in diversi linguaggi di programmazione.
Ogni linguaggio di programmazione cerca di risolvere problemi di tipo diverso.
Paradossalmente anche il software che si occupa di far aprire il cancello di casa vostra è scritto in un linguaggio di programmazione adatto a quella situazione specifica.
Il lavoro del programmatore: i linguaggi di programmazione
Nel precedente paragrafo parlavamo di cosa sono sono i linguaggi e perché vengono utilizzati. Adesso scendiamo più nello specifico e vediamo quali sono i linguaggi di programmazione più utilizzati dal mercato.
Premetto che non esiste un linguaggio di programmazione migliore di altri, ma esistono piuttosto linguaggi che si adattano più al lavoro che deve essere svolto, anche se esistono linguaggi come Java e Python che sono stati progettati per vari scopi e altri invece che si utilizzano sono per scopi specifici. In linea generale la scelta di un linguaggio dipende anche dal programmatore e può essere spesso una questione di gusto.
Ma vediamo più da vicino i linguaggi usati dai programmatori informatici:
- Python è il linguaggio usato da Google (YouTube), Yahoo, dalla Nasa e da molti altri. E’ stato progettato per essere facile da capire e divertente da usare . Molti trovano nella codifica in Python una grande motivazione a causa della rapidità che offre nello sviluppo del codice, della sua chiarezza espositiva, della sua flessibilità. Python ha così guadagnato popolarità nell’insegnamento della programmazione ai principianti, ma soprattutto a livello aziendale, i più esperti, lo utilizzano per risolvere problemi complessi anche nel campo del trattamento dei dati e dell’intelligenza artificiale. La sua versatilità fa si che sia usato per molteplici usi, come applicazioni web, desktop e scientifiche. Ha sostituito Java come la linguaggio introduttivo più popolare nelle migliori università di tutto il mondo.
- PHP è utilizzato in larga scala grazie al massiccio uso di WordPress per realizzare siti internet. Quest’ultima è la piattaforma di blogging più usata in assoluto e vanta il supporto di una comunità enorme di utenti, molti dei quali si impegnano a creare plugin. L’80% dei siti web utilizza PHP in qualche modo, compresi Facebook e Wikipedia. La caratteristica di PHP è che non usa regole rigide nella sue implementazioni ed è ovviamente un linguaggio molto flessibile. Viene ampiamente utilizzato dai freelancer grazie anche alla vasta gamma di framework presenti sul mercato.
- VBA: è il linguaggio di programmazione casa Microsoft usato per creare macro in Excel. Il linguaggio in questione ha la caratteristica di essere un pò datato, ma è perfetto per automatizzare i nostri fogli Excel e trasformarli in perfetti programmi. Questo è il vero motivo per cui ho deciso di parlarne in questo tutorial: a dispetto di quanto si pensi, VBA è un linguaggio ottimo per i neofiti e perfetto per svolgere compiti veloci sui fogli di calcolo, quindi molto utilizzato dalle aziende, dai programmatori informatici che lavorano autonomamente, da chi tratta dati e fa report e soprattutto da chi lavora nel mondo della contabilità!
- Java: linguaggio famosissimo che ha molteplici usi (in gergo si dice general purpose) . Negli ultimi anni ha subito un calo di utilizzo, ma rimane comunque il linguaggio d’elezione per creare app Android, applicazioni web enterprise su larga scala e applicazioni desktop di una certa portata. Rimane comunque il linguaggio più usato dalle grandi aziende e corporation, perché da ai programmatori che lavorano in team, la possibilità di lavorare agevolmente seguendo regole molto rigide (ed evitando errori), è infatti un linguaggio poco flessibile.
- C++: usato perlopiù per applicazioni desktop, è uno dei linguaggi più usati al mondo per la sua potenza nel controllo della macchina e modernità. Diretto discendente del C, possiede i costrutti di programmazione ad oggetti che aiutano il programmatore a scrivere codice migliore e più leggibile, senza perdere qualità importanti come la velocità di esecuzione.
- C#: pronunciato “C sharp”, è un linguaggio general purpose adatto a una lunga serie di necessità di sviluppo. Ha una serie di librerie native ed è fornito dal framework Microsoft.NET. Molte imprese lo utilizzano per la sua versatilità e perché ha il supporto di una grossa impresa come Microsoft dietro.
- R: linguaggi usato da statisti e da professionisti che hanno a che fare con il trattamento dei dati e la previsione di eventi.
Visti i linguaggi più famosi, vediamo adesso, più da vicino, le tipologie di sviluppatori che offre il mercato.
Il programmatore web
Se stai pensando a un progetto web come un sito internet sofisticato, con caratteristiche particolari e che si discosta in complessità dai normali siti internet come blog, portali e siti vetrina, allora hai bisogno di un programmatore informatico che si occupi di applicazioni internet. Il programmatore web può avere competenze di tre tipi:
- Front end: è un tipo di programmazione che viene chiamata anche “lato browser” o “lato client”. In sostanza si tratta di programmare l’interfaccia grafica di un’applicazione web, cioè tutto quello che vede l’utente utilizzatore nel proprio computer di un sito internet. Chi programma il back end in genere usa linguaggi come Javascript, HTML e CSS. Javascript comunque è il linguaggio d’ elezione che da vita a tutte le animazioni che browser come Google Chrome interpretano.
- Back end: questa è la parte che da la vera intelligenza al sito internet. L’applicazione girerà su un server online (cioè un computer che memorizza siti internet, sempre connesso alla rete) e sarà collegato ad un database (generalmente MySQL) che memorizzerà i dati e le informazioni del vostro sito. I linguaggi d’elezione per l’implementazione di applicazioni di questo tipo sono Php, Python, Ruby, Java.
- Full stack: è uno sviluppatore che ha competenze in ambo gli ambiti (back end e front end).
Sviluppatore di app
E’ il programmatore informatico specializzato nella produzione di applicazioni per smartphone. E’ una pratica molto diffusa per le aziende avere la propria app e metterla nello store (perlopiù Android). Ecco perché questo tipo di programmatori sono sempre più diffusi e generalmente specializzati in linguaggi come Java, Swift e Objective-C.
Programmatore di applicazioni desktop
Il programmatore informatico può anche sviluppare dei software che girano sul tuo computer. Cosa sono le applicazioni desktop lo lascia intendere lo stesso termine: sono quelle applicazioni che girano direttamente sul nostro computer, come ad esempio Office oppure il programma che generalmente usiamo per navigare su internet, Chrome.
Questo tipo di applicazioni hanno il vantaggio di essere particolarmente veloci, a differenza delle applicazioni web che ad ogni salvataggio necessitano che spesso venga ricaricata la pagina, ma devono essere installate in ogni dispositivo che le utilizzi. Software come questi vengono prodotti con linguaggi come: Java, C++, C#, C, Python, ecc..
Come dicevo, C++ è molto più veloce di Java, quindi spesso è il linguaggio d’elezione per produrre questo genere di applicazioni.
Data Scientist
E’ quel tipo di programmatore informatico che, come dicono gli inglesi, “sgranocchia dati” (crunching data) e da questi ne ricava collegamenti e informazioni utili. In genere usa metodi provenienti dal campo dell’intelligenza artificiale e del machine learning, cioè metodi matematici per fare previsioni. Generalmente questa figura è richiesta da grandi corporation ma ultimamente anche piccole aziende si stanno interessando a questa figura.
I linguaggi usati per questo tipo di lavori sono Python ed R, ma ultimamente sta prendendo sempre più piede Excel, programma spesso sottovalutato, ricco di migliaia di funzioni e di un proprio linguaggi (VBA).
Posso progettare autonomamente un software partendo da zero?
Infine la domanda più ambita, la domanda che chiunque alle prese con “un’idea digitale” si sarà sicuramente posto: posso creare io stesso il mio software partendo da nessuna conoscenza di programmazione? In definitiva, posso iniziare io stesso a programmare partendo da una conoscenza nulla dei linguaggi informatici?
La risposta è in generale NO, escludendo i casi particolari ovviamente. Leggere un libro di programmazione e capirlo, non basta per mettersi subito in azione. Questo perché al giorno d’oggi i programmatori professionisti conoscono librerie (di codice) e framework sofisticati adeguati a svolgere determinati compiti e che gli facilitano di gran lunga il lavoro.
Però una porta aperta rimane sempre…
Sei sicuro che il programma che hai pensato per la tua azienda, non possa essere implementato in un foglio Excel?
Devi sapere che Excel, trattato a lungo in questo sito, è un programma che consente di trattare dati anche di natura complessa. Molte organizzazioni che si trovano a fare calcoli complessi, usano Excel, programmato a dovere, per svolgere una serie di operazioni quotidiane e specifiche al lavoro che stanno svolgendo. Se vuoi iniziare a conoscere Excel, leggi l’articolo introduttivo in questo sito e poi passa a qualcosa di più complesso.
Conclusioni
Se sei arrivato fino in fondo nella lettura dell’articolo, ti sarai già fatto una certa cultura su tipologie di programmatori, linguaggi e applicazioni. Adesso probabilmente hai le idee più chiare (o forse più confuse 🙂 ) di come le avevi prima. Sia che tu faccia parte di un’impresa o che sia un privato con alcune necessità, dovrai comunque scegliere un professionista e spero davvero che la tua scelta sia indirizzata verso il giusto professionista che sappia realizzare l’idea che hai in mente.
Ciao e alla prossima.