Мне предложили прочитать книгу «Красноречивый JavaScript», когда я был зачислен на 6-месячную программу ускоренного обучения с частичной занятостью, проводимую в Техасском университете в центре профессионального образования Остина. Я изучал логику программирования у инструктора по имени Осей Бонсу, у которого была степень в Texas A&M. Осей был директором по технологиям в компании, которая предоставляла онлайн-услуги студентам, ищущим курсы. Я был очарован тем, что он был не только самым ценным технологом в компании, в которой он работал, но и вел занятия, которые я посещал в Техасском университете в Остине. Осей никогда не казался уставшим и всегда был по существу, но страстно обучал нас с позднего вечера до почти 10:00 вечера. Он разрывал нить и манипулировал числами прямо на наших глазах во время урока, и мы с однокурсниками никогда не видели ничего подобного. Он был эффективен и харизматичен, когда объяснял, что именно компьютер делает со значениями. Я еще не знал точно, чем хочу заниматься в технике, на самом деле я был несколько потерян в жизни, одинок, и мне не на что было напрягать избыток энергии. Я внимательно следил за тем, что он говорил, потому что от этого зависело мое будущее. Казалось, что я участвую в гонке со временем, чтобы наладить свою жизнь, и это было утомительно. Я работал в компании, которая не вылила бы на меня ведро воды, если бы я был в огне, и хотя я поднялся до уровня управления за годы эксплуатации за свой труд. Этого все равно было недостаточно. Я помню, как учился программировать и сталкивался с ошибкой в ​​своем коде, я говорил себе: «Это не работает», и это соотносилось с моей рабочей жизнью, моей реальной жизнью и тем, как я проводил время, пока не работал. . Я бы сказал себе, бесконечно работая в бесконечном цикле: «Это не работает».

Мои пальцы переворачивали каждую страницу Eloquent JavaScript, содержащую знания, которые я не был полностью уверен, что понял, и с каждой перелистываемой страницей я не был уверен, нужно ли мне вернуться и перечитать страницу, которую я только что прочитал. Программирование на JavaScript может быть, мягко говоря, сложным. Существует достаточно кривая обучения, если вы никогда ничего не делали в цифровых операциях. Осей рекомендовал бы нам всем прочитать Eloquent JavaScript и спрашивал в течение учебного года, кто читает книгу, и каждый раз, когда он спрашивал; Я был единственным, кто читал его. Я мог понять, почему никто не читал это, потому что я часто понятия не имел, что происходит, пока я читал это. Я отчаянно пытался понять все сразу и не мог понять, усваивает ли мой мозг какой-либо материал, я просто продолжал читать, потому что так рекомендовал Осей. Иногда он мог быть резким и эгоистичным, но он мне нравился, и он был очень хорош в программировании. Я стал дорожить собой все больше и больше по мере того, как шел этот период моей жизни. Я все еще чувствовал, что это гонка со временем, чтобы получить навыки, необходимые для того, чтобы уйти из компании, в которой я работал, и заняться другими интересами. Я продолжал читать, и Мадалина Тантаряну представляла мне интересные иллюстрации к каждой главе, которая подходила к концу. Это было прекрасное дополнение к книге, и в первый раз, когда я читал ее, я был настолько потерян в концепции, что увидеть иллюстрацию было все равно, что найти оазис в пустыне или, в моем случае, увидеть мираж. Такое сухое содержание временами и то, что ему дали что-то, что не было блоком кода или кратким объяснением темы, казалось действительно увлажняющим. Это дало мне вдохновение, в котором я нуждался, чтобы перейти к следующей главе. Я не был точно уверен, нравлюсь ли я Осэю. Я думаю, я хотела, чтобы он любил меня. Я подумал, что он был крутым, что дал нам какую-то побочную миссию во время преподавания. Я был больше озабочен тем, чтобы мне по-прежнему нравилось программировать. Казалось, ему это нравилось, а я колебался в зависимости от интереса, потому что часто чувствовал себя необразованным в присутствии кого-то вроде него. Большую часть времени я не знал, что происходит, и очень старался. В какой-то момент ученик спросил его в классе, будет ли когда-нибудь момент, когда такой материал начнет иметь смысл, на все это, у Осея обычно был ответ на все. Ему потребовалось несколько минут, чтобы ответить, и каждый день повторял код, кодировал все время и читал красноречивый JavaScript.

Я программировал каждый день, я кодировал все время, и я закончил читать Eloquent JavaScript. Почему я все еще чувствовал себя позером? Или самозванец. Кто-то, кто пытался отказаться от колледжа, чтобы выучить все эти вещи за полгода. Я спросил своего инструктора, почему я все еще чувствую себя так, даже когда я читаю этого монстра размером 11 пунктов на 500 страницах. Он буквально сказал мне прочитать это снова. Прочитать еще раз? Я только что закончил эту книгу заклинаний, и она была не очень очаровательна. Осей объяснил мне, что это не имеет смысла при первом прочтении, и в этот момент я действительно начал думать, что, возможно, программирование не для меня. Я не мог думать, как другие в классе. Были люди, которые не нашли время, чтобы прочитать обо всем, что мог предложить язык Интернета, и преуспели в этом больше, чем я. Чтение Eloquent JavaScript стало такой эмоциональной частью моей жизни. Когда я начал перечитывать, темы зацепили меня, но в отличие от того, как математика или головоломка судоку зацепят человека. Я как будто жил в доме; Я включал свет и кратко думал о том, как работает электричество, прежде чем полностью погрузиться в свои мысли. Я не знал, как работает электричество, но знаю, что мне приходилось включать свет, оплачивать счет за электричество и иногда менять лампочку. Я стал думать по-другому, и это меня увлекло. Я не разбирался в программировании, но у меня произошли психические изменения, я смог как бы понять себя и свою жизнь.

Во время моей второй попытки чтения красноречивого JavaScript я начал писать только чистый код, так как я был дальше в классе. Я видел почти каждый пример каждой темы в книге в реальных жизненных ситуациях, которые разрабатывались передо мной. Я был тем, кто вкладывался в работу, но я все еще не верил в себя, и именно это удерживало меня. Я читал перед уроками, и однажды Осей подошел ко мне и спросил, как я и как продвигается моя учеба, и мы на мгновение начали говорить о темах, затронутых в книге. В тот момент я не осознавал, что разговариваю с техническим директором компании о технологиях, и это был очень плавный разговор. В глубине души я все еще не верил в себя. Я спросил своего инструктора, что это значит, когда программисты используют фразу «Что сотворил бог?» В качестве выходного примера при тестировании кода. Он тоже не знал ответа, поэтому мы потратили минуту, чтобы вместе поискать его в Интернете. В итоге это была фраза из Книги Чисел (Числа 23:23) и первое сообщение, которое когда-либо было отправлено азбукой Морзе. Некоторые программисты использовали это как переход к тексту, когда смотрели, работает ли то, что они создают. Это был особенный момент для меня, потому что я целый день работал на людей, которые видели во мне машину, и в этот момент я говорил о технологиях с кем-то, кто знал, о чем говорил. Он воспользовался моментом, чтобы узнать что-то новое вместе со мной, и это оказало действительно большое влияние на мою жизнь. До этого момента я никогда не ценил образование. Я хотел перестать быть чернорабочим и внести существенный вклад в мир и жизнь других людей. Я хотел, чтобы все работало, я хотел сохранять самообладание, когда что-то не работало, и я хотел знать, что заставляет эти вещи работать.

«Это все еще не работает», — сказал я себе, когда отлаживал свой код. Я ненавидел эту часть программирования. Сегодня, как педагог, я все еще не так хорош в этом. Я начал вспоминать случай, когда я учил 12-летнего ребенка и два дня не видел в его коде точки с запятой. Все это время он настаивал на том, что ненавидит программирование. "Да, я тоже. Я ненавижу программирование». Я вернулся от этой мысли и увидел точку с запятой в конце своего собственного кода. О да, замечательно. Я нажал кнопку возврата. Сохранил файл проекта и запустил приложение. JavaScript — это дар, который продолжает дарить. В отличие от других языков, в которых ваш код не запустится при наличии хотя бы одной ошибки. Он будет запускать фрагменты вашего кода, предоставляя вам возможность найти, что пошло не так. В главе 8 книги «Красноречивый JavaScript, ошибки и ошибки» Марин Хавербеке утверждает: «Если программа представляет собой кристаллизованную мысль, вы можете грубо разделить ошибки на ошибки, вызванные путаницей мыслей, и ошибки, вызванные ошибками, допущенными при передаче мысли в код. Первый тип, как правило, сложнее диагностировать и исправить, чем второй». Он очень красноречиво резюмировал ошибки и называл компьютер, отображающий ошибку, жалобой. Мне это нравится, и это было то, что я держал со мной все эти годы. Всякий раз, когда в классе всплывает ошибка, я говорю своим ученикам: «О, вот оно, снова кричит на нас». Довольно забавно думать об ошибке в нашем коде как о жалобе или крике самого компьютера. Письмо Марин помогло мне не относиться к программированию так серьезно. В некотором смысле это помогло мне не воспринимать жизнь так серьезно. Я не мог прочитать или понять Eloquent JavaScript за один день, и при этом я не мог полностью изучить язык Интернета. Во второй раз, когда я прочитал книгу, я не торопился и понял, что мой путь инженера-программиста и веб-разработчика был путешествием, а не гонкой, как и жизнь.

Процитированные работы

Хавербеке, Марин. Eloquent JavaScript: современное введение в программирование. Пресса без крахмала, 2019.

«Ошибки и ошибки / Eloquent JavaScript: современное введение в программирование». Красноречивый JavaScript: современное введение в программирование, Марин Хавербеке, No Starch Press, 2019 г.

«Книги Чисел (23:23) / Святая Библия: содержит Ветхий и Новый Заветы». Святая Библия: содержит Ветхий и Новый Заветы, Тринитарное библейское общество, 2010 г.