Изучение веб-разработки в 2018 году

0
1707
views

Перевод статьи «Learning Web Development in 2018».

Изучение веб-разработки

Изучение веб-разработки в 2018 году просто подавляет.

Так чертовски много всего нужно выучить.

Экосистема JavaScript растет быстрее, чем любая другая.

Так. Чертовски. Много.

Руководства «Как стать разработчиком» выглядят как Летающий Макаронный Монстр.

Лучше не было и не будет

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

Сейчас многое даже улучшилось.

Я перешел от ручной настройки серверов к автоматическому разворачиванию целых кластеров в облаке.

А JavaScript теперь не игрушечный язык, а самый широко используемый язык программирования в мире.

Мы перешли от написания кода вручную с прописыванием всех стилей на наших сайтах к десяткам CSS-фреймворков и библиотекам компонентов с сотнями функциональных, прекрасных, готовых шаблонов и компонентов.

Мы перешли от системы без сеток к единой неуклюжей 960-пиксельной grid-системе, а затем – к невероятно мощной настраиваемой grid-системе, впаянной в браузер.

Так хорошо, как сейчас, никогда раньше не было.

И еще.

Мы перешли от возможности просто загружать файлы к сложному массиву инструментов построения фронтенда.

Раньше у нас не было хороших JavaScript-библиотек, потом появился один доминирующий инструмент (jQuery), а теперь у нас есть 3 массивных фронтенд-фреймворка и десятки фреймворков поменьше.

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

Как определить, что изучать

Я принял как данность, что, пока я в этой сфере, мне нужно постоянно учиться.

Но даже при этом очень сложно понять, что именно нужно изучать. Чтобы определиться, я использую простую структуру, состоящую из трех частей. Я называю ее «Три «М»» (англ. Three Mos – Motivation, Momentum, Money).

  1. Мотивация: насколько я увлечен этой темой?
  2. Рост: что мне даст изучение этой темы?
  3. Деньги: каковы деловые или финансовые возможности?

Мотивация

Насколько меня увлекает данная тема?

Когда я учился в школе, мои оценки больше зависели от степени моего интереса к предмету, чем от его сложности.

Дело не только в том, что мне интереснее изучать то, что меня увлекает. В этом случае сам учебный процесс проходит лучше и быстрее.

Рост

Как изучение этой темы поможет мне что-то сделать или что-то еще изучить?

Будет ли это навык, полезный мне в течение длительного времени в будущем?

Например: выбирая между двумя серверными технологиями, я выберу ту, которая основана на JavaScript. Потому что так я отточу свои навыки JS, а также смогу улучшить знания по фронтенду в целом.

Деньги

Кто-нибудь мне заплатит за то, что я это изучаю? (в идеале – текущий клиент или работодатель). Если нет – является ли этот навык особенно востребованным на рынке?

Идеальная для меня ситуация – когда мне платят за учебу. В моем случае это обычно происходит, когда я могу создать что-то значимое для клиента в смежной сфере деятельности, а приобретение определенного навыка поможет мне повысить ценность создаваемого продукта.

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

Изучение фреймворков

Применение правила «Трех «М»» в отношении JavaScript -фреймворков

Начинающие разработчики часто задаются вопросом, какой фреймворк им стоит изучить.

Я бы ограничил «большую тройку», назвав React, Vue и Angular. Но если одно или больше из трех «М» указывает на другой фреймворк, следует принять это в расчет.

Что касается мотивации, тут все зависит только от вас. Vue сейчас очень популярен. Он только что обошел React (если судить по звездам на Github), однако у React есть много хороших сторон, а также более зрелая экосистема. В пользу Angular говорит массовое его использование в корпоративных приложениях.

В плане роста глубокое изучение одного из этих фреймворков хорошо подготовит вас к изучению любого другого, поскольку многие основные концепции у них одинаковые.

Когда вы хорошо поймете и усвоите основанную на компонентах архитектуру, жизненные циклы компонентов, управление состоянием Flux-style, вы сможете применить эти знания со многими фреймворками.

Что касается денег, я считаю, что в данное время преимущество на стороне React. Если, конечно, у вас нет специфического клиента/работодателя или руководителя, который заинтересован в Vue или Angular.

React все еще используется намного чаще, чем остальные, а значит, у вас будет больше шансов найти работу или фриланс-проект. Однако Vue быстро его догоняет, так что и с этим фреймворком у вас будет много возможностей.

Если вы все еще сомневаетесь, вот еще один тай-брейк: Vue вроде бы легче в изучении, так что, если выберете его, то сможете быстрее начать применять фреймворк на практике.

Обучение на реальном проекте

Как учиться: обучение, основанное на проекте

Первый шаг – найти проект

Самый верный способ изучить новую технологию – найти проект, который вам захочется завершить, и применить в нем эту технологию.

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

Наличие проекта будет побуждать вас к более целостному изучению вопроса, чем при простом следовании обучающему руководству.

Вам придется сражаться с крайними значениями, а этого зачастую нет в учебниках.

Вы будете принимать самостоятельные решения без оглядки на приведенный где-то «правильный способ сделать это».

Ничто не заменит обучения на реальном проекте.

Начинайте с учебного курса, а затем переходите к Google и документации

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

Это служит мне толчком – позволяет перейти от «Понятия не имею, что я делаю» к умению справляться с базовыми вещами.

Я редко заканчиваю курс полностью, но обычно прохожу солидную его часть, чтобы получить общее понимание технологии. А получив его, я просто начинаю работать над своим проектом.

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

Я считаю, что такой подход работает лучше (по крайней мере, для меня), чем простое прохождение курса или чтение документации и статей.

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

Также это дает мне возможность укрепить свое понимание основ. В курсе по React вряд ли будет уделено много времени основам JavaScript, но когда я гуглю свою проблему, зачастую все заканчивается копанием в основах языка.

Рекомендуемые курсы

Я использовал именно эти ресурсы для изучения React и Vue. И хотя я не могу с уверенностью сказать, какие курсы по данной теме самые лучшие, я точно могу рекомендовать те, которые прошел сам.

React: Modern React with Redux

Vue: Vue JS 2 — The Complete Guide (включая Vue Router & Vuex)

Я не проходил курса по Angular, который мог бы посоветовать, но мой друг рекомендует курс, указанный ниже. Преподаватель там тот же, что и в курсе по Vue, который я проходил, так что я могу ручаться за него.

Angular: Angular 6 (formerly Angular 2) — The Complete Guide

Подходите к обучению более стратегически

Хотя мы не знаем, как в будущем будет выглядеть веб-разработка, я уверен, что темп изменений не снизится.

Нам по-прежнему придется изучать новинки, но если мы попытаемся охватить их все, нам это не удастся.

Вместо этого нужно более стратегически подходить к обучению.

Нужно оптимизировать наш учебный процесс, чтобы он способствовал нашему росту, чтобы использовать преимущество в виде мотивации и получать плату за обучение.

Другими словами, нужно руководствоваться чем-то вроде «Трех «М»».

Является ли этот подход самым лучшим? Сомневаюсь. Он отлично подошел мне, но я уверен, что можно сделать и лучше.

А чем вы руководствуетесь в вашем обучении? Поделитесь в комментариях!



ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here