Esta es en realidad una pregunta interesante, porque exige un sistema de clasificación para “habilidades de programación”.
Por ejemplo, ¿es un lenguaje de programación una habilidad? Algoritmos? ¿Qué pasa con el conocimiento del dominio? Protocolos? ¿Patrones de diseño?
Las habilidades de programación también son jerárquicas: en la base está la comprensión de conceptos básicos como variables, funciones, objetos, etc. Además de eso está la comprensión de los sistemas, algoritmos, patrones y diseño. En la parte superior está la comprensión de los idiomas, por ejemplo, la sintaxis detallada y las bibliotecas de un idioma en particular. “Está => en este idioma, pero lambda en ese, y -> en este otro”.
En general, cuanto más alta es la habilidad, más rápidamente se degrada. Tu conocimiento de algoritmos te durará para siempre. Pero, tu conocimiento de Perl y PHP, lamentablemente, ya no sirve de mucho. Su comprensión de jQuery no tiene mucha demanda en estos días, y su comprensión de las tablas HTML y MS-DOS es de dudoso valor.
- ¿Cuál es tu yo ideal? ¿Qué significa ser tu yo más elevado?
- ¿Cuáles son las cosas que debes decirte constantemente para traer autoestima?
- ¿Cuáles son las mejores maneras de mejorar mis habilidades cognitivas?
- Cómo dejar de postergar mi trabajo a tiempo parcial
- Cómo diferenciar entre carácter y hábito.
El resultado de todo esto es que, como ingenieros, nunca nos dejamos sentir demasiado cómodos. Como muchos otros, mi compañía está en medio de las transiciones de Storm a Spark, de Angular a React, de JavaScript a TypeScript, de Java a Scala. Y, por supuesto, siempre vienen nuevas versiones de herramientas. La forma en que nos mantenemos es al tener habilidades abstractas realmente sólidas, de modo que todos estos nuevos lenguajes son solo una sintaxis. Por ejemplo, si realmente entiende el curry, los cierres, la inmutabilidad, el enhebrado o el mapreduce, entonces aprender a hacerlo en cualquier idioma es muy sencillo. Si no lo haces, entonces vas a tener un mal momento.