Mi formación es ingeniería eléctrica, DSP para ser más preciso. La compañía para la que trabajo actualmente realiza muchos proyectos diversos, en su mayoría construyendo hardware analógico. Al estar un poco más cerca de las computadoras que todos los demás, a menudo soy el que escribe el código tanto para los dispositivos integrados (con los que estoy perfectamente bien) como para el sistema operativo Windows o Linux. Es lo último que es territorio extranjero para mí.
Puedo codificar, y conozco algunos lenguajes (C / C ++, Java, algunos VB.NET), pero solo los utilicé para simulaciones de algoritmos en el procesamiento de señales e imágenes, redes neuronales y otras aplicaciones similares. Para mí, la programación ha sido una herramienta computacional más que cualquier otra cosa. Sin embargo, obtengo más y más proyectos en los que tengo que escribir un software completo adecuado, y realmente no sé cómo hacerlo, porque nunca tuve que hacerlo y nunca me interesó lo suficiente. Yo mismo he visto bastantes ingenieros que se convirtieron en codificadores en cierto grado debido a las demandas de trabajo, y la mayoría de ellos no fueron tan buenos en lo que hicieron. Estoy seguro de que muchas personas han encontrado lo mismo.
Si tuviera que aprender a escribir un software adecuado con una buena interfaz de usuario, una buena arquitectura interna, etc., ¿cómo lo hago? No tenemos a nadie en el trabajo que pueda decirme qué es una buena práctica y qué no. Dado que puedo escribir código en el sentido más crudo de la palabra, ¿qué más hay que saber sobre cómo escribir un buen software y cómo llego allí por mi cuenta?