¿Cómo los programadores eligen qué aprender a continuación?

Por lo general, desgloso mi estrategia de aprendizaje en algunas áreas clave:

Actualizar : releer libros / artículos / fuentes importantes, hojear hojas de trucos, exámenes / pruebas.

Cava más profundo : recorre documentación y material avanzado, mientras codificas. Investigación de rendimiento y seguridad.

Amplíe : aprenda algo completamente nuevo, como un marco, biblioteca, idioma, herramienta, proceso, técnica.

Mi pasión es el desarrollo web de pila completa, por lo que tengo suficiente para explorar para toda la vida. Eso significa que estoy muy familiarizado con las opciones abundantes.

Tiendo a favorecer las tecnologías con mucho impulso, compromiso y estabilidad, y ya he tomado una decisión:

– HTML5
– CSS3 (Sass)
– JavaScript (CoffeeScript)
– AngularJS (respaldado por Node / Scala / Go)
– Bootstrap
– Ruby (rieles)
– SQL (PostgreSQL)
– Linux (Ubuntu)
– Vim, Sublime.

Ok, ok, no me decidí por una aplicación de una sola página (SPA).

También quiero aprender cosas que cambiarán mi forma de pensar acerca de la programación. Para un programador OO versado en programación dinámica, eso significa un lenguaje de programación puramente funcional con escritura estática como Haskell.

Pero al final creo que se trata de un equilibrio entre valor, necesidad e interés genuino. El ser ideal para alinear los tres. No me gusta particularmente JavaScript, pero lo aprendo porque sería un desarrollador web inútil sin él. En el otro extremo, aprender Haskell no sería aplicable de inmediato, pero una fuerza indescriptible me acerca más y más.

Hojeo Internet para una amplia gama de ideas y aprendo un poco sobre cada una. A veces encuentro ciertas ideas que realmente captan mi atención e imaginación. Cuando eso sucede, me concentro en esas ideas, viendo charlas, leyendo libros y publicando sobre ellas hasta que tenga una idea sólida. Después de un tiempo, me doy cuenta de que las conversaciones y las publicaciones se vuelven repetitivas y no estoy obteniendo mucho de ellas. Así es como sé que estoy listo para seguir investigando otras ideas. Este período suele durar de 6 a 18 meses.

Las ideas que han captado recientemente mi atención han sido la programación funcional, la programación reactiva funcional, la fuente de eventos y Clojure. Me he centrado principalmente en la programación funcional y eso ha estado ocurriendo durante un par de años.

No solo aprendo a por el mero placer de hacerlo. Siempre estoy buscando oportunidades para utilizar lo que estoy aprendiendo. Así que cada vez que tomo material, lo comparo con las necesidades de proyectos e ideas pasadas y actuales. En consecuencia, así es como sé qué estudiar a continuación. Cuando veo tecnologías e ideas interesantes que parecen ayudar, las investigo más a fondo. Me gusta pensar que este enfoque es pragmático.

Hay algunas maneras de decidir qué aprender a continuación.
Típicamente vi dos enfoques diferentes:
a, aprendes algo, que tiene una conexión con lo que estás haciendo actualmente y redondea tu repertorio. Por ejemplo, un diseñador web puede decidir aprender CSS avanzado o aprender algunos marcos / bibliotecas / enfoques de JavaScript / JQuery. Básicamente solo para poder hacer más en menos tiempo.

b, Usted aprende algo realmente nuevo que no tiene absolutamente ninguna conexión o similitud con su trabajo actual con la esperanza de que pueda beneficiarse del punto de vista adicional o beneficiarse de tener una especialización totalmente diferente.

Y, por supuesto, debe volver a aprender todo lo que sabe sobre programación aproximadamente cada 3-5 años, a medida que la tecnología avanza.

Lo que alguna vez les interese en este momento. A veces leemos sobre esto en línea o escuchamos de un amigo y luego lo probamos rápidamente. Si sigue interesando entonces tratamos de aprender más. Si no es así, lo dejamos y pasamos a la siguiente.