Привет, Хабр! Давненько читаю тебя, но все никак не доходили руки написать что-нибудь свое. Как обычно – дом, работа, личные дела, туда сюда – и вот ты снова отложил написание статьи до лучших времен. Недавно кое-что изменилось и я расскажу вам, что же сподвигло меня описать небольшой кусочек моей жизни о становлении разработчиком с примерами, который, возможно, пригодится начинающим, сомневающимся и откровенно не верящим в себя ребятам. Поехали!
Начну издалека – в детстве мои родители дарили мне огромное количество энциклопедий и книг – на все случаи жизни. Любой повод подарить подарок – книга. Тогда я, конечно, не был им благодарен, а просто воспринимал это как должное. Но со временем, общаясь с другими людьми, я сделал странный вывод: многие не знали того, что знал я, не слышали каких-то имен, понятий, концепций, не читали авторов и не смотрели фильмов. В этот самый момент пришло озарение: вот оно, ЗНАНИЕ. Долгое время я не знал, где можно применить все это, ведь простое общение с людьми никак не оплачивается, а профессии рассказывать интересные истории в то время еще не было (сейчас есть какие-нибудь блогеры, YouTube, TED-ED и др.). Я изучал английский язык, долго и кропотливо, т.к. «это было перспективно и пригодится в будущем» — на тот момент уверенности в будущей профессии, конечно же, не было, поэтому через «не хочу» меня гнали на уроки снова и снова. Сейчас, конечно, я безумно благодарен, что не соскочил в тот момент и успел получить неплохую базу, которая, безусловно, сыграла важную роль в выборе моей будущей профессии.
Я не простой гуманитарий, а «гибрид»: обладая прокаченными софт-скиллами и обожающий организовывать деятельность людей, я, в то же время, интересуюсь физикой, химией, экономическими явлениями, информатикой и научно-популярными материалами. В школе я даже сдавал экзамены по физике и поступил на бюджет в технический университет! Подав документы в несколько университетов сразу на диаметрально противоположные факультеты, я до последнего момента не был уверен, что же мне выбрать. После поступления на бюджет, подписания всех бумаг и разговоров с деканом, мы с отцом приехали домой и занялись своими делами с чувством выполненного долга.
Однако, проснувшись утром, я с удивлением осознал, что в моей голове поселилась назойливая и колючая мысль: «Надо идти в пед (педагогический)». Как она там образовалась: самостоятельно или в результате теневых процессов как у Менделеева, когда он во сне систематизировал данные, обретя знание таблицы периодических элементов? Этого мне не узнать никогда, но я пошел к родителям, описал им проблему, получил несколько довольно пикантных оценок моих текущих мыслительных процессов, их направления и общего развития, но не отступил.
В конце концов, мы приехали в университет, забрали документы (хотя это было уже, скорее всего, незаконно, т.к. зачисление прошло) и поехали подавать документы в другой ВУЗ. Мой отец тогда был очень коротко подстрижен, только что сделал операцию на глаза и снял очки и в целом, выглядел как типичный «браток из 90-ых», не смотря на 2 высших образования и учительское прошлое. Конечно же, такому колоритному персонажу отказать не смогли. С тех пор я ни разу не пожалел, что поступил именно на факультет иностранных языков.
Работая с детьми, я понял две вещи:
- Мне это очень нравится, я могу интересно рассказывать, вплетать в рассказ сведения, почерпнутые из книг и энциклопедий и, самое главное, добиваться результата на поприще преподавания английского языка
- Денег катастрофически не хватает, даже если заниматься подработкой (частные уроки + языковой всесезонный детский лагерь)
В итоге, после нескольких лет работы преподавателем (английский, немецкий и немного испанский), я решил уйти из профессии, т.к. банально выгорел. Наверное, многим из вас знакомо это ощущение: вроде бы, работа та же, те же люди, работа, все, что устраивало вчера – но душа противится каждому рабочему дню, ошибки детей стали внутренне раздражать, спокойствие, которое всегда было где-то внутри, стало исчезать и появились панические мысли о том, чтобы сбежать хоть куда-нибудь.
На протяжении всей трудовой деятельности я рассматривал возможность смены профессии на что-нибудь более актуальное, не связанное с работой с людьми, предприняв около 10 попыток самостоятельного изучения языков программирования. C++, C#, Delphi, Python, Pascal, Java – все это было сложным, непонятным, пугающим, отнимающим время и не приносящим результата. На самом деле, у меня просто не хватало мотивации: ни кризис 2008-2009 года, ни проблемы в 2014-2015 не изменили моего отношения к работе. А когда пришло эмоциональное выгорание – стало понятно, что дальше так работать я не смогу, ради детей, которых я травмировать никак не хотел.
В 2018 со своей девушкой я переехал в Москву из Красноярска, она перевелась в местный университет, а я нашел работу в частной школе иностранных языков. Новое место, приличная зарплата, новые люди и ощущения – все это позволило вдохнуть жизнь в меня примерно на полгода, после чего старые проблемы вернулись.
Внутри меня созрело окончательное решение о смене профессии, был намечен план, изучен рынок вакансий, требования к соискателям, откопаны контакты друзей и знакомых, хоть как-то связанных с IT и я основательно выпотрошил им мозг своими дотошными вопросами. В целом, план оказался таким:
- Выбрать наиболее простое, максимально быстрое в плане результата и с самого начала оплачиваемое не менее, чем на предыдущем месте направление работы. Им стала frontend-разработка. Посудите сами: зная английский язык на уровне C2, большая часть кода представляла для меня английские команды вперемешку с синтаксисом, который вполне неплохо запоминался (подгоняемый мыслями в стиле «или это или ты не работаешь совсем»). Результат во фронтэнде виден сразу – это готовая страница. Оплата – тоже неплохая, от 40 тысяч рублей (по данным hh.ru). Моя зарплата на тот момент была около 60-65 + личные подработки ~на 20 тысяч. Этого было мало, но когда тебе надо бороться с собой, чтобы просто прийти на работу – никакие деньги не радуют.
- Оплата и план действий: Нацелен же я 60+ рублей, поэтому начал изучать список актуальных для фронтэнда технологий: HTML, CSS, JavaScript (ES5-6), React. К ним прибавились инструменты, облегчающие на разных этапах согласование и работу с кодом: jQuery, Git, SASS, webpack, VS Code. Это позволило наметить план изучения всего этого постепенно, попутно применяя знания в создании сайтов, разборке и воплощении в коде макетов и консультаций с друзьями.
- Самообучение: С период с февраля 2019 по июнь 2019 я изучал все это, старательно штудируя документацию, читая StackOverFlow и ища ответы на самые глупые вопросы, которые только могут возникать. Мне было тяжело – иногда код просто не хотел работать так, как я представлял себе. Но я не отчаивался – разбор примера кода + документация подсказывали, где я допустил ошибку, что поставил не так и что не дописал. Именно тогда я каждый день хвалил родителей за то, что настояли на моем обучение английскому языку в детстве – ведь вся актуальная документация именно на нем.
Легче всего мне дались HTML и CSS – около 2 недель. За это время я собрал макет сайта какого-то дизайнера на чистом HTML и CSS и собрал все возможные костыли, изучил кучу подходов и понял, что вручную писать все эти строчки – безумно долго. Слегка погуглив, я сразу наткнулся на Bootstrap 4 и, ознакомившись с возможностями, принялся читать документацию. После пары дней вдумчивого курения мануалов, перемежающихся просмотром различных обучающих роликов на YouTube, я принялся за создание своего собственного totally responsive сайта, с картинками, карточками и анимациями. На это ушло примерно 2 недели, за которые я открыл для себя jQuery в качестве инструмента DOM-manipulation.
Конечно, это был не лучший выбор, но там было все просто, понятно, а мне был важен результат. Кстати, я рекомендую не слушать на данном этапе крутых программистов, которые предлагают оптимизации и улучшения, а просто найти самый частый вариант использования кода, смотреть примеры и просто копировать стиль. Задача на начальном этапе одна: лишь бы работало. Уже потом можно думать обо всем остальном, а уж когда вы будете работать в компании – вам объяснят и покажут местные стандарты, которым и нужно будет следовать.
Самое сложное началось на этапе изучения чистого JavaScript – в моей голове родился очень серьезный вопрос: зачем учить это, если jQuery легче? За ответом я пошел к гуглу: оказалось, что jQuery скоро уйдет в мир иной, за исключением legacy-кода, а все труЪ программисты используют JS, т.к. фреймворки приходят и уходят, а чистый JS актуален. Мы же хотим получить работу и делать ее долго, верно? Поэтому я начал смотреть видеоролики, пробовать писать код и функции на обучающих сайтах и переписывать свои предыдущие проекты. Естественно, сначала получилось чуть менее, чем ничего, но спустя пару дней я уже не думая прописывал всякие arrow-functions (которые оказались проще, чем обычные), работал с document.getElementById селекторами, сортировал массивы и извлекал элементы объектов с помощью .map, .filter, .reduce, работал с API и AJAX и т.д.
И я не ошибся – при изучение React я столкнулся с тонной JS-кода, который нужно было разбирать и понимать, иначе ничего не работало. Глубоко вздохнув и пожалев себя слегка, я принялся с удвоенной силой вникать в суть процесса. Очень скоро оказалось, что React – это слегка измененный HTML (JSX) + обвес из разных инструментов, облегчающих обновление страницы и создание SPA (одностраничного приложения). Добавим щепотку JS – и у нас есть анимации, загрузки и переходы. Привыкнув к синтаксису, я взял первый попавшийся макет онлайн-магазина и написал простое SPA, которые позволяло выбирать категории, осуществлять навигацию по сайту и менять счетчики товаров в корзине.
В целом, ничего страшного в том, что вы ни разу не программировали в жизни, нет – если работать над собой постепенно, то все возможно. Даже без знания английского языка – есть множество русскоязычных сайтов, которых будет достаточно для начального этапа. Желаю удачи!
Источник: habr.com