Utilizzo di esempi di codice per implementare le migliori pratiche di Big O. Come un cambiamento di mentalità può migliorare drasticamente le prestazioni del codice in fase di esecuzione
Con questo articolo mi propongo di aumentare il tasso di alfabetizzazione Big O tra noi professionisti dei dati. Spesso facciamo paragoni tra il mondo dell’ingegneria del software (SWE) e il mondo dei dati. Sebbene esistano best practice applicate in entrambi i campi (come controllo della versione, gestione degli errori e test), dalla mia esperienza personale, l’area in cui sembra che i ruoli dei dati siano in ritardo rispetto ai ruoli SWE è la scrittura di codice performante. Più specificamente, la mentalità di implementare e verificare il codice performante. Personalmente mi sono reso colpevole di questo in passato: se il codice nel mio script funzionasse come previsto e gestisse gli errori con garbo, lo considererei “completo”. Credo che chiunque crei codice a livello di produzione, indipendentemente dal titolo professionale, sia responsabile di garantire che il proprio codice sia performante in fase di esecuzione.
Sono consapevole che ci sono molte persone con ruoli incentrati sui dati che già implementano le migliori pratiche di Big O. Parlando con i colleghi, si tratta in gran parte di individui che lavorano a stretto contatto con gli ingegneri del software e sono quindi in grado di “assorbire” queste metodologie. Ciò è contrario a coloro che lavorano in un team di dati in silos. Anche se posso solo fare ipotesi sul motivo per cui questa best practice non è stata adottata così facilmente nel mondo dei dati, credo che gran parte di ciò dipenda dai percorsi che abbiamo intrapreso per arrivare ai nostri ruoli attuali. Io stesso, in quanto “punto di svolta” nel campo dei dati (in precedenza ho lavorato nel settore assicurativo), Big O e l’idea di codice performante non erano trattati in nessuno dei curriculum che ho studiato. Solo quando ho iniziato a lavorare come Data Scientist professionista in un team di dati molto piccolo, ho iniziato a realizzare l’impatto della scrittura di codice performante. Anche i professionisti dei dati che eseguono tutti i loro esperimenti su notebook e si affidano a ingegneri del software o professionisti di ML-Ops per rendere operativi il codice e i modelli in produzione si troveranno in una posizione simile poiché l’ottimizzazione del codice non rientra necessariamente nel loro mandato (anche se Penso davvero che dovrebbe).
Ogni riga di codice che inseriamo in produzione dovrebbe avere uno scopo e solitamente questo scopo è eseguire un processo o una qualche forma di operazione di I/O. Questi…
Fonte: towardsdatascience.com