A continuación hay algunos que puedo extraer de la parte superior de mi cabeza:
- Estructura de datos y fundamentos del algoritmo : es una buena idea tener una idea completa de esta área. Incluso si no puede utilizar muchos de los conceptos en su trabajo diario, vale la pena invertir tiempo en aprender matices de básicos a intermedios. Estos fundamentos están por encima de los idiomas y han seguido siendo importantes mientras los idiomas han ido y venido. Personalmente, aprender las complejidades de las estructuras de datos me ha convertido en un mejor programador. Para moverse en la industria de la tecnología, no tiene más remedio que obtener un buen dominio de esta área.
- Conceptos de programación distribuida : los datos son el nuevo recurso. En lugar de agotarse, solo aumentará con el tiempo. Para que las aplicaciones funcionen con una gran base de usuarios y una gran cantidad de datos, la informática distribuida es la clave. Aprender estos conceptos lo mantendrá por delante de la multitud general que se enfoca en solo herramientas. Una vez que tenga una sólida comprensión de los conceptos de computación distribuida, puede aprender herramientas fácilmente. Por lo tanto, le sugiero que invierta algo de tiempo en esta área.
- Domina dos idiomas : elige un idioma de cada mundo, dinámico y estáticamente escrito. Además de estos, también debe ser un experto en estilo de programación imperativo y funcional. Me encantan los idiomas como Scala, que ofrecen lo mejor de ambos mundos (mientras están mecanografiados estáticamente). Si está familiarizado con Java, domínelo junto con Python o Ruby en el otro lado. La sabiduría proviene de la experimentación. A menos que experimentemos mundos diferentes, no podremos apreciar la belleza en la diversidad. Además de mantenerlo ’empleable’, ayudará a diversificar tanto su habilidad como su experiencia.
- Fluidez en moldear pensamientos para codificar : esto es absolutamente esencial. Las ideas son baratas, la ejecución es importante. Incluso podemos ir un poco más allá y decir que “la ejecución RÁPIDA es importante”. Así que codifique tanto como pueda en los dos idiomas anteriores. No hay mejor habilidad para lograr en el mundo de la computación, que ser un codificador competente. Si los proyectos relacionados con el trabajo no son interesantes, comience su propio proyecto, escriba el código y publíquelo en GitHub.
- Aprenda a codificar en colaboración, publique proyectos en GitHub : el software de código abierto está aquí para quedarse. Abraza y contribuye a ello. Aprenda el sistema de control de versiones distribuido como Git. Contribuya a proyectos de código abierto o publique sus propios proyectos en GitHub.
- Aprenda a expresar sus pensamientos de manera efectiva : esto puede no estar directamente relacionado con las habilidades de ‘programación de computadoras’, pero es importante. Mientras trabajas, interactuarás con muchas personas en todos los equipos. Poner sus pensamientos frente a los demás de manera efectiva es tan importante como convertirlos en código.