Non solo Teoria

Ho ricevuto dei feedback negativi sull’ultimo post molto interessanti, sia da Filippo che da Francesco, organizzerò una cena a Formia per trattarli meglio. Una bella grigliata, una bottiglia di vino, un confronto in amicizia (in realtà io vorrei anche provare questo vermouth artigianale –>  https://amzn.to/2v0oles  che mi ha suggerito Luigi della Caffetteria, si dovrebbe trovare intorno ai 18/20€) ed imparare a fare un Negroni decente.
Ma non è di questo che voglio parlarvi!
Voglio parlarvi della dicotomia tra pratica e teoria.
Che sia il medico, che sia qualsiasi altra professione, studiare soltanto non è sufficiente, c’è bisogno di pratica.
Ma la pratica a sua volta ha bisogno di studio per affinare la tecnica.
Voi non vi fareste mai operare da un medico che ha studiato tutto sui libri ma non ha esperienza pratica, ne fareste fare esperienza sulla vostra pelle ad un medico che non ha studiato nulla.
Io tendo ad essere molto teorico, a studiare un problema in tutte le sue sfaccettature prima di arrivare al risultato finale e questa tendenza può essere estremamente negativa se non la si compensa con un po’ di pratica.
Questo è verissimo soprattutto con Python.
 

“La teoria è quando si sa tutto e niente funziona. La pratica è quando tutto funziona e nessuno sa il perchè. Noi abbiamo messo insieme la teoria e la pratica: non c’è niente che funzioni e nessuno sa il perchè”-Albert Einstein *


Durante le prossime settimane riuscirò a dedicare 20h a Python e l’errore che potrei commettere è quello di stare solo sui libri o sui corsi online e focalizzarmi sulla teoria.
Per evitare questo ho creato delle etichette per le attività che registro attraverso la Tecnica del Pomodoro.
Queste etichette servono per un piccolo programma (uno script) che riceve come input le informazioni su come ho distribuito il tempo nell’ultima settimana e mi restituisce la % di completamento, sulla base di una proporzione che deve esserci tra Pratica, Teoria e Comunicazione del Lavoro Svolto, in sintesi:

  • Lavoro 10 h
  • Studio 6 h
  • Marketing 4h

Lo script è molto grezzo e perfettibile, potevo sfruttare dei cicli for e renderlo più leggibile (vi ringrazio in anticipo per ogni feedback positivo su cosa va potenziato e negativo su cosa va migliorato).
 
La prima parte del programma mi aggiorna sul come sta procedendo l’esperienza con Python, uno script di cui vi avevo già parlato, la seconda parte è quella che valuta il “mix”.
 
Un abbraccio e grazie per aver letto il mio articolo.
 

Andrea

 

ps se noti qualche errore scrivimi pure, se ti è piaciuto ricondividilo! 🙂

 

In [2]:
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
from datetime import datetime, timedelta
va='Python'
tvoi='Length'
csvname="logs2.csv"
#read the csv	
columns_name=['Year', 'Month', 'Day', 'Time', 'Length', 'Start', 'End', 'Activity']
dfraw=pd.read_csv(csvname,names=columns_name,sep=',',skiprows=1,skipfooter=0, index_col=False)
dfraw[tvoi] = dfraw[tvoi].astype('str')
mask = (dfraw[tvoi].str.len() == 6)
dfraw = dfraw.loc[mask]
dfraw[tvoi]=dfraw[tvoi].str.strip()
dfraw[tvoi]=pd.to_datetime(dfraw[tvoi], format='%M:%S')
dfraw['Date'] = dfraw.apply(lambda row: datetime(row['Year'], row['Month'], row['Day']), axis=1)
pythondf=dfraw[(dfraw['Activity'].str.contains("Python",na=False)) | (dfraw['Activity'].str.contains("python",na=False))]
numacti=pythondf.groupby('Date').count()
numacti=numacti['Activity']
numacti=numacti.divide(2)
cumulata=numacti.cumsum()
day=pd.concat([numacti, cumulata], axis=1)
day.columns=['pgiorno','cumulata']
maxh=cumulata.max()
plt.plot(day.index,day['cumulata'])
plt.xticks(rotation=90)
plt.title('Totale ore di studio e lavoro con Python (%d ore)' %(maxh))
plt.tight_layout()
plt.show()
In [26]:
#Questa parte è per l'analisi della settimana 
python_work=10
python_study=6
sutdy='study'
marketing='marketing'
python_marketing=4
total=python_work+python_study+python_marketing
#Selezioniamo solo gli ultimi giorni oggetto di analisi 
days=7
cutoff_date= pythondf['Date'].iloc[-1]- pd.Timedelta(days=days)
print(cutoff_date)
last_7days= pythondf[pythondf['Date'] > cutoff_date]
#Qualsiasi attivita' che non abbia come label "marketing" o "study" "datacamp" "ripasso" "libro" é considerata "work"
#Per del codice migliore cercherò nei prossimi log di avere solo tre label study work marketing come metag
study_mask=(last_7days['Activity'].str.contains("ripasso",na=False) | last_7days['Activity'].str.contains("datacamp",na=False)) | (last_7days['Activity'].str.contains("Libro",na=False))
pythondf_study=last_7days[study_mask]
pythondf_marketing=last_7days[last_7days['Activity'].str.contains("marketing",na=False)]
pythondf_work=last_7days[~study_mask]
#Ricordando che i pomodori sono slot da 30 min 
#dobbiamo contare per categoria il numero di pomodori e dividere per 2
#Qui sotto si poteva realizzare un ciclo for, scusate la pigrizia, suggerimenti ben accetti 
print("Weekly % of Python Working",round(pythondf_work['Activity'].count()/2/python_work*100,2))
print("Weekly % of Python Study", round(pythondf_study['Activity'].count()/2/python_study*100,2))
print("Weekly % of Python Marketng",round(pythondf_marketing['Activity'].count()/2/python_marketing*100,2))
2018-07-18 00:00:00
Weekly % of Python Working 45.0
Weekly % of Python Study 58.33
Weekly % of Python Marketng 0.0

 
*fonte da verificare

Lascia un commento