Дорожная карта в диаграммах…!

Стоит ли вам сосредоточиться на полном стеке?

Если вы хотите сделать обучение своей карьерой, сосредоточьтесь на полном стеке.

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.