Cómo seguir siendo competente en múltiples lenguajes y tecnologías de programación si su trabajo solo requiere uno

Sheikh Bilal Mehmood ha cubierto algunas estrategias estándar para que eso funcione.

Estudiar en su tiempo libre es definitivamente imprescindible si su empresa lo limita a un conjunto limitado de tecnologías. Puedes crear proyectos paralelos, aplicaciones para mascotas, solicitar conciertos independientes y practicar tus habilidades.

Unirse a una comunidad tecnológica es definitivamente una gran adición aquí. Asistir a conferencias técnicas, participar en temas tecnológicos aquí en Quora o en Stack Overflow, ir a hackatons y trabajar desde espacios de trabajo conjunto con otros geeks ampliará sus horizontes y puede darle un empujón extra.

Me uní a Quora debido a algunas respuestas tecnológicas reflexivas y detalladas de algunos desarrolladores extraordinarios y entusiastas de la tecnología. Estos son algunos de los escritores tecnológicos que sigo de cerca si pasas algún tiempo: Tim Mensch, Vladislav Zorov, Al Klein, Drew Eckhardt, Andrew McGregor, Paulina Jonušaitė, Jérôme Cukier, Paul K. Young, Stephen M. Bear, John L. Miller, Stan Hanks, Adrián Lamo, Terry Lambert, Richard Kenneth Eng, Garry Taylor.

Construir tus propias herramientas es lo que suelo hacer regularmente también. Me encanta experimentar con nuevos lenguajes de programación o marcos creando herramientas y aplicaciones automatizadas que ahorren tiempo, agreguen datos, aceleren algunas de mis actividades y cosas por el estilo.

Tengo más de una docena de gotas de Digital Ocean con algunas herramientas para mascotas, rastreadores, aplicaciones de monitoreo y otras que he extendido o construido yo mismo.

  • Mis primeras pruebas de Selenium estaban relacionadas con un trabajo de administrador editando sitios web clasificados. Profundicé en Selenium Core y comencé a optimizar mi trabajo, lo que me ahorró el 30% de mi tiempo al final.
  • Hace 8 años, participé en una competencia de desarrollo de aplicaciones realizada por una empresa de telecomunicaciones local que construía su tienda de aplicaciones de Android. Escribí una aplicación utilizando Google Maps con grupos para algunos objetos turísticos y gané un teléfono HTC.
  • Escribí un bot HipChat en Node y usé PM2 para mantenerlo vivo y en funcionamiento, lo que provocó algunos problemas de memoria y tiempo de actividad que tuve que depurar después.
  • Usé Shoes with Ruby para experimentar con una herramienta de administración de tareas de mi parte.
  • Extendí Hamster on Gnome para realizar un seguimiento adicional y almacenar datos en hojas de cálculo.
  • Mi cliente Linux Slack tiene un par de errores desagradables debido a Electron. Así que pasé mucho tiempo tratando de resolverlo y aprendí algunas cosas en el camino.
  • Un cliente de Twitter que utilicé en Linux escrito en Python se estaba portando mal. Como era de código abierto, pasé un par de días actualizándolo y agregando algunas listas, mejorando la experiencia de usuario y aumentando algunos intervalos de tiempo que no estaban disponibles.

Tengo algunas tareas pendientes para una aplicación de escritorio para Asana en Java, algunos experimentos de ML en R y una razón para profundizar en Haskel ya que mis clases de Scheme en la universidad eran secas y aburridas.

En general, encontrar una excusa para no usar un lenguaje de programación es fácil . Pero hay infinitas oportunidades para mejorar su flujo de trabajo incluso para su trabajo diario y mantener sus otras habilidades actualizadas.

Como escribió Pablo Almeida de Andrade, no hay manera fácil. Necesita estudiar nuevos desarrollos y practicar por su cuenta.

Sin embargo, la experiencia personal me ha demostrado que puedo abandonar un idioma durante años y luego no necesito más de unas pocas horas para volver a la velocidad. Sin embargo, hay un par de advertencias. Esto ha funcionado solo para los idiomas en los que solía ser competente. Incluso si el idioma se movió pasó las prácticas que solía aplicar cuando reanuda, a partir de lo que era la norma de la industria es un muy buen punto. Si un método determinado era una práctica generalizada, es probable que muchos profesionales lo sigan utilizando. El estado del arte avanza rápido pero las prácticas aceptadas no. Evolucionan más lentamente a medida que los profesionales esperan pruebas concretas y un alto nivel de madurez antes de adoptar nuevos métodos.

Como el presentador del podcast “Quit” a menudo dice (o cita), tiene desde las 7 de la mañana hasta las 11 de la noche. Usualmente solo trabajas, ¿qué tal vez 8 de esas horas? Eso deja otro día entero de tiempo para hacer cualquier otra cosa que desee hacer. Solo pasa una hora al día trabajando en otra cosa. Trabajo mucho más de 8 horas al día como técnico de cajeros automáticos, sin embargo, paso suficiente tiempo después del trabajo y los fines de semana para aprender, y ser algo hábil en Objective-C y Swift. Sin embargo, NUNCA uso esos idiomas en el trabajo. Si te encanta el desarrollo de software, encontrarás el tiempo. Si eres como yo, y lo harías incluso si no ganaras un centavo, entonces tienes tiempo de sobra para convertirte en experto en lo que quieras.

Hay muchas maneras de mantener alto su nivel de competencia en múltiples lenguajes de programación, especialmente si su trabajo puede requerir solo uno.

1. Usa los idiomas regularmente

No hay ningún truco sobre cómo mantener su buen conocimiento en los muchos idiomas que conoce. Siga usando los idiomas regularmente y siga aprendiendo más sobre ellos. Dése tareas aleatorias y use diferentes idiomas de manera intercambiable para mantenerse en contacto con su sintaxis.

2. Jugar juegos de estrategia

Puedes intentar experimentar y probar nuevos desafíos que serían divertidos de hacer, como desarrollar pequeñas aplicaciones de juegos. Es posible que desee aprovechar esta oportunidad para aprender y volver a aprender conceptos de un lenguaje en particular.

3. Use su tiempo personal para relajarse

Si le resulta difícil mantenerse al día con todos los idiomas que ya conoce. Use su propio tiempo personal para relajarse y poder abordar sus desafíos profesionales.

Sin embargo, ser un experto en todos los oficios y un maestro de ninguno puede ser un dicho más adecuado para usted en este caso. Es posible que desee hablar con su empleador sobre la variación de las metodologías en las que puede utilizar para hacer el trabajo. Si todavía tiene que aprender ingeniería de software, le recomendaría que vaya a una buena escuela de programación como Holberton School y aprenda los fundamentos y conceptos básicos relacionados con la ingeniería de software. De lo contrario, buena suerte y todo lo mejor en su viaje de programación.

Yo no. Espero que esto alivie su ansiedad sobre este tema si hay alguno. -_-si

Durante los últimos años he sido desarrollador de juegos de Unity. Uso C # principalmente, así que soy relativamente competente en C #. Durante el primer año de mi carrera, fui desarrollador de aplicaciones de Android, así que en ese momento estaba familiarizado con Java.

Pero, ¿qué sucede si necesito implementar algo para lo que Unity no proporciona una interfaz? Luego solo vuelvo a aprender cosas de Java / Android. Sería mucho más rápido que la primera vez que te lo presentaron.

Además, apenas uso C / C ++ y, por lo tanto, creo que he olvidado la mayor parte de lo que aprendí en la universidad sobre C / C ++. Bueno, no importa tanto. Sé que puedo recogerlo rápidamente una vez que necesito utilizarlo.

Hago proyectos paralelos en esas tecnologías.
De lo contrario, si es un lenguaje que no he usado durante un tiempo (por ejemplo, PHP), si lo necesito nuevamente, bastará con una actualización de un tutorial.

Proyectos paralelos!
Y mucha lectura.

More Interesting

Como desarrollador de software, ¿qué puedo aprender de los desarrolladores de hardware sobre la construcción de sistemas confiables?

¿Por qué a algunos desarrolladores de software les gusta abrir muchas ventanas de terminal y pretender ser un geek en la oficina?

¿Tiene sentido establecer la meta de trabajar como desarrollador de software a la edad de 40 años? Un profesor dijo una vez que a la mayoría de los trabajos no les gusta contratar personas mayores.

¿Cuáles son las clases más importantes en un plan de estudios de pregrado en Ciencias de la Computación?

¿Qué temas necesito para ser perfecto para conseguir un trabajo como desarrollador de software de nivel de entrada o desarrollador de Java?

Como desarrollador de software y empleado, ¿todo lo que creo pertenece a mi empleador? Si este es el caso, ¿cómo exhibo mi trabajo o publicito mi conjunto de habilidades?

Cómo escribir código profesional

¿Qué deben hacer los desarrolladores de software cuando envejecen?

¿Cómo te ayudan las clases teóricas de informática a convertirte en un mejor desarrollador de software?

¿Cuál es la mejor empresa de desarrollo de software en Alwar Rajasthan?

Cómo saber si sería un buen desarrollador de software

¿Pueden los programadores principiantes escribir código limpio?

Cómo posicionarse como desarrollador de software para entrar en la gestión

En general, ¿cuáles son algunas cosas técnicas que necesitaría saber para ser un desarrollador de software exitoso?

¿Qué debe hacer un desarrollador de software a tiempo parcial para obtener ingresos secundarios en la India?