Coding e scienza: la strada è segnata
Perché scienziat* di ogni settore dovrebbero sapere analizzare ed elaborare i dati utilizzando un linguaggio di programmazione? Si tratta di una risposta né unica né semplice, come in fondo si poteva immaginare. Tuttavia, se dovessimo ridurre ai minimi termini, condensandola, la risposta sarebbe più o meno così: “Perché la scienza, come il mondo e la società, cambia”. Anche se esistono pilastri che difficilmente saranno soggetti alla prova del tempo, come le basi concettuali del metodo scientifico, è pur vero che oggi per fare scienza servono capacità e competenze che anche solo pochi anni fa erano considerate secondarie. Alcune di queste sono rappresentate dalle coding skills (=capacità di programmazione).
Sia nella ricerca scientifica che nel mondo del lavoro, la programmazione è oggi pervasiva in ogni disciplina, dalla biologia alle scienze agrarie passando per la psicologia e la medicina. I motivi di questo cambiamento sono molteplici. Certamente, una delle cause è da ricercare nell'introduzione di nuove tecnologie. Basti pensare al sequenziamento del DNA nel campo della medicina e della biologia oppure l’acquisizione di dati tramite droni o satelliti nelle scienze agrarie e forestali. O ancora, l'acquisizione di dati relativi alle abitudini e comportamento dei clienti di un negozio o di un e-commerce. Come conseguenza, insieme a tecnologie innovative, hanno fatto il loro ingresso nuove tipologie di dati (i.e., formato, dimensione) con cui lavorare e, soprattutto, un aumento esponenziale di informazioni da processare. Tutto questo, in una sorta di spirale che si autoalimenta, ha gettato le basi per cui è ormai essenziale possedere le basi di un linguaggio di programmazione. In una recente analisi di revisione, Mohammadi e Karami hanno identificato come in alcuni settori siano state sistematicamente applicate tecnologie correlate ai "big data" fino a rappresentare il 13% per l'informatica legata alla medicina, 11% per l'ambiente e clima e 17% per la pedagogia di tutti gli articoli scientifici pubblicati dal 2012 al 2017. A tutti gli effetti, settori non tradizionali quanto per esempio il Machine Learning oppure l'ottimizzazione di algoritmi. Siamo quindi in una periodo storico in cui la programmazione e le tecnologie correlate all'elaborazione di grandi quantità di dati sono ormai mature abbastanza da contaminare anche altri settori e discipline.
Quindi, quali sono i vantaggi di conoscere un linguaggio di programmazione?
Consigliati da LinkedIn
- Gratis: oggi la maggior parte dei linguaggi di programmazione più diffusi (i.e., Python, R, C++, Java) è disponibile gratuitamente. Ci si può dimenticare di pagare costose licenze o utilizzare software non adatti per le vostre analisi.
- Specificità: alcuni metodi computazionali (e.g., Machine Learning) o analisi specifiche sono possibili solo con un approccio che utilizzi un linguaggio di programmazione. L’alternativa è non effettuarle affatto, perdendo quindi occasioni di approfondimento, scoperta o profitto. Infatti, questo aspetto ha un'importanza fondamentale sia nel settore privato che in ambito universitario.
- Visualizzazione dei dati: ”Il più grande valore di un'immagine è quando ci costringe a notare ciò che non ci saremmo mai aspettati di vedere” sosteneva John Tukey nel secolo scorso. Con i linguaggi di programmazione è possibile portare la visualizzazione dei dati a un altro livello, creando grafici complessi e personalizzabili oppure report in grado di trasmettere con estrema chiarezza e semplicità il significato dei dati presentati.
- Replicabilità: il tema della crisi della replicabilità nella scienza è un tema molto attuale (interessanti questi approfondimenti in merito, [1] e [2]). Il coretto utilizzo di linguaggi di programmazione, delle loro attive community online e degli strumenti oggi a disposizione per fare fronte a questo problema, favoriscono trasparenza e replicabilità in ambito scientifico e non solo.
- Automatizzazione e personalizzazione di soluzioni: per definizione programmare consente di sviluppare soluzioni personalizzate per problemi specifici (con un notevole allenamento delle capacità di problem-solving e stimolo della creatività!) e di poterle applicare nuovamente e velocemente qualora si presentasse lo stesso problema a distanza di tempo. Non esiste una soluzione per i vostri dati o per il problema che dovete affrontare? Semplicemente createla.
- Carriera (the last but not the least): Il coding è un'abilità richiesta in tutti i settori e offre un ottimo potenziale di guadagno con un'ampia varietà di scelte di carriera. Inoltre, la programmazione è molte volte un vero e proprio requisito più che un semplice plus e offre maggiori possibilità di assunzione sia in accademia che nel settore privato.
La scelta, giunti a questo punto, ricade su quale sia il linguaggio di programmazione che più si adatta alle proprie necessità. Perché sì, ogni linguaggio ha i propri punti di forza e debolezze e scegliere quale imparare dipende principalmente dai propri obiettivi personali e priorità professionali e che rispondono alla domanda "Cosa devo fare con il linguaggio di programmazione che vorrei imparare?". Un approfondimento e confronto su questi argomenti sarà presto disponibile nel mio prossimo articolo.
PhD Candidate UNIVPM-SZN | Graduate Researcher at Fish and Wildlife Conservation Department (Virginia Tech)
2 anni👏🏻