Las empresas de la industria de TI se caracterizan por ser empresas intensivas en conocimiento. La competitividad central de este tipo de empresas está estrechamente relacionada con el conocimiento y las habilidades de sus empleados. Y si desempeñas el rol de ingeniero dentro de la empresa, entonces tu competitividad central es tu reserva de conocimiento y habilidades relacionadas con TI. Como es bien sabido, la industria de TI es un lugar donde se genera gran cantidad de nuevos conocimientos. Por ejemplo, tomemos el front-end web: en solo 5 o 6 años ha pasado por varias transformaciones, y por el momento parece que esas transformaciones continuarán. Desde la maquetación con div+CSS hasta el auge de JavaScript, pasando por la competencia de múltiples frameworks de JavaScript, la adopción de HTML5 y CSS3, el diseño responsive impulsado por el impacto de la web móvil, las ideas y formas radicalmente distintas de manipular elementos DOM de jQuery, AngularJS, ReactJS, el proceso de estandarización de los Web Components... ¿Por qué ahora las empresas están contratando ingenieros front-end por todas partes? Como si de repente los ingenieros front-end se hubieran convertido en un recurso escaso. Una de las razones es que muchos ingenieros front-end no siguen el ritmo de los cambios de la industria, y no logran alcanzar las capacidades y requisitos que el mercado actual exige. En este contexto, es crucial que los ingenieros dominen la capacidad de aprender rápidamente.

191403074249ProgrammingLanguages

Basándome en mi propia experiencia y en la observación de mis colegas, tengo los siguientes consejos sobre cómo dominar rápidamente una nueva tecnología (aquí tecnología incluye una nueva tecnología de TI, un nuevo lenguaje de programación o un nuevo framework, etc.).

Para dominar rápidamente una nueva tecnología, primero hay dos requisitos previos.
  1. En primer lugar, la mentalidad debe buscar activamente el cambio, atreverse a salir de su zona de confort y mantener una actitud abierta hacia cualquier tecnología.Anhelar la estabilidad es la naturaleza humana. Pero esta naturaleza a menudo obstaculiza tu desarrollo. La cantidad de conocimiento que uno puede llegar a entender depende del tamaño de su zona de confort; cuanto más grande es la zona de confort, mayor es el área de contacto con el exterior, y más se da cuenta de su propia ignorancia. Los programadores deben hacer al menos dos cosas:No tener prejuicios hacia las tecnologías que no entiendes, y no temer a las tecnologías que no conoces.。
  2. Hay que convertir el aprendizaje pasivo en aprendizaje activo.En China, una gran cantidad de programadores aprende pasivamente todos los días. ¿Qué es el aprendizaje pasivo? Es aprender forzado por personas o situaciones. Hoy se inicia un proyecto nuevo; en la investigación técnica no se quieren adoptar nuevas tecnologías; solo se consulta información cuando se encuentra un problema durante el desarrollo; y durante todo el día se dedican a copiar y reutilizar el código de otros o el que ellos mismos escribieron antes; y cuando surgen problemas después de copiarlo, también tardan mucho en resolverlos. Por ejemplo, un programador ha usado Spring durante varios años sin conocer su concepto central, sin conocer la estructura del framework Spring, sin conocer las funciones de sus diversos componentes, sin conocer las nuevas características de las nuevas versiones de Spring. Esto es muy terrible, porque si no conoces estas cosas, no puedes adoptar las mejores prácticas de Spring; cuando surgen problemas, no sabes cómo localizarlos rápidamente; y ciertos requisitos del proyecto no pueden usar las funciones que Spring ya tiene encapsuladas (porque no sabes que Spring también puede hacer eso). El aprendizaje activo requiere que seas previsor y que no dejes todo para el último momento. Además, debes ver el aprendizaje como una acumulación y mejora de ti mismo, como una inversión a largo plazo; no debes tener un utilitarismo demasiado fuerte.

Algunos dirán: simplemente me gusta mi zona de confort, simplemente no me gusta aprender activamente, ¿hay alguna buena forma o método para cambiar estas dos cosas? Para ser honesto, la ayuda que puedo ofrecerte es muy limitada. Como dice una línea de la película 'The Continent': "He escuchado muchas grandes verdades, pero aún así no logro vivir bien esta vida". Estos dos puntos dependen aún más de ti mismo. Y los siguientes puntos creo que sí pueden ayudarte.

  1. Antes de aprender una nueva tecnología, primero debes tener claro por qué aprenderla. ¿Cómo hacíamos las cosas antes de que existiera esta tecnología? ¿Cómo las hacemos después de tenerla? ¿Qué cambios ha aportado? En realidad, hacer estas preguntas tiene como objetivo entender qué problemas del dominio resuelve o simplifica esa tecnología, y de qué manera logra ese efecto. Tomemos AngularJS como ejemplo: se creó originalmente para compensar las deficiencias de HTML en la construcción de aplicaciones. El HTML original se diseñó para mostrar información multimedia; aunque más tarde se añadieron algunas funciones dinámicas, bajo la tendencia de webificación de las aplicaciones, las deficiencias en el diseño de HTML se han vuelto cada vez más prominentes. Por ejemplo, la manipulación de los elementos del DOM era demasiado engorrosa, la lógica de negocio difícil de modularizar, la testabilidad baja, la eficiencia de desarrollo deficiente, etc. AngularJS adoptó un diseño completamente nuevo para resolver este problema; propuso una serie de conceptos e introdujo características como el enlace de datos, identificadores, enrutamiento e inyección de dependencias, lo que redujo enormemente la carga de trabajo de nuestro desarrollo web. De esta manera se puede establecer rápidamente una visión macro de la tecnología y comprender sus posibles escenarios de aplicación, formas de uso y algunas limitaciones.
  2. A continuación, debes usar de forma práctica las funciones principales de la tecnología para reforzar tu comprensión. La forma es consultar la sección Quick Start (Inicio rápido) del sitio web oficial de esa tecnología y seguirla paso a paso.Los programadores de hoy valoran cada vez más su tiempo; la concisión, la integridad y la facilidad de uso de la documentación se han convertido en indicadores para adoptar o no una tecnología. Especialmente en los diversos componentes de código abierto actuales, incluso la documentación es de código abierto.Por eso mucha documentación está escrita siguiendo el pensamiento de los programadores, y resulta muy clara de leer. Tomando Spring como ejemplo de nuevo: si quieres aprender el componente Spring Boot lanzado en Spring 4.0, puedes visitar susitio web oficial, el botón más grande de la página es 'Quick Start'. Haz clic para aprender. La página contiene un ejemplo sencillo que probablemente no te llevará más de cinco minutos. Si todavía no estás satisfecho, a la derecha se enumeran más

Getting Started Guides, que también te enseñan las funciones avanzadas paso a paso. Algunos preguntarán: ¿qué pasa si mi inglés no es bueno? Por favor, aprende inglés.El inglés es una habilidad esencial para un programador destacado.Tal vez algunos digan: ¿qué hago si al leer la documentación hay varios ruidos? Por ejemplo, al ver la guía de inicio de Spring Boot, necesitas tener cierta comprensión previa de Spring, saber para qué sirven Tomcat y Jetty, y tener algo de experiencia con Gradle o Maven... Estos conocimientos son necesarios al practicar con ese pequeño programa de Spring Boot, pero debido a la interferencia de estos ruidos, el proceso de aprendizaje se ralentiza. La única manera de deshacerse de estos ruidos es dedicar también tiempo a aprender aquellos puntos de conocimiento que no entiendes.Por lo tanto, aprender es un proceso de círculo virtuoso: cuanto más aprendes, más rápido aprendes.

  1. Los primeros dos pasos pueden garantizar que te introduzcas en una tecnología. Entonces, ¿cómo avanzar al siguiente nivel? Esta etapa consiste en leer. Descarga la documentación detallada de esa tecnología desde el sitio web oficial y léela a fondo. Leer estos documentos a fondo te permite entrar en sus detalles de implementación, así como en las diversas formas de uso y escenarios, e incluso algunas mejores prácticas. Por ejemplo, Spring Bootdocumentación oficial, es extremadamente detallada. Todo lo que se te ocurra, y lo que no, está convenientemente enumerado en la documentación. Si quieres aprender Scala, visitahttp://www.scala-lang.org/documentation/, allí tienes todo tipo de documentación; después de leerla, ya serás casi un experto en Scala.La mejor documentación de una tecnología debe ser su documentación oficial; si no lo es, entonces esa tecnología no puede volverse popular. Ten en cuenta que, al leer la documentación a fondo, debes aplicarla en proyectos. Si no tienes oportunidad de practicarla en un proyecto, puedes escribir algunos demos pequeños para practicar. El principio de combinar la práctica y la teoría al aprender conocimiento es eterno e inmutable.
  2. Después de completar los primeros tres pasos, tu comprensión de esta tecnología ya es mejor que la de la mayoría. Puedes considerarte dueño de esa tecnología. Entonces, ¿hay alguna manera de seguir avanzando? Claro que sí: explica y escribe lo que has aprendido y pensado, expónlo al público, acepta la crítica, y así descubrirás tus propias deficiencias, lo que te impulsa a mejorar. Cuando tengas tiempo, da algunas conferencias y escribe algunos artículos en serie; entonces, ante los ojos de todos, te convertirás en una eminencia en esa tecnología. Tendrás todo tipo de oportunidades para resolver diversos problemas difíciles y extraños que surgen al usar esa tecnología, lo que a su vez profundizará y corregirá tu comprensión. Cuando no tengas nada que hacer, entra en StackOverflow, responde algunas preguntas de otros, o suscríbete a la lista de preguntas de esa tecnología y échale un vistazo con frecuencia.
  3. También puedes seguir profundizando. Únete a comunidades técnicas nacionales/internacionales (¿qué haces si no existe una comunidad así en tu país? Es una oportunidad: crea una rápidamente) y expande aún más tu influencia. Traduce y escribe libros relacionados con esa tecnología; si la tecnología es de código abierto, cuando tengas tiempo envía modificaciones; te convertirás en uno de sus desarrolladores. Este es un salto cualitativo: pasar de usar herramientas a crear herramientas.

Después de completar los 5 pasos, ya no solo dominas esa tecnología; ya has alcanzado un nivel sobrehumano, ¿vale? Algunos pueden volver a preguntar: alcanzar estos cinco pasos seguramente requiere mucho tiempo, y es una altura que no cualquiera puede alcanzar. Por supuesto; este proceso sin duda es difícil, pero no es algo inalcanzable. Al menos tengo muchos ejemplos así a mi alrededor. En realidad, con solo completar los primeros tres pasos, ya eres mejor que el 50% de los programadores; al completar el cuarto paso, ya estás por delante del 90% de los programadores.

Para finalizar, un resumen rápido. Las cosas importantes se dicen tres veces.

  1. El aprendizaje activo es muy importante, el aprendizaje activo es muy importante, el aprendizaje activo es muy importante.
  2. La documentación oficial es muy importante, la documentación oficial es muy importante, la documentación oficial es muy importante.
  3. La práctica es muy importante, la práctica es muy importante, la práctica es muy importante.

Autor:Huang Bowen@无敌北瓜

Fuente:http://www.cnblogs.com/huang0925