Что я бы сказал себе в молодости, когда учился развитию
Мой друг, изучающий 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… Вы поймете, о чем я.
Итак, продолжайте быть крутыми, учиться и создавать крутые штуки!