Trabajo en la Escuela de Ingeniería de Software Holberton en San Francisco, donde he visto un entorno donde los estudiantes interactúan regularmente con ingenieros de software de la vida real y líderes de la industria. Los mentores ayudan a los estudiantes de muchas maneras diferentes y aseguran que el plan de estudios se mantenga actualizado. Algunos mentores crean algunos ejercicios y proyectos para mantener actualizados los niveles de habilidad.
Estamos seleccionando estudiantes basados en 3 criterios:
- Motivación
- (nuestra definición de) talento
- Habilidad para colaborar.
No se le da importancia a ninguna otra cosa, incluida la edad.
Para convertirte en un gran programador de computadoras, debes enfocarte en 3 puntos:
- ¿Cuáles son los seis tipos de comportamiento de riesgo entre los adolescentes?
- ¿Dónde puedo encontrar cigarros a los 14 años?
- ¿Los adolescentes pasan demasiado tiempo preparándose y preocupándose por los exámenes en estos días?
- ¿Cuáles son algunas manualidades de dormitorio de Tumblr DIY teen (niña)?
- ¿Hay buenos trabajos para hombres de 16 años que pagan bien? Deben ser flexibles, y no un trabajo como la comida rápida o un camarero.
- Tener un conocimiento de la pila completa
- Poder aprender por ti mismo
- Habilidades blandas
Tener un conocimiento de la pila completa
Si bien todos tienen una definición diferente de “pila completa”, aquí hay una que me gusta. Las aplicaciones de software son un sistema complicado compuesto de muchas tecnologías y partes: frontend, backend, base de datos, servidor web, red … Por ejemplo: cambiar una consulta en el frontend afectará a la base de datos si el desarrollador no tiene idea de cómo funcionan las bases de datos. podría traer el sitio hacia abajo.
Es por eso que primero debe aprender un mínimo acerca de lo que llamamos la pila, mientras que cada uno tiene su propia definición de pila, un buen comienzo es saber sobre:
- Algoritmo y estructura de datos
- Programación de alto nivel (lenguajes de programación de objetos orientados)
- Administración del sistema y un poco de networking.
Con esto, un ingeniero de software podrá navegar por casi cualquier sistema / aplicación y podrá tomar decisiones de ingeniería bien pensadas.
Poder aprender por si mismo
Los conceptos básicos del software rara vez cambian, pero las herramientas que utiliza la industria cambian constantemente. La industria del software es probablemente una de las industrias que cambian más rápidamente, por eso necesita actualizar constantemente la aplicación de su teléfono inteligente y que sus sitios web favoritos traigan constantemente una mejor experiencia y características.
En este contexto, los ingenieros de software necesitan constantemente evaluar y quizás aprender nuevas herramientas que les ayudarán a hacer su aplicación más rápida, mejor y más confiable. Nuevos lenguajes de programación y bibliotecas vienen constantemente y uno no puede volver a la universidad cada vez que se avecina una nueva tecnología. Los mejores ingenieros de software son los que pueden mantenerse al día con las últimas tendencias. Por eso es fundamental que puedas aprender por ti mismo.
Habilidades blandas
A menos que estés dispuesto a trabajar solo, podría ser la habilidad más importante.
Hay un buen libro sobre esto, “Cómo ganar amigos e influir en las personas”, porque este libro es muy importante para aprender a ser un ser humano exitoso.
- Comunicación
- verbal: hablar en público, presentación…
- Escrito: documentación, correo electrónico, post mortem, redacción técnica…
- Colaboración
- Ayudando a un compañero de trabajo en un proyecto
- A bordo de un recién llegado
- Saber cuándo preguntar
- Espíritu de equipo
- Entendiendo a otros compañeros de trabajo
- Fomento de la colaboración con otros equipos (si es en una gran empresa)
No se puede imaginar cómo el ser amable con las personas y ayudarlas a hacer su trabajo les llevará lejos. Recuerda que para una empresa, si haces bien tu trabajo, eres un 1X. Pero digamos que también está ayudando a 10 personas a hacer bien su trabajo, entonces usted es un 11X y ese es el tipo de personas que necesitan las empresas exitosas.
Si puedes obtener estas 3 cosas, serás un programador increíble y todos querrán contratarte.
¡Buena suerte en tu camino para convertirte en un gran programador!