Non ti va di leggere? Prova ad ascoltare l'articolo in modalità audio 🎧
Fin dal principio la storia del genere umano è stata segnata dall’utilizzo di strumenti sempre più raffinati e complessi che hanno permesso una rapida evoluzione. L’avvento dei primi computer è stato un evento di enorme rilievo che ha accelerato la produzione di strumenti e aperto un universo di opportunità. Negli ultimi decenni i programmatori hanno costruito milioni di tool, sia hardware che software, che sono diventati “utensili” indispensabili nella vita di tutti i giorni. Io stesso, che programmo da quando sono bambino, ne sono invaso!  Negli ultimi 10 anni durante i quali ho svolto il lavoro di Tech Community Manager ho organizzato centinaia di meetup ed incontri tra programmatori con cui mi sono confrontato proprio sul tema dei tool utilizzati. È sempre una gioia scoprire un nuovo strumento che può rendere più agevole un determinato compito e risolvere un problema. Nelle scorse settimane ho proposto un questionario al mio network di programmatori. Ho fatto 3 domande secche, nulla di scientifico, ma è stata l’occasione per conoscere un po’ meglio il mondo delle Community Dev italiane. Hanno risposto oltre 800 dev e ho realizzato tre articoli, uno per ciascuna delle domande, promossi all’interno dell’esperienza Dev Community Night con Talent Garden Innovation School che mi ha visto attivo in prima linea a organizzare un evento online a settimana, ogni giovedì, negli ultimi mesi! Dopo la domanda sulle figure professionali più ambite raccontata nell’articolo I Developer del futuro: 8 figure fondamentali nel mondo della programmazione e quella sui linguaggi di programmazione sui cui investire il proprio tempo, che trovate nell’articolo 10 linguaggi di programmazione su cui puntare; in questa terza ed ultima puntata ho affrontato il tema dei tool preferiti dagli sviluppatori italiani!

Quali sono, per te, gli strumenti essenziali per un programmatore?

Le risposte sono state migliaia e non è stato facile raccoglierle! Per questo ho deciso di impostare l’articolo in questo modo: prima presentandovi tutti quegli strumenti generali che sono comuni a ogni sviluppatore e che sono stati indicati dalla maggior parte di chi ha risposto al questionario e, nella seconda parte, fornendovi l’elenco degli strumenti software, servizi e framework che hanno ricevuto un numero di risposte maggiori rispetto a tutti gli altri.  Tra gli strumenti generali citati più frequentemente sicuramente primi tra tutti il computer e una buona connessione internet, imprescindibili per qualsiasi programmatore.  In cima alle preferenze troviamo poi strumenti che rendono la postazione di lavoro comoda ed efficiente: una sedia ergonomica, una postazione multi-monitor, una tastiera meccanica. Altri elementi essenziali sono la borraccia in alluminio per non rimanere mai senza acqua e il caffè per affrontare le notti insonni passate a risolvere i bug nel codice!  Oltre agli strumenti elettronici, gli sviluppatori non sembrano rinunciare a carta e penna e ai libri, ma anche a corsi e risorse online. Un altro strumento essenziale indicato dalla maggioranza sono i meetup, gli incontri serali, sia fisici che online. Possiamo assolutamente affermare che la passione sia uno degli strumenti principali dei programmatori. Le Community Dev, che sono anche presenti online su forum, gruppi, chat, sono un ottimo strumento di confronto e crescita per ogni dev! E poi non mancano le soft-skill come creatività, fantasia, immaginazione, inventiva e logica che molto spesso possono essere potenziate con molta pratica ma anche con pazienza e determinazione, che non possono mancare nei momenti più critici! Veniamo adesso ai primi 16 toolsoftware, framework e servizi – che i programmatori italiani del questionario 2020 hanno indicato come essenziali per il proprio lavoro. Se siete sviluppatori, probabilmente già utilizzate o conoscete la maggior parte di essi! O qualcuno vi è sfuggito?

1. StackOverflow

Stack Overflow è un sito di domande e risposte per programmatori ideato nel 2008 da Jeff Atwood e Joel Spolsky. Sulla piattaforma oltre a fare domande, rispondere o modificare risposte con un contributo attivo, è possibile votare le domande e le risposte facendole salire o scendere in classifica. Infine, è previsto un meccanismo di gamification che permette di guadagnare punti reputazione e badge.  Tutti i contenuti generati sono concessi liberamente sotto licenza Creative Commons Attribute-ShareAlike. Stack Overflow è, a tutti gli effetti, una delle Community online per dev più attive con oltre 10 milioni di utenti iscritti. Gli argomenti più discussi sulla piattaforma sono su: JavaScript, Java, C#, PHP, Android, Python, jQuery e HTML.

2. Git

2color lightbg@2x Git è un sistema di controllo di versione distribuito ed open-source creato nel 2005 da Linus Torvalds, il papà di Linux, insieme ad altri collaboratori. È stato creato per tenere traccia delle modifiche apportate ai file di un progetto e, quindi, permettere a più persone di lavorare insieme agilmente.  A differenza di sistemi di controllo di versione client-server, essendo distribuito, è indipendente dall’accesso alla rete o a un server centrale.  Ogni repository Git mantiene la cronologia completa e traccia tutte le modifiche apportate ai file. È popolarissimo tra gli sviluppatori ma può essere utilizzato più in generale per qualsiasi tipo di progetto.

3. Visual Studio Code

File:Visual Studio Code 1.35 icon.svg - Wikimedia Commons Visual Studio Code è un editor di codice sorgente gratuito sviluppato da Microsoft per Windows, Linux e macOS. Ha Git integrato e supporta molte caratteristiche. Permette molte personalizzazioni tra cui il tema dell’editor e le scorciatoie da tastiera. Ha un ricco ecosistema di estensioni sviluppate dalla community per altri linguaggi (come C ++, C #, Java, Python, PHP, Go), runtime (come .NET e Unity) e utility. Visual Studio Code è basato su Electron, un framework con cui è possibile distribuire applicazioni scritte in Node.js.  Nell’ultimo sondaggio di Stack Overflow agli sviluppatori è risultato l’editor più popolare tra i dev con oltre il 50% di preferenze.

4. Slack

File:Slack Technologies Logo.svg - Wikipedia

Slack è uno strumento di collaborazione aziendale ideato da Stewart Butterfield, molto popolare tra gli sviluppatori, che viene utilizzato per inviare messaggi in modo istantaneo tra i membri di un team. Slack permette inoltre effettuare chiamate, condividere file e integrare le funzioni di altre app. È disponibile su tutte le principali piattaforme come applicazione nativa e web app. Tutti i messaggi sono automaticamente sincronizzati tramite il cloud e, in molti casi, permette di ridurre sensibilmente lo scambio di email. 

5. React

Setup ReactJs without NPM and Webpack | by Prudhvi Dharmavarapu | Medium React è stato creato da Jordan Walke, un ingegnere software di Facebook e utilizzato per la prima volta da Facebook nel 2011. È la libreria JavaScript front-end più popolare per la creazione di interfacce utente e componenti UI per applicazioni web e mobile. È open-source, supportato da Facebook insieme a molte aziende e ad una vasta community di sviluppatori! Nel paradigma Model View Controller (MVC), React è responsabile solo del livello di visualizzazione dell'applicazione mentre sono necessarie altre librerie, come Redux  e React Router per gestire lo stato e il routing.

6. Docker

Docker è un insieme di strumenti open-source e multi-piattaforma per automatizzare la messa in produzione di applicazioni all’interno di contenitori software (i container) e fornire un livello di astrazioni hardware grazie alla virtualizzazione che utilizza Linux. Più container indipendenti possono coesistere permettendo di supportare un’architettura a micro-servizi.

7. React Native

React Native è un framework open-source per applicazioni mobile creato da Facebook. E' usato per sviluppare applicazioni per Android, iOS e il Web permettendo agli sviluppatori di usare React insieme alle funzionalità native delle varie piattaforme. Nel 2012 Mark Zuckerberg affermò: "L'errore più grande che abbiamo commesso come azienda è stato scommettere troppo sull'HTML anziché sul nativo". Dopo mesi di sviluppo, Facebook rilasciò una prima versione di React Native e iniziò ad utilizzarla in produzione per l’app Gruppi e quella per gestire gli annunci. 

8. MySQL

MySQL è un Database Management System relazionale (RDBMS); il suo nome è l’unione di “My”, il nome della figlia del co-founder Michael Widenius, e “SQL”, l’acronimo di Structured Query LanguageMySQL è un software libero e open-source rilasciato sotto licenza GNU, usato in molte applicazioni web tra le più diffuse al mondo come Drupal, Joomla, phpBB, e WordPress. È anche usato per servizi web molto popolari come Facebook, Flickr, Twitter e YouTube.

9. Angular

Angular - PRESS KIT

Angular è un framework ed una piattaforma open-source per la creazione di applicazioni web, desktop e mobile. Sviluppato principalmente da Google, utilizza un approccio component based. Angular, come evoluzione di AngularJS, è stato completamente riscritto in TypeScript ed è stato rilasciato nel 2016. Tante aziende usano Angular in produzione, tra cui: Banca d’Italia, Forbes, BMW, Google, Nasdaq, Microsoft.

10. MongoDB

Brand Resources | MongoDB MongoDB è un database distribuito, non relazionale e classificato come database NoSQL. E’ definito come un “database di documenti”, ovvero archivia i dati sotto forma di documenti di tipo JSON. Sviluppato dall’azienda 10gen – che è diventata nel frattempo MongoDB Inc. – dal 2007 è un prodotto open-source. È il database NoSQL più popolare adottato da aziende come: Craigslist, eBay, Foursquare, SourceForge e il The New York Times.

 11. Django

Django è un framework Python open-source per lo sviluppo di applicazioni Web secondo il paradigma Model-Template-View. Il progetto è stato sviluppato nel 2005 dall’organizzazione indipendente senza scopi di lucro Django Software Foundation. Attualmente utilizzano Django aziende come: Pinterest, Instagram, Mozilla, The Washington Times, Public Broadcasting Service, Bitbucket e la NASA.

 12. Postman

Postman è un tool gratuito molto popolare tra gli sviluppatori che permette di creare, testare e documentare le API Rest.

13. Jenkins

File:Jenkins logo with title.svg - Wikipedia

Jenkins è un server di automazione open-source che fornisce centinaia di plugin per supportare la creazione, i test e la distribuzione dei progetti software favorendone la continuous integration (CI) e il continuous delivery (CD). Viene eseguito all’interno di un web server e supporta la tecnologia Servelet potendo essere utilizzato da remoto in un web browser. Supporta i principali strumenti di controllo di versione come AccuRev, CVS, Subversion, Git, Mercurial, Perforce, ClearCase e RTC, etc. E’ scritto in Java e nasce come versione alternativa di Hudson a partire dallo stesso codice sorgente.

14. DBeaver

DBeaver – Universal Database Tool

DBeaver è un tool di amministrazione per database gratuito e multipiattaforma destinato a programmatori, amministratori di database, analisti e tutti coloro che lavorano con i database e permette loro di eseguire tutte le principali operazioni. Supporta tantissimi database : MySQL, PostgreSQL, SQLite, Oracle, DB2, SQL Server, Sybase, MS Access, Teradata, Firebird, Apache Hive, Phoenix, Presto, etc.

 15. Vue.js

Vue.js

Vue, creato da Evan You, è un framework open-source in JavaScript per la creazione di interfacce utente e single page application secondo il pattern Model–view–viewmodel. È un framework progressivo perchè è specializzato nella realizzazione di viste HTML; non offre tantissime funzionalità rispetto ad altre soluzioni ma permette di integrarsi facilmente con componenti di altre librerie e progetti. 

16. Laravel

Laravel - Wikipedia

Laravel è un framework MVC open-source per lo sviluppo di applicazioni web in PHP. E’ stato creato nel 2011 da Taylor Otwell come derivazione di Symfony, un altro framework PHP molto diffuso. Secondo le classifiche di GitHub e StackOverflow, Laravel è il framework PHP più popolare. Innocenzo Sansone Programmo fin da bambino, quando mi fu regalato dai miei genitori un Commodore 16. Oltre 15 anni fa, uno dei primi in Italia, ho iniziato a lavorare come Community Manager in ambito Tech per un’importante multinazionale del settore. Continuando questo lavoro anche con altre aziende, ho dato vita e supportato moltissime Dev Community, ho ideato e organizzato centinaia di eventi tecnici, ho diretto programmi e dipartimenti Tech Community.  Oggi, come libero professionista, dialogo con migliaia di sviluppatori, professionisti e appassionati di tecnologia, startup, aziende, community e associazioni. Continuo ad occuparmi di Community gestendo le Pubbliche Relazioni (con il network diretto – la propria community – e il network indiretto – tutte le altre), organizzando eventi online e dal vivo, ideando nuovi format, occupandomi di Comunicazione e Marketing specifici per la Community, supportando nello sviluppo di prodotti e servizi atti a valorizzare l’interazione con il proprio pubblico. Mi trovate su www.innosans.it, a presto!
Articolo aggiornato il: 09 agosto 2023
Talent Garden
Scritto da
Talent Garden, Digital Skills Academy

Continua a leggere

10 linguaggi di programmazione su cui puntare

Tutti i computer del mondo funzionano allo stesso modo: una serie di 0 ed 1 che rappresentano comandi e dati da ...

I Developer del futuro: 8 figure fondamentali nel mondo della programmazione

I programmatori vengono spesso considerati gente strana! Non ho mai conosciuto un dev in cui la professione non si ...

Prototyping Tools: migliori strumenti prototipazione per UX Designer

Ideazione, progettazione e prototipazione sono le fasi preliminari necessarie per la realizzazione di una UX pronta per ...

Guida completa all'analisi dei dati per il tuo business

Big Data, Small Data, decisioni data driven… si parla ovunque dei dati raccolti dal web come del nuovo petrolio di ...