Обучение программированию: когда становится темно

Горстка полезных умственных приемов, устраняющих ваши сокровенные страхи

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

Вы ловите себя на мысли: «Может, я просто не для этого?»

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

Ну, не знаю, как вы, но у меня это происходит каждые 4–5 дней.

Я учусь программировать с ноября 2014 года, постепенно погружаясь в эту область. Я использовал всевозможные ресурсы: книги, онлайн-курсы, онлайн-задания, сообщения в блогах, учебные пособия и т. Д. Free Code Camp сильно повлиял на мое обучение, положив позитивный взгляд на программирование и определив четкий путь для продвижения вперед.

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

Стивен Прессфилд в своей книге Война искусств назвал эту силу Сопротивлением. Я очень рекомендую вам прочитать эту книгу. Я обнаружил, что использую уроки из него ежедневно (иногда даже по часам).

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

Я собираюсь пропустить самые распространенные советы по мотивации (которые обычно слишком широки, чтобы их можно было применить) и сосредоточусь на необычных, но эффективных советах. Я использовал эти методы и нашел их эффективными, и надеюсь, что вы тоже.

Поймите, что все испытывают сопротивление

Изучая новый навык, многие люди предполагают, что если что-то сразу не пойдет гладко без усилий, то это не для них. У нас всегда есть эта фантазия о том, как для некоторых людей все течет естественно, и они просто быстро скользят вперед по поверхности всего этого, не сталкиваясь с какими-либо проблемами и препятствиями на своем пути.

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

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

(Чтобы дать вам представление о том, насколько мощным может быть это Сопротивление: я начал писать эту статью еще в декабре 2015 года. Да, я знаю.)

Как это практиковать:

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

Не позволяйте себе поверить, что тот факт, что вы испытываете эти эмоции, означает, что вы не созданы для программирования. Каждый испытывает одни и те же неприятные эмоции, когда пытается узнать что-то новое или сделать что-то необычное. Больно раздвигать свои границы и так называемые «пределы» (Шшш. Ложки нет).

Вы чувствуете сопротивление.

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

Каждый день на счету

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

Проблема в том, что это люди, которых вы видите в Twitter или в результатах поиска Google для видео, руководств и статей по кодированию.

Редко можно встретить обычных разработчиков, которые составляют около 98% специалистов.

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

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

Что ж, здесь ваш разум играет с вами злую шутку. Вы не смотрите на профессионального скрипача и не думаете: «О, я уже год учусь играть на скрипке, почему я не выступаю даже близко к их уровню?»

Но с кодированием многие из нас делают это каждый раз.

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

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

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

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

Как это практиковать:

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

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

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

Пойти ва-банк

Итак, вы решили, что научитесь программировать. Что мешает вам бросить курить после 6 месяцев отсутствия желаемых результатов?

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

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

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

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

Как только вы определились с целью, идите ва-банк. Тратьте как можно больше времени на программирование.

Какая разница, доступны ли у вас все дни или только 1 час в день? Если вы этого не сделаете, не имеет значения, сколько времени у вас есть или нет.

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

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

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

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

Помните, что чем больше усилий вы приложите сегодня (а не планируете приложить завтра), тем быстрее вы доберетесь до цели.

Как это практиковать:

Определите конкретную реалистичную цель, к которой нужно стремиться. Четко сформулированной целью было бы: «Я хочу найти работу Front-End Web Developer в течение следующих 12 месяцев». Или: «Я создам 3 простых приложения для iOS в течение следующих 8 месяцев».

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

Вы достаточно умны.

Еще один большой страх, который я испытывал, когда начинал свой путь обучения, заключается в том, что я был недостаточно умен, чтобы сравнивать с теми, кто провел свою юность, решая задачи по математике, физике и программированию. Они начали программировать, когда им было 3 года, и построили компилятор, когда им было 5.

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

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

Во-вторых, что более важно, я все еще испытываю страх: «А что, если я не смогу устроиться на лучшую работу в области разработки программного обеспечения?» в подобных Google и Facebook. Возможно, поначалу я этого не сделаю, но я сделаю все возможное, чтобы добраться до этого уровня.

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

Под сознательной практикой я имею в виду:

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

Проще говоря: дорабатываю, а не пробую что-то новое и постоянно меняя темы.

Как это практиковать:

Поверьте, вы достаточно умны. Верьте в это и не позволяйте мыслям «Я недостаточно хорош». Они деструктивны по своей природе.

Я поделюсь с вами аффирмацией, и меня не волнует, что вы думаете об аффирмациях:

«Я достоин всего самого лучшего в жизни и могу делать все, о чем мечтаю!»

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

Посмотри на нас. Мы такие же, как ты. Все стремятся писать код и поправляться. У всех нас один и тот же страх.

Решающим фактором в том, станете ли вы профессиональным разработчиком, является не ваш IQ или ваш «талант к программированию», а ваша стойкость и стойкость.

Есть шанс, что вы не доберетесь до Горы-Эвереста, потому что напугаете себя успехом, в отличие от того, что вы не так умны, как некоторые другие люди (или люди, на которых вы проецируете необычайное великолепие в своем уме).

Если вас интересует самооценка и ее отношение к успеху, я рекомендую вам прочитать Психокибернетику Максвелла Мальца.

Не разбрызгивайте свои усилия

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

Если вы сосредоточитесь на Ruby, вы внезапно начнете находить Swift таким увлекательным, прекрасным и, о, таким волшебным.

Так как же не сбиться с пути, не уставая от одной и той же темы?

Как это практиковать:

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

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

Я сделал это с Руби. Я сделал это с помощью Python. Затем, после этой передышки, я напоминал себе о своей цели - найти работу кодера. Я бы подумал: было бы неплохо изучить то и это, но я действительно хочу стать лучше в этом одном, поэтому мне лучше сосредоточиться на нем еще раз! И я бы вернулся к изучению JavaScript с новой энергией и энтузиазмом.

Что бы случилось, если бы вы не позволили себе такой передышки? Изучать один предмет в течение длительного времени - все равно что сидеть на диете. У вас все будет хорошо, вы будете в порядке и будете счастливы до того дня, когда вы сломаетесь и просто не сможете больше этого терпеть. Допустим, вы сходите с ума в этом 6-месячном путешествии по совершенно другой теме и обнаруживаете, что не освоили ни одну из многих тем, которые пытались изучить.

Кроме того, пища для размышлений: вы никогда не услышите историй о том, что «я баловался кодированием на Ruby, JS, Python, C ++ и Java, а затем начал свою успешную карьеру программиста».

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

Последовательность важнее количества

Когда мы решаем заняться чем-то большим, например обучением программированию, мы обычно совершаем ошибку «Новогоднее решение», думая, что начиная со следующего понедельника мы будем проводить 3–4 часа в день после работы, изучая код.

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

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

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

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

Как это практиковать:

Составьте четкое, «четкое» правило, которое вы будете кодировать не менее 30 минут в день. Если вы можете делать больше, делайте это. Но как только вы закончите свои 30 минут, позвольте себе почувствовать себя выполненным в течение дня.

Таким образом, ваши усилия станут более последовательными, и вы быстрее добьетесь своей цели.

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

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

Как это практиковать:

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

Если вы можете получить ученую степень или пройти учебный курс по программированию, вы можете подумать об этом. Если вы не можете этого сделать, пусть это вас ничуть не расстраивает.

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

Хорошо, что есть большой спрос на хороших разработчиков и много бесплатных ресурсов. Free Code Camp - хорошее место для начала.

Найдите единомышленников

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

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

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

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

Что помогло мне осознать важность событий кодирования, было следующее. В конце 2014 года я обнаружил Free Code Camp. Это было еще на ранней стадии своего развития. На сайте был список городов с группами людей, которые собирались вместе, чтобы вместе научиться программировать, называемых кемпингами. У него также были инструкции по созданию кемпинга в вашем городе, если его еще не было.

Тогда не было ни одного для Торонто. Мне нравится все организовывать, поэтому я подумал: «Вау, какая возможность!» Я быстро создал один.

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

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

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

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

Как это практиковать:

Посещайте мероприятия по программированию, такие как мероприятия Free Code Camp, посвященные кофе-кодированию, где основное внимание уделяется не только кодированию, но и чувству общности.

Я не знаю, какие мероприятия проводятся в том месте, где вы живете, но я почти уверен, что вы найдете местное мероприятие, посвященное кофе и кодам, в кемпинге Free Code Camp для вашего города.

Если его еще нет, вы знаете, что делать. ;)

Читайте чужие истории о Coding Origin

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

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

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

Несмотря на это, я читал несколько историй о том, как родители-одиночки учатся программировать, о людях, использующих Free Code Camp, Coursera, EdX и другие ресурсы, чтобы научиться самостоятельно, и об успехах. Это помогло мне обрести смелость и уверенность в том, что я тоже добьюсь успеха.

Как это практиковать:

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

Хорошо, хватит читать, иди напиши код :)

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

Если вам понравилась эта статья, дайте мне знать - она ​​сделает мой день лучше!

Если вам интересно, подпишитесь на меня на Medium или в Twitter: @ ka11away, и я обязательно напишу больше статей, в которых поделится своим опытом!

Большое спасибо за чтение!