Actualmente soy desarrollador web, pero estoy interesado en la programación integrada. ¿Qué idiomas y herramientas puedo aprender a trabajar en esta área?

En el frente de la microcomputadora aficionada, Arduino es lo más liviano posible; con Uno pesando 16Kb de memoria Flash, si se deshace del gestor de arranque y se ocupa directamente del hardware. Arduino recomienda usar su DSL, aunque si usted es un programador profesional y quiere expandir sus habilidades, probablemente sea mejor que simplemente construya en C (el lenguaje Arduino es realmente una versión simplificada de C con GC y algunas bibliotecas grandes).

Podría fácilmente gastar un poco más de dinero para obtener una pizarra más grande, pero mucha de la diversión puede ser escribir algo que sea eficiente. Le enseñará algunas habilidades valiosas que se pueden aplicar en otros lugares: necesitará aprender ingeniería electrónica básica para unir todo, además de escribir software dedicado que haga un solo trabajo.

Depende de lo que quieras construir realmente; sin embargo, un primer paso para decidir qué te gustaría hacer es jugar con una simulación de Arduino como UnoArduSim

Hay muchos lenguajes que se utilizan para la programación integrada, como lenguaje ensamblador, C, Python, Java, Perl e incluso Smalltalk. C es probablemente el más popular.

La programación integrada requiere que comprenda la programación a nivel de hardware, por lo que le corresponde familiarizarse con el hardware. Arduino es un punto de partida razonable, pero sugeriría obtener una Raspberry Pi y jugar con eso.

  1. Compre algunos microcontollers PIC y aprenda a programarlos. (Hace algunos años escribí un libro sobre eso, pero ahora está un poco desactualizado y actualmente no tengo tiempo para actualizarlo). Puede descargar el último IDE desde el microchip (ese es el nombre de la compañía). Los microcontroladores PIC son bastante fáciles y tienen toneladas de documentación. Recomiendo el PIC18F2550 (tiene soporte USB)
  2. Acostumbrarse a esa documentación para la programación incrustada no es, en mi opinión como experto en software, tan legible como usted está acostumbrado. Está seco y escrito por chicos de hardware. Algo aburrido. Pero persevera y obtendrás la información que deseas.
  3. Use C. Principalmente C. Assembler también puede ayudarlo más tarde: muchos códigos de ejemplo están escritos en ensamblador, pero no he tenido problemas para usar C y mantener el otro al mínimo
  4. Si va a hacer esto profesionalmente, aprenda que a veces, por alguna oscura razón, no todos los programas C comienzan por main () . Algunos incluso no tienen un main (). Los chicos del software están confundidos por eso. En un caso, trabajé con un programa que comenzó con una rutina de ensamblador que luego saltó a una función general en C. No main () en absoluto. Pero no te preocupes demasiado, este no es un tipo de cosas para principiantes
  5. Arduino es genial para hacer cosas interesantes. Pero también recomendaría comenzar con los PIC (o si desea mantenerse dentro de arduino ATMEL pero personalmente prefiero los PIC)

Casi todo el código incrustado está escrito en C o ensamblador. Dudo que alguno esté escrito en Java. Probablemente desee practicar un poco en el aprendizaje de C (deje el ensamblador hasta más tarde; no es necesario) antes de intentar programar un Arduino y si obtiene uno, también tendrá que aprender algo de electrónica básica.

También vale la pena pensar en una Raspberry Pi. Es una casa a medio camino entre una PC y un Arduino. Todavía tiene una pantalla, teclado y mouse, pero también tiene pines de interfaz a los que puede conectar cosas y controlarlas. Sin embargo, debe apagarlo como una PC cuando lo apaga, por lo que no es tan bueno para los trabajos integrados adecuados.

Creo que las otras respuestas cubrieron las herramientas más populares, por lo que no puedo agregar mucho. Sin embargo, Coursera comenzó varias clases anteayer que deberían proporcionar todo lo que necesita. Una introducción a la programación de Internet de las cosas (IOT) – Universidad de California, Irvine | Coursera

More Interesting

Soy demasiado productivo en PHP para cambiar a otro idioma para el desarrollo web. ¿Soy un mal desarrollador por usar solo un idioma en el backend?

Estoy construyendo un sitio de subastas en línea. ¿Cómo evito una condición de carrera cuando varias personas ofertan a la vez?

Cómo construir la interfaz del menú para un juego

Quiero escribir mi propio sitio de Twitter (o Facebook), pero no quiero usar PHP como lenguaje del lado del servidor. ¿Cuáles son algunas alternativas?

He completado HTML y CSS de Codecademy. Sin embargo, mi conocimiento se limita a la codificación en el navegador. ¿Cómo trabajan los profesionales y qué hago ahora?

Quiero construir un sistema de chat que pueda servir a miles de personas en el mismo canal mientras que aloje varios canales que también puedan albergar la misma cantidad. Conozco los conceptos básicos de la programación del servidor en Java, pero no estoy seguro de qué técnica debo usar para permitir tantas conexiones.

¿Hay alguna computadora portátil específica que deba usar para el desarrollo web?

Cómo hacer un sitio web PHP

¿Es posible aprender algunas habilidades de desarrollo web para ganar algo de dinero en un mes? Pronto dejaré mi trabajo actual, luego quiero probarme en la industria del desarrollo web y aprender nuevas habilidades en perspectiva.

Mi novio dice que Ruby on Rails no es una programación real. Eso es lo que hago como desarrollador. ¿Debería dejarlo?

Soy un probador manual. Mi interés está en el desarrollo. ¿Es bueno aprender AWS o aprender alguna tecnología de desarrollo? Ya he versado en ASP.NET y Java.

Soy un principiante en el desarrollo web, que se siente extremadamente frustrado cuando no puede instalar el software de requisito previo. ¿Qué puedo hacer para facilitar esto?

Estoy convencido de que Tealeaf Academy es el mejor recurso para aprender RoR profesionalmente. ¿Alguien en Portland, O puede dar fe de su experiencia en el sitio web?

Me gustaría estudiar el protocolo HTTP, las cookies, la administración de sesiones y cómo mantener el estado y la información de la conexión (es decir, los sitios web de comercio electrónico recuerdan todos los detalles de compra y navegación de los clientes). Entonces, ¿qué temas / libros debo buscar?

Estoy en un grupo desarrollando una aplicación en ASP.NET sobre atletismo. ¿Debo ir con Web Forms o MVC, y cómo puedo convencer a los miembros de mi grupo?