Il mio background è ingegneria elettrica, DSP per essere più precisi. La società per cui lavoro attualmente fa molti progetti diversi, principalmente nella costruzione di hardware analogico. Essendo un po 'più vicino ai computer rispetto a tutti gli altri qui, sono spesso l'unico codice di scrittura per entrambi i dispositivi embedded (con cui sto perfettamente bene) e per il sistema operativo Windows o Linux. È quest'ultimo che è territorio straniero per me.
Sono in grado di programmare e conosco alcuni linguaggi (C / C ++, Java, alcuni VB.NET), ma li ho usati solo per simulazioni di algoritmi nell'elaborazione di segnali e immagini, reti neurali e altre applicazioni simili. Per me la programmazione è stata uno strumento computazionale più di ogni altra cosa. Tuttavia, ottengo sempre più progetti in cui devo scrivere un vero software completo e non so davvero come farlo, perché non ho mai dovuto farlo e non sono mai stato abbastanza interessato. Ho visto alcuni ingegneri che si sono convertiti in programmatori in una certa misura a causa delle richieste di lavoro, e la maggior parte di loro non era così brava in quello che hanno fatto. Sono sicuro che molte persone hanno incontrato lo stesso.
Se dovessi imparare a scrivere un software adeguato con una buona interfaccia utente, una buona architettura interna e così via, come posso farlo? Non abbiamo nessuno al lavoro che possa dirmi quali sono le buone pratiche e cosa no. Dato che posso scrivere il codice nel senso più grezzo della parola, cos'altro c'è da sapere sulla scrittura di un buon software e come posso arrivarci da solo?