Компании в ИТ-индустрии характеризуются как наукоемкие предприятия. Ключевая конкурентоспособность таких предприятий тесно связана со знаниями и навыками их сотрудников. И если вы играете роль инженера в компании, то ваша ключевая конкурентоспособность — это ваш запас знаний и навыков, связанных с ИТ. Как известно, ИТ-индустрия — это место, которое генерирует большое количество новых знаний. Возьмем в качестве примера веб-фронтенд: всего за пять-шесть лет веб-фронтенд претерпел несколько трансформаций, и, судя по нынешнему положению, трансформация продолжится. От ранней сеточной верстки div+css до подъема JavaScript, затем соперничества различных JavaScript-фреймворков, реализации HTML5 и CSS3, адаптивного дизайна, вызванного влиянием мобильного веба, совершенно разных концепций и способов работы с элементами DOM в jQuery, AngularJs, ReactJs, и процесса стандартизации веб-компонентов... Почему сейчас повсюду компании нанимают фронтенд-инженеров? Кажется, что вдруг фронтенд-инженеры стали дефицитным ресурсом. Одна из причин в том, что многие фронтенд-инженеры не успевают за изменениями отрасли и не могут соответствовать текущим требованиям рынка к возможностям и квалификации фронтенд-инженеров. В такой среде для инженеров становится критически важным овладеть способностью быстро учиться.
Основываясь на моём собственном личном опыте и наблюдениях за окружающими меня коллегами, у меня есть следующие рекомендации о том, как быстро освоить новую технологию (здесь под технологией понимается новая ИТ-технология, новый язык программирования или новый программный фреймворк и т. д.).
Чтобы быстро освоить новую технологию, сначала нужно выполнить два предварительных условия.- Во-первых, ваше мышление должно активно стремиться к изменениям, осмеливаться выходить из зоны комфорта и сохранять открытое отношение к любой технологии.Стремление к комфорту — это человеческая природа. И эта природа часто мешает вашему развитию. Сколько знаний человек может приобрести, зависит от того, насколько велика ваша зона комфорта. Чем больше зона комфорта, тем больше граница с внешним миром и тем сильнее вы ощущаете собственное невежество. Программистам следует как минимум делать две вещи:Не питайте предубеждений против технологий, которые вы не понимаете, и не бойтесь технологий, с которыми вы не знакомы.。
- Превратите пассивное обучение в активное.Огромное количество программистов в Китае каждый день учится пассивно. Что такое пассивное обучение? Это обучение, навязанное людьми или событиями. Сегодня запускается новый проект, и при технической проработке вы не хотите внедрять новые технологии; вы ищете материалы только тогда, когда сталкиваетесь с трудностями во время разработки. Целыми днями вы копируете и повторно используете код, написанный другими или вами самими в прошлом, а когда после копирования возникают проблемы, на их решение уходит много времени. Например, программист, который несколько лет использовал Spring, может не знать основных концепций Spring, может не знать структуру фреймворка Spring, может не знать функций компонентов Spring и может не знать новых возможностей новых версий Spring. Это очень ужасно, потому что, если вы не знаете этих вещей, вы не сможете применять лучшие практики Spring; когда возникают проблемы, вы не знаете, как быстро их локализовать; а некоторые требования в ваших проектах не могут использовать функции, уже инкапсулированные Spring (потому что вы не знаете, что Spring это умеет). Активное обучение требует, чтобы вы готовились к будущему и не оставляли всё на последнюю минуту. Более того, вам следует рассматривать обучение как накопление и совершенствование для себя, как долгосрочную инвестицию в себя, и не быть чрезмерно утилитарным.
Некоторые говорят: «Я просто люблю зону комфорта, я просто не люблю активное обучение». Есть ли хорошие способы или методы изменить эти два пункта? Честно говоря, помощь, которую я могу вам оказать, очень ограничена. Как говорится в строке из «Континента»: «Я слышал много великих истин, но всё ещё не могу хорошо прожить эту жизнь». Эти два пункта всё ещё больше зависят от вас лично. И я верю, что следующие пункты могут вам помочь.
- Прежде чем изучать новую технологию, сначала разберитесь, зачем вы хотите её изучать. Как мы работали до появления этой технологии? Как мы работаем после того, как она появилась? Какие изменения она приносит? Задавать эти вопросы — это фактически понимать, какие проблемы в предметной области решает или упрощает технология и каким образом она достигает таких эффектов. Возьмём AngularJS в качестве примера. AngularJS изначально был разработан, чтобы восполнить недостатки HTML при построении приложений. Раньше HTML был предназначен для отображения мультимедийной информации. Хотя позже были добавлены некоторые динамические функции, в условиях тенденции к переводу приложений в веб недостатки дизайна HTML становились всё более заметными. Например, манипулирование элементами DOM слишком громоздко, бизнес-логику трудно модуляризировать, тестируемость низкая, эффективность разработки низкая и т. д. AngularJS применил совершенно новый дизайн для решения этой проблемы. Он предложил ряд концепций и внедрил такие возможности, как привязка данных, директивы, маршрутизация и внедрение зависимостей, что значительно упростило нашу работу в веб-разработке. Таким образом, вы можете быстро сформировать макроуровневое понимание технологии и узнать о её потенциальных сценариях применения, способах применения и некоторых ограничениях.
- Далее вам следует на практике использовать основные возможности технологии, чтобы закрепить понимание. Способ — обратиться к разделу Quick Start на официальном сайте технологии и пройти его шаг за шагом.Программисты сегодня всё больше дорожат временем. Краткость, полнота и простота начала работы с документацией стали одним из показателей того, стоит ли принимать технологию. Особенно это касается различных компонентов с открытым исходным кодом сейчас: даже документация имеет открытый исходный код.Очень многие документы написаны полностью в соответствии с мышлением программистов, и читаются очень чисто. Снова возьмём Spring: если вы хотите изучить компонент Spring Boot, выпущенный со Spring 4.0, вы можете посетить егоофициальный сайтСамая большая кнопка на странице — Быстрый старт. Нажмите и учитесь. Страница представляет собой простой пример; вероятно, у вас уйдёт не больше пяти минут. Если вам всё ещё мало, справа перечислены дополнительные
Руководства по началу работы, которые также шаг за шагом учат вас продвинутым возможностям. Некоторые могут спросить: а если мой английский плохой? Пожалуйста, учите английский.Английский — необходимый навык для отличного программиста.Некоторые также могут сказать: а если при чтении документации есть всевозможные помехи? Например, чтобы прочитать стартовое руководство Spring Boot, нужно иметь некоторое предварительное понимание Spring, знать, для чего нужны Tomcat и Jetty, иметь некоторый опыт работы с Gradle или Maven... Все эти знания нужны при работе с той небольшой программой на Spring Boot, но из-за вмешательства этих помех процесс обучения замедляется. Единственный способ избавиться от этих помех — также потратить время на изучение тех знаний, которых вы не понимаете.Таким образом, обучение — это благотворный цикл: чем больше вы учитесь, тем быстрее вы учитесь.
- Первые два шага могут гарантировать, что вы освоите технологию. Затем как продвигаться дальше? Этот этап — чтение. Скачайте подробную документацию с официального сайта и усердно читайте её. Чтение этих документов позволяет проникнуть в детали реализации, а также в различные способы и сценарии использования и даже в некоторые лучшие практики. Например, Spring Bootофициальная документацияПодробная до мельчайших деталей. Всё, о чём вы думали и не думали, продуманно перечислено в документации. Если вы хотите изучать Scala, пожалуйста, посетитеhttp://www.scala-lang.org/documentation/Там доступны всевозможные виды документации. После её прочтения вы станете более чем наполовину экспертом по Scala.Лучшая документация для технологии должна быть её официальной документацией.Если это не так, то эта технология не сможет стать популярной. Учтите, что в процессе чтения документации вы должны применять её в проектах. Если у вас нет возможностей практиковаться в проектах, вы можете написать несколько небольших демо для практики. Принцип сочетания практики с теорией при изучении знаний вечен и универсален.
- После выполнения первых трёх шагов ваше понимание технологии уже сильнее, чем у большинства людей. Можно считать, что вы ею овладели. Так есть ли ещё способ продвинуться? Конечно есть: это рассказывать и писать о том, что вы узнали и обдумали, выносить это на публику, принимать критику и тем самым обнаруживать свои недостатки и улучшаться. Когда у вас есть время, проведите несколько лекций и напишите несколько серий статей; тогда в глазах всех вы станете мастером этой технологии. У вас тогда появятся всевозможные возможности решать различные трудные задачи, возникающие при использовании технологии, что, в свою очередь, углубляет и исправляет ваше понимание. Когда есть свободное время, заходите на StackOverFlow, отвечайте на несколько вопросов или подпишитесь на список вопросов по технологии и часто его просматривайте.
- Вы также можете пойти ещё глубже. Присоединяйтесь к отечественным/международным техническим сообществам (а если такого сообщества нет на родине? Это возможность — быстро создайте его сами), чтобы ещё больше влиять на других. Переводите и пишите книги, связанные с технологией; если технология открытая, то когда у вас есть время, отправляйте изменения, и вы станете одним из её разработчиков. Это качественный скачок: переход от использования инструментов к их созданию.
Пройдя эти 5 шагов, вы не только освоили технологию — вы стали подобны богу, ладно! Некоторые могут спросить снова: достижение этих пяти шагов, должно быть, требует много времени, и это не та высота, которую могут достичь обычные люди. Конечно, процесс, безусловно, трудный, но не настолько трудный, как достать до неба. По крайней мере, вокруг меня много таких примеров. На самом деле, как только вы выполните первые три шага, вы уже лучше 50% программистов; после выполнения четвёртого шага вы стоите впереди 90% программистов.
И наконец, краткое резюме. Важные вещи повторяют три раза.
- Активное обучение очень важно, активное обучение очень важно, активное обучение очень важно.
- Официальная документация очень важна, официальная документация очень важна, официальная документация очень важна.
- Практика очень важна, практика очень важна, практика очень важна.
Автор:Хуан Бовэнь@Wudi Beigua
Источник:http://www.cnblogs.com/huang0925