¿Qué esperaría una empresa de un ingeniero de software junior c ++?

A2A. Esto variará de una compañía a otra, pero le daré mis dos centavos sobre lo que espero de un desarrollador junior de C ++ el primer día.

  • Una sólida comprensión de C ++. Debe conocer el flujo de control, la herencia, la composición, los punteros y las estructuras de datos como mínimo.
  • Debe saber cómo buscar las cosas cuando hace preguntas. Puede usar StackOverflow, un libro de texto, cplusplus.com o lo que le resulte más cómodo. Si necesita recordar cuál es la sintaxis exacta para extraer un elemento de una pila, debe saber cómo buscarlo usted mismo.
  • Cómo usar un entorno de desarrollo para escribir, compilar y construir su código. Eso podría ser cualquier cosa, desde Visual Studio a Vim en un terminal de Linux.
  • Saber utilizar el control de versiones.
  • Saber cómo depurar software y corregir el error.
  • Tener una buena actitud Debería estar dispuesto a aprender de ingenieros de software más experimentados.
  • Tener un interés en aprender la industria y los negocios de la empresa.
  • Que se convertirá en un mejor ingeniero de software durante dos o tres años. Eso significa necesitar menos orientación por parte de ingenieros superiores, comprender y resolver los problemas clave de software en la industria y enseñar lo que sabes a otros ingenieros de software junior.

Bien.

Depende de una compañía a otra, pero si fuéramos a contratarlo como junior, estas son las cosas que requeriríamos que un junior sepa.

  1. Conozca al menos los paradigmas (de procedimiento, OO, genéricos, funcionales). Eso no significa que deba programar con todos estos paradigmas, sino al menos estar familiarizado con ellos. Pero OO es el requisito.
  2. Conocimiento sólido de las características del lenguaje C ++ como clases, referencias y punteros.
  3. STL es una necesidad y un conocimiento básico de los algoritmos (clasificación de fusión, clasificación de burbujas, inserción, clasificación de selección, etc.)
  4. Métodos virtuales y herencia
  5. Pruebas unitarias (pruebas de Google en particular).
  6. Conocimiento de al menos un sistema de compilación como Make
  7. Lo más importante: leer documentación y escribir una.

Probablemente habría más cosas, pero esto sería necesario si trabajaras para nuestra empresa.

Además, dependiendo de la industria, hay algunas cosas que debe saber.

Trabajamos con los datos distribuidos, por lo que en nuestro caso se desearía tener conocimiento de Linux, servidores RPC (RabbitMQ en particular) y soluciones de agrupación (Consul / Nomad).

Si estaba trabajando en el software para plataformas petroleras, por ejemplo, necesitaría conocer al menos estadísticas básicas (MLR – regresión lineal múltiple), cómo leer los datos de flujo de la plataforma, etc.

Y los juniors generalmente trabajan en piezas de software más pequeñas con la ayuda de los seniors hasta que conocen el sistema.

Y tenga en cuenta que todo esto no es obligatorio, sino deseado. Eso significa que, sea cual sea el trabajo al que se postule, aprenderá muchas cosas en el camino.

Varía según la compañía.

Ha habido mucha inflación de títulos en la industria; junior solía estar por encima del nivel de entrada. Entonces, lo que significa depende de los nombres de las calificaciones entre “pasante” y “CTO”.

Por lo general, diría que si cayera en el medio en algún lugar, esperarían que pudieras escribir C ++. Probablemente no requieren que pueda ser líder tecnológico en un proyecto. Quizás incluso no sea un muy buen arquitecto de software.

More Interesting

Cómo cambiar mi carrera de ingeniero de sistemas a programador

Si me convirtiera en ingeniero de software, ¿debería esforzarme por convertirme en uno en Google o en una compañía de videojuegos?

Cómo transformarse de 'aficionado' a desarrollador de software profesional

Soy un probador de software con 4 años de experiencia. ¿Puedo pasar a la prueba de dispositivo móvil (prueba de producto)?

¿Por qué todos en el software de gestión de información escolar?

¿Qué habilidades debe poseer un ingeniero de pruebas de software?

¿Cuáles son los pros y los contras de convertirse en un administrador de software en lugar de apegarse a un rol de desarrollo de software?

¿Qué universidades ofrecen programas de MBA sin GMAT en los EE. UU. Con 2 años de experiencia laboral en el campo de las pruebas de software?

¿Qué tan difícil es lograr un trabajo de ingeniería de software de nivel básico?

¿Los ingenieros de software son buenos candidatos para programas MBA de primer nivel?

Voy de la banca de inversión a la tecnología. ¿Debo disparar para SWE o PM?

Si la programación / ingeniería de software es una carrera sin salida, ¿qué debe hacer un programador experimentado?

Soy un ingeniero de software en .NET con 2.0 años de experiencia con un paquete 2.7 que falta en Cochin. Siento que mi paquete es bajo. ¿Que puedo hacer?

¿Puede convertirse en un arquitecto de software sin conocer las cosas de nivel más bajo sobre bytes, núcleos, controladores y hardware?

¿Cuáles son los roles de desarrollador de software y desarrollador de Oracle?