Нет никаких сомнений в том, что хороший разработчик всегда должен учиться, но то, на чем вы сосредоточите свое обучение, может иметь огромное значение в количестве времени, необходимом для того, чтобы оставаться на вершине своей игры.

«Старая вещь мертва. Да здравствует НОВАЯ вещь, которой скоро суждено стать старым! »

Прежде всего, не попадайтесь на глаза заголовкам в блогах разработчиков, которые объявляют новый стандарт каждые 37 секунд. Большинство новых технологий, фреймворков и функций никогда не получат реального распространения, и вам никогда не понадобится их знать. Те, которые действительно появятся, займут намного больше времени, чем блогосфера - и поставщики, которые внедряют эти новые технологии - могут вы поверить. Компании вкладываются в свой технологический стек, и, за исключением горстки крошечных технологических стартапов, они не могут заработать ни копейки. Итак, расслабьтесь, ваша карьера в безопасности.

Сосредоточьте свое обучение на трех областях в следующем порядке приоритета:

  1. Основы - намного легче получить новые навыки, если вы действительно владеете основами, лежащими в основе. Например, если вы хорошо разбираетесь в JavaScript, вы можете освоить любую новую платформу JavaScript с рекордной скоростью. Если вы глубоко разбираетесь в объектно-ориентированном программировании, вы также можете быстро освоить новые объектно-ориентированные языки. Глубокое изучение основ в 10 раз повысит эффективность вашего обучения. Всегда сосредотачивайтесь на улучшении фундаментальных показателей прежде всего.
  2. Последняя версия / функция стека (ов), который вы используете чаще всего. Это набор технологий, который вы, вероятно, используете каждый день. Это инструменты, которые положат на стол еду для вас и вашей семьи. Когда будут выпущены новые версии этих инструментов, стоит потратить время на то, чтобы узнать о них.
  3. Востребованные технологии, поддерживаемые лидерами рынка - если крупная, хорошо зарекомендовавшая себя компания, такая как Google, Facebook или Microsoft, выпускает что-то новое и начинает получать некоторый шум, на это стоит обратить внимание. За внимание боролись сто один JavaScript-фреймворк, а затем появились Angular и React, которые стерли их с лица земли. Я не говорю, что не будет никаких разрушителей, которые появятся из ниоткуда и станут следующим большим достижением, но чаще всего безымянные технологии - это просто шум.

Учебное время должно быть частью вашего расписания. Выделяйте определенное количество времени на обучение каждый день. Необязательно много времени, даже 25 минут чтения и экспериментов каждый день быстро складываются.

2. На написание хорошего кода уходит меньше времени, чем на написание плохого, НО это не так.

Вероятно, вы чувствуете, что время, которое вы тратите на новую функцию, заканчивается, когда вы запускаете код, и он начинает работать. Но это только начало вашего вложения времени. Время, потраченное на функцию, включает время, потраченное на отладку этой функции позже, а также время, потраченное на рефакторинг и работу с другим кодом вокруг любых плохих проектных решений, которые вы приняли при реализации этой функции. Когда вы начинаете таким образом понимать свои временные затраты, становится очевидным, что в конечном итоге меньшее количество ошибок и лучший дизайн являются стоящими вложениями.

Вы можете сделать две вещи, которые уменьшат количество ошибок в вашем коде и приведут к лучшему дизайну.

  1. Используйте разработку на основе тестирования. Сначала напишите тест, затем напишите код, удовлетворяющий тесту. Это не только приводит к уменьшению количества ошибок в коде, но и к лучшему дизайну, потому что, когда вам нужно структурировать код тестируемым способом, вы в конечном итоге создаете более мелкие и простые функции с меньшим количеством зависимостей.
  2. Используйте итеративный подход к дизайну. Не тратьте время на попытки сделать код идеальным, пока не потратите время на то, чтобы заставить код работать. Вы никогда, никогда не поймете это полностью в своей голове. Вам нужно заставить эти пальцы стучать по клавиатуре и создать код, который работает и делает то, что от вас ожидают. Проблема в том, что разработчики склонны совершать одну из двух распространенных ошибок; либо они тратят слишком много времени на размышления и недостаточно - на действия, либо они не уделяют достаточно времени совершенствованию своего первого решения. Следуйте мантре, впервые высказанной Кентом Беком: «заставить это работать, сделать это правильно, сделать это быстро» - и именно в таком порядке.

3. Работа 24/7 НЕ делает из вас героя. Управляйте ожиданиями.

Это тот, который меня чуть не убил. Раньше я соглашался и придерживался любого безумного графика, который мог придумать мой босс или клиент. Я боялся сказать «нет». Я боялся кого-нибудь подвести. Я сделаю все, чтобы доставить. Я буквально спал под своим столом и провел несколько 40-часовых марафонских сессий кодирования с кофеином.

Сначала я была яркой звездой. Я получал большие похлопывания по спине, и я чувствовал себя героем. Но я установил ожидание, которое было невозможно оправдать. Так работать неприемлемо. В конце концов, я начал выгорать, болеть и срывать сроки. Я начал приобретать репутацию ненадежного и непоследовательного. Это были плохие новости.

В конце концов я пришел к пониманию и чему вы тоже должны посвятить себя изучению, так это то, что настоящие герои - это те, кто неизменно надежен. Они говорят, что делают, и делают то, что говорят. Единственный способ стать таким героем - это оправдать ожидания.

Вам необходимо контролировать сроки, чтобы всегда и без сбоев выполнять качественную работу точно в срок. Поначалу это невероятно сложно. Это означает необходимость сказать «нет» и дать отпор.

Вначале ваш босс или клиент не будут в восторге от вашего сопротивления, но как только вы продемонстрируете, что заслуживаете доверия и надежны, все начнет меняться.

Со временем другие разработчики будут опаздывать, выполнять небрежную работу или перегорать и становиться ненадежными. Тогда вы станете настоящим героем своей команды. Фактически, узнав об этом, я стал одним из самых востребованных консультантов на моем рынке. Я заработал звездную репутацию благодаря качеству и своевременности, потому что я энергично управляю ожиданиями.

4. Не все время, потраченное на «улучшение» кода, имеет одинаковую рентабельность инвестиций.

Время, потраченное на это, - это вложение. Как и в случае с любыми другими инвестициями, разумно ожидать возврата инвестиций (ROI). Вы должны получить обратно по крайней мере столько же - и, надеюсь, больше - ценности, чем вы вложили.

Мы говорили о том, чтобы «заставить это работать, сделать это правильно, сделать это быстро». Это хорошая мантра, но есть ловушка: «правильно» не означает идеально, а «быстро» не означает «абсолютно как можно быстрее».

«Правильный» означает, что код работает согласованно и его легко реорганизовать. «Быстро» означает, что скорость выполнения не оказывает негативного влияния на общее впечатление пользователя. Самое главное, чтобы ваше приложение казалось быстрым для пользователя.

Так что не тратьте время на то, чтобы сэкономить время на функции, которая почти не используется, или на попытки сэкономить еще несколько миллисекунд на том, что уже работает быстрее, чем человек может моргнуть (~ 300 мс). И не тратьте время на рефакторинг работающего, хорошо структурированного кода, потому что вы только что изучили какую-то новую технику или подход, который, как вы убедили сами, внезапно придется вернуться и применить ко всему, что вы когда-либо делали.

5. Запланированное время простоя делает вас более продуктивным.

Мне было очень трудно выучить и принять это. Как вы можете быть более продуктивными, если не тратите все свое время на производство? Ну, это правда.

По словам Эллисон Габриэль, доцента менеджмента Университета Содружества Вирджинии, которая изучает требования к работе и мотивацию сотрудников, «есть много исследований, которые говорят о том, что у нас ограниченный пул когнитивных ресурсов. Когда вы постоянно истощаете свои ресурсы, вы не работаете так продуктивно, как могли бы. Если вы исчерпаете запасы, мы увидим снижение производительности. Вы можете меньше упорствовать и испытываете проблемы с решением задач ».

Постоянная работа вызывает реакции на перенапряжение, такие как стресс, усталость и плохое настроение. Это истощает ваше внимание, а также ваши физические и эмоциональные ресурсы.

Способность мозга к саморегулированию - оставаться дисциплинированным - ослабевает с каждым упражнением самоконтроля в течение дня. Это потеря ресурсов, которую необходимо восполнить. В противном случае становится труднее оставаться на задаче, быть внимательным и решать проблемы.

Вашему разуму и телу нужно время простоя, и они его получат, нравится вам это или нет. Итак, запланируйте это время простоя. На самом деле планируйте и делайте в своем календаре настоящие запланированные перерывы. Это позволит вам сэкономить время, не чувствуя себя виноватым. Так вам будет легче переносить рабочее время, потому что вы будете знать, что прямо за углом у вас запланирован перерыв.

Дополнительная помощь и ресурсы

Чтобы помочь вам еще больше, я составил список бесплатных и полезных ресурсов (видео, учебные пособия и веб-сайты), которые помогут вам лучше понять и реализовать идеи, которыми я только что поделился с вами. Вы можете получить его здесь".

Надеюсь, вы нашли эту статью полезной. Не забывайте помогать другим, рекомендуя ❤ и делясь этим.

ОБНОВЛЕНИЕ: смотрите, как я обсуждаю эту и другие статьи с Куинси Ларсоном из Free Code Camp.