Продолжение поста «Frontend-разработка. Initial commit»
Всем привет. В прошлом посте Я кратко рассказал о том, как Я решил заниматься frontend-разработкой. Итак, продолжим.
Когда Я устроился на работу Я понял, что это - лишь самое начало. Можно сказать, что предыдущие 3 месяца были разминкой. Я продолжил изучать информацию и закреплять её практикой. Вообще для новичка самое сложное - это найти практику. Изучение информации было хаотичным, денег на платные курсы не было, да и как понять какой курс тебе нужен? На Youtube полно бесплатных материалов, где Вас будут учить делать todo лист или что-то подобное, причем много платных курсов делают тоже самое. И много воды.
Если тут будут люди, которые только в начале пути и решились самостоятельно изучать, то скажу сразу, какие ошибки Я допустил.
1. Я очень быстро прыгнул в изучения языка программирования JS. И недостаточно времени уделил HTML и CSS, именно базовой теории. В будущем Я тратил больше времени, чем нужно, застревая на простых вещах.
2. Видео курсы как наркотик. Смотришь, вроде все понимаешь, повторяешь за автором, думаешь что усвоил материал. А как только закончил курс идешь за следующим. И это ошибка. Какое решение Я тут вижу? Мне помог такой подход: Я смотрел курс и параллельно начал простенький проект, в котором можно было использовать то, что дает автор курса. Так ты одновременно делаешь 2 проекта (1 твой и 1 тот, который дает автор) + на своем проекте ты закрепляешь материал и набиваешь шишки. В идеале после курса запилить еще что-то для закрепления.
3. Учить надо только то, что собираешься использовать.
Вообще заметил, что качество твоего обучения напрямую зависит от количества совершаемых ошибок. Ошибки заставляют тебя думать, глубже разбираться в материале/технологиях. А чтобы их совершать нужна практика.
Итак, 12 июля 2019 Я начал работать. Первые 2 месяца были достаточно сложными, потому что Я ни разу не работал в такой сфере. Несмотря на нагрузку и достаточное количество рабочих задач Я продолжал искать и учить материал. В следующие несколько месяцев Я углубился в изучение JS. По себе заметил, что мне нравится именно программировать - писать код, думать над логикой.
Я частенько оставался после работы в офисе до 10-11 часов вечера и изучал материалы, которые были в свободном доступе. Так начали появляться первые проекты: тетрис, todo-лист, опросник, слайдеры, клавиатурный тренажер, приложение с новостями (тут бесплатный API на определенное кол-во запросов в день, тренировал AJAX -запросы). Конечно все это было сделано не самостоятельно с нуля, да и сейчас если на них посмотреть с точки зрения качества кода они сделаны ужасно.
Но самое главное Я набирался опыта.
Спустя больше года со старта Я продолжаю свое самообучение. Когда сложно продолжать в таком режиме Я делаю перерывы на недельку (как раз прошлая неделя и была такой).
Какова цель этих 2 постов? Рассказать о себе, чтобы найти единомышленников. Спустя год стало еще сложнее определиться в выборе технологий. Почему? Потому что хочется делать качественно. Поверхностное погружение никому не нужно на рынке. А чтобы было качество - нужно посвятить достаточно много времени на изучение чего-то одного. Еще одна цель, которую Я преследую - делиться с людьми тем, что делаешь. Например, у меня есть шаблон модального окна, который Я сделал на своей сборке, вся логика там на Typescript. Но нет обратной связи о том, насколько это будет удобно для других и возможно стоит скачать какую-то готовую библиотеку и не изобретать велосипед.
С января этого года Я начал изучать React. Чуть больше месяца назад начал изучать Typescript. Хочу добавить потом его в React и продолжать его изучение. Около 2 недель назад решил изучить material-ui.
Проблема еще в том, что все что Я учу в последнее время - не используется у меня на работе)
План изучения на ближайший месяц:
1. Изучить matherial-ui
2. Сделать простенькую верстку на этом фреймворке.
3. Углубиться в изучение Typescript и начать учить TS для React.
P.S. не хочу начинать тут холивар, но считаю обязательным ответить на этот комментарий
Даже в веб-разработке можно столкнуться с необходимостью знания математики или физики. Вы можете поискать на Youtube конференцию, где сотрудник Яндекса рассказывает об алгоритмах и о том, как правильное их использование позволяет ускорить приложение, чтобы оно меньше потребляло памяти и т.д., делая его более комфортным для пользователя.
Есть так же и другой пример, про физику и математику. Если вы на фронте будете (например в Canvas) рисовать анимированные фигуры, которые должны будут двигаться в зависимости от действий пользователя + взаимодействовать друг с другом (например столкновения), то для реалистичности вам придется использовать сложные формулы, которые есть и в физике и в математике для расчета скорости/ускорения/той силы, с которой пользователь, например передвинул кнопку мыши. Поэтому не все так однозначно)
Спасибо всем, кто прочитал до конца)