¿Qué consejo le darías a un nuevo ingeniero de software graduado que está comenzando su carrera en un gigante de software como Amazon / Google / Facebook en el área de la Bahía de San Francisco?

Gracias por el A2A.

Permítanme comenzar diciendo que estas compañías son diferentes y que mi experiencia personal solo cubre Amazon (y Microsoft, si eso es importante). Sin embargo, creo que se han hecho cosas importantes que se aplican a todos ellos.

Se humilde Es un poco complicado, porque no debes ser modesto, y debes estar dispuesto a expresar tus opiniones.

Pero recuerde que casi todos en esas compañías son realmente inteligentes, o no estarían allí. Además, cada persona tiene más experiencia que tú, por definición.

Acepte que en muchos casos, cuando no está de acuerdo con alguien, se equivoca. Manten una mente abierta. Acepte la crítica constructiva como una oportunidad de aprendizaje, en lugar de ser defensiva (lo que todos tendemos a ser).

Nuevamente, eso no significa que usted simplemente diga “sí señor” o “sí señora” y siga las instrucciones como un robot. Pregunte por qué, explique su razonamiento de manera respetuosa y escuche la respuesta. Si eres inteligente (muy probable), a veces estarás en lo cierto, y tu opinión será aceptada por otros. Simplemente no esperes que esa sea la norma, al menos no en el corto plazo.

Un punto importante aquí es que esto se aplica no solo a otros desarrolladores, y tal vez a su gerente, sino también a otras personas de la organización: los gerentes de productos, gerentes de programas, diseñadores de experiencia de usuario, personas de control de calidad … Todos ellos saben más que usted, especialmente: pero no solo en su área de especialización. Demonios, incluso los Asistentes Ejecutivos tendrán mucho que enseñarte (y de hecho, asegúrate de ser muy respetuoso con ellos … son un recurso importante).

¡Aprender! Probablemente conoces un par de lenguajes de programación, has escrito algún código en la universidad, y tal vez un par de proyectos paralelos en GitHub o algo así, y sientes que has recorrido un largo camino desde que comenzaste a programar. ¡Excelente!

Ahora está listo para comenzar a aprender a escribir software .

Eso no es lo mismo que codificar, eso sí. En el mundo real, el software es grande, como en muy, muy grande, antiguo, complejo y desordenado. No es nada como lo hayas visto antes.

Para aquellos que han visto Karate Kid (¡yay ’80s!), Imaginen que han aprendido a hacer “encerado, encerado”, y que han hecho algunos katas . Ahora es el momento de pelear de verdad. Sí, conoces todos los movimientos básicos, pero eso es solo el comienzo.

Así que prepárate para aprender algunas habilidades nuevas y extremadamente importantes:

  • Cómo trabajar como parte de un equipo: cómo comunicarse, coordinar, aceptar y proporcionar aportes y comentarios, crear camaradería, ganarse la confianza y el respeto de sus compañeros de equipo, etc.
  • Cómo ejecutar dentro del cronograma y otras restricciones: estimar, reestimar, priorizar, comprometer, ocasionalmente cortar esquinas (pero de una manera juiciosa y consciente).
  • Cómo escribir código de calidad : correcto, legible, estable, mantenible, extensible; con monitoreo, registro, métricas; corriendo en máquinas de producción y manejando el tráfico de producción de clientes reales.

Hacer amigos. No tiene que amar a todos sus colegas, y no tiene que salir a beber con ellos todos los viernes por la noche. Pero sea respetuoso, amable, servicial y confiable (es decir, cumpla lo que promete), y sus colegas lo apreciarán y disfrutarán trabajando con usted.

Además, siempre trate de pensar en ellos en términos positivos. Todos tienen rasgos negativos: este tipo tiene una voz molesta; esa mujer sigue interrumpiendo en las reuniones; este otro tipo siempre llega tarde a sus entregas. No los ignore, necesita saber para poder solucionar esos problemas, pero busque los aspectos positivos y deje que esos definan a la persona en su mente.

En mi carrera trabajé con cientos de colegas. Con pocas excepciones, me lo he pasado muy bien trabajando con ellos, y este enfoque es una gran razón. Me ayudó a mantener buenas relaciones a través de los años y las empresas, y simplemente hace que el trabajo sea más divertido. Si sigues pensando en lo mal que están tus compañeros de equipo / gerente / colegas, te sentirás miserable.

¡Que te diviertas! Si no disfruta su trabajo, no le hará mucho bien a nadie, porque su trabajo sufrirá y su carrera se estancará. Si descubre que no lo está disfrutando, intente comprender por qué e intente encontrar soluciones. En una buena compañía, su gerente es una buena persona para pedir ayuda en esto, suponiendo que no sean el problema, por supuesto. Algunas compañías también tienen programas de tutoría, que pueden ser muy útiles.

Mantenga una mente abierta sobre su carrera profesional. Dices que quieres convertirte en un SDM. Ese es un camino perfectamente razonable, pero no es la única forma de avanzar en la industria del software. Especialmente en las grandes empresas como las que mencionó, existen profundas trayectorias profesionales para los contribuyentes individuales.

En Amazon, por ejemplo, tiene posiciones SDE con niveles hasta 10, lo que equivale a VP (dos niveles por debajo de Jeff Bezos). Obviamente solo un puñado de ingenieros llegan allí, pero hay muchos más que están en el nivel 6 (SDE III), 7 (Principio SDE) u 8 (Principio Senior SDE) (por alguna razón Amazon no tiene a nadie en L9 … )

Algunos desarrolladores también cambian a un rol de Administrador de programas técnicos, que se trata más de reunir requisitos para, coordinar, planificar y ejecutar proyectos. Una vez más, puede llegar bastante lejos en ese camino, y también puede ser una buena manera de hacer la transición a SDM o PM (Product Manager).

Así que disfrute sus primeros años como SDE y observe a los ingenieros superiores que lo rodean, a su gerente, a sus TPM, etc. Conozca las trayectorias profesionales de su empresa. Luego reevalúe sus prioridades, descubra qué es lo que le gusta hacer y cómo cada una de esas carreras profesionales podría funcionar para usted. Nuevamente, su gerente y / o mentor debería ser un buen recurso.

Estudié ciencias de la computación en UC Berkeley, pero siempre me interesaron los negocios. Entonces, cuando me gradué de la universidad, entré en consultoría de gestión y luego en gestión de productos. Mirando hacia atrás, hay una parte de mí que deseo centrarme más en “lo que realmente quiero hacer” en lugar de “lo que debería estar haciendo”. Entonces, aquí está mi consejo:

  1. Averigua lo que quieres. ¿Estás realmente interesado en la tecnología, la programación y el desarrollo de software? Si ese es el caso, concéntrate en convertirte en el mejor tecnólogo posible. Si su interés está más en el lado comercial, entonces su camino será diferente. Y su enfoque profesional será diferente. Solo tú sabes lo que quieres. Dedica un tiempo a resolver esto. Está bien cambiar de trabajo o probar cosas diferentes. Pero, es realmente importante saber lo que quieres.
  2. Independientemente de cuál sea el camino, la lección profesional más importante que aprendo es trabajar para las personas más inteligentes y capaces que pueda encontrar. No importa para qué industria o para qué empresa trabaje. Intenta encontrar el grupo de personas más inteligente con quien trabajar. Tu carrera llegará lejos.
  3. NO te vendas en corto porque eres joven. Debes ser humilde y seguir aprendiendo; para mí, estos se dan para cualquier profesional inteligente y ambicioso. Pero, si tiene buenas ideas, hágalo, o hágalo en su empresa o comience un nuevo negocio. Hay muchas personas que tienen entre 40 y 50 años, pero tienen la madurez de alguien que tiene entre 20 y 30 años. La madurez no es proporcional a la edad.
  4. Ahorrar dinero. Viví en el área de la bahía durante mucho tiempo. Pero, alquilé una habitación en una casa en lugar de pagar $ 2,000 / mes por un departamento (esto es hace 15 años). Se está volviendo realmente costoso ahora en SF Bay Area. Sé frugal y salva. No necesita vivir en Marina y pagar $ 4–5K por un apartamento de 2 BR / 1B.
  5. Me gusta trabajar para una empresa mediana de alto crecimiento. La gran empresa tiene demasiada política para una persona joven. La puesta en marcha tiene muy pocas probabilidades de éxito. Una compañía de alto crecimiento le mostrará el camino por el cual un negocio está teniendo éxito, mientras sigue siendo lo suficientemente emprendedor como para darle espacio para el crecimiento.

Andrew Franklin

Autor: Cómo conseguir un trabajo en Amazon

Hacer preguntas.

Haz que tus compañeros te enseñen cosas. No solo sobre tecnología, sino también sobre productividad. Cómo diseñar software, no solo cómo escribir código. Escucha lo que dicen. Vea si puede poner en práctica sus consejos.

Lee mucho código. Tiene la oportunidad de estudiar cómo funciona el código en una de las empresas más exitosas del mundo. Aprende lo que lo hace funcionar.

Practica la estimación.

Una de las habilidades más difíciles en el desarrollo de software no es técnica, se trata de responder la pregunta, “¿cuánto tiempo le llevará terminar esta tarea?” Comience con poco, pero siempre se desafíe a sí mismo a desarrollar su habilidad para estimar más y más. Tareas. Si puede estimar un proyecto grande, es oro puro para cualquier empleador.

Construye tu red.

Desarrolle buenas relaciones de trabajo con sus compañeros de trabajo, tanto a su nivel como por encima de su nivel y también a más personas jóvenes. Mantente en contacto con ellos. Conocer a muchos desarrolladores de primer nivel es crucial para su carrera más adelante, porque algún día irá a otro trabajo y querrá trabajar con personas excelentes que sabe que son productivas.

Aproveche los beneficios de la compañía.

Maximice sus ahorros 401 (k). Escucho que mucha gente dice: “meh, mi empleador no coincide con mi 401 (k), así que no me molesté”. ¿¡WTF !? El partido del empleador es solo salsa. El punto es construir una cartera de ahorros con impuestos diferidos lo antes posible. Mételo en VFIAX y déjalo crecer. Serás millonario en menos de 20 años.

Aproveche la educación de los empleados. Pídale a su empleador que lo ayude a obtener un título avanzado, o al menos capacitación técnica y certificaciones. Los títulos avanzados rara vez valen la pena, si los tiene, los paga usted mismo. Así que consigue que tu empleador te ayude. Si desea ascender a un rol de SDM, obtenga un MBA.

More Interesting

¿Silicon Valley algún día creará agencias de talentos (como Hollywood) que poseerán talentos de ingeniería y ayudarán a los ingenieros a cerrar tratos y encontrar proyectos?

¿Cómo pueden las organizaciones profesionales (IEEE, etc.) seguir siendo relevantes ahora que se puede encontrar tanta red y conocimiento de la industria fuera de esas organizaciones de forma gratuita?

¿Los reclutadores de TI internos y de terceros tienen algo que decir en qué puestos reclutan o qué candidatos presentan? Si es así, ¿cuáles son los criterios?

¿Cómo se sienten la mayoría de los ingenieros de software sobre las políticas de contratación de acción afirmativa diseñadas para dirigirse a las mujeres?

En Japón, ¿para qué tipo de empresas quieren trabajar los ingenieros web altamente talentosos, que aprendieron ciencias de la computación en las universidades mejor calificadas?

Actualmente estoy cursando una Maestría en Ingeniería de Software de la Universidad Estatal de San José. He completado un semestre y ahora estoy tratando de encontrar una pasantía durante el verano. ¿Qué busca una empresa en un candidato cuando contrata pasantes? ¿Cuál es su motivo y sus expectativas?

¿Qué compañías en Silicon Valley tienen los mejores gerentes de ingeniería? ¿Por qué?

¿Cuáles son las mejores herramientas de contratación en línea para identificar talentos técnicos y no técnicos?

¿Con qué frecuencia deberían los ingenieros de software cambiar de trabajo?

¿Cuáles son las redes sociales y plataformas más interesantes / útiles para investigadores e ingenieros?

¿Las compañías como Google y Facebook revisan el historial de uso de datos de un posible recluta antes de contratarlo para juzgar el tipo de persona que es?

¿Cuáles son las desventajas de trabajar con demasiados reclutadores contingentes?

¿Cuál es el proceso de entrevista para los nuevos ingenieros de software de posgrado en LinkedIn?

¿Cuáles han sido tus experiencias de entrevista más interesantes en el Instituto de Tecnología de la Universidad de Nirma?

Soy un estudiante francés de 21 años en ingeniería de software de maestría. Quiero dejar mi país y trabajar en el valle. ¿Cómo puedo hacer esto?