Я часто замечаю, что начинающие фронтенд-разработчики по несколько раз то начинают, то забрасывают изучение технологий.
И постепенно, уже на подсознательном уровне, появляется боязнь рисковать изучать что-то новое. Во многом, это связано как с ленью, так и с отсутствием должной практики.
К примеру, начинающий React-разработчик недавно узнал о том, что у компонента есть состояние и метод setState
.
Для него это что-то новое и крутое. Теперь его приложение может динамически обновлять данные.
Вроде бы ничего сложного. И даже потратив неделю, можно создать простой список задач (ToDo).
Но он осознает, что одного локального состояния становится недостаточно.
И не потому, что разработчик хочет изучать ещё больше технологий и развиваться, а из-за того, что костыли уже не спасают.
И угадайте, кто приходит на подмогу?
Вот тут и начинается вся боль. Ты начинаешь понимать, что не зря тебе мама говорила стать медиком, а папа строителем.
И девушка тебя бросила не потому, что ты скучный мудак, а потому, что ты Redux не учил. Ты начинаешь слышать голоса.
Они тебе шепчут, что ещё есть шанс стать PHP-разработчиком и окунуться в мир бэкэнда.
Короч! Если ты понимаешь о чем я говорю и тебе знакомо это чувство, то эта статья для тебя.
Я опишу несколько советов о том, как начать изучать «сложные» технологии и не забросить при первой же же трудности.
Главное при изучении программирования и тем более фронтенда — быть терпеливым.
То, что ты часто сталкиваешься с трудностями при изучении — это норм.
Не надо винить себя в том, что ты никчёмный оболтус, который не может уже долгое время изучить какую-то технологию или язык.
Чтобы стать хорошим программистом, нужно терпение и годы обучений. Стать сеньор-помидором за 1 год у тебя никогда не получится.
И скажу так: «Делать ошибки — не самое страшное. Самое страшное, не учиться на этих ошибках.»
(Интересно, мой мозг украл эту цитату или я действительно её только что придумал? Конфуций курит в сторонке).
Да, это 50% твоего успеха в изучении любой информации. Программирование это нудная и скучная фигня.
Вчера мозг только играл в дотку, как сегодня ты его заставляешь учить какие-то странные буквы, слова, всякие консоль логи, вары, леты, зимы, весны, осени... Что?
Пойди поиграй в кс:го, дотку, апекс, посмотри Берсерк или любой другой сериал.
Но самое главное - отдыхай!
Удели изучению информации 1-2 дня и возьми на столько же перерыв (даже если ты не будешь считать это нужным).
Ты будешь замечать прогресс только тогда, когда будешь брать паузу при изучении информации.
Из-за того, что ты пытаешься уложить в голове так много информации за короткий срок, мозг не будет замечать прогресса и часто будет казаться, что обучения идёт очень медленно и слабо. Соответственно, мотивация будет пропадать.
Уже не в первый раз вижу, как джуны выгорают и забрасывают на долгое время программирование из-за того, что в начале они не уделяли достаточно времени на отдых.
Также, не садись за изучение материала через не хочу. Иначе в дальнейшем мозг будет ассоциировать процесс обучения с чем-то сложным и ненужным для него.
Просто посмотри на себя полгода назад, когда ты даже не представлял, что такое HTML и CSS. А теперь?
Наверное то же самое.
Да, это тоже немаловажно. Надо уметь правильно поставить вопрос, чтобы получить желаемое решение.
Да, звучит банально, но это так.
Тебе никто не станет отвечать на вопрос типа: «а как на яваскрипте адронный коллайдер сделать?».
Но если ты разделишь свой вопрос на несколько составляющих, шанс получить ответ хотя бы на один из них, значительно ускорит решение проблемы.
Например, ты хочешь запилить интернет-магазин на ReactJS, но не знаешь как. Начни с малого, попробуй с отображения списка товаров или отправки запроса на бэкенд.
Тебе никто не станет объяснять как запилить свою ракету целиком. Сечёшь, да?
Также необязательно писать в поисковике «гугл как в реакт жс сделать пагинацию чтобы вот по кайфу было когда скроллишь подгружал информацию?», достаточно написать «react infinite scroll».
Чаще всего решение можно найти на иностранных ресурсах.
А умение пользоваться гуглом набирается только с опытом. Странно, что в вакансиях не указывают этот пункт.
А как набраться этому опыту? Надо изучать английский и читать ответы из стэковерфлоу, запоминая фразы близко связанные с твоим ответом.
Ещё в Telegram есть специализированные чаты по языкам программирования и технологиям. В одной из своих статей, я составил список этих чатов.
Ну а про Toster и Stackoverflow, думаю, писать не стоит.
Самое важное при изучении какой-либо технологии — практика. От чтения книг, ты получишь намного меньше результата, чем от практики.
Я только через год или даже полтора, стал понимать то, что написано в книгах по JS.
Лишь только после практики, когда я сам столкнулся с тем, что было описано в этих книгах.
Главное, старайтесь следователь принципу «30% — теории и 70% — практики». Каждый раз, когда вы изучаете что-то, вспоминайте об этом принципе.
И следовательно, тут у тебя возникает вопрос (читать писклявым голосом и с дефектом речи): «А аткюдя брять ету пректекю?».
Можешь уже не читать таким голосом и кстати, вопрос хороший. Не за что.
Так как я увлекаюсь UI-дизайном, для всех своих проектов я разрабатываю дизайн самостоятельно. И приведу тебе пример из своей практики. (не надо паниковать, что ты не шаришь в дизайне. Главное — фантазия).
В начале обучения фронтэнду, я часто сталкивался с технологиями, которые я не знал, но очень хотел изучить.
В итоге я поставил себе задачу создать тестовый проект и принципиально использовать только те технологии, которые я не знал, а именно:
В итоге я сделал этот проект. Получил нужную практику и решил опубликовать его на GitHub, чтобы работодатели могли увидеть мою работу и другие люди могли воспользоваться тем, что я разработал.
Ссылка на Github: https://github.com/Archakov06/ad-socketio-chat
Ссылка на кейс Behance: https://www.behance.net/gallery/44557731/Socketio-Chat
Итак! Надеюсь тебе ясно о чем я хотел сказать, и к завершению этой статьи дам несколько советов по самой практике.
Попробуй повторите то же самое. Посмотри какие технологии ты бы хотел изучить, собери необходимый стек и начни пилить проект. Например:
Еще самая лучшая практика — тестовые задания от работодателей.
Во-первых, это для тебя испытание и возможность узнать, на что ты способен.
Во-вторых, практика и следовательно двойной опыт от собеседования и выполнения задания.
Иногда я проходил собеседования только ради практики (хоть и не нуждался в работе).
Конечно, чаще меня не принимали на работу, но я утешал себя тем, что я практиковался...
Постоянно пробуй. Экспериментируй с разным стеком технологий и ЯП. Это даёт очень хороший опыт.
Как говорил Конфуций: «Всего понемногу и дальше попрёт ежже».