Soy un desarrollador de software que desarrolla IU con QT C ++ y conozco la programación de sistemas integrados para microcontroladores PIC. Tengo interés en explorar el desarrollo del kernel de Linux y los BSP. ¿Cuál debería elegir para mi carrera a tiempo completo dada la tendencia reciente?

Ambos, el desarrollo de aplicaciones usando Qt C ++ y Linux Kernel y BSP son carreras dignas.

El desarrollo de aplicaciones, por supuesto, tiene sus propios desafíos y trabajar con una compañía de productos le brindará a ambos una buena experiencia y la satisfacción de ver su trabajo salir al mercado. Te comprometerás a proporcionar asistencia también para nuevas funciones y correcciones de errores. Qt C ++ ahora es MUY potente y se puede usar de manera efectiva para aplicaciones de escritorio y móviles. ¡Prepárate con las habilidades de C ++ 11 AHORA!

El trabajo de kernel de Linux y BSP también es un trabajo especializado ahora. Para eso, nuevamente necesitará estar con una compañía de productos que haga su propio hardware o diseñe hardware para los clientes.

Los desafíos en el desarrollo de aplicaciones son elegir el enfoque de diseño correcto, desafíos de UX, reelaboración basada en los requisitos del cliente, cumplir con los requisitos de rendimiento, etc. El conocimiento del dominio es una gran ventaja.

El trabajo de Kernel y BSP puede no involucrar tanta programación ya que la comunidad Linux desarrolla tanto software que la mayoría de la gente simplemente elige los paquetes correctos y modifica los scripts de compilación y se asegura de que se compile bien y genere la imagen. Eso tiene sus propios desafíos y ser un miembro activo de la comunidad del kernel de Linux, es necesario piratear el código escrito por otros para ver qué está sucediendo y mantenerse actualizado para sus requisitos. Alguien como Denx que creó el gestor de arranque U-boot son lugares dignos para trabajar con.

Necesitamos ambas habilidades ampliamente y encontrar buenas personas en ambas áreas es un desafío. Soy consciente de que mi respuesta no es clara en cuanto a cuál es el camino correcto a seguir, simplemente porque ambas son cosas buenas para trabajar y para hacer carreras satisfactorias.

No pasé mucho tiempo en su pregunta PIC ya que la mayoría de los sistemas integrados utilizan un sistema operativo. Aquellos que no lo hacen, ya sea dispositivos muy pequeños como los de IoT o equipos extremadamente especializados que incluyen codificación de metal desnudo, es decir, aplicaciones que no son del sistema operativo directamente en los procesadores para el rendimiento. Estas también son opciones válidas, pero eventualmente Linux o algo uCOS o RTOS harán sentir su presencia. Algo como estar en un equipo que trabaja en el diseño del compilador necesita todo tipo de conocimiento.

Pero la mayor parte del trabajo principal se asigna a equipos confiables y no se subcontrata. Se consciente de esto. Tienes que construir una reputación sólida para que te den la responsabilidad de las apuestas altas. No hay duda sobre eso.

More Interesting

¿Los desarrolladores web fallaron los desarrolladores de software?

¿Cuál es la diferencia entre un desarrollador de software junior y uno intermedio?

¿Es posible que el ingeniero de control de calidad pase a un rol de desarrollador dentro del equipo de Apple después de un año más o menos?

¿Cuáles son las startups con sede en Kolkata, India?

¿Qué ejercicios diarios de algoritmo son mejores para mejorar mis habilidades de desarrollo de software?

¿Debo elegir un contrato de desarrollador de software o un puesto de liderazgo a tiempo completo?

¿Cómo es mudarse de Bangalore a Delhi para un chico del norte de India que trabaja en el dominio de TI como ingeniero de software?

Dada una lista no ordenada de enteros, devuelve verdadero si la lista contiene duplicados difusos dentro de k índices de cada elemento. ¿Cuál es el algoritmo óptimo para este problema?

¿Puede un ingeniero de TI trabajar como desarrollador de software?

¿Qué marco o arquitectura de software tuvo un profundo impacto en el desarrollo de su producto de software y por qué?

¿Por qué es probable que el software desarrollado con modelos evolutivos sea difícil de mantener?

¿Por qué los desarrolladores en Europa occidental y oriental pagan considerablemente menos que los desarrolladores en los Estados Unidos?

¿Cuáles son las etapas en el desarrollo de software?

¿Por qué se supone que un desarrollador de software piensa como un tomador de decisiones empresariales?

¿El éxito como desarrollador de software depende de un título de ingeniería?