¿Existe material gratuito útil para el aprendizaje de sistemas integrados?

Sí, pero la mayoría no es de naturaleza tutorial. El lado de la programación no es realmente muy diferente de la programación para otros fines. Dado que la mayoría de los sistemas integrados funcionan con alguna forma de interfaz con ‘dispositivos’, hay un componente del trabajo que requiere una comprensión de cómo un sistema implementa esa interfaz. Eso implica invariablemente algunos conocimientos de electrónica. Dependiendo del escenario, eso podría requerir diseño, fabricación y prueba de la electrónica que implementa las interfaces. Aprender algo de electrónica se puede hacer de forma autodidacta, pero será mucho más difícil que aprender a escribir código. Probablemente requerirá un poco de tecnología de soporte, como algunos equipos de prueba y medición (DVM, alcance, fuentes de alimentación, equipo de pruebas, tal vez incluso un analizador lógico). Muy a menudo, requerirá una comprensión de cómo funcionan una CPU y la memoria y los periféricos que están conectados a un nivel mucho más bajo que la abstracción proporcionada por los lenguajes de alto nivel. Esta parte se puede aprender del material en línea e impreso, pero definitivamente no es simplemente leyendo. Este es el dominio del trabajo de laboratorio en la capacitación formal. Hice mucho de eso en un momento en que no había Internet, y fue realmente un trabajo muy duro, incluso con una formación formal en electrónica. Tuve la suerte de poder aprender en el trabajo, tener un buen mentor y acceso a equipos que generalmente no están a disposición de la mayoría de las personas. La mayor fuente de información en aquel entonces eran los libros de datos publicados por los fabricantes de productos electrónicos. Publicaron diseños de referencia que usaban sus productos, y estos podrían adaptarse a sus propios fines. Hoy, todos están en línea, accesibles a todos de forma gratuita. Las hojas de datos también incluyen especificaciones para cosas como el tiempo a nivel del bus y el comportamiento del dispositivo. Estos son invaluables para pasar de una pieza de hardware que no hace nada a una que cumpla el propósito de su diseño. Es necesario comprender una descripción de los registros y sus propósitos, los pines y las interfaces eléctricas para diseñar un sistema o programa y depurar uno existente.

Lamentablemente, el nivel de entrada para bricolaje y prototipos ha aumentado mucho. La mayoría de los componentes están disponibles en paquetes destinados a productores en masa que usan métodos de ensamblaje robótico, lo que hace que sean difíciles de usar o incluso adquirir en pequeñas cantidades. Por otro lado, ahora es posible diseñar sus propios circuitos y PCB utilizando software gratuito. También hay una gran cantidad de diseño de hardware abierto disponible, y gran parte está documentado para permitirle aprender de él. Los sistemas ya preparados como Arduino, Rpi, Beagleboard, etc. proporcionan una plataforma de entrenamiento decente, pero a menos que esté diseñando sus propias tarjetas de expansión, en su mayoría son aplicaciones de estilo de cortador de galletas. El trabajo real de los sistemas embebidos lo realizan las personas que diseñan y construyen los tableros que usted compra como aficionado o prototipo.

Para encontrar las fuentes de información, puede comenzar por pasar el rato en foros como los dedicados a los paneles mencionados anteriormente. Surgirán nombres y otras jergas y enlaces en línea, lo que le proporcionará nuevas vías para estudiar. Espera que sea difícil. Espere invertir mucho tiempo. Espere invertir bastante dinero en efectivo. Si considera que la experiencia del autoaprendizaje es agradable y la búsqueda de información no se siente como trabajo, tiene una oportunidad decente de tener éxito.

Sin embargo, una palabra de advertencia. Los empleadores probablemente serán mucho más insistentes con las credenciales oficiales de lo que lo harán para programar trabajos estrictamente. Puede ser difícil obtener una entrevista sin un título o diploma.