Cómo aumentar mi capacidad de contratación para roles de ingeniería de software

Experiencia laboral o equivalente mostrando tus talentos. Su educación es genial y todo, pero ¿qué puede mostrarnos al resto de nosotros que ha construido a partir de lo que aprendió? ¿Dónde está tu implementación?

He contratado a mucha gente y consideraré tu educación, no me importará tu pasantía, he tenido muchos pasantes trabajando para mí, así que sé que no has hecho nada serio como pasante. Has hecho trabajo de peldaño inferior en el mejor de los casos.

Entonces sabe cómo crear software, que en realidad es una de las partes más fáciles de la ingeniería de software. ¿Qué nos puede decir sobre los procesos y procedimientos que rodean el desarrollo de sistemas de software mantenibles? ¿Qué detalles me puede proporcionar sobre la planificación de sistemas de software complejos y los principales puntos de costo en el desarrollo de estos sistemas?

¿Qué me puede decir sobre la arquitectura de software y los enfoques para resolver problemas específicos del dominio? ¿Qué me puede decir sobre la implementación de planes de software? ¿Cuáles son los desafíos que enfrentamos?

Cuando llegue el momento de ser contratado, debe mostrar su trabajo y cuando sea el momento de hablar sobre un trabajo: esto es lo que enfrentará conmigo. También he pasado por muchas entrevistas técnicas y la lista a continuación es la punta del iceberg sobre lo que enfrenta.

  1. ¿Qué tan apasionado eres por la ingeniería de software?
  2. ¿Cómo expresas tu pasión?
  3. ¿Cómo se mantiene actualizado sobre los cambios en nuestra industria?
  4. ¿Qué estudias para mejorar tu comprensión del desarrollo de software?
  5. ¿Cuáles son algunos de sus libros, artículos y publicaciones favoritas sobre el tema de la ingeniería y la construcción de software?
  6. ¿Me puede proporcionar un código que pueda revisar que muestre su comprensión de lo que es un sistema de software mantenible y lo que requiere?
  7. ¿Qué tan bien entiendes la programación orientada a objetos y los sistemas modelados en esta forma de pensar?
  8. ¿Por qué no querríamos usar enfoques orientados a objetos y cuándo? (La mayoría de las veces trabajará en OOP, hasta que cruce barreras en otras áreas y también debe saber sobre estas)
  9. Analicemos las interfaces, las clases abstractas, la herencia y los desafíos que plantea cada una de ellas en un sistema de software a gran escala.
  10. Ahora hablemos sobre las metodologías y lo que ha utilizado, lo que cree que funciona mejor y lo que ha experimentado.
  11. Finalmente, le proporcionaré un problema complejo que esperaré que comprenda y resuelva en vivo frente a mí con muy poca información. Por lo general, estará fuera del dominio de lo que te contrataré, para que puedas demostrar que puedes pensar fuera del contexto de lo que te hace sentir cómodo.

¿Puede responder a estas preguntas de manera clara, concisa y sin ‘tonterías’? ¿Va a mostrar un sesgo o una conexión emocional con ciertas respuestas en lugar de un enfoque racional? Todos estos aumentan sus probabilidades como candidato.

Espero que hable sobre las cosas que aprendió en la escuela y cómo las ha usado. Tu educación es una base para saber a dónde irás desde aquí.

Finalmente, hablemos de los activos frente a los pasivos. Si alguien entra por la puerta con experiencia laboral comprobada en comparación con su educación universitaria, obtendremos aproximadamente 2 resultados. Usted es una responsabilidad potencial debido a su falta de experiencia en el desarrollo y el trabajo en equipo. Si ha hecho ambas cosas, ya está construyendo su argumento como un activo. Queremos adquirir activos que nos hagan ganar dinero y mantener las puertas abiertas. Si usted es una responsabilidad, frustrará al equipo, tomará recursos adicionales y producirá malos resultados. En última instancia, esto hace que su trabajo sea de corta duración.

Como estudiante, tiene poca experiencia en el mundo real construyendo cosas para resolver problemas de negocios (la mayoría de las veces trabajará en negocios: la ciencia, las matemáticas y la investigación son un mundo propio que no cubriré aquí). El experto en experiencia laboral generalmente sabrá de lo que estoy hablando cuando diga cuáles son los costos de corregir un error en la planificación, el desarrollo o la implementación posterior, y cuáles son esas magnitudes de costos y qué significan para un proyecto y su entrega. ¿Qué causa que ocurran estas magnitudes de costo? ¿Podemos sortearlos? (Esa es una pregunta capciosa: ¡no puedes!). Los candidatos experimentados también sabrán a qué me refiero cuando hablemos de un sistema de software mantenible y sus requisitos.

Verá que la mayoría de los desarrolladores son flojos, se metieron en esto por algo más que pasión, e intentarán seguir su carrera en la calle fácil. Eso está bien, pero solo busca empleo a ese nivel si eres tú. Su trabajo probablemente apestará, pero eso puede ser una cuestión de opinión. Como individuo, me siento impulsado cada día para mejorar mis habilidades y llevar esto al final del juego y quiero que esas personas en mi equipo.

Al final, quiero que aparezcas y me enseñes lo que no sabía y que entiendas los desafíos que enfrentamos a diario.

Si entras hablando de la escuela, lo que aprendiste en la escuela y todo eso, tendré la impresión de que esto es algo por lo que fuiste a la escuela. Si vienes mostrándome que eres un activo, tienes la oportunidad. Como ingeniero de software, no debería tener problemas para producir estos resultados.

Esta es una respuesta larga, pero he entrevistado a muchas personas y me han entrevistado mucho a mí mismo. Esta es la dura realidad con la que te enfrentas.

Estoy más adelante en el camino, pero quiero que sepas que la educación es solo un pequeño obstáculo en tu interés como ingeniero de software durante toda tu carrera, en unos pocos años estará desactualizada en muchos casos.

Muchas veces, si le hablas mucho a tu escuela, también muestra que necesitas instrucción frente a la capacidad de investigar, enseñarte a ti mismo, consumir información técnica y actuar de manera productiva. Cuál es la parte más grande de nuestro mundo y nos define como activos para un equipo, un producto y la compañía que lo crea.

Aparte de eso, ¡la mejor de las suertes! Aquí hay dos grandes libros para leer y educarte más. También son dos balas doradas que puedo proporcionarle con las que puede aumentar sus habilidades y que le servirán el resto de su carrera:

Amazon.com: Patrones de diseño: elementos de software orientado a objetos reutilizables (Adobe Reader) eBook: Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides: Kindle Store

Code Complete (Mejores prácticas para desarrolladores) 2, Steve McConnell, eBook – Amazon.com

Haga referencia a estos libros en entrevistas y en la comprensión que ganó y ya está en su camino hacia el éxito.

More Interesting

¿Cuáles son los 10 libros de programación más importantes?

¿Cuál es la diferencia en la metodología de desarrollo de software en Investment Banks vs Tech Companies?

Cómo ganar dinero en la industria del software

¿Puede un ingeniero de software sobrevivir sin usar la recursividad? Siempre tiendo a usar iteración (para o mientras bucle) en lugar de recursión. ¿Puedo obtener siempre usando la iteración en lugar de la recursividad?

¿Existe una correlación entre los diseñadores de software / juegos y los científicos sociales?

¿Para qué sirve la lógica Hoare (o Hoare triples)?

¿Cuáles son las propiedades de un buen equilibrador de carga?

¿Es posible graduarse de DigitalCrafts y obtener un trabajo en ingeniería de software en Atlanta?

Mi aplicación es una aplicación basada en Windows, en la que proporcionamos una interfaz que contiene todo el software portátil y el usuario puede usar este software sin instalarlo. ¿Cómo puedo implementar esto en Internet?

Buscando socios de desarrollo offshore para una startup. ¿Alguien puede recomendar una empresa? Buscando a ambos, con sede en los Estados Unidos o socios externos. Se prefieren socios de desarrollo con sede en EE. UU.

¿Es demasiado tarde para comenzar una carrera de programación a los 20 años siendo una niña?

Si tiene un cronograma muy ajustado, ¿elegiría cumplir la fecha límite con un código incorrecto o posponer el proyecto con un código bueno y limpio?

Cómo entender el código de un proyecto de manera rápida en un entorno profesional y programar más rápido

¿Qué tan importante es la matemática aplicada en el desarrollo de software?

¿Cómo deben usar los desarrolladores Twitter (correctamente)?