Aprendizaje de desarrollo de sistemas integrados sin supervisión [cerrado]

10

Me gradué este año y obtuve mi primer trabajo involucrado en programación en C, administración de Linux y desarrollo de sistemas integrados. Me siento bastante contento con mi trabajo, pero me temo que no me convertiré en un programador exitoso en este campo. Soy un desarrollador solitario en mi trabajo ahora, con mis compañeros de equipo siendo expertos en hardware, no hay nadie que me guíe o me enseñe las formas de la programación integrada, tengo que estudiar todo por mi cuenta.

Asi que aqui están mis preguntas. ¿Es posible convertirse en un buen desarrollador de sistemas integrados a partir de una posición de nivel de entrada sin ninguna supervisión por parte de programadores senior? ¿Cómo podría convertirme en uno (quizás con la ayuda de foros, canales IRC, buenos libros de texto)? ¿Cuanto tiempo tardaría?

ACTUALIZACIÓN: Hasta ahora, he recibido un puñado de respuestas útiles, pero me di cuenta de que necesito algunos consejos específicos sobre el tema.

Entonces, aquí están mis preguntas particulares:

  1. ¿Cuáles son algunos buenos libros de texto que uno puede usar para aprender desarrollo integrado?
  2. ¿Qué comunidades especializadas en línea pueden ser útiles para un aspirante a desarrollador integrado (sin contar cosas generales como Stack Overflow, Reddit, etc.)?
  3. ¿Cuáles son los blogs más interesantes dedicados al desarrollo integrado?
Olga
fuente

Respuestas:

3

Tienes razón en que estar en tu caso hará las cosas un poco más difíciles. Sin embargo, hay muchas soluciones para resolver su problema.

  1. Primero intente participar en comunidades como esta, pero quizás más especializadas en su campo. Al participar, aumentará su conocimiento y, lo que es más importante, conocerá a otras personas.

  2. Intenta participar en los campamentos de código o en cualquier iniciativa en la que conozcas a otros desarrolladores como tú en realidad. Es más fácil compartir conocimientos cuando tienes a la persona frente a ti.

  3. Pídale a su jefe que le reserve al menos 10 días de capacitación al año . No es necesario explicar las ventajas aquí, si se niega, es estúpido.

  4. Intente ir a 1 o 2 conferencias o ferias comerciales relacionadas con su negocio.

  5. Intenta leer un libro técnico cada dos meses . Si puedes leer más, no lo dudes.

  6. Consigue un mentor . No es lo más fácil de lograr, por supuesto.

  7. Reserve un tiempo en la semana para experimentar e investigar y desarrollar , probando nuevas tecnologías de las cosas que lee en sus libros, comunidad, ferias comerciales, capacitaciones, etc. Es muy importante tomarse el tiempo para practicar lo que ha aprendido.

  8. Hoy usted es el único desarrollador, pero gracias a su arduo trabajo, la compañía en la que se encuentra crecerá y probablemente necesitará contratar a más personas de su tipo .


fuente
3

Ahora soy un desarrollador solitario en mi trabajo, y mis compañeros de equipo son expertos en hardware.

No dudes en usarlos como recurso. Una de las cosas más difíciles para los programadores integrados que no son EE es sentirse cómodos con el hardware. Es muy útil poder leer un esquema (incluso si no puede diseñar uno) y comprender cómo usar un osciloscopio para ver las señales que salen del microcontrolador.

tcrosley
fuente
0

Ha pasado un tiempo desde que hizo esta pregunta, así que espero que esté bien encaminado. Aquí hay algunas sugerencias adicionales que espero sean de ayuda.

Stack Exchange y Blogs

Sorprendentemente, Stack Exchange no tiene su propio sitio de preguntas y respuestas para los sistemas integrados. Uno fue propuesto hace aproximadamente dos años, pero todavía está en la fase de compromiso, languideciendo sin suficientes personas que se suscriban para apoyarlo. Si quieres marcar la diferencia, ve aquí:

http://area51.stackexchange.com/proposals/15961/embedded-system-design-and-development

Lea la propuesta y, si está de acuerdo, haga clic en comprometerse para participar.

Linked In también tiene un grupo de sistemas integrados, además de un par de grupos estrechamente relacionados que pueden ser de interés:

Sistemas embebidos

Firmware

BRAZO

Recursos web

EETimes tiene características sobre sistemas embebidos.

http://www.eetimes.com/design/embedded

El Dr. Dobbs es amigo desde hace mucho tiempo de programadores de todo tipo y tiene excelentes cosas en incrustado.

http://www.drdobbs.com/embedded-systems

La comunidad de Arduino es grande, entusiasta y ha eliminado muchas barreras de entrada para la programación integrada, incluidos el precio y la capacitación previa.

http://www.arduino.cc/

Si usted es un desarrollador de software femenino o un desarrollador masculino no iluminado que considera que los sistemas integrados son principalmente un club "Good-Old-Boys", consulte este sitio. La autora se graduó en el MIT, había trabajado de manera innovadora, fuera de la caja (o, a veces, dentro de la caja, como su cargador de iPhone de Altoids-box), y parece ser muy prolífica en su diseño, escritura y video blogging.

http://www.youtube.com/watch?v=QkmtHqsYCbw&feature=player_embedded# !

http://www.adafruit.com/tutorials

Muchos proveedores tendrán colecciones extensas de hojas de datos, notas de aplicación, documentos técnicos y copias gratuitas o de evaluación de herramientas de desarrollo. Las principales empresas en este espacio incluyen ARM, Atmel, Freescale, intel, Microchip Technologies, NXP (anteriormente Phillips), TI y muchas otras.

Libros

No estoy seguro de poder encontrarlo, pero creo que tengo un libro que cuenta gran parte de la historia de los sistemas integrados en términos de herramientas (ensambladores, enlazadores, cargadores) y cosas fundamentales que suceden en los microprocesadores (interrupciones, E / S, simples). administradores de tareas y planificadores, estructuras de archivos simples). Programación de sistemas para computadoras pequeñas, Daniel Marcellus.

Una referencia más moderna es Embedded Linux Primer. Los primeros capítulos discuten la lógica detrás de ejecutar Linux en sistemas embebidos y algunas de las mecánicas involucradas. El Capítulo 3 presenta una buena discusión sobre los procesadores + conjuntos de chips de soporte y las opciones SOC (System On a Chip) que pueden considerarse para su uso en los diseños actuales. En realidad, el objetivo se está moviendo, por lo que ofrece un punto de partida contemporáneo con la publicación del libro. El Capítulo 3 es excelente, pero debe complementarse con algunas investigaciones adicionales en la web y en discusión con los proveedores. Por lo general, el ingeniero eléctrico y los ingenieros de software líderes en el proyecto elegirán el procesador, por lo que si se encuentra en una empresa y está aprendiendo sistemas integrados, profundice en el hardware que eligen.

Los capítulos posteriores incluyen descripciones extensas sobre muchos aspectos prácticos de apuntar Linux al hardware, pero la asociación con el proveedor y el uso de un diseño de referencia bastante estándar podría reducir el esfuerzo significativamente.

DesarrolladorDon
fuente
0

Depende principalmente de ti mismo. Si está dispuesto a aprender y saber cómo reunir suficiente información sobre el tema, puede enseñarse cualquier cosa. Pero no todas las personas tienen el mismo éxito al hacer eso:

Comencé en un entorno similar, y si veo dónde estoy ahora en comparación con hace 5 años (graduado como ingeniero electrónico, prácticamente sin experiencia en programación), me parece increíble de lo que es capaz el cerebro humano. Cuando comencé, nunca había oído hablar de patrones de diseño, TDD, ... y nunca había visto el código de un programa real. Ahora sé estas cosas bastante bien y sé cómo usarlas. Lo único que hago es buscar en la red, leer el código de otros y algunos libros (que nuevamente encontré en la red), y lo más importante, escribir toneladas de código, depurar, aprender de mis errores. Aprender de un error es una manera mucho mejor de aprender algo en lugar de solo leer una muestra y replicar el comportamiento. Es muy extraño, pero solo he hablado en la vida real con lo que llamaría un buen programador un par de veces.

El único otro programador aquí es lo que llamarías un senior (porque ha estado en el trabajo por más de 15 años). Él trabaja de una manera completamente diferente a la mía. Y todavía está escribiendo una forma inválida de C con clases, nunca usa STL, no tiene idea de qué es un patrón de diseño, etc., etc. (Probablemente voy a comenzar una pregunta sobre este asunto pronto, me cuesta mucho intentar hacer que adopte al menos algunos de mis métodos ...)

stijn
fuente
-1 Para un posible buen significado, pero sin pistas "Si eres lo suficientemente inteligente ..." apertura. Por favor, nunca cuestionemos la inteligencia de nadie, particularmente si no hay evidencia aparente. No creo que tu objetivo fuera ser hostil, pero para Olga, podría haber parecido así. Parece haber publicado esta pregunta, y luego no haber hecho nada más en Stack Exchange.
DesarrolladorDon
@DeveloperDon mi objetivo era no ser hostil, pero tienes razón, cuando leo la oración ahora parece que estoy sentado en una torre siendo todo superior. Una cosa vergonzosa, así que la quité.
stijn