¿Todavía hay áreas en informática que requieren que trabajes con cosas de bajo nivel?

Podrías buscar aperturas en High Performance Computing, que constantemente requiere cosas de bajo nivel.

Mi propio trabajo con frecuencia me obliga a ajustar varios programas de simulación científica, para arreglarlos o acelerarlos en beneficio de los científicos que necesitan toda la potencia informática que pueden obtener. Cuando el tiempo en una computadora grande se vuelve lo suficientemente costoso, comienza a tener sentido poner un esfuerzo humano en desperdiciar la menor cantidad posible.

En su mayoría, es rentable trabajar en C, C ++ o Fortran, pero siempre es necesario mantener una conciencia de cómo interactúa el programa compilado con la arquitectura subyacente de la máquina. Un par de veces al año más o menos, me encuentro leyendo hojas de especificaciones del procesador, buscando un ensamblador o incluso editando código máquina sin procesar.

No es un mercado laboral gigantesco, pero si puedes demostrar que eres bueno en este tipo de cosas, las instituciones que lo necesitan se interesan bastante en contratarte. Hay mucho trabajo por hacer, y no muchos graduados preparados o ansiosos por asumirlo.

No diría que el pago es astronómico, pero está bien, y el trabajo es muy interesante cuando te encantan los bits para encontrar números.

  • Los controladores de dispositivos siguen siendo un arte arcano y a menudo requieren una codificación de nivel bastante bajo.
  • Diseño y desarrollo de BIOS.
  • Cualquier sistema integrado (impresoras, automóviles, relojes digitales, tarjetas PCI, etc.) a menudo requiere codificación directamente en el metal. Esto no va a desaparecer pronto, ya que las limitaciones de memoria y CPU son siempre un problema. A medida que aumenta la memoria y la CPU, las aplicaciones que la gente quiere ejecutar en ellos se vuelven más complicadas.
  • Programación del kernel del sistema operativo.
  • Cualquier cosa que implique la optimización del código es un trabajo difícil (esta es la última etapa de compilación / vinculación, o en el caso de máquinas virtuales podría estar en código JIT).
  • Cualquier procesamiento en tiempo real como los motores de videojuegos (no necesariamente el diseño del juego en sí, que tiende a estar en un nivel superior) o el procesamiento de señales.

Secundaré a Jan Christian Meyer y recomendaré la informática de alto rendimiento. Si está en un dominio donde el tiempo del programador cuesta más que el hardware, entonces el sesgo será aislar al programador de la máquina. En HPC, las máquinas aún cuestan más que los programadores, por lo que hay muchos incentivos para extraer el último rendimiento de su código.

Es interesante que piense que los sistemas operativos y los compiladores son de bajo nivel. Donde trabajo, esas son herramientas de alto nivel que constantemente se interponen en el camino al ocultar lo que la máquina realmente está haciendo. Tengo pasantes de verano que están trabajando en el lenguaje ensamblador de ajuste manual y estoy buscando financiación que prototipo de un sistema que prescinda del sistema operativo por completo (se inicia directamente en su aplicación, y los servicios generalmente proporcionados por el sistema operativo están vinculados en como bibliotecas).

La informática es un gran campo de trabajos especializados. Un fabricante de computadoras requiere programadores o ingenieros de software para escribir microcódigos para la emulación a nivel de máquina del conjunto de instrucciones, escritores de diagnósticos, aplicaciones, controladores de interfaz periférica, controladores de comunicaciones, sistemas operativos y cualquiera de las innumerables aplicaciones de sistemas especiales. Y probablemente haya tantas posiciones orientadas al hardware para que coincidan. Luego tiene representantes de la compañía para el soporte de hardware y software del cliente y toda una echalon para soporte local, nacional e internacional. Para cualquier aplicación dada, es probable que encuentre una amplia gama similar de puestos de software y hardware, el grado depende de la popularidad y el alcance de la aplicación. En resumen, no hay escasez de empleos disponibles en informática. El truco es simplemente especializarse en su campo y ser bueno en lo que hace y experto si puede. Es bueno mirar hacia el futuro e imaginar hacia dónde van las cosas y esto puede guiarlo, pero hay muchos trabajos que continúan mucho más tiempo de lo que podría imaginarse apoyando equipos y aplicaciones “obsoletos” que simplemente nunca parecen morir debido a partidarios rabiosos y aquellos que están íntimamente familiarizados con la aplicación o el equipo y simplemente no quieren tener que aprender algo nuevo. Solo mantén los ojos abiertos y habla con todos los que conozcas en el trabajo o fuera de él y aprende lo que puedas. Déjate guiar por tus intereses, simplemente no renuncies a tu trabajo diario hasta que aparezca algo mejor.

El diseño integrado aún utiliza procesadores de 8 bits * y requiere que manipule directamente los registros de hardware de los periféricos del microcontrolador en chip. Por lo general, estos se asignan en memoria, por lo que se accede a ellos mediante punteros en C, lo que significa que generalmente no se requiere Asm.

Muchas cosas, desde helicópteros de juguete hasta sistemas de gestión de motores (automotriz, aeronáutica, etc.) usan microcontroladores.

Diseñé una computadora con motor para el Mazda MX5 usando un ATMega328, eso fue divertido (¡Mi última revisión del diseño en realidad usa un ARM M3 de 32 bits para permitir tiempos más avanzados y cálculos de combustible!)

* Ahora tiendo a utilizar los microcontroladores basados ​​en la serie ARM M, que son de 32 bits, pero aún se ejecutan sin un sistema operativo, por lo que tiene un control determinista total. Cada vez más con microcontroladores basados ​​en ARM más potentes, es común tener un RTOS, por las ventajas de gestión de recursos que ofrecen.

Absolutamente. Capability Hardware Enhanced RISC Instrucciones (CHERI)

Como dice el viejo refrán;

Sin programadores informáticos, tostadoras
Solo haría tostadas

¿Qué tal la cafetera programable B&D?


La olla arrocera común tiene un sorprendente algoritmo de lógica difusa;

La mayoría de los automóviles tienen al menos veinte procesadores y media docena de sistemas operativos.

Pronto habrá procesadores en todo. Sí, incluidos los humanos.

… Probablemente en tu vida también.

Siempre habrá un nicho para las cosas que te excitan, creo. IoT es cada vez más grande, casas inteligentes, sensores inteligentes, potencia inteligente. Todos estos campos fueron posibles gracias al aumento de la potencia computacional, pero siempre es genial si puede optimizar las cosas, y escribir cosas en conjunto es lo más óptimo posible, siempre que lo haga bien. Entonces, sumérgete, ponte bien, no temas 🙂

Escribir ensambladores / enlazadores y ciertas operaciones de seguridad se benefician de poder leer y escribir código de máquina. La única forma de ser más primitivo que eso es sumergirse en el diseño del procesador y la E / S reales.

Controladores de dispositivo; OS porting y tuning; Análisis de rendimiento de bajo nivel; Atención al cliente y análisis de hardware defectuoso; … Muchos trabajos. Pero, tenga en cuenta que son * muy * especializados!

Drones, Robótica e IoT (Internet de las cosas) vienen a la mente. A menudo usan código de bajo nivel en lenguaje C o ensamblador.

More Interesting

Cómo cambiar mi especialidad de arquitectura a CSE

¿Qué necesita un ingeniero de electrónica y comunicaciones para construir un automóvil como este? (dada a continuación)

Estoy pensando en escribir una carta de presentación para Yelp para un puesto de gerente de producto. ¿Cómo debo escribir la apertura?

¿Cuál es la diferencia entre el código escrito por un graduado de IIT y un graduado de una universidad regional de ingeniería autofinanciada?

Si alguien desea una carrera en / relacionada con la ley, pero no puede pagar la escuela de derecho, ¿hay opciones fuera del trabajo como asistente legal o secretaria legal?

¿Cómo es trabajar en Trulia, Zillow o Rent.com?

Me encanta la patología y tengo la oportunidad de obtener el MD de patología en el mejor programa de residencia en patología de la India. Pero mis colegas piensan que es una rama inferior y debería intentar una vez más entrar en algo como la medicina. ¿Seré visto con tanta inferioridad de por vida como patólogo?

Cómo hacer una carrera en una startup

Planeo postularme a Oxford (informática y matemáticas) el próximo año. ¿Qué puedo hacer para asegurar mi éxito? ¿Cuáles son algunos consejos para el examen de matemáticas o la entrevista? ¿Cómo puedo ser el mejor?

Soy un B.Tech 2015 desmayado. ¿Cuáles son mis posibilidades de encontrar un trabajo si escribo un ELitmus ahora?

¿Cuál es la mejor manera de comenzar a trabajar para una empresa en lugar de hacer sus propios proyectos o trabajar por cuenta propia?

Como profesional de seguridad de TI, ¿cómo trato con los jefes que piensan que mi trabajo es demasiado fácil y me imposibilita cumplir con los plazos?

¿Qué debería preferir, un EEE en SJCE o un CS en RNSIT?

¿Es mejor hacer una pasantía (inicio) durante 3 meses y un puntaje GRE de 315-320 o trabajar duro para calificar 325-330 al dejar la pasantía?

¿Qué sucede en una entrevista de salida en Google?