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

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

Примерно через месяц после того, как они остались без работы, пара членов семьи и друзей заговорили о веб-разработке. Сначала мне было неинтересно. Мой лучший друг — разработчик, и я никогда не проявлял к этому никакой симпатии. Но после того, как достаточно людей сказали мне, что я должен попробовать это, я сделал попытку. Мой друг купил мне курс на Udemy под названием «Учебный лагерь для веб-разработчиков 2022», и это стало началом моего пути к тому, чтобы стать веб-разработчиком.

HTML и CSS: время веселья

Первое, чему вас научит инструктор Кольт Стил, это HTML и CSS. HTML было очень легко понять, и мне потребовалось всего два дня, чтобы разобраться. У меня были основы, и я мог создать целую страницу в Википедии, не меняя ее стилей. Очевидно, это выглядело бы ужасно, но я знал, как добавить разметку к некоторому тексту, который мне дали.

Именно тогда я начал изучать CSS. Все, что связано с CSS, меня заинтриговало. Наверное, я никогда не задумывался о том, что стиль веб-сайта создается строками кода. Я узнал о таких вещах, как селекторы, блочная модель и Flexbox. В этот момент я действительно хотел создать целый веб-сайт, состоящий только из HTML и CSS. Но я сказал себе, что закончу изучать CSS, прежде чем попробую.

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

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

Блокпосты: чему я научился у них

Я наткнулся на свой первый блокпост. Я прошел весь курс CSS и почувствовал, что ничего не могу с ним построить. Я начал задаваться вопросом, сделал ли я все это неправильно, или я просто плохо учился. Так что же я сделал? Я обратился к Youtube и другим ресурсам, где мог найти ответы на некоторые вопросы, почему я не мог делать то, чему только что научился.

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

Как только я узнал, что это происходит со всеми, я окончательно успокоился. Я делал это шаг за шагом и просто пытался практиковать самые основы HTML и CSS. Я больше не пытался создать целый веб-сайт, когда едва знал, как центрировать div. После того, как я попрактиковался в основах, я сказал себе двигаться дальше по курсу. Сейчас нет необходимости становиться экспертом в HTML и CSS. Нам нужно перейти на JavaScript и изучить основы, чтобы мы могли применять все это вместе.

JavaScript: можем ли мы покончить с трудными вещами

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

Все было тяжело, но выполнимо. Первое, с чем я столкнулся и что заставило меня притормозить, были функции. Мне действительно нужно остановиться и подумать о том, что делает наш код шаг за шагом. Если я этого не сделаю, я буду перегружен, и мне придется сделать перерыв. Я начал изучать другие вещи, такие как объекты, массивы, циклы, операторы и DOM.

DOM определенно был крутым. Мне казалось, что я выучил весь этот синтаксис, но я не знал, что с ним делать. Но как только был представлен DOM, все начало складываться. Я узнал, что вы можете буквально все делать через JavaScript, используя DOM. Вы можете создать целый лист HTML и стилизовать его с помощью DOM. Это был пик изучения JavaScript. Кроме того, я должен начать свой первый серьезный проект.

Мой первый проект: Счетчик

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

Именно тогда компания Colt представила код счетчика очков. Цель состояла в том, чтобы создать страницу, которая могла бы отслеживать счет между двумя игроками. Вы можете установить максимальный балл, иметь кнопки, которые добавляют баллы к общему баллу, кнопку сброса и общий балл, который меняется каждый раз, когда вы нажимаете кнопки. Я сказал себе, что не буду смотреть Code Along и буду создавать его самостоятельно. Когда я впервые увидел, что он должен делать, я подумал, что мне никак не удастся это сделать. Я даже не знаю, с чего начать. Но я сказал себе делать это шаг за шагом и начать с функциональности страницы.

Мне нужно поработать над аспектом проекта, связанным с JavaScript. Я не спал всю ночь, создавая эту страницу. Я бы сосредоточился на одной мелочи, например, чтобы общий балл увеличивался каждый раз, когда я нажимал кнопку, а затем переходил бы к следующему. Через пару часов я застрял на установке максимального балла. Поэтому я переключился на создание дизайна счетчика очков с помощью CSS. Я действительно впечатлил себя той ночью. Я дал ему классные цвета, классный шрифт, всплывающие кнопки и некоторые другие случайные вещи.

На следующее утро я был полон решимости вычислить этот максимальный балл. Примерно через 30 минут на свежую голову я понял это. Теперь страница была почти готова. У меня все еще было несколько вещей, которые я хотел сделать с хранителем счета, но я еще не знаю, как это сделать. Например, я хочу, чтобы «+1» выходил из кнопки оценки и всплывал из нее каждый раз, когда вы добавляете к счету. Я решил отложить этот проект в сторону и вернуться к более сложным вещам позже.

В целом, я был очень доволен этим проектом. Я сделал для этого намного больше, чем Кольт просил нас сделать. Он также использовал Bootstrap для дизайна своего проекта, когда я использовал только CSS. Это определенно придало мне уверенности и заставило меня думать, что я создана для этого.

Моя первая «работа»: дизайн пользовательского интерфейса

Я взял «работу» в кавычки, потому что на самом деле это была не работа. Я показал своему другу (о котором я говорил ранее) Счетовода, который я построил, и он был очень впечатлен. Он сказал, что я готов сделать свою первую настоящую «работу» в качестве веб-разработчика. Он хотел, чтобы я разработал боковую панель, которую он сделал для созданной им программы. Он даже собирался заплатить мне за это. Я немного испугался, но согласился.

Я не спал всю ночь, создавая эту боковую панель. Но это ничем не отличалось от того, что я делал для своего Score Keeper. Я легко справился с этим за одну ночь, и ему это понравилось. Я действительно ценил то, что он позволил мне это сделать, потому что это заставило меня почувствовать, что я принадлежу этой области. Я сказал ему, что сделаю это бесплатно только потому, что опыта достаточно, но он настоял на том, чтобы заплатить. Отличный друг этот парень!

Асинхронный JavaScript: что, черт возьми, такое ад обратного вызова

Асинхронный JavaScript был самым сложным, что мне приходилось изучать. Это занимает один крошечный раздел всего курса, и мне потребовалась целая вечность, чтобы пройти его. Когда я прошел половину раздела, я понял, что не готов вступить в этот раздел. Так что я вернулся и сделал то, с чем я боролся. Я сделал массу JS-упражнений, найденных в Интернете, которые в основном касались создания функций и циклов. Как только я почувствовал себя более комфортно с базовым JS, я вернулся к асинхронному.

Я понимаю, что такое асинхронный JavaScript и почему он существует. С чем я боролся, так это с функциями, которые мы создавали, чтобы представить эту идею. Мы взяли обратные вызовы, вложенные в обратные вызовы, и превратили их в обещания. Мы взяли эти обещания и добавили асинхронные функции и ключевое слово await. Мне постоянно приходилось останавливать видео каждые две секунды, чтобы я мог понять, «почему он поместил переменную туда, а не туда» и другие подобные мелочи.

После целых двух дней изучения этой темы и просмотра бесчисленных видеороликов на Youtube, чтобы обдумать эту маленькую идею, я наконец закончил ее. У меня нет полного понимания всего этого, но я не думаю, что должен еще. Я до сих пор не изучил выборку API и всего того, к чему ведет асинхронный JS.

Будущее: надеюсь, не так уж плохо

Я много думал о будущем своего путешествия по программированию. Я постоянно смотрю вперед в курсе и вижу, что еще мы собираемся изучать. Я только на полпути, и дальше будет только сложнее. Но я думаю не только о будущем своего курса, я думаю о том, что будет после него. Решу ли я выучить другой язык? Буду ли я тратить все свое время на создание увлеченных проектов? Сдамся ли я полностью и вернусь к поиску позиции начального уровня?

Мой план прямо сейчас состоит в том, чтобы попытаться закончить курс. Я чувствую, что как только я закончу курс, я буду знать, что я знаю и чего я не знаю. Курс даст мне все основы, и я буду знать, что мне нужно практиковать или на что я хочу потратить все свое время. Я также планирую придерживаться JavaScript. Похоже, что это популярный язык, за знание которого нанимают множество людей, поэтому я думаю, что потрачу большую часть своего времени на то, чтобы освоить его.

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

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