Дорожная карта в диаграммах…!
Стоит ли вам сосредоточиться на полном стеке?
Если вы хотите сделать обучение своей карьерой, сосредоточьтесь на полном стеке.
Fullstack-разработчик видит в развивающемся мире программного обеспечения возможность, а не угрозу. Они используют современные языки и новые фреймворки. Они постоянно совершенствуют свой разнообразный набор навыков. Они такие же передовые, как и сами технологии.
Разработчики полного стека могут адаптироваться. У каждой компании есть уникальный стек с разными задачами во внешнем и/или внутреннем интерфейсе. Таким образом, способность применять разнообразный набор навыков делает разработчика полного стека действительно ценным.
Наконец, разработчик полного стека извлекает выгоду из самой захватывающей части программного обеспечения: исследования неизвестного. Если вы пишете одно и то же решение в сотый раз, работа скучна. Но у full-stack разработчика всегда будет возможность погрузиться в новые проблемные области.
Если вы новичок, с чего начать?
Диаграмма в этой статье показывает, как вы можете стать полноценным разработчиком. В нем перечислены технологии, которые вам необходимо изучить. Обратите внимание, что оценки времени основаны на личном опыте, а также на опыте моих коллег. Кроме того, оценки предполагают, что вы посвящаете обучению 2–3 часа в день. Скорректируйте оценки, если можете уделить больше или меньше времени.
Даже если у вас есть опыт, вы найдете таблицу полезной. Смотрите, где вы приземлились, и отслеживайте свой прогресс. В любом случае, новичок или опытный, к концу таблицы считайте себя разработчиком полного стека. 🏆
Фронтенд (~5 месяцев)
HTML/CSS (1 неделя+)
Начните с изучения строительных блоков сети. Вы должны изучить язык гипертекстовой разметки (HTML). Это синтаксис, который используется для структурирования веб-сайта. К счастью, это одна из самых быстрых технологий в списке.
Далее у вас есть каскадные таблицы стилей (CSS). Изучение этого в основном осуществляется путем экспериментов. Как только вы изучите основы, включая flexbox, не тратьте слишком много времени на дальнейшее изучение. Вы можете изучить другие детали CSS, когда это необходимо, в других проектах.
JavaScript (1 месяц+)
Много вашего времени будет потрачено на изучение языка программирования JavaScript. JavaScript позволяет вашим веб-сайтам превращаться в динамические веб-приложения.
JavaScript является важной контрольной точкой. К счастью, существует множество ресурсов для ускорения работы с JavaScript. Но будьте осторожны, чтобы сосредоточиться на основах. Сохраните промежуточные и продвинутые концепции позже. Они станут менее запутанными/разочаровывающими по мере того, как вы узнаете больше.
Фреймворки (более 2 месяцев)
По мере того, как вы набираете обороты с помощью JavaScript, изучите фреймворк JS. Фреймворк позволяет повторно использовать общие функции и быстрее реализовывать большие приложения.
Есть несколько вариантов: React, Angular, Vue и другие. На мой взгляд, следует изучить React.js. Он удобен для новичков и любим многими опытными разработчиками.
Это не значит, что вы должны полностью игнорировать Angular и Vue. По крайней мере, читайте о них достаточно, чтобы знать их отличия от React. Даже сделать учебник или два.
Но ваше время — это ресурс. Я бы посвятил большую часть React.
Сопутствующие концепции внешнего интерфейса (от 1 месяца)
Тестирование (более 2 недель)
Само собой разумеется, что надежные компании-разработчики программного обеспечения тестируют свой код. Поэтому разработчик полного стека должен быть знаком с методами тестирования и библиотеками. Поскольку вы знаете JavaScript и React, отличными вариантами являются Jest и Enzyme.
Редукция (2 недели+)
Вы не можете избежать Redux, если изучаете React. Правда, это отдельные понятия. React — это презентационный слой. Redux управляет внутренними данными. Однако применение Redux с React стало стандартом в отрасли.
Понятия связанного программного обеспечения (~1 месяц)
Постарайтесь как можно скорее включить следующие концепции в свой учебный процесс.
HTTP и архитектура клиент-сервер (2 недели+)
Full-stack разработчик должен знать, как данные передаются через World Wide Web. В HTTP функции следуют шаблону запросов и ответов. Это происходит так. Один компьютер выступает в роли клиента. Клиент использует веб-браузер для отправки HTTP-запросов на сервер. Сервер, который является другим компьютером, отвечает клиенту такими ресурсами, как HTML и CSS.
Я рекомендую создать проект, который отправляет запросы к общедоступному API, чтобы запачкать руки HTTP.
Git (1 неделя+)
Изучите Git как можно скорее. Git — это система контроля версий, которая отслеживает изменения в репозиториях (программных проектах). Вы можете думать об этом как о Google Диске на стероидах. Вы можете делиться репозиториями с другими. Есть несколько участников файлов. Но с Git у вас могут быть ветки репозитория проекта для альтернативных версий. Фиксирует запись, когда именно произошло изменение для добавления, обновления или удаления файла. И это только начало его возможностей (Совет: git reflog — это секретное оружие)…
Кроме того, другие инженеры-программисты и рекрутеры захотят увидеть вашу работу на Github.
Бэкенд (~3 месяца)
Node.js (1 месяц+)
Отложите свой опыт работы с JavaScript и изучите серверную часть Node.js. Используйте его с промежуточным ПО Express.js для создания собственного API. Node.js блестяще работает с приложениями на основе чата и потоковой передачей. Воспользуйтесь этими преимуществами и попытайтесь создать клон Facebook Messenger/WhatsApp.
Как и при первом знакомстве с JavaScript, Node.js покажется огромным. Хорошо иметь много ресурсов. Но только если вы не знаете, с чего начать. Сосредоточьтесь на базовых уроках и естественным образом повышайте уровень.
SQL и реляционные базы данных (1,5 месяца+)
Вы не можете игнорировать SQL и реляционную модель. Фундаментальным аспектом бэкенда является хранение данных. Язык структурированных запросов (SQL) является наиболее широко используемым языком для координации чтения, записи и обновления данных. Изучите реляционную модель. Эта концепция лежит в основе стандартных систем реляционных баз данных, таких как MySQL, PostgreSQL и Oracle.
Изучая Node.js, вы встретите множество руководств по MongoDB. MongoDB — это база данных NoSQL — альтернатива системе реляционных баз данных. Осторожно, может возникнуть соблазн сосредоточиться исключительно на MongoDB. Теперь полезно узнать о базах данных и языках NoSQL. Узнайте их преимущества/недостатки тоже. Но не пропускайте ни SQL, ни реляционную модель. Они так широко используются в промышленности. Вы столкнетесь с ними в конце концов.
🍾🍾🏆🍾🍾
На этом вы заполнили таблицу! Открывайте бутылки шампанского! Отпразднуйте так же круто, как в свой 5-й день рождения! Ну, в таком случае шампанское, наверное, не подходит…
В любом случае, торт должен сказать это. Вы — full-stack разработчик.
Но это еще не все…
Выходя за рамки
Проект, чтобы собрать все воедино (2 недели+)
У вас есть навыки полного стека. Надеюсь, вы создали портфолио. Но чтобы помочь с этим, действительно трудно найти онлайн-учебник, который связывает все концепции полного стека вместе. Вам придется собрать проект самостоятельно.
Поэтому я создал курс, чтобы решить эту проблему. В итоге у вас в портфолио будет полноценный проект. Основное внимание уделяется React.js, Redux, Node.js и PostgreSQL. Он также обращает внимание на мелкие детали, которые выделяют вас: лучшие практики в разработке кода и именовании методов.
Мастер полного стека разработки | Node, SQL, React и многое другое
Информатика (5 месяцев+)
Fullstack-разработчик также должен разбираться в компьютерных науках. Да, оценка времени, кажется, предполагает, что четыре года в колледже можно свести к пяти месяцам. Означает ли это, что бессмысленно получать степень CS? Конечно, нет, получение степени в области компьютерных наук — это отличная инвестиция. Вы общаетесь со многими умными людьми. И вы сможете изучить другие инженерные темы, которые могут вас заинтересовать.
Но то, что сразу же применимо в отрасли — структуры данных и алгоритмы, операционные системы и принципы разработки программного обеспечения — можно сделать за пять месяцев.
Многие из моих коллег окончили колледжи без степеней компьютерных наук (некоторые даже без естественных наук). Они либо самоучки, либо ездили на буткемпы.
Другие языки/технологии в полном стеке (продолжается)
Как упоминалось в начале, разработчик полного стека процветает в неизвестном. Процесс обучения продолжается. Как только вы стали опасны в одной технологии, пришло время добавить ее конкурента/альтернативу в свой набор инструментов. Создайте проект или два с помощью другого JS-фреймворка, такого как Vue.js. Начните изучать базы данных NoSQL, такие как Redis.
Чтобы действительно выделиться, нужно знать преимущества и недостатки каждой технологии. Знайте, когда лучше использовать Node.js, а когда лучше использовать Go или Scala.
Знайте, какие части языка следует хвалить. Знайте, на какие части следует жаловаться.
В конечном счете, если вы хотите сделать обучение своей карьерой, сосредоточьтесь на разработке полного стека.
Дэвид — разработчик полного стека и инженер-программист в Zendesk в Сан-Франциско. Он любит делать образовательный контент. У него 17 курсов, на которых обучаются около 200 000 студентов со всего мира. Проверь их! https://www.udemy.com/user/54cd8dd54e49b/
Основное:
Мастер полного стека разработки | Node, SQL, React и многое другое
Построить блокчейн и криптовалюту с нуля
React — освоение тестов и разработка, основанная на поведении
Кроме того, не стесняйтесь связаться с Дэвидом, найдя его ссылки в социальных сетях на davidtkatz.com.