Il mio background è ingegneria elettrica, DSP per essere più preciso. La società per cui lavoro attualmente fa molti progetti diversi, principalmente costruendo hardware analogico. Essendo un po 'più vicino ai computer rispetto a tutti gli altri qui intorno, sono spesso l'unico codice di scrittura per entrambi i dispositivi embedded (con cui sto perfettamente bene) e Windows o Linux OS. È quest'ultimo che è territorio straniero per me.
Posso codificare 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ù che altro. Tuttavia, ottengo sempre più progetti in cui devo scrivere un software completo a tutti gli effetti, e non so davvero come farlo, perché non ho mai dovuto farlo, e non sono mai stato veramente interessato abbastanza. Ho visto molti ingegneri convertiti in programmatori in una certa misura a causa delle richieste di lavoro, e la maggior parte di loro non erano così bravi in quello che facevano. Sono sicuro che molte persone hanno incontrato lo stesso.
Se dovessi imparare a scrivere software corretto con una buona interfaccia utente, una buona architettura interna e così via, come faccio? Non abbiamo nessuno al lavoro che potrebbe dirmi cosa sono le buone pratiche e cosa no. Dato che posso scrivere code nel senso più grezzo della parola, che altro c'è da sapere sulla scrittura di un buon software e come faccio a arrivarci da solo?