Comience por obtener el 20% de su tiempo para dedicarlo al desarrollo de sus propias habilidades. Si es posible, será mejor si ese 20% proviene de una o dos horas al día en lugar de un día a la semana, ya que entonces puede hacer un hábito diario mejorar sus habilidades. Su productividad puede disminuir inicialmente (o puede que no cambie mucho si reemplaza la navegación web u otras distracciones), pero el objetivo es hacer inversiones que lo hagan más efectivo a largo plazo.
Entonces, ¿qué debe hacer con ese 20% de tiempo? Dado que está en una empresa de tecnología conocida, debe aprovechar los recursos disponibles para usted. Aquí hay 10 sugerencias:
- Estudie el código sobre abstracciones centrales escrito por los mejores ingenieros de la empresa y comprenda por qué se tomaron ciertas decisiones y cómo se implementaron . Por ejemplo, si está en Google, lea el código en algunas de las bibliotecas principales escritas por los primeros ingenieros como Jeff Dean, Craig Silverstein o Ben Gomes. Comience con los que ha usado antes y pregúntese si hubiera escrito un código similar para varias partes y cómo podría aprender de sus ejemplos.
- Si no es demasiado eficiente en su editor de texto o IDE, pregunte a algunos de sus compañeros de trabajo más eficaces si les importaría que los mire por un momento mientras codifican. ¿Están utilizando métodos abreviados de teclado o funciones de editor con las que no estás familiarizado pero que los hacen mucho más eficientes? Si es así, aprende y practica. Busque consejos de productividad en Google para cualquier entorno de desarrollo que utilice. Cuando aprendí Emacs por primera vez, por ejemplo, las 10 formas específicas de Steve Yegge para mejorar su productividad con Emacs me hicieron notablemente más eficiente. Incluso al releer partes de esa página para esta respuesta, he aprendido algo nuevo.
- Lea todo el material técnico y educativo disponible internamente. Google, por ejemplo, tiene una amplia gama de codelabs que enseñan abstracciones básicas y guías de alta calidad de las mejores prácticas que los ingenieros veteranos han escrito para varios idiomas en base a décadas de experiencia. Si su empresa no tiene recursos similares, Google abrirá algunas de sus guías: https://code.google.com/p/google….
- Domina los lenguajes de programación que utilizas . Lea un buen libro o dos sobre los idiomas. Concéntrese en desarrollar una comprensión sólida de los conceptos avanzados en ese idioma y familiarícese con las bibliotecas principales de idiomas. Asegúrese de que al menos uno de sus idiomas sea un lenguaje de secuencias de comandos (por ejemplo, Python) que pueda usar como su navaja suiza para tareas rápidas.
- Envíe sus revisiones de código a los críticos más duros. Optimice para obtener comentarios buenos y reflexivos en lugar de reducir la barrera para que su trabajo se registre. Solicite una revisión más detallada sobre las implementaciones en las que no confía demasiado.
- Inscríbase en clases en áreas en las que quiera ser más fuerte. Estos podrían ser ofrecidos en el campus de la compañía, en los campus universitarios cercanos o en línea. Muchas de las compañías tecnológicas más grandes incluso pagarán sus clases. Si desea mejorar en la programación, tome más clases prácticas sobre temas como patrones de diseño o algún lenguaje de programación.
- Construya una buena lista de lectura de libros técnicos y comience a leer. Su empresa puede incluso reembolsarle. Aquí hay un comienzo: ¿Cuál es el libro más influyente que todo programador debería leer?
- Trabaja en diferentes tipos de proyectos y úsalos como oportunidades de aprendizaje. Si siempre se encuentra realizando tareas similares utilizando métodos similares, será difícil salir de su zona de confort y adquirir nuevas habilidades.
- Asegúrese de estar en un equipo con al menos algunos ingenieros superiores de los que sienta que puede aprender. Si no lo está, considere cambiar proyectos o equipos. Esto ayudará a aumentar su tasa de aprendizaje durante el 80% restante de su tiempo.
- Escribe más código. Si cree que la programación es su punto débil, dedique más tiempo a crear y escribir código, ya que no mejorará a menos que practique el oficio. En la medida de lo posible, aleje el tiempo de otras tareas relacionadas con la ingeniería, como administrar proyectos, corregir errores, asistir a reuniones, diseñar productos, etc.
¡Buena suerte!
¿Busca más formas de sobresalir como ingeniero de software? Descargue un capítulo de muestra gratuito de mi libro, The Effective Engineer . Está diseñado específicamente para los ingenieros de software de hoy en día, basado en entrevistas extensas con líderes de ingeniería en las principales empresas de tecnología, y está repleto de cientos de hábitos y técnicas accionables para acelerar su carrera.
- ¿Por qué Estados Unidos tiene una escasez de habilidades en su fuerza laboral, a pesar de tener una gran parte de las mejores universidades del mundo?
- ¿Cuál es la habilidad más importante que si dominara tendría el impacto financiero más positivo en mi negocio?
- ¿En qué lenguajes y habilidades de programación debe ser competente un aspirante a hacker?
- ¿Qué habilidades debo aprender para conseguir un buen trabajo como ingeniero civil?
- ¿Cuáles son algunas sugerencias de libros para mejorar las habilidades de lectura de un escritor indio?