Learn

Python: dai primi passi al setup di un progetto

10 Novembre 2020 - 4 minuti di lettura

Imparare Python [1] e preparare un setup di un progetto con questo linguaggio è più facile del previsto, basta sapersi muovere in base alle proprie esigenze. Ce ne parlano i ragazzi della gilda Pythoff!

A seguito di questa gilda è stato sperimentato un percorso di apprendimento per l’approccio ad un nuovo linguaggio. Questo articolo si pone come obiettivo la condivisione di questa esperienza.

Percorso di apprendimento

Il percorso di apprendimento è caratterizzato da tre fasi:

  • Corso online – Studio e approccio iniziale.
  • Codewars – Piattaforma “gamification-like” per apprendere linguaggi di programmazione.
  • Progetto base – Setup di un progetto con alcune operazioni base.

Parola ai protagonisti della gilda Pythoff!

Corso online

Come primo approccio al “nuovo ma vecchio” linguaggio abbiamo selezionato un corso online da seguire. Si tratta di un workshop registrato della durata di due giornate durante le quali sono stati trattati argomenti che spaziano dai fundamentals di Python, quindi le basi del linguaggio, fino a scenari molto specifici come ad esempio i Web Framework [2].

Avendo come obiettivo l’apprendimento e la comprensione delle basi del linguaggio abbiamo escluso molti argomenti del corso i quali, seppur interessanti, sono risultati troppo specifici per questo contesto.

Per la selezione del corso online più adatto alle vostre esigenze consigliamo di informarsi innanzitutto sull’ambito lavorativo di chi tiene il corso/workshop. Spesso i coach tendono a concentrarsi sull’aspetto del linguaggio più vicino al loro lavoro. Inoltre la piattaforma di fruizione del servizio può essere un ulteriore parametro da considerare nella vostra scelta, sia per la tipologia dei contenuti che offre, che per la loro qualità.

“Come mai la durata del corso non è tra i principali “filtri” che ci siamo imposti?”

Seppur con tempi limitati non abbiamo considerato il fattore durata dal momento che riteniamo importante capire quali sono le parti del corso che non vale la pena affrontare (tenendo sempre presente l’obiettivo della gilda).

Per apprendere meglio i contenuti spiegati dal corso, ogni volta che delle istruzioni (o particolari concetti) del linguaggio venivano mostrate mettevamo in pausa il video per provarle scrivendo codice direttamente sulle nostre macchine.

Codewars

Sulla piattaforma Codewars [3] abbiamo avuto modo di metterci alla prova superando sfide più o meno complesse, e potendo confrontare la nostra soluzione con altre spesso più efficienti.

Su questa piattaforma sono presenti vari livelli di difficoltà, rappresentati da numeri (un esercizio contrassegnato come difficoltà 1 significa che è tra i più difficili). Siamo riusciti, partendo da esercizi difficoltà 7, ad arrivare fino a difficoltà 2.

Abbiamo notato che insistere su esercizi troppo difficili non faceva al caso nostro, perché la complessità della sfida proposta non risiedeva nel linguaggio da utilizzare bensì all’algoritmo da implementare.

Riteniamo che un approccio del genere sia fondamentale nell’apprendimento di un nuovo linguaggio di programmazione e consolidare le conoscenze al riguardo. Applicare una conoscenza teorica su casi pratici è la famosa prova del nove per rendersi davvero conto di aver fatto propri determinati concetti!

Progetto base (Read & Write)

Per concludere il percorso di apprendimento abbiamo deciso di creare un progetto base composto da  alcune semplici operazioni; operazioni che ci troviamo ad affrontare spesso nella vita lavorativa di tutti i giorni.

Più precisamente il codice che abbiamo scritto serve ad eseguire operazioni complesse su una gran quantità di dati provenienti da file .csv. Gli algoritmi da eseguire, però, cambiano in base al file che si sta analizzando.

La soluzione a questo “inghippo” tecnico è stata aggiungere un file di configurazione utile al progetto per capire quale algoritmo eseguire per quale file.

Questa configurazione viene poi elaborata da una classe che ha come unico compito quello di istanziare correttamente i vari solver.

Python, essendo nato come linguaggio di scripting, offre la possibilità di specificare gli argomenti da passare quando viene lanciata un’esecuzione da riga di comando. Per sfruttare ciò abbiamo deciso che il nome del file da processare debba arrivare “da fuori”, specificando con una lettera l’argomento (arg) nel comando e una descrizione per aiutare chi lo sta scrivendo.

Una volta terminata questa parte di setup iniziale ci siamo concentrati sulla logica dell’applicazione:

  • come leggere effettivamente i file .csv,
  • passare questi dati al relativo solver,
  • produrre un altro file .csv di output, così da poter implementare entrambi i metodi di read e write.

Python si è rivelato un linguaggio perfetto per questo tipo di operazioni, visto che la maggior parte delle facility relative al sistema operativo sono integrate del linguaggio.

Una volta aperto il file, con i metodi .reader() e .writer() è possibile rispettivamente leggere e scrivere intere righe di file: è sufficiente specificare il delimitatore di fine riga e poche altre informazioni!

Articolo scritto da