diventare programmatore
Tempo di lettura: 4 minuti

Vuoi diventare programmatore informatico ma non sai da dove iniziare? Ecco qui una panoramica sul mondo dello sviluppo di applicazioni e delle diverse piattaforme.

Da grande voglio diventare programmatore informatico! Da dove posso iniziare? Quale linguaggio mi consigli? Dove posso imparare? Sono proprio queste le domande di un aspirante sviluppatore.

Per fortuna ci troviamo nell’era della condivisione, per cui è facile aggiornarsi, imparare e orientarsi in maniera rapida ed efficiente ; circa 10 anni fa non c’erano servizi quali Udemy o Sololearn e non era facile capire quale fossero i trend della community di sviluppatori nel mondo.

Inoltre viviamo in un’era in cui quello del programmatore è uno delle figure più pagate e ricercate di tutto il pianeta, per cui ha senso investire del tempo libero per fare un po’ di formazione, anche fai da te, utilizzando le ricche risorse che la rete ci mette a disposizione e senza spendere chissà quale patrimonio.

Diventare programmatore informatico è “quasi” alla portata di tutti. Perchè quasi? Bhe, come qualsiasi cosa non basta solo studiare, ma occorre smanettare e fare tanta pratica. Un programmatore dovrebbe possedere molta pazienza e tenacia per riuscire a risolvere problemi, correggere errori e trovare soluzioni; inoltre occorre avere tanta memoria per manipolare più cose contemporaneamente.

Detto questo, il dilemma su quale linguaggio scegliere per iniziare ancora tormenta i novelli programmatori: Java, PHP, Javascript, Python, C++, C#, e chi più ne ha più ne metta. Quali scegliere?

La risposta a questa domanda si trova alla fine dell’ articolo.

Iniziamo facendo un po’ di ordine e tuffandoci nel vasto mondo della programmazione; vediamo cosa c’è dietro ed esploriamo questo settore in tutte le sue ramificazioni.

Attualmente i programmi sono supportati da tre piattaforme principali:

  • Piattafoma Web (Draw.io, Facebook, Google Search, Ebay, Amazon…);
  • Piattaforma Desktop (Photoshop, Google Drive, Skype, Microsoft Office…);
  • Piattaforma Mobile (Whatsapp, Instagram, Uber, Spotify…);

Inoltre, molti dei servizi esistenti sono multipiattaforma, ovvero sono supportati contemporaneamente da più di una delle piattaforme sopra citate (ad esempio, Facebook è una applicazione Web che ha anche la sua App Mobile).

Ciò che differisce tra le piattaforme è l’architettura di base, con caratteristiche specifiche che rendono una soluzione migliore dell’altra in base alle esigenze desiderate e, dunque, ne deriva la scelta del linguaggio di programmazione da adottare. Vediamo quindi quali sono queste differenze.

WEB

Il web come lo conosciamo è un calderone di tecnologie, dunque, per semplificare le cose, cominciamo a separare questa piattaforma in due categorie: “Front End” e “Back End”.

Tutto ciò che l’utente vede bello (o brutto), graficamente parlando, è il  Front-End, chiamata anche interfaccia utente. Per rendere bella e interattiva la presentazione dell’ applicazione dunque si utilizzano linguaggi quali HTML, CSS, Javascript e framework quali Angular, React, Vue , jquery, Bootstrap ecc,  ci si appoggia sul noto protocollo di internet HTTP e si scambiano dati tramite strutture quali JSON e XML.

Tutto ciò invece che c’è dietro (back) all’applicazione è il Back End; questo lato si occupa di elaborazione, archiviazione e preparazione dei dati; il lavoro sporco in pratica, cioè quello che all’utente non interessa e non deve vedere. Per lo sviluppo del back-end, dunque, servono linguaggi robusti e potenti per interagire con i Server come PHP, Node.js, ASP.NET, metodi di archiviazione dati e interazione con basi di dati come Mysql e Sql Server; è fondamentale dunque la conoscenza del linguaggio SQL per interrogare questi ultimi.

Per consolidare il concetto, paragoniamo un’applicazione web ad un ristorante. Il Front End è la sala, che deve essere pulita, profumata ed in ordine per i clienti; Il Back End, invece, è rappresentata dalla cucina, un vero campo di battaglia, dove lontano dalla vista dei clienti, chef ed assistenti “elaborano” sofisticati piatti che verranno poi serviti dai camerieri in sala.

DESKTOP

Adesso parliamo della piattaforma desktop, ovvero il primo supporto in ordine cronologico nella storia dell’informatica, ancor prima della diffusione di internet, in cui il personal computer era l’unico ambiente per i vari programmi.

Un’applicazione che ha bisogno di una grande quantità di potenza di calcolo, si presta sicuramente ad essere sviluppata in ambiente desktop, perchè se installata in un personal computer, ha la garanzia di sfruttare in maniera dedicata tutto l’hardware che ha a disposizione. Applicazioni del genere, ad esempio, sono quelle di Editing Video e Foto oppure anche i videogames.

Per poter sviluppare un’applicazione Desktop è un must sapere interagire con socket, processi e linguaggio macchina, per cui è bene scegliere linguaggi di programmazione quali C++, C# o Java.

MOBILE

Se andiamo in dietro nel tempo, possiamo benissimo ricordare i primi telefoni cellulari con schermo in bianco e nero la cui funzionalità era ben limitata allo scambio di chiamate ed sms. La diffusione di questi dispositivi è stata talmente vasta e smisurata (parallelamente alla diffusione di internet) che si sono evoluti in veri e propri mini computer interconnessi tra di loro.

Oggi i telefoni cellulari, o più comunemente chiamati Smartphone, hanno veri e propri sistemi operativi ottimizzati per le limitate risorse; i più famosi sono Android, Ios e WindowsPhone, che possono essere considerate delle vere e proprie sotto piattaforme, ognuna delle quali supporta  linguaggi differenti. Ad esempio, per sviluppare un’applicazione Android viene utilizzato il linguaggio JAVA, un’applicazione Ios invece viene scritta con il linguaggio Objective-C, e così via.

Le Mobile Apps sono da considerarsi concettualmente alla pari del Front-End delle Applicazioni Web, e spesso interagiscono con un lato Back-End non integrato nel dispositivo mobile, ma in qualche server condiviso in rete.

 

Dunque, alla domanda “Quale linguaggio conviene imparare?” la risposta è “dipende cosa serve”. L’ ideale è farsi una cultura ampia e generale; più tecnologie si è in grado di padroneggiare, più soluzioni si è in grado di offrire, ed una volta trovata la retta via, documentarsi e istruirsi nel dettaglio studiando dai manuali. Se una problematica pone diverse soluzioni, è bene optare per quella che va più di moda, in modo da trovare più risorse in rete e confrontarsi con la vasta community dei programmatori.

 

Se questo articolo ti è piaciuto condividilo:Share on Facebook
Facebook
Share on Google+
Google+
Tweet about this on Twitter
Twitter
Share on LinkedIn
Linkedin

Potrebbe interessarti anche

IPhone X a 429 euro. Vero, Ma… Iphone X quasi regalato? Ammettetelo,  farebbe gola a tutti avere l'ultimo melafonino top di gamma. L' iphone X , entrato in commercio in Italia ...
Investire in Bitcoin? Tre scenari che ne potrebber... Sei sicuro che investire in Bitcoin non sia una fregatura? Ecco come la famosa criptovaluta potrebbe essere demolita definitivamente. Come ben no...
Facebook Down – Il social network è sotto at... Facebook Down in Italia? Ecco come sapere se il social network è fuori servizio grazie al contributo degli utenti della rete. Facebook Down - Ogg...
Come la Blockchain potrebbe aiutarti in un’i... Ecco un esempio di vita reale semplice, concreto e divertente per capire come la blockchain rivoluzionerà il mondo che conosciamo. A cosa serve l...

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *