Что я бы сказал себе в молодости, когда учился развитию

Мой друг, изучающий JS, с гордостью показал мне часы на странице html. Он сказал мне, что через 7 часов он наконец получил обновление каждую минуту! Я улыбнулся ему и сказал: «Думаю, вы готовы изучить JS-фреймворк».

Этому же человеку раньше было труднее всего разобраться в JS, зачем мне вообще нужна функция? Почему у меня не работает функция, я уже писал? - он не называл это - Зачем мне массив для? У меня может быть всего пара переменных…

Подобным образом я встречал многих людей, которые избегают кодирования, потому что это «сложно», или «нужно быть гением, чтобы это понять», или они могут делать все, что захотят, с HTML / CSS и JQuery.

Помню, когда я изучал JS, я подумал, читая Красноречивый JavaScript в третий раз: С какой стати людям нужно заботиться о наследовании, this или массивах? Почему бы просто не использовать переменную и покончить с ней? Почему они просто усложняют вещи, помещая их в объект?

Опыт был очень похож, когда я преподавал алгебру в средней школе. «a - b = a + -b» Я бы сказал, глядя на меня пустыми глазами разочарованных студентов. Меня удивляло, как они не могли понять чего-то «столь логичного». А потом прозрение! Нам нужно было организовать какое-то мероприятие, но мы не смогли найти число, потому что не были уверены в том, что могло бы изменить (варьироваться? Как в переменных… WOT?). И с новым интересом мы взглянули на те странные уравнения и формулы, которым их учил мистер Б (это я), и ... наконец-то они обрели смысл! Они действительно были полезны! (Вы имеете в виду, что математику можно использовать не только для определения количества арбузов у ​​маленького Джонни?) Студенты были в восторге, и я тоже! У математики был ответ на вопросы, которые они сформулировали. Раньше математика просто давала им ответы на вопросы, которые они не могли сформулировать.

Изучение математики НЕ связано с изучением чисел (ну, это немного). Изучение математики в основном касается того, как использовать различные методы и инструменты для решения задач, будь то наука, кулинария, личные финансы, исследование космоса или то, сколько яблок осталось у маленькой Лоры.

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

Изучение JS - это НЕ изучение (запоминание) JS, а изучение инструмента для решения проблем.

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

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

Это происходит еще больше, когда человек самоучка и решает взять книгу или записаться на онлайн-курс, например, по JS. Это может очень расстраивать и сбивать с толку, потому что книга или курс дают ответы на вопросы, которые человек еще не сформулировал, и мозгу трудно понять, где хранить эту информацию и как ее обрабатывать. Я очень долго пытался объяснить кому-нибудь, почему они хотят узнать, что такое функция и как она работает. Их вопрос был таков: «Зачем мне нужна функция, если я могу хранить все свое маленькое приложение-калькулятор в одном файле?» Было неприятно, мягко говоря. Но как только этот человек попытался сделать что-то более сложное, чем кли-калькулятор, было просто замечательно наблюдать за ее пониманием функций и их полезности на самом деле!

Итак, что вы можете сделать, чтобы лучше изучить JS?

Во-первых, не паникуйте!

На многих курсах вам предлагается практиковаться, практиковаться и практиковаться… но практиковать что? ЧТО-НИБУДЬ! Попробуйте сделать что-то непосильное, используйте свои текущие знания, запустите Adobe Muse или Dreamweaver, если это то, что вы знаете, и попытайтесь что-то создать (приложение для задач - хорошее место для начала). Не смотрите на чужой код и пока не копируйте / не вставляйте из StackOverflow ... найдите ограничения для текущих инструментов, которые вы знаете, и знания, которые у вас есть, и только тогда, и только тогда вы будете готовы к приобретать и понимать новые знания!

Многие курсы предлагают вам задачи и упражнения ... не пропускайте их, потому что вы чувствуете, что получаете содержание (я делал это все время 😁), ​​они на самом деле созданы, чтобы бросить вам вызов, немного растянуть вас, помочь момент, в котором вы понимаете, что не знаете. Тогда вы понимаете, что не расстраиваетесь из-за того, что не знаете! НЕТ, как раз наоборот, когда вы знаете, что не знаете, тогда вы готовы узнать то, чего не знаете!

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

И самое главное, не переставайте учиться! Когда вы делаете что-то, что кажется слишком сложным или трудным, я обычно обнаружил, что делаю это неправильно, и есть инструмент или навык, чтобы сделать это более простым и эффективным способом. Примером может служить коллега, который загружал файл на веб-сервер каждое утро в 5:00 в течение последних 5 лет… вау! Но есть cron. В другом случае друг пытался стереть пару тысяч файлов, но оставил еще несколько тысяч, поэтому очевидным решением было выбрать все файлы, которые нужно стереть, в искателе и стереть их. После разочарованных выходных мы задались вопросом, что, если есть сценарий BASH, который можно было бы написать, чтобы исправить это? А а там было! Через пять минут задание было выполнено!

Или просто попробуйте создать приложение todo только с JQuery… Вы поймете, о чем я.

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