6 уроков обучения программированию

С приближением конца 2018 года, когда производственная сборка Chromatic FM начинает выглядеть как настоящий продукт, я провел некоторое время, размышляя о своем первом году интенсивного кодирования 24/7 в сольном проекте. Будучи 31-летним специалистом по продажам / маркетингу / бизнесу, бывшим генеральным директором, не имеющим технического образования, я был самым последним человеком, от которого я когда-либо ожидал пойти по пути обучения программированию. Инженерный язык был мне так же чужд, как звуки, доносящиеся с улиц Пекина или Парижа. Таким образом, следующие уроки я считаю полезными, если вы находитесь в процессе или думаете о том, чтобы погрузиться в мир разработки программного обеспечения.

1. Вам не обязательно быть «математиком»: Предвзятое мнение, что вы должны быть «математиком», — это препятствие, которое не давало мне программировать всю мою жизнь. Я никогда не был плох в математике, но я никогда не был в ней невероятно хорош или увлечен ею. Мой старый технический партнер по бизнесу был вундеркиндом в математике, и все разработчики, с которыми я работал на протяжении многих лет, казались математическими гениями, так что, очевидно, я никогда не был хорошим программистом. НЕПРАВИЛЬНЫЙ. Несмотря на то, что задействованы математические операции, большая часть разработки, с которой я столкнулся в первый год, состоит из очень простых логических операторов (если это → то, делая это -> делать то, зацикливание и т. д.), и если у вас есть возможность добавить, вычитать, делить и умножать, у вас есть потенциал стать хорошим разработчиком.

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

Тренировочный эффект.png
Тренировочный эффект в фитнесе — Стив Хаус и Скотт Джонсон

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

3. Вы должны научиться сидеть с сильным дискомфортом: Это то, с чем я продолжаю бороться, поскольку я считаю, что это одна из самых сложных частей разработки, которую нужно преодолеть. Ваш разум — ваш собственный злейший враг, и он никогда не бывает более распространенным, чем при решении инженерных задач. На самом деле, я не могу придумать здесь аналогии, потому что с этим я сталкивался только в программировании. Часто вы сталкиваетесь с проблемой, которая просто кажется невозможной. Или ошибка, которая просто не исчезнет. Я не могу сказать вам, сколько раз я ложусь спать после десяти часов работы над одной и той же проблемой, которая просто не исчезает. Это ужасное ощущение удара в живот. Голос постоянно говорит вам: «Нет, видишь ли, ты никогда не станешь разработчиком, ты застрял», и будет казаться, что проблема застряла на ней навсегда. Посидите с этим дискомфортом и в 100% случаев вы решите проблему в конце концов. Иногда это на самом деле не вы, это зависимость где-то, от которой вы должны избавиться, но в большинстве случаев вы либо пропустили что-то супер очевидное, например, двоеточие где-то, либо случайно написали символ с большой буквы, либо вы слишком переосмыслили решение, и реальное решение было одна строка кода. Что приводит меня к следующему пункту:

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

5. Ключ к отдыху: Мозг — это мощный инструмент, который постоянно создает новые связи, и слишком сильное его использование означает, что вы не дадите ему времени для создания этих связей. В вычислительной технике есть концепция фоновых процессов, программ или функций, которые переводятся в фоновый режим, в то время как что-то еще выполняется на переднем плане, что, я считаю, является еще одной подходящей аналогией. Есть множество случаев, когда я застрял на несколько недель, а затем посреди похода или лыжного тура, когда задача кодирования выполнялась в моем фоновом процессе, я внезапно находил решение, обычно совершенно очевидное, которое я корю себя за то, что не увидел раньше. Поместив вызов кода на задний план своего мозга, вы решаете большинство своих проблем. Я повторю. Займитесь чем-нибудь другим, что расслабит ваш разум, и вы найдете решения. Это настолько последовательно, что это похоже на волшебство. На самом деле, если вы что-то вынесете из этой статьи, возьмите это. Если вы сомневаетесь, поместите его на задний план!

6. Поставьте на лекцию: Много раз я застреваю на проблеме, у меня просто еще нет навыков, чтобы справиться с ней. Когда это происходит, я перестаю биться головой о стену и начинаю учиться. Это особенно сложно сделать, когда у вас есть крайний срок, но иногда это единственный и самый эффективный способ преодолеть препятствие. Интернет заполнен бесплатными и дешевыми лекциями по каждому языку и инструменту, который вам когда-либо может понадобиться. Было много раз, когда моя базовая лекция о новой концепции полностью очищала умственный блок от проблемы, для которой у меня не было решения. Вот некоторые ресурсы, которые я использую, чтобы постоянно учиться:
https://www.w3schools.com/
https://www.raywenderlich.com/

Похожие записи

Добавить комментарий

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