Эмоциональная перчатка обучения коду

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

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

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

Я думаю, что «засыпание от стресса» — это реакция, идеально отражающая весь хаос, связанный с изучением кода: это умственное истощение, эмоциональный удар и, в моем случае, разрушение эго. Поэтому сегодня я хочу немного рассказать о том, почему это так, как это проявляется, и, самое главное, о некоторых вещах, которые я бы порекомендовал для решения этой проблемы. (Помочь, а не решить — в конечном счете, это трудное занятие, и в некоторых случаях нет другого пути, кроме как испытать трудности).

Что делает обучение коду таким изнурительным

Если бы мне пришлось разделить сложность изучения кода на основные области или темы, я бы, вероятно, выделил их следующим образом:

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

Отвлекающие факторы и противоречивая информация: Учиться кодить в одиночку сложно. Учиться кодить, изучая Github, изучая IDE, изучая опции браузера inspect, изучая Trello, будучи при этом новым пользователем Mac, было просто БАНАНАСОМ.

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

Один человек говорит вам сосредоточиться на работе с открытым исходным кодом на Github, который вы все еще плохо знаете. Один человек советует вам сосредоточиться на алгоритмах и структурах данных, которые вызывают недоумение своей абстрактностью. Другой советует вам создать портфолио. Другой советует вам принять участие в FreeCodeCamp, Codeacademy или Code Wars. Другой советует заниматься на Hackerrank. Кто-то рекомендует Eloquent JavaScript, кто-то — Youtuber, кто-то — Cracking the Coding Interview. Вы тонете в материале.

Чтобы быть ясным, ни одна из этих вещей не повредит вам, если вы сможете работать над ними, добиваться прогресса и благодаря этому набираться опыта и практики. Эти вещи могут навредить или помешать вам, если они настолько подавляющие, что вы не знаете, что делать, или если вы нервно чередуете их и так часто переключаетесь с одного контекста на другой, что не успеваете освоить код или попрактиковаться в нем. (Подробнее об этом и о том, как с этим справиться, мы расскажем позже). Я не знаю, существует ли такой термин, но если нет, то я бы хотел его придумать: «паническая цикличность». Я вижу, как многие начинающие программисты панически перебирают подходы и из-за этой череды чувствуют себя заторможенными.

Изнурительный удар по самооценке: Ни один из двух предыдущих пунктов не способствует хорошему самоощущению. Люди говорят вам о пяти миллионах различных вещей, которые вы должны сделать, чтобы получить работу, и выполнение любой из них кажется вам непосильным трудом. Процесс собеседования — это тоже синяк. Если вы состоите в сообществах разработчиков, вы можете заметить, что разработчики могут пренебрежительно и грубо относиться к новичкам, а ответы на Stack Overflow иногда бывают откровенно враждебными. При попытке использовать Stack Overflow в буквальном смысле слова вы часто получаете сообщения типа «этот вопрос слишком глуп, чтобы его задавать» в форме «это уже спрашивали в другом месте» или «этот вопрос не соответствует нашим критериям». (Подробнее об этом позже).

Странная отраслевая кликабельность: На фоне всех этих вещей, когда вы начинаете кодить, вы начинаете улавливать социальные слои, которые могут показаться странными для постороннего человека. Почему фронтенд или PHP считаются менее престижными? Неужели эта вещь, которую я собираюсь изучать, «мертва»? (Люди обожают объявлять различные технологии «мертвыми!», честно говоря, это странно). Так что, хотя вы и не в том положении, чтобы делать это, большинство новых кодеров, которых я знаю, испытывают огромное давление, требуя выбрать правильный «путь», прежде чем они реально узнают, каким он должен быть, и это дополнительное беспокойство ко всему прочему.

Фух. Я был измотан, просто написав этот список, просто вспоминая эти чувства, хотя они были шесть лет назад!

Как проявляются эти стрессовые факторы

То, о чем меня заставило задуматься написание этой заметки, связано с путешествиями, которые я очень люблю. Я начала путешествовать одна, когда мне было 17 лет, и за это время побывала в шестнадцати странах. Вы удивитесь, если узнаете, что путешествия настолько утомительны, что почти в каждой поездке, которую я совершаю, в первые 24 часа у меня бывают моменты, когда я думаю: «Эта поездка была ошибкой». Будь то неработающий GPS в Исландии, застревание в туалете во Франции (дверь сломалась!) — всегда случается какой-то казус, который заставляет меня сомневаться во всех моих жизненных решениях.

Неизменно, после «момента испуга» я хорошо высыпаюсь. Просыпаюсь на следующий день. И становлюсь новым человеком. Я начинаю чувствовать атмосферу города, перестаю стесняться своего языкового барьера и начинаю наслаждаться собой и просто принимать все это. Даже зная, что это случится со мной, это происходит каждый раз без исключения.

Что общего между этим и изучением кода? Истощение.

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

  • Паническая цикличность: (мы уже немного говорили об этом). Я не врач, но всякий раз, когда я думаю о паническом цикле, который испытывают новички, я не могу не вспомнить об усталости от принятия решений. Новые разработчики чувствуют давление, заставляющее их принимать так много решений, что, как мне кажется, их мышление становится бешеным, и они пытаются сделать все это и еще больше истощаются от переключения контекста в неприятном цикле.
  • Эмоционально заряженные отношения с кодингом: В моем буткемпе был один человек, которого я никогда не забуду, и который действительно боролся с этим. Во время разговора об отладке можно было услышать, как голос этого человека становился заметно эмоциональным от разочарования, поскольку ему казалось, что он перепробовал все и ничего не получается. Разговор об отладке превращался в разговор о разочаровании, и было очевидно, что человек не сможет продуктивно продолжать работу, пока не успокоится.
  • Ошибки, связанные с усталостью: Было изучено, что недостаток сна может иметь эффект ухудшения, сравнимый с действием алкоголя. Для меня это абсолютно верно. При недостатке сна я становлюсь физически неуклюжим, что очень заметно. Я также пропускаю вещи. По моему опыту, уставшие младшие кодеры очень склонны к ошибкам.
  • Искажения мышления: Если вы не слышали этот термин, то искажение мысли — это то, что происходит, когда логическая мысль становится эмоционально заряженной и затем закручивается. При изучении кода это разница между Я с трудом справляюсь с JavaScript и Я не создан для этого. Одна из этих вещей — логическое мышление. Одна из них — проекционная спираль, основанная на этой мысли. Другие распространенные варианты в этом ключе: У меня нет того, что нужно, Я никогда не смогу этого сделать, Я недостаточно умен для этого.
  • Прокрастинация/избегание: Когда я впервые научился кодить, как и многие другие люди, я изначально полагал, что бэкенд для меня недосягаем. Я думал, что мои художественные навыки помогут мне в работе над frontend, если я смогу дополнить свою работу деятельностью, связанной с дизайном. Я избегал изучать свои возможности или пытаться честно оценить свои интересы, потому что я действовал из места страха и сомнений. Что приводит меня к следующему пункту…
  • Ограничивающие убеждения: Они проявляются по-разному. Откладывание поиска работы, потому что вы думаете, что еще не готовы и никто вас не возьмет. Огульное осуждение определенных тем как «трудных» и непосильных для вас. К примеру, в моем буткемпе был один человек, который хотел, чтобы мы подружились. Поначалу я избегал ее, потому что она была слишком хорошим кодером и заставляла меня чувствовать себя плохо. (Счастливый конец: я шучу, что она «запугивала» меня, чтобы мы подружились, и вот мы уже шесть лет дружим. Она — технический директор!)

Так что же на самом деле помогает?

Прежде всего, я обсудил вопрос усталости. Скажу, что я отличался от людей из моей программы тем, что никогда не засиживался до трех часов ночи, работая над проектами (некоторые коллеги так и делали!). Я человек, которому нужен сон, и я был достаточно самосознательным, чтобы сразу же понять, что, если я буду работать усталым, я еще больше испорчу свой код. Делайте из этого выводы, какие хотите. Я просто не мог. У меня начинались убийственные головные боли (нужны были очки, лол), и я просто очень быстро понял, что нет. Я не буду этого делать. Я не буду спать всю ночь.

Во-вторых, я хочу сказать о переключении контекста. Удивит ли вас тот факт, что я никогда не изучал код по конкретной книге или серии видео? Я не люблю видео и по какой-то причине никогда не увлекался книгами O’Reilly или чем-то еще. Я никогда не занимался открытым кодом. Я участвовал в Hackerrank, может быть, 3-4 раза в интервью. У меня нет возможности отвечать на вопросы на Stack Overflow. В начале моей карьеры разработчика у меня не было значимых контактов. Я не пытался осмысленно изучать алгоритмы, пока не проработал пару лет. Так что сделайте глубокий вдох. Эти знания никуда не денутся. Если в какой-то момент вы будете недовольны своими учебными материалами, у вас всегда есть возможность их изменить.

«Менять их» — это не то же самое, что паниковать или чувствовать, что вы ОБЯЗАНЫ сделать их все, немедленно, прямо сейчас. При оценке ресурсов для переключения (предположим, что вы находитесь в программе по обучению коду или имеете конкретную цель, что означает, что у вас есть некоторые базовые учебные ресурсы в качестве основных материалов).

При выборе материалов и практик изучение кода во многом похоже на разработку фитнес-режима: какой метод лучше всего подходит? Как правило, тот, которым вы готовы заниматься ежедневно. Выберите то, с чем вы можете справиться. Сосредоточьтесь на том, чтобы быть последовательным. Сосредоточьтесь на том, чтобы появляться.

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

Negative thought: You aren't cut out for this

Negative thought: You're not going to get this job

Negative thought: You can't hack it as a real dev, better be sure your portfolio at least looks pretty since that's all you are good for

Negative thought: Everyone else is understanding this material faster than you

Может быть, это звучит как-то несерьезно, но когда я рассказала своему психотерапевту о том, как я прерываю свои мысли, она отметила, что я, по сути, провожу когнитивно-поведенческую терапию в рамках своего внутреннего диалога. Шутка это или нет, но это помогло! Это помогло справиться с отказом, негативными мыслями и ударами по моей самооценке.

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

В заключение

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

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

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

Оцените статью
devanswers.ru
Добавить комментарий