Путь из падаванов в гуру через шрамы ошибок

1
11490

Дело было давно, год назад, зимним морозным вечером меня в попу укусила пчела предпринимательства, которая прошептала «хватит пахать на дядю, открой свой бизнес». И я понял, что фриланс ждёт только меня. Однако, на пути к большим деньгам, новым впечатлениям, путешествиям и прочей муре, которой посвящены уйма тренингов и книг, встала одна небольшая проблема. Я решил стать фрилансером–программистом в области фронтенда. Однако, мои технические знания в создания сайтов немного устарели, так лет на 5-7, что с текущим темпом развития компьютерных технологий меня можно было смело причислять динозаврам, трилобитам и прочей вымершей фауне.

Первая цель

Но плох тот ёж, который не хочет стать противотанковым, и я решил поставить цель на смартпрогрессе «Путь из падаванов в гуру через шрамы ошибок. Повышение квалификации Front-End разработчика»

Я решил для себя за первый месяц я освою HTML\CSS, Jade, Less/Sass/PostCSS, BEM/SMACSS и много других непонятных слов. Во второй, Node.JS, ES6, ReactJS\Redux, Webpack и т.п. А в третий месяц фриланс падёт к моим ногам. Нормальные цели для планирования, хочется всё и сразу, с разбегу перепрыгнуть девятиэтажку.

Накачал уйму курсов для новичков по Html\CSS и начал слушать. Первый курс был от известной компании Специалист. Курс такой нудный, я посмотрел первый урок и бросил, это были полностью потерянные 4 часа моей жизни. Поэтому при выборе следующего курса был умнее, в этих курсах рассказывают в принципе одно и тоже материал базовый, разница кто и как. Я больше оценивал нравиться\не нравиться тренер и насколько интересно подаётся материал. В большей части курсов информация подаётся для каких-то школьников начальных классов, первый раз в жизни увидевших компьютер. Такие курсы я удалял сразу, я системный администратор и с компьютерами работаю уже 15 лет, поэтому подробное 1,5 часовое видео как скачать и установить программу «SublimeText» из интернета с историями из жизни преподавателя был приговором для курса. В результате остановился на курсах HTML Academy и GoIT.

Начал верстать свои первые шаблоны. Вот чем ценен смартпрогресс (смарт) у каждого есть возможно безнаказанно поунижать другого человека в комментариях. Я сверстал шаблон выложил на github и попросил дать указать на ошибки, недоработки и тут же получил столько обратной связи чуть со стула не упал. Но ничего доработал и взялся за новый, в каждом новом шаблоне отрабатывал какую-то технологию. В одном адатив, в другом flexbox, в третьем gulp.

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

Прошёл месяц, потом другой, обнаружил, что девятиэтажка с разбега не перепрыгивается. На девятиэтажку лучше подняться по ступенькам шаг за шагом. Я определил для себя текущий уровень производительности, поэтому решил поставить 2-3 конкретные цели на месяц, но которые действительно достигну, чем 100 и не достигнуть ни одной.

И ещё заметил, что в достижении цели я пробуксовываю вместо занятия вёрсткой возникает уйма каких-то важных\нужных\срочных дел, которые необходимо сделать вчера.

Самодисциплина

Шаблоны по итогам недели как-то не верстаются, а причины срывов планов: 50% «то одно», 50% «то другое». Поэтому решил взять себя за выступающая часть тела и записался на тренинг «Самодисциплина», которую вела Galina Chaplina.

Тренинг был просто и понятый. Основное упражнение было такое: поставить цели по SMART, которые нужно достичь, и каждый день минимум 1 час заниматься по цели, а в конце дня писать отчет. Итак, один месяц. Несколько пропущенных отчетов и вылетаешь из тренинга.

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

Через 2 недели вдохновение\мотивация\стимулирование закончилось. Хотелось прийти с работы домой и почитать книгу или посмотреть сериал, но я знал, что надо что-то сделать, зафиксировать какие-то результаты и написать отчёт. Сильно помогли комментарии к цели и поддержка Галины. И я для себя понял вдохновение для дилетантов, остальные просто работают.

У себя я обнаружил интересную форму самосаботажа, я смотрел обучающее видео в ютубе, писал по нему отчет, а реального кода не делал. А вот по итогам недели (ты сайт покажи, что сделал), вся эта имитация бурной деятельности вскрывалась. Искались причины, фиксировались и я двигался дальше.

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

В результате первую часть цели HTML\CSS, Jade, Less/Sass/PostCSS, Gulp, BEM/SMACSS и 1001 плагин\термин\лайфхак я освоил за 3 месяца. Я считаю это нормально, но у каждого свой путь и скорость изучения.

Вот макеты, которые я сверстал за время самообучения

https://orion55.github.io/rio/

https://orion55.github.io/nerds/

https://orion55.github.io/sedona/

https://orion55.github.io/real-estate/

https://orion55.github.io/lavalier/

https://orion55.github.io/7heaven2/

Если бы сейчас ставил цель, я бы поставил сверстать 8-10 шаблонов по разным технологиям. В вёрстке нет ничего сверхъестественного и фантастического. Есть ещё хороший вопрос: как верстать? Для этого нужно использовать первое правило радиотехника: одновременно крутить не больше одной ручки. То есть изменяете что-то одно – и замеряете результат, меняете что-то другое – и снова тестируете. Чистая теория не работает, работают практика и тестирование. Под конец этапа мой уровень и скорость вёрстки отличались достаточно значительно.

Я решил хватит копать яму лопатой, пора осваивать экскаватор. И обратил свой взор на фреймворк ReactJS. Фреймворк – это такой каркас программы. Большинство задач в программировании повторяется, поэтому придумали каркас, на который можно подключить нужный код и приложение заработает, не нужно будет каждый раз в каждом проекте изобретать велосипед с нуля.

Опять скачал курсы, отсеивал чистых инфобизнесменов — продавцов мечты и воздуха. Оказалось, что все великие учителя\гуру\коучи-инфобизнесмены дальше официальной документации как-то не пошли. Я оставил то, что реально работает. Если по вёрстке курсов было вагон, то по реакту 1-2. Мне понравился курсы CodeDojo по ReactJs и Redux.

Для закрепления материала я реализовал программу «Телефонный справочник» https://orion55.github.io/phonebook/ Небольшое SPA-приложение, но активно использует очень много функционала реакта.

Внезапно я понял, не важно на ЧЁМ вы говнокодите, не важно КАК вы говнокодите, важно ЧТО вы говнокодите. И решил автоматизировать реальную задачу, с которой на работе сталкиваюсь очень регулярно с романтическим названием «Отчет «Ответы на требования по форме 365п»».

Приложение простое, пользователь вводит 2 даты нажимает кнопку и один SQL-запрос к базе данных Oracle и результат сохраняется в Excelи пользователю отправляет ссылка на скачивание. Серверная часть на Node.JS, клиентская на React.JS.

Оказалось, учебные примеры – это хорошо, красиво и понятно, но вот реальная задача сразу показала свои острые зубы в 2 ряда. Возникло уйма проблем, о существовании, которых я даже и не предполагал.

Оказалось, что NodeJS, ReactJS\Redux уйма библиотек, компонентов, которые как бы независимы, но при установке друг с другом оказались очень даже зависимы и нарушали совместную работу.

Помню сидел-сидел весь вечер и напрограммировал много непонятной хрени, и всё перестало работать и повылезали какие-то непонятные ошибки. И захотелось попасть в машину времени, чтобы она вернула мой код к рабочему на утро. И вспомнил, что такая машина времени у меня есть и она называется git. Я просто откатил код к предыдущей точке и вечер позора был уничтожен и можно продолжать говнокодить. 🙂

Мои выводы

За 3 месяца полная страданий, боли, сомнений и отчаяния работа над отчетом закончилась. Я уяснил, что понимание нескольких принципов спасает от запоминания уймы фактов и каждый выбирает свои способы ошибаться.

За время работы над приложением нашёл простой рецепт успеха:

  • В чем секрет успеха? В правильных решениях.
  • Что нужно чтобы принимать правильные решения? Нужен опыт.
  • Как получить опыт? Чтобы получить опыт, нужно принимать не правильные решения.

Самое главное, я сформировать привычку ежедневно работать над своим проектом: планомерно, постоянно и постепенно.

Закончив проект, я вспомнил о своей первоначальной цели о фрилансе: больших деньгах, новых впечатлениях, и путешествиях. Я зарегистрировался на биржах, взял первые заказы. А эту цель решил завершить. Проекты реализованы: по вёрстке и по программированию. Цель реализована на 80%, учиться хватит, пошёл зарабатывать на своих знаниях. Но это уже тема другой статьи и цели (вот этой: Путь фрилансера). Если коротко «Розовые очки бьются стеклами во внутрь», очень много иллюзий исчезло и нет такой ситуации, которую нельзя превратить в позорное поражение.

Всего на освоение цели ушло 7 месяцев. Какие же вывод я сделал после цели. Если долго вникать в проблему, то окажется, что вы сами — основная часть проблемы, я просто показал наиболее яркие моменты. Успех достигается потому, что каждый день и каждый час надо заставлять себя что-то делать. Через силу и через не могу. Потом это, правда, входит в привычку. Чудеса случаются, только надо над этим очень много работать. Ищите себя, свои формулы успеха, совершенствуйтесь – это ведь так интересно.