¿Cómo puede un ingeniero eléctrico aprender programación práctica? ¿Qué se necesita en el mundo real?

La programación ‘práctica’ es poder trabajar en proyectos de programación lo suficientemente grandes como para que no seas la única persona involucrada. Puede estar trabajando en un módulo específico, con interfaces a otros módulos que ya existen o en los que otras personas están trabajando. Esto no debería estar muy lejos de su experiencia como ingeniero eléctrico.

Como ingeniero eléctrico, ya sabe cómo crear compuertas NAND y NOR, así como compuertas NOT, AND, OR y XOR, sin importar las memorias intermedias, utilizando transistores. Como programador práctico, puede suponer que todo eso existe, pero necesitará aprender cómo funcionan las construcciones IF y FOR y WHILE, sin importar las subrutinas (funciones, procedimientos, métodos).

Comience haciendo programas muy pequeños, menos de 10 líneas de código, equivalentes a poner un diodo y una resistencia en serie desde una fuente de voltaje para que el diodo no explote.

Desarrollar hasta programas más grandes. Más líneas de código no es necesariamente mejor, pero LOC es una analogía fácil para la cantidad de componentes en un circuito, y claramente no desea usar DEMASIADO más de lo necesario. Los programas de aproximadamente 100 líneas son bastante capaces de ser útiles y tomar menos de un día de esfuerzo, por su cuenta.

Para cuando llegue a escribir programas de mil líneas, tendrá un par de convertidores, en la entrada y salida, y varias unidades lógicas decentes. Podrá proporcionar una mejor analogía que yo para lo complicado que es un circuito, pero en este momento comprenderá cómo hacer que las cosas sean modulares en un entorno de programación.

Después de eso, solo se trata de tener más experiencia, trabajar en equipo si es posible (los comentarios positivos son excelentes como desarrollador), y así sucesivamente.

A menos que esté trabajando en investigación o desarrollando software de sistemas, la “programación práctica” se centra en aplicaciones específicas de dominio.

Como eres un EE, te sugiero que aproveches tu conocimiento de EE. Aprenda a programar en el contexto de un dominio de aplicación con el que ya esté familiarizado y en el que trabaje, ya sea radio, audio, alimentación, hardware informático, electrónica de control, etc.

Si está creando dispositivos, aprenda a escribir controladores de dispositivos en lenguaje ensamblador y quizás c. Si está construyendo dispositivos electrónicos de control, aprenda a escribir software de control.

Si usa herramientas de software (por ejemplo, procesamiento de audio), aprenda a escribir complementos. Si trabaja en sistemas, aprenda software de modelado (por ejemplo, MATLAB y Simulink). Etc.

Debo agregar que “ingeniería de software” en lugar de “programación” es una disciplina tan detallada como la ingeniería de hardware. Al igual que al diseñar hardware, hay procesos de ingeniería, arquitectura, diseño detallado e implementación, todo respaldado por una gran cantidad de fundamentos teóricos; hay contrapartes en ingeniería de software (o ingeniería de sistemas de software). Si va a diseñar y construir sistemas de software complejos, hay mucho que aprender además de la programación.

De ahí mi sugerencia de que comiences con tareas mucho más enfocadas. De lo contrario, vuelve a la escuela.

Resuelva un problema que usted o alguien más tenga.

Escriba un programa que riegue automáticamente las plantas mientras está de vacaciones.

Escriba un programa que permita a los jugadores jugar “Memoria” a grandes distancias.

O cualquier otra cosa, de verdad.

Esa es una buena manera de aprender programación.