Последние несколько месяцев я изучаю программирование (в основном JavaScript), а также стилизацию с помощью Sass и всех современных инструментов, которые с ним связаны.

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

Должен ли я изучать машинопись? Подождите, я еще даже не знаю, как делать ребазы в Github. Как лучше всего загрузить файлы JavaScript в мой HTML, используя async или defer? Что означает «использовать строго»? WTF линтует? Нужно ли мне читать книгу? Мой сайт-портфолио выглядит устаревшим, мне действительно нужно сделать все поля одинаковыми. Я знаю, я должен узнать, как работает localStorage в браузерах. На самом деле я ничего не делал с помощью ‹insert framework›, возможно, мне следует это сделать.

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

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

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

Делать простые, глупые, бессмысленные вещи (которые совсем не бессмысленны)

После нескольких месяцев погони за импульсами и попыток всего понемногу. Теперь я знаю, что учусь намного лучше, когда создаю небольшие сторонние проекты. Это маленькие самостоятельные работы, у которых есть конец. Я обнаружил, что сайд-проекты также приводят меня в состояние потока, когда я теряю счет времени. Я также намного лучше усваиваю концепции и идеи, когда создаю сторонние проекты, потому что обучение происходит в контексте. Я знаю, что использование defer работает лучше для загрузки JS-файлов, потому что мой код не работал только иногда. Я знаю, что нужно использовать align-self: center;, чтобы мои изображения не растягивались, когда я использовал Flexbox, потому что я пытался создать целевую страницу и потратил 30 минут, пытаясь понять, почему мои изображения растягиваются до чертиков.

Кроме того, создавать что-то просто для удовольствия часто просто… весело. Я брал уроки работы по дереву, и просто возиться с древесиной — это НАСТОЛЬКО УДОВОЛЬСТВИЕ, и обучение происходит в контексте бессмысленной вещи, которую вы пытаетесь построить, что делает эту вещь совсем не бессмысленной.

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

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

Кстати, если вы еще этого не сделали, посмотрите Глупое дерьмо, которое никому не нужно, и ужасные идеи. Мой личный любимый проект всех времен может быть просто: Unfriend the Poors, […]бесплатный сервис, который помогает вам вынюхивать, а затем удалить из друзей ваших бедных друзей на Facebook.

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