Вы помните, когда впервые сели за руль автомобиля? Каким новым все казалось, и как это казалось слишком много, чтобы справиться сразу? Вы должны были обращать внимание на другие транспортные средства, ориентироваться в нужном направлении, переключать передачи, даже крутить руль, чтобы не разбиться…
Добро пожаловать в когнитивную перегрузку!

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

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

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

Я чувствовал себя растерянным, ошеломленным и испуганным, что я не смогу выучить все вещи достаточно быстро. Что я не смогу внести свой вклад.

Вам кажется знакомым? Вы боитесь того же? Продолжить чтение.


Как быстрее поправиться?

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

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

Но повторяющиеся сбои (повторение одних и тех же ошибок снова и снова) не приветствуются.

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

Но на самом деле, как именно мне быстрее поправиться?



Используйте контрольный список Люк

Описание изображения

  1. Начните работать над своими проектами и занимайтесь кодированием как можно быстрее. Это порождает ошибки, на которых вы можете учиться.
  2. Когда вы делаете ошибка более одного раза (на самом деле любая ошибка, например, название функции в Gitlab, пропуск кого-либо в потоке проверки кода, невыполнение миграции вашей базы данных…) запишите это в свой контрольный список.
  3. До вы просите кого-то о помощи, создаете мерж-реквест или делаете что-то действие что требует внимания других людей. -> Пройдитесь по вашему списку.
  4. У тебя есть сделано / избегается все на список?
  5. Если да. Создайте запрос на слияние или задайте свой вопрос и не слишком зацикливайтесь на этом. Если нетисправьте, что сможете исправить прежде чем делать что-либо еще.
  6. Просматривайте список время от времени и подумайте, можно ли что-то добавить/убрать/улучшить.


Что именно это делает метод контрольного списка сделать для меня?

  1. Помогает ты с ваше беспокойство и когнитивная перегрузка. Вы в основном избавление от своих ошибок и страхов на лист бумаги. Эту бумажку вы можете обрабатывать систематически, не полагаясь на свою память и не требуя помощи от других. Этот лист бумаги стоит на порядки меньше чем время ваших сверстников.
  2. Ты предотвращать себя от того, чтобы положить больше нагрузки на других (старших) людей.
  3. Это поможет вам учиться быстрее. Учиться на своих ошибках — один из самых эффективных способов учиться. Вы также можете использовать контрольный список в качестве карточек.
  4. Так как это поможет вам работать лучше это также делает тебя выглядишь лучше перед другими.


В том, что все? Вот и все эти списки годятся?

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

  • Не можете заснуть? -> Составьте список вещей, которые вам нужно сделать перед сном, чтобы максимизировать вероятность хорошего ночного сна. (тени, вода у кровати, отсутствие синего света и т. д.)
  • Вы учитесь играть в теннис? После тренировки составьте список всех ошибок, на которые указал вам тренер. Затем пройдите его и попрактикуйтесь позже снова в одиночестве.
  • Ваш арендодатель готов вас выселить? Извиняюсь. В данном случае это не работает… Вы все равно можете следовать Совет волка с Уолл-стрит хотя 😉


Я все еще не понимаю. У вас есть пример такого списка?


Часть моего внутреннего контрольного списка RoR. Что проверить перед пушем в Gitlab

  • pronto run -c develop(линтер)
  • Все ли выровнено так, как должно быть? (использовать indent rainbow плагин рубимайн).
  • rspec(библиотека тестирования), для всего проекта, если проект достаточно мал
  • Удален ли весь неиспользуемый код в приложении (например, вспомогательные методы)?
  • Все ли в том месте, где оно должно быть? (помощники, модели, контроллеры, сервисы и т. д.) и/или * например, находятся ли значки в правильном месте в папке? Являются ли локали в правильном месте?
    • Все переведено? Перевод имеет смысл?
  • Представляют ли имена методов их действия?
    • Именование в целом соответствует? например, имена переменных должны отражать то, что происходит в базе данных, какие-либо избыточные пробелы, пустые строки и т. д.?
  • Создавали ли вы сложные операторы if? -> попробуйте вместо этого использовать защитные предложения.
  • Ваш текст СУХОЙ? Рефакторинг. Если вы не знаете, как проводить рефакторинг, попросите кого-нибудь помочь.
  • Вы использовали что-то вроде user_id: user.id вместо user: user ? Измени это. В противном случае он добавляет ненужные запросы к БД.


Еще кое-что

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

Например, проблем с линтером и отступами в начале списка выше можно автоматически избежать с помощью хуков pre-commit/pre-push.