¿Qué necesito saber para ser considerado para un puesto de desarrollador junior de C ++?

Sí, siempre hay más que aprender, ya sea principiante o profesional con 20 años en el negocio de la programación. No hay un punto mágico en el que puedas dejar de estudiar y aprender.

Dicho esto, existen mínimos mínimos en lo que respecta al conocimiento de C ++; cuanto más avance más allá de esos mínimos, más probabilidades tendrá de ser contratado para su primer trabajo (y tener éxito en él). Dado que los programadores experimentados tienden a impacientarse con los inexpertos, poseer más conocimientos de C ++ probablemente hará que su experiencia en la oficina sea más fluida.

Habilidades Fundamentales

Independientemente del idioma que esté aprendiendo, cada programador necesita conocer algunas habilidades fundamentales. Bases de datos, por ejemplo: Aprender alguna combinación de SQL, MySQL y NoSQL no puede dañar, ni saber tanto como sea posible sobre selecciones y uniones. Un programador sólido está suficientemente familiarizado con Linux y Windows para mostrar algunas habilidades administrativas y de línea de comandos, cuando sea necesario.

Otra cosa importante a saber es el control del código fuente. En estos días, la mayoría de las personas parecen preferir git, aunque todavía se ven otros como la subversión. Aprende todo lo que puedas; si lo contratan como programador de C ++, es muy probable que su nuevo empleador le pida que revise el código, y definitivamente querrá saber cómo hacerlo sin preguntar.

Específicos de lenguaje con C ++

Seamos realistas: C ++ no es un lenguaje fácil de aprender. Dominar los conceptos básicos de C ++ significa que ha desarrollado algunas habilidades sólidas.

Primero, aprenda los conceptos básicos de la programación orientada a objetos; También conocemos estructuras de datos y algoritmos por dentro y por fuera. Por ejemplo, sepa cómo crear una lista vinculada, aunque probablemente usará una que sea parte de una biblioteca existente.

Dominado esos? Aquí hay algunos artículos más:

  • Aprenda qué son las variables de pila y cómo se pueden asignar los objetos en el montón; lleve esto al siguiente nivel y comprenda que cuando llama a new , generalmente almacenará un puntero al objeto en una variable; el objeto vive en el montón y la variable vive en la pila. Aprenda si estas variables están fuera de alcance y cuándo. ¿Porque es esto importante? Si devuelve la dirección de una variable local, va a (a) crear errores y (b) enojar a otros programadores.
  • Aprenda cómo funcionan realmente las referencias y cómo son diferentes de los punteros. Comprenda cómo se pasan las variables en las funciones y acerca de pasar una estructura completa en lugar de pasar un puntero a una estructura en una función.
  • Aprenda cómo se asignan las matrices con new y delete, y cómo crear una matriz que pueda devolver de una función de manera segura.

¿Tienes una idea de todo lo anterior? Lo estás haciendo bien. Aquí hay algunas cosas nuevas que aprender:

  • Métodos virtuales
  • Destructores virtuales
  • Sobrecarga del operador
  • Cómo funcionan las plantillas (funciones, clases e instanciación)
  • Sintaxis correcta
  • La biblioteca estándar, así como Boost (practíquelos a ambos)

Pase tiempo con código profesional como algunos de los proyectos C ++ de código abierto más grandes en GitHub. Esto le permitirá “aprender de los maestros”, por así decirlo.

Aquí hay una idea de cuántos desarrolladores senior ven a los desarrolladores de nivel de entrada: la mayoría no son pacientes con ellos. Esperan que los desarrolladores de nivel de entrada sean tan buenos en la codificación que pasarán rápidamente al nivel superior. Los desarrolladores de nivel superior no quieren sostener a los desarrolladores de nivel de entrada.

En otras palabras, si comienza un trabajo en C ++ y le pregunta a un desarrollador senior qué referencia tiene, el desarrollador de nivel senior se enojará. No es que sean personas enojadas en general; es solo que tienen un trabajo que hacer … y ese trabajo no es enseñar programación. Si bien no esperan que los desarrolladores de nivel de entrada tomen decisiones arquitectónicas, sí esperan que sean codificadores fuertes y competentes; También están impresionados cuando los desarrolladores de nivel básico aprenden rápidamente lo que necesitan saber y avanzan por su cuenta.

Conclusión

Dicen que el mejor momento para plantar un árbol fue hace 20 años; El segundo mejor momento es hoy. Lo mismo ocurre con la programación: aprende todo lo que puedas hoy, con la vista puesta en el futuro. Si bien C ++ no es algo que se pueda dominar en una semana, se necesita relativamente poco esfuerzo para comenzar a dominar sus componentes fundamentales.

Mi enfoque es ligeramente diferente al de las otras respuestas. Proporcionan un buen ejemplo de los tipos de habilidades que necesita saber para C ++ general. Sin embargo, lo único que veo es que cada vez que veo un trabajo buscando a alguien para codificar aplicaciones C ++, generalmente requieren un conocimiento específico en un dominio.

En mi cuello del bosque, los veo con ganas de personas con experiencia médica, experiencia en SIG, experiencia en Linux, programas integrados o de fábrica, o algo así como finanzas. Para ser honesto, la mayoría de las aperturas que veo para los desarrolladores se centran en tecnologías web, que no juegan en C ++ para entornos corporativos.

Mi sugerencia sería mirar su mercado laboral individual y ver qué piden las personas cuando piden C ++. Una vez que vea algunos ejemplos, oriente su aprendizaje y capacitación en esas direcciones (suponiendo que le gusten).

Preguntar qué habilidades se requieren para la tecnología X en algo como Quora no es la mejor, ya que muchas veces está dictada por el mercado, las tendencias y las palabras de moda. Mirar las ofertas de trabajo actuales y pasadas es la mejor manera de adaptar sus habilidades y experiencia a la oferta de trabajo que le gustaría tener.

¿Supongo que depende de la posición que estás solicitando? Algunas tiendas esperan mucho de un desarrollador “junior”, mientras que otras ajustan sus expectativas.

Como mínimo, espero que tenga experiencia con herramientas básicas de desarrollo: compilador, enlazador, depurador y sistema de control de versiones. Probablemente no necesite conocer C ++ ampliamente, pero ser capaz de convencer a un posible empleador de que puede profundizar en los recursos para llenar sus vacíos probablemente sea un “plus” significativo.

Finalmente, cualquier proyecto que pueda mostrar en el que haya tenido una contribución significativa es probable que lo ayude. Si todo lo que tiene es un programa de 5,000 líneas que escribió por su cuenta, prepárese para explicar su enfoque para su desarrollo, lo que cambiaría si comenzara de nuevo, etc. Sin embargo, contribuciones reales a proyectos más grandes con varios otros programadores Sería un activo más fuerte, creo.

  • Habilidades reales de C ++.
  • Como probablemente no tengas jefes anteriores que puedan recomendarte para C ++, trata de obtener experiencia laboral. ¿Quizás ya conoces Python y tienes un trabajo en Python y tu jefe actual también está dispuesto a permitirte aprender C ++ en el trabajo? De lo contrario, no es fácil ser contratado, ya que enfrenta el clásico problema del huevo y la gallina: para obtener experiencia laboral, necesita un trabajo, pero para conseguirlo, necesita experiencia laboral.
  • Si no tiene esa oportunidad, haga sus propios programas para demostrarlo.