Divulgación completa: soy una persona de edad que recibió capacitación en un pre-Internet diferente disponible en la era del trabajo. He visto cómo las habilidades de los desarrolladores más jóvenes se deterioran constantemente debido principalmente a que no retienen información ni comprenden la solución que obtuvieron de Internet. He observado que el nivel de competencia que tenía una persona después de 1-2 años de experiencia, hace 20 años, ahora es el nivel de competencia que alguien tiene después de 5-7 años de experiencia. (Sí, eso es una observación personal, pero he realizado muchas contrataciones, no tengo datos estadísticos sobre el asunto y sí, a veces soy viejo y de mal humor, tome esta declaración con un grano de sal. Y quédese fuera de mi patio. )
Buscar todo es ineficiente en términos de tiempo. También es un síntoma de alguien que no tiene mucha profundidad de conocimiento. Las personas con conocimientos profundos pueden escribir código más rápido que las personas que no saben cómo resolver un problema sin buscar las cosas. Por lo tanto, vale la pena aprender a manejar más cosas sin tener que buscar cosas continuamente.
Ahora no estoy diciendo que nunca debas buscar cosas, estoy diciendo que debes aprender a retener el conocimiento y solo necesitas buscar cosas que usas raramente o cuando te encuentras con un problema o lenguaje o paradigma realmente nuevo. Y no digo que no deba leer para mantenerse al día con nuevas soluciones, herramientas e idiomas.
Mi preocupación real con los desarrolladores que buscan cosas con demasiada frecuencia es que muchos de ellos (no necesariamente usted) nunca desarrollan las habilidades analíticas para comprender los problemas que tienen y las soluciones que se necesitan. Lea cuántas preguntas hay donde la persona pone el mensaje de error que él o ella claramente no entiende, pero que debería ser bastante claro para cualquiera que opere a nivel profesional. O aquellos en los que la persona dice: "no está funcionando, ¿por qué?" sin referencia al mensaje de error o cómo no funciona y el código es sintácticamente correcto. O los que reciben un código que debería funcionar,
Entonces, si lo que está buscando es material que forma parte de la funcionalidad principal de los idiomas (por cierto, esto debería incluir SQL si está accediendo a bases de datos) que ha utilizado durante más de seis meses, sospecho que también está buscando mucho. Si lo que está buscando son características avanzadas, especialmente aquellas que podría usar raramente, entonces está bien.
Pero, ¿cómo aprender a retener más información? Primero entienda por qué se rompió el código. Incluso si alguien le da una solución de trabajo, si no ve por qué funcionó y la suya no funcionó, pregunte. Si no comprende el mensaje de error, pregunte qué significa y luego intente resolverlo usted mismo.
Y nunca corte y pegue una solución que no entiende. De hecho, no corte ni pegue en absoluto. Si desea retener información, debe escribirla. En realidad, escribir el código físicamente te ayuda a aprenderlo. Esa es una técnica de aprendizaje bien conocida.
Practique generalizando su comprensión del código. He visto a personas hacer preguntas similares una y otra vez con el tiempo porque no entienden que la solución que obtuvieron hace un mes al problema ABC es la misma solución al nuevo problema DEF.
Entonces, cuando haya investigado algo, tómese un tiempo para pensar qué tipos de problemas sería bueno resolver y escriba notas sobre eso. Luego, cuando tenga un problema que resolver, primero revise sus propias notas para ver si ya ha notado una posible técnica. Si evalúa múltiples formas de resolver un problema, tome notas sobre el tipo de problema, las posibles soluciones que miró y los pros y los contras de cada uno. Una vez más, la toma de notas está ayudando a solidificar el conocimiento en su cerebro, ya tiene su propio proceso de pensamiento en términos de los pros y los contras resueltos y no tiene que volver a hacerlo (o al menos no con tanta profundidad, puede todavía busco más técnicas posibles) para el siguiente problema similar.
Y cuando decida qué aprender a continuación, profundice en una de sus tecnologías principales antes de comenzar a aprender los primeros 30 días de otra tecnología (esto supone que tiene suficiente conocimiento para realizar su trabajo, si es necesario). use 6 tecnologías: obtenga los conceptos básicos de los seis primero antes de profundizar). Luego, vaya y venga, aprendiendo cosas nuevas, a un nivel básico, aprendiendo algo con más profundidad, y luego aprendiendo más nuevas tecnologías a un nivel básico. Si hace esto con el tiempo, descubrirá que su nivel básico de lo que desea de una nueva tecnología es mucho más profundo porque comprende preguntas más avanzadas sobre el tema.
Otra forma de aprender a retener el conocimiento es enseñárselo a otra persona. Responda preguntas en lugares como este, presente temas de capacitación a su equipo, haga presentaciones en sus grupos de usuarios locales, escriba entradas de blog y ayude a mantener un wiki de información en su empresa para ayudar a otros desarrolladores.