Soy un programador abrumado con la gran cantidad de herramientas disponibles y el ritmo al que está creciendo. ¿Qué puedo hacer para sentirme mejor?

He sido programador durante 30 años. Durante todo el tiempo, la tecnología se ha expandido más rápido de lo que puedo mantener. Me esforcé por años, pensando que eso era importante. Solía ​​tener un curriculum vitae de 4 páginas, y la última página era un gráfico densamente lleno que mostraba un jillion de habilidades y API y metodologías, con pequeñas gráficas de barras para cada una ofreciendo una autoevaluación de mi competencia con eso.

Los reclutadores les encantó. No estoy seguro de que a alguien más le importara.

Ahora realizo muchas entrevistas, contratando programadores. Resulta que solo me interesan dos cosas: 1] ¿Pueden resolver problemas con el código y [2] pueden tener discusiones inteligentes, honestas e interactivas sobre el problema y las posibles soluciones?

Así es como son las entrevistas en mi mundo. No solo yo, sino que otros miembros del equipo que realizan entrevistas hacen lo mismo … hablamos de las formas en que un candidato resolvió o no resolvió los problemas de codificación que tienen. Nadie lee las hojas de vida a menos que se sientan extremadamente aburridas.

¿Sabe qué es una búsqueda binaria, y puede escribir una desde cero en su idioma favorito y resolver los casos de esquina? ¿Puede descubrir cómo resolver un problema de orden de tareas en el que las dependencias están predefinidas? ¿Puede hacer eso pensando en voz alta, confiando en usted mismo para encontrar la solución mientras el entrevistador está escuchando y sentado allí?

Esto es lo que importa en todas las mejores empresas. Todo el mundo entiende que puedes aprender nuevas herramientas y API, pero si alguien no ha desarrollado las habilidades suficientes para resolver problemas con el código, no quiero que aprendan eso en nuestro momento.

Ve más despacio. Resiste el bombo. Comprenda por qué se creó una nueva herramienta antes de adoptarla.

Por ejemplo, ReactJS está de moda en estos días. Una de sus fortalezas es el uso del DOM virtual.

Por lo tanto, antes de adoptar React, es posible que desee comprender los problemas que resuelve el DOM virtual.

Y para empezar, también debe comprender si necesita resolver esos problemas en sus propios proyectos .

Entonces, en lugar de aceptar el bombo e inmediatamente adoptar React (y quedar abrumado), aquí hay una lista de verificación (con el enfoque en el DOM virtual de React):

  1. ¿Es mi aplicación lo suficientemente compleja? Si no, entonces no necesitas DOM virtual
  2. ¿Cambio mucho el DOM? Si no, entonces no necesitas DOM virtual
  3. Incluso si cambio mucho el DOM, ¿se traduce en algún problema de usabilidad o rendimiento? Si no, entonces no necesitas DOM virtual

La lista puede seguir.

Pero pronto, tendrás algo que dice: “¡Sí! ¡Necesito DOM virtual para eso!”. Entonces, y solo entonces, consideras adoptar React.

Sé que React te da más que solo el DOM virtual. Entonces, observe otras cosas que React ofrece y haga el ejercicio de la lista de verificación nuevamente.

Las posibilidades son: no necesitas ReactJS.

Pero el punto es que, después del ejercicio, sabrá exactamente por qué necesita ReactJS y, debido a este entendimiento, se sentirá mejor al adoptarlo.

La gente a menudo se siente abrumada porque su simple pila de repente se cargó con ReactJS (y sus amigos reaccionan: router, flux / redux, immutable.js, etc.), webpack, Babel, gruñido, etc. y no saben por qué. usando esas cosas

O no saben por qué simplemente abandonaron a Grunt (que solo aprendieron hace un par de meses) por Gulp. E incluso antes de que aprendieran Gulp, descubrieron que los scripts npm son el camino a seguir.

Resiste todo eso. Ve más despacio. Si algo te funciona, quédate con eso. Solo adopta algo si realmente resuelve un problema que entiendas completamente.

+1 a la respuesta de Les Matheson.

Además, leí un gran artículo en alguna parte. No recuerdo el título pero contenía la frase “lo estás haciendo mal”.

El artículo explica por qué las personas que intentan mantenerse al día con las nuevas tecnologías de software se sienten miserables.

La mayoría de los artículos que lees son sobre cosas nuevas (que te hacen sentir tonto por no saberlo) o escritos por alguien que ha dedicado una parte importante de su carrera al tema elegido.

Para hacer que el nivel de estudio y el artículo parezcan valiosos, el autor presentará algún concepto esotérico o difícil de entender.

De nuevo, dejándote sintiéndote tonto.

Por supuesto, estas descripciones no se aplican a todos los autores y todos los artículos, pero el impulso de conceptos nuevos e impresionantes explica muchos de los sentimientos negativos que pueden surgir.