Senior frontend developer что это

Профессия: фронтенд-разработчик

ххх: на чём пишешь фронтенд?
yyy: на костылях и велосипедах
ххх: ммм, хороший фреймворк!
Bash.im

Когда приходит мысль стать программистом, ты вдохновенно открываешь справочник Шилдта по С, заказываешь толстую книгу Страуструпа по С++ и учишься шутить про указатель на указатель на указатель и про рекурсию. Жёсткая романтика первого времени… Но всё меняется, когда в твою жизнь случайно приходит JavaScript. «Какой он простой, понятный, какой классный синтаксис! Всё, решено, буду писать сайты», — думает начинающий программист и решает стать гуру всея веба. Но потом выбранный стек меняет своё дружелюбное лицо, и чем дальше, тем больше. Но ты уже не можешь остановиться, потому что ты один из них — фронтенд-разработчиков. Тех самых, которые «смотрящие за мордой сайта». Ну что, захотелось присоединиться? Тогда для вас 2 серия нашего спецраздела «Профессия:…»

Senior frontend developer что это. image loader. Senior frontend developer что это фото. Senior frontend developer что это-image loader. картинка Senior frontend developer что это. картинка image loader

Кто это?

Сперва немного лирики и отступления от темы.

На пороге третьего десятилетия XXI века кажется, что интерес пользователей и разработчиков сместился c веб-интерфейсов в сторону мобильных приложений и IoT. Но это только кажется. Проведём простой мысленный эксперимент. Подумайте, сколько сайтов вы посещаете со всех своих гаджетов в неделю и проанализируйте, какие мобильные приложения у вас установлены. Скорее всего, получится, что все информационные и новостные ресурсы вы просматриваете на полных и мобильных версиях сайтов (в браузере), а мобильные приложения выполняют «специфические» задачи: социальные сети, мессенджеры, планировщики, хобби и т.д. То есть о вымирании веба говорить слишком рано.

Более того, одним из трендов 2019-2020 года (а мне думается, что и до года 2025) стали так называемые PWA (Progressive Web Apps), которые называют будущим мобильного веба. Если говорить максимально просто, то PWA — это не что иное как мобильный сайт здорового человека такой, каким он должен быть. Лучше всего PWA определил один из создателей этой концепции и автор самого термина Алекс Рассел: «Progressive Web Apps are just websites that took all the right vitamins.» («PWA это всего лишь сайт, который принимает все необходимые витамины»).

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

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

Так что, друзья мои, очевидно, что вне зависимости от роста мобильных приложений и технологий, веб ещё долго останется открытым стандартом для взаимодействия пользователей и любых наборов информации (сайтов, блогов, социальных сетей, интернет-магазинов и всего остального).

Что-то меня в бэкенд унесло. Не суть. Суть в том, что при любом бэкенде любого сайта должна быть «морда» сайта и он должен как-то работать. И всё происходит, когда приходят они — фронтенд-разработчики. Они отвечают за разработку внешнего интерфейса сайта, то есть того, как бэкенд и дизайн сайта взаимодействуют с пользователем (если вдруг вы на Хабре случайно, поясню — за каждым сайтом скрывается куча всего: дизайн, различные прослойки и огромный бэкенд, то есть вся логика работы, СУБД и проч). В общем, когда-то истина крылась вот в этой картинке:

Senior frontend developer что это. image loader. Senior frontend developer что это фото. Senior frontend developer что это-image loader. картинка Senior frontend developer что это. картинка image loader

Эта эпичная и знакомая всем картинка уже сегодня трансформировалась и действительно, профессия фронтенд-разработчика стала несравнимо сложнее и многокомпонентнее, чем каких-то 7-10 лет назад. Теперь это выглядит так, и 2028 по ощущениям гораздо ближе 🙂

Senior frontend developer что это. image loader. Senior frontend developer что это фото. Senior frontend developer что это-image loader. картинка Senior frontend developer что это. картинка image loader

Фронтендеры отвечают за логичную работу всех компонентов сайта, включая контент, кнопки, изображения, навигацию и внутренние ссылки. Нередко именно они проектируют первичную структуру сайта, работают с требованиями пользователей (заказчиков), то есть отвечают за клиентскую сторону пользовательского интерфейса. И если бэкендеры отвечают за программно-аппаратную часть и им скорее важно, как софт взаимодействует с железом, то фронтендеры взаимодействуют с гораздо более сложной «аппаратной частью» — органами зрения, слуха и иногда осязания обычных людей. Задача сделать так, чтобы было удобно, быстро, прозрачно, ожидаемо и т.д. В общем, если косячит фронтендер, это заметят все и сразу.

Вы ещё не напугались от таких перспектив? Тогда едем дальше.

Где нужен?

Если коротко, то везде, где есть веб-разработка, а именно:

Средняя заработная плата

Уровень специалистаСредняя заработная плата
Младший (Junior)53 404 руб.
Средний (Middle)99 396 руб.
Старший (Senior)170 535 руб.
Ведущий (Lead)185 533 руб.

Разница между уровнями довольно ощутимая, а стек внутри вакансий довольно обширный — так что с одними онлайн-курсами JavaScript делать карьеру фронтендера вряд ли получится.

Базовые требования к профессионалу

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

Senior frontend developer что это. image loader. Senior frontend developer что это фото. Senior frontend developer что это-image loader. картинка Senior frontend developer что это. картинка image loader

Наиболее популярные веб-фреймворки по версии отчёта StackOverflow. Очень рекомендую перейти на страницу отчёта и просмотреть его весь, хотя бы по графикам, попереключать вкладки, — так вы получите целостную картину происходящего в мировом IT. Много инсайтов даже для продвинутого, опытного айтишника.

Senior frontend developer что это. image loader. Senior frontend developer что это фото. Senior frontend developer что это-image loader. картинка Senior frontend developer что это. картинка image loader

Важные личные качества

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

Необходимость знания иностранных языков

Для любого программиста крайне желателен английский язык не ниже upper-intermediate с уклоном в технический английский. Так вы сможете читать в оригинале многочисленные рекомендации Google и других компаний для оптимальной разработки (очень много полезной документации!), самообучаться с помощью зарубежных лекций, общаться с коллегами на форумах, задавать вопросы, а также читать книги по юзабилити и дизайну, среди которых очень много крутых англоязычных и пока не переведённых изданий.

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

Где учиться

В российских реалиях, как мы уже говорили в первой статье про сисадминов, высшее образование необходимо для успешного трудоустройства. Поэтому желательно иметь хорошую образовательную базу (политех, университет, на край — техническая специальность в каком-нибудь базовом вузе). В принципе, при навыках логического мышления и умении работать с алгоритмами подойдёт любое высшее образование — был бы человек толковый. Сегодня уже есть специальности и направления в вузах, где студенты осваивают основы фронтенд и бэкенд-разработки, это очень хорошо. Но этого категорически мало.

Конечно, первое, с чем вы столкнётесь, выбирая профессию фронтенд-разработчика, это онлайн-школы. Пока я писал эту статью, я погуглил несколько картинок и отчёты площадок по теме фронтенда. У меня весь яндекс и гугл теперь в объявлениях, которые обещают меня сделать гуру JavaScript за 2-3-6-12 месяцев. Соблазнился бы, если бы не знал, что такое JavaScript и как его выучить за 21 день.Брать курс для старта или систематизации знаний или не брать — дело вашего желания, времени и дохода. В любом случае, просто прослушать не получится — придётся сидеть и бить по клавишам, делать тестовые сайты или пилить свой пет-сервис (включая бэкенд, кстати).

Впрочем, к этому обучение фронтенд-разработке и сводится: вы берёте именно проект и на нём учитесь. Если хочется денег, можно попытаться сделать сайт для небольшой компании или устроиться на стажировку (но для этого у вас уже должны быть хоть какие-то навыки разработки или тестирования). Только ежедневный кодинг, поиск оптимальных решений, тщательный анализ работы кода помогут вам прокачаться как разработчику.

Лучшие книги и средства обучения

Список книг и ресурсов зависит от того, какой стек вы выберете. Но есть несколько, которые нужны абсолютно любому фронтендеру (а то и любому программисту в принципе). Сделаю сумбурный список — по мере силы собственных впечатлений.

Будущее фронтендера

У фронтендера три основных пути развития.

Мифы профессии

▍Фронтенд умирает

Главный миф — это то что профессия фронтенд-разработчика умирает. Конечно, нет. Более того, интерфейсы год от года становится всё сложнее, и ИТ-сфера будет нуждаться в продвинутых специалистах, способных разобраться в этих усложнениях. Фронтенд-разработка будет нужна ещё довольно долго, и никакие шаблоны, визивиги, CMS и прочие средства её не заменят. О важности и нужности профессии можно судить по ряду графиков — думаю, всё наглядно и не нужно ещё раз повторяться о том, что не может умереть профессия, которая обеспечивает самое главное — взаимодействие пользователя и интерфейса.

Senior frontend developer что это. image loader. Senior frontend developer что это фото. Senior frontend developer что это-image loader. картинка Senior frontend developer что это. картинка image loader

Просто посмотрите на 10 самых популярных языков программирования в проектах GitHub и оцените положение JavaScript на этом графике. В данном случае прямая линия не означает умирание, она означает стабильность и востребованность.

Senior frontend developer что это. image loader. Senior frontend developer что это фото. Senior frontend developer что это-image loader. картинка Senior frontend developer что это. картинка image loader

Наиболее популярные языки программирования из отчёта StackOverflow. Кстати, JavaScript здесь удерживает лидерство уже седьмой год.

А вот и тренды Гугла.

Senior frontend developer что это. image loader. Senior frontend developer что это фото. Senior frontend developer что это-image loader. картинка Senior frontend developer что это. картинка image loader

Динамика запроса «frontend developer» в мире, 5 лет

Senior frontend developer что это. image loader. Senior frontend developer что это фото. Senior frontend developer что это-image loader. картинка Senior frontend developer что это. картинка image loader

Динамика запроса «frontend» (красным) и «фронтенд» (синим) в России, 5 лет

▍Работодатели не очень понимают в видах программистов

А вот второй миф нифига не миф, а чистая правда. Работодатели часто не понимают, кого они нанимают на работу и ищут не того, кто готов решать конкретные задачи и брать на себя ответственность за их решение, а того, кто «должен знать» какой-то им одним ведомый стек технологий. Именно поэтому нужно быть готовым к тому, что вакансия фронтендера будет один раз похожа на вакансию верстальщика, а второй — на вакансию фулстека. Если работодатель выучил аббревиатуру TDD (test driven development), то вакансию можно найти и среди тестировщиков 🙂 На самом деле, такой дичи, как в требованиях к фронтенд-программистам не встречается практически нигде (хуже дела обстоят только у пиарщиков и маркетологов, те вообще должны быть МФУ). Если вам очень хочется в компанию и вы понимаете, что собеседование идёт не туда, постарайтесь перевести разговор на задачи и рассказать, как конкретно вы собираетесь их решать и с помощью какого стека. Впрочем, если не туда пошло уже на собеседовании, может, вы слишком хорошо думаете о компании?

Главный совет

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

А как и почему вы решили стать фронтенд-разработчиком? Что в профессии хорошо, а что нет? Рассказывайте в комментариях, поможем тем, кто стоит на распутье.

Источник

Что должен знать senior frontend developer?

Оценить 1 комментарий

Senior frontend developer что это. dbfa89813aeb47b9b468783a128938c9. Senior frontend developer что это фото. Senior frontend developer что это-dbfa89813aeb47b9b468783a128938c9. картинка Senior frontend developer что это. картинка dbfa89813aeb47b9b468783a128938c9

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

Это как если бы спросить, что должен уметь «водитель», не уточняя водитель какой категории, какого транспортного средства и какие задачи он будет выполять (развозка пиццы и дирттрек на мотоцикле например совершенно разные вещи).

Суть в наличии определенного опыта, благодаря которому специалист сможет не совершать ошибок, не будет создавать ситуации, когда из-за неверно поставленного return’a будет ложиться система в продакшене и не будет создавать архитектурных несостыковок, из-за которых система будет ложиться под нагрузкой или в результате неверной обработки данных в виду сложной асинхронности.

Понимание всего JS целиком и полностью. Всех его багов и фич.
Знание ES6, ES2015, ES7, etc.
На данный момент, думаю, необходимо знание всяких view-библиотек и целиковых MVC фреймворков: React, AngularJS (+ 2.0), Vue.
Понимание взаимодействия браузера с клиентом, отличные познания в HTTP, WS.
Понимание асинхронности, синхронности, синхронизации.

Ну и само собой HTML, CSS, понимание и знание препроцессоров, постпроцессоров, css-modules, BEM. Умение настроить gulp/grunt/webpack.

Умение пользоваться npm/yarn.

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

Senior frontend developer что это. a05da1506e604356affc922cb7b106c7. Senior frontend developer что это фото. Senior frontend developer что это-a05da1506e604356affc922cb7b106c7. картинка Senior frontend developer что это. картинка a05da1506e604356affc922cb7b106c7

Senior frontend developer что это. a05da1506e604356affc922cb7b106c7. Senior frontend developer что это фото. Senior frontend developer что это-a05da1506e604356affc922cb7b106c7. картинка Senior frontend developer что это. картинка a05da1506e604356affc922cb7b106c7

Senior frontend developer что это. 5d1dd86a8956c100363457. Senior frontend developer что это фото. Senior frontend developer что это-5d1dd86a8956c100363457. картинка Senior frontend developer что это. картинка 5d1dd86a8956c100363457

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

Senior frontend developer что это. 0b2ad9c0644343739d4266526cf54701. Senior frontend developer что это фото. Senior frontend developer что это-0b2ad9c0644343739d4266526cf54701. картинка Senior frontend developer что это. картинка 0b2ad9c0644343739d4266526cf54701

Здравствуйте, интересно узнать какими скилами и опытом должен обладать senior frontend разработчик? В разных вакансия абсолютно разные требования на такую позицию.

Исторически сложилось так, что чёткое определение «скиллов» на «должность» Senior’a, к сожалению, не существует, не зависимо от области, «фронтэнд» или что-то ещё.

Так же как, к «директору» или «тех. директору» в зависимости от масштабности и прочих параметров фирмы, требования будут разительно отличаться. Или например, требования к ведущему разработчику.

Представьте себе, ведущего разработчика и набор задач которые он должен решать, в какой-нибудь крупной компании, например, «Мейл.ру» и аналогичную должность, в компании «Сайтошлёп инкорпорейтед». Примерно с аналогичной ситуацией Вы столкнетесь при поступлении в институт, и «ценность» полученного образования соотв. пропорционально зависит от «сложности поступления».

Источник

Практическое руководство как стать Senior Frontend Developer

Привет, Хабр! Представляю вашему вниманию перевод статьи «A Practical Guide To Become a Senior Frontend Developer» автора Seifeldin Mahjoub.

Карантин может стать твоим звездным часом

Есть несколько определений для звания ‘Senior’, и меняются они от компании к компании. И, понятное дело, требуются много навыков, как hard skills, так и soft skills. Крис Коер написал статью о характерных чертах и склонностях в поведении, которые должны быть у сеньёра фронтенд разработчика, что даёт хорошую картинку в целом.

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

1. Овладеть основами

Сеньёру должно быть очень комфортно иметь дело с HTML, JS и CSS. К тому же, они должны владеть базовыми концепциями того, как работает интернет, включая браузеры, сети и сервера.

Это значит, что такие концепции, как прототипы, всплытие событий, call stack, promise, es6 для вас не пустой звук. То же касается CSS, анимаций, grid-систем, соглашений об наименованиях, и спецификациях.

Необходимо знать многочисленные концепции, ниже вы сможете найти некоторые ресурсы, по которым вы сможете пробежаться и восполнить знания, которых вам не хватает, по крайней мере пока что. CSS Reference, Html Reference, Javascript Fundamentals, Frontend Handbook.

2. Начинайте с чтения документации.

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

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

Убедитесь, что вы прочли документацию ЦЕЛИКОМ, как ваш путеводитель к пониманию всех деталей фреймворка.

Ответы на большинство ваших вопросов можно найти в доках. Если нет, то вы поучаствуете в разработке фреймворка и поможете другим, win-win.

3. Понимание процесса сборки

Большинство фреймворков предоставляют процесс сборки из коробки с помощью CLI, в роде angular-cli или create-react-app.

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

Начните с понимания важных концептов, таких как транспиляция, сборка, минификация и упаковка. Позже вы сможете двигаться к ‘nice-to-have’ фичам, например, линтерам, горячей перезагрузке и git хукам.

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

4. Прочтите руководство написания кода (style guide)

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

Style guide содержит большое количество полезных практик (Best practices), которые помогут вам понять фреймворк ещё лучше и иметь со своей командой единый стиль написания кода.

Вы также можете обеспечить соблюдение правил, используя линтеры, например, vue-eslint-plugin.

5. Пользуйтесь Devtools

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

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

Освоение dev tools значительно улучшит вашу продуктивность в сравнении с обыкновенным использование console.log или debugger.

6. Поймите реактивность

Vue и React завязаны на системах реактивности. Понимание этих идей поможет вам прояснить как фреймворк устроен, и вы сможете оптимизировать его использование.

Вы поймёте, как фреймворки отслеживают изменения состояний и обновляют DOM автоматически. Вы также изучите виртуальный DOM и развеете путаницу вокруг теневого DOM-а.

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

Есть отличный курс от Эвана Ю (создатель Vue), где он объясняет, как устроена реактивность Vuejs, начиная с самых основ.

7. Выделите для себя паттерны компонентов

Компоненты — это фундаментальные единицы современных фронтенд систем. Способность продумывать и проектировать несколько видов компонентов может стать огромным вкладом для поддержки вашего проекта в долгосрочной перспективе.

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

8. Пишите компонуемый код

Компонование кода — это один из атрибутов хорошо спроектированных систем программного обеспечения.

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

Почти все сообщества имеют установленный набор шаблонов написания кода, например react-hooks, или, в мире Vue, Vue-composition API и Mixins.

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

9. Оптимизируйте коммуникацию компонентов

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

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

На помощь приходят такие стратегии, как flux pattern, event emissions или callbacks и props.

10. Покрывайте свой код авто-тестами

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

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

Исследуйте unit тесты, snapshot тесты и e2e тесты.

11. Выходите из своей зоны комфорта

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

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

Также, вы сможете почерпнуть некоторые концепции и ваша способность переключаться между фреймворками станет для вас реактивной силой. Так что отправляйтесь изучать, будь то React, Angular, Vue или Stencil, их целая куча. Я уверен, что вы отыщете себе фреймворк по душе.

12. Двигайтесь дальше

Я верю, что скорей всего, вы достигнете уровня, когда большинство задач на своем пути вы будете щёлкать как орешки. Тем не менее, мир фронтеда безграничен.

Отправляйтесь изучать такие разделы, как серверный рендеринг, Jamstack, accessibility, мобильные приложения, десктоп приложения, service workers, алгоритмы, функциональное программирование.

13. И не забывайте развлекаться

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

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

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

Я сам не сеньёр, но стремлюсь к этому. Также, очень советую роадмапу для фронтеда для тех, кто стал на тот же путь. Помогает систематизировать самообучение.

Источник

Как стать фронтенд-разработчиком? Пошаговый гид в мир фронтенда

Senior frontend developer что это. ripxfhm8cmx9xulm. Senior frontend developer что это фото. Senior frontend developer что это-ripxfhm8cmx9xulm. картинка Senior frontend developer что это. картинка ripxfhm8cmx9xulm

Приветствую всех! Меня зовут Пучнина Анастасия, я ведущий разработчик в компании ДомКлик, занимаюсь фронтендом Витрины объявлений. Сегодня я хотела бы поделиться с вами своим мнением на тему того, что важно знать фронтенд-разработчику. Эта статья будет полезна тем, кто только начинает свой путь в разработке, или имеет опыт программирования в другой области и решил перейти на сторону фронтенда.

Содержание:

Кто такой фронтендер и чем он занимается?

Допустим, вы хотите арендовать квартиру: у вас есть компьютер с выходом в Интернет, вы знаете адрес другого, более мощного компьютера, который хранит огромное множество объявлений. Если представить, что привычных сайтов не существует и вы не можете, например, посмотреть объявления на карте, отфильтровать ненужные, заполнив удобную форму, вам придётся самим составлять сетевой запрос и разбираться в том, как и куда отправлять данные.

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

Фронтенд-разработчиками называют программистов, которые отвечают за создание такой внешней стороны (англ. front end) веб-сайтов. Это клиентская часть сайта, с которой пользователь непосредственно взаимодействует на своем компьютере или телефоне (клиенте).

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

Senior frontend developer что это. image loader. Senior frontend developer что это фото. Senior frontend developer что это-image loader. картинка Senior frontend developer что это. картинка image loader

С чего начать и что читать? Чек-лист обучения

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

В начале пути некоторых пугает список технологий, названий и аббревиатур во фронтенде. Их огромное множество. Но даже опытный разработчик не знает, да и не должен знать абсолютно все технологии и библиотеки, которые только существуют (ходят слухи, что каждую секунду в мире фронтенда выпускается новая библиотека:)

Senior frontend developer что это. 1c22rji44mb1jyni1ctoagkn7wc. Senior frontend developer что это фото. Senior frontend developer что это-1c22rji44mb1jyni1ctoagkn7wc. картинка Senior frontend developer что это. картинка 1c22rji44mb1jyni1ctoagkn7wc

Три кита разработки под браузеры — это HTML, CSS и JavaScript, с которых и стоит начать.

Если у вас нет опыта в разработке и вам сложно обучаться самостоятельно, хорошим решением будет пойти на курсы фронтенд-разработчика с наставником в одной из известных школ программирования. Также хорошие курсы по вёрстке и фронтенд-разработке можно найти на Udemy и Coursera. Однако это совсем не обязательно, в интернете много бесплатных материалов и источников по необходимым темам.

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

Сохраняйте в закладки и пользуйтесь.

1. Как работает Веб

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

2. Среда разработки

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

3. Основы HTML

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

4. CSS

Senior frontend developer что это. 6oha2qc0 abkehp80jfpedasiau. Senior frontend developer что это фото. Senior frontend developer что это-6oha2qc0 abkehp80jfpedasiau. картинка Senior frontend developer что это. картинка 6oha2qc0 abkehp80jfpedasiau

Добавление стилей для элементов страницы. Изучаем блочную модель, позиционирование, каскадирование стилей, специфичность селекторов, псевдоэлементы, адаптивную верстку (для компьютеров, планшетов и телефонов). Учимся верстать современные макеты с помощью Flexbox и Grid.

5. Система контроля версий Git

Git поможет вам выйти на новый уровень в процессе написания кода. Это незаменимый инструмент для разработчиков, который позволяет поэтапно сохранять информацию обо всех изменениях в коде, возвращаться к разному состоянию, и многое другое. Желательно научиться работать с Git в терминале, а также попрактиковаться: создать репозиторий на Github или Gitlab и опробовать основные возможности Git на своём тестовом репозитории.

Практика. Практика. Практика!

Senior frontend developer что это. . Senior frontend developer что это фото. Senior frontend developer что это-. картинка Senior frontend developer что это. картинка

На этом этапе я предлагаю побольше попрактиковаться и сделать свой небольшой проект, чтобы запомнить пройденный материал. Необязательно самостоятельно придумывать дизайн сайта, вы можете взять готовый макет. Создайте landing page или, например, сверстайте сайт-портфолио, сохраняйте код на Github в процессе разработки и попробуйте разместить сайт на бесплатном хостинге для статических сайтов — Github Pages. Если вам недостаточно практики, попробуйте посмотреть, как верстают другие, и повторить. На YouTube достаточно видеоуроков на эту тему (например, по запросу «верстка сайта по макету figma»).

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

6. Язык программирования JavaScript

Не путайте JavaScript с Java. Изучите основы языка: переменные, объекты, типы данных, функции, контекст и замыкания, классы. Сравните отличия спецификаций EcmaScript старых и новых версий. После понимания основ переходите к более сложным вещам: тонкостям асинхронного программирования (коллбеки, промисы, async-await) и выполнению запросов на сервер (XmlHttpRequest, Ajax, Fetch, Cookie).

7. DOM (Document Object Model)

DOM — это объектная модель документа, дерево, которое строит браузер, чтобы отрисовать вашу страницу на экране. Научившись работать с DOM, вы сможете с помощью JavaScript создавать или изменять элементы на странице, реагировать на клики пользователей и многое другое. Работе с DOM и событиям в браузере посвящена отдельная часть LearnJavascript.

Подробно тема DOM также описана в книге «Выразительный JavaScript», автор Марейн Хавербек.

8. Node.js, NPM

Благодаря программной платформе Node.js язык JavaScript можно использовать не только в браузере. С помощью этого инструмента можно написать консольную программу или серверную часть приложения.

Попробуйте написать свой собственный небольшой сервер.

В своих JavaScript-программах вы можете использовать модули, написанные другими разработчиками. Ознакомьтесь с онлайн-хранилищем пакетов NPM.

9. Babel

Babel Js — компилятор JavaScript-кода, который позволяет использовать последние возможности языка, например, стрелочные функции, классы, optional chaining, не дожидаясь их полной поддержки браузерами. Вам необходимо лишь правильно сконфигурировать Babel под нужную версию EcmaScript или список поддерживаемых вами браузеров, исходный код будет преобразован автоматически.

Попробуйте воспользоваться онлайн-компилятором кода на официальном сайте, чтобы посмотреть, во что превращаются современные конструкции JavaScript. Настройте компиляцию кода для небольшого JavaScript-приложения, подключив Babel как NPM-пакет.

10. Сборщики модулей, Webpack

При создании приложений разработчики делят код на части (модули), подключают дополнительные обработчики кода, настраивают приложения для различных окружений (development и production). Чтобы это было возможным, а нам не пришлось вручную подключать модули в HTML-файле в нужном порядке и следить за изменениями, в приложениях используются сборщики модулей (бандлеры).

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

Webpack — один из самых популярных сборщиков модулей. Это помощник разработчиков, несмотря на то, что по началу он может показаться достаточно сложным. Его гибкость позволяет настроить сборку с использованием огромного множества плагинов и загрузчиков (пре- и пост- процессоров CSS и HTML, Babel и др.), оптимизировать ресурсы, быстро подгружать изменения в процессе разработки с помощью hot module replacement, и многое другое.

11. Препроцессоры CSS

CSS-препроцессор — это надстройка над CSS, которая предоставляет удобные новые синтаксические конструкции для разработчика, добавляя новые возможности, которые позволяют упростить и ускорить разработку и поддержку стилей.

Наиболее популярные препроцессоры:

12. Препроцессоры HTML (Шаблонизаторы)

Препроцессоры HTML имеют те же преимущества, что и CSS-препроцессоры. Они позволяют более эффективно писать HTML-разметку, разбивать код на модули, а также использовать условия, циклы, миксины, наследование.

13. Стиль кода и линтеры

Стиль кода (code style) — набор правил, который позволяет сделать код единообразным, максимально удобным для восприятия и читаемым для вас и других разработчиков. Такие правила описывают, где и какие отступы и скобки должны быть, максимальную длину строк, названия переменных, позволяют определить слишком запутанный или лишний код и множество других аспектов.

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

Существуют специальные инструменты, которые могут проверять ваш код автоматически и позволяют легко поддерживать код в определенном стиле, настроив конфигурацию проекта один раз:

14. Изучение фреймворка/UI-библиотеки

React, Angular или Vue? На 2020 год основная борьба идет между этими библиотеками. Вы можете выбрать любую из них. Если вам симпатизирует какая-то конкретная компания, в которой вы хотели бы работать, можете выбрать используемый ими фреймворк.

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

Начните изучать React с официальной документации, она достаточно подробная. Если её вам покажется недостаточно, можно найти на Udemy полноценный курс (например, Modern React and Redux — на английском языке, с очень понятным и подробным объяснением для начинающих, практическими заданиями и всем необходимым материалом по React и библиотекам).

Уделите внимание описанию типов входных параметров для React-компонентов (проверка типов с помощью PropTypes), а также написанию комментариев по стандарту JSDoc (цикл статей по использованию JSDoc).

По мере вашего продвижения необходимо будет научиться управлять состоянием приложения. Библиотеки, которые помогают в этом: Redux и Mobx. Начать рекомендую с Redux — это наиболее популярная библиотека в связке с React. Ознакомьтесь с официальной документацией или переводом. Также советую курс от одного из авторов библиотеки (Getting Started with Redux от Дэна Абрамова).

Затем приступайте к изучению библиотеки для удобного выполнения асинхронных действий (например, запросов к серверу). Самая простая библиотека, с которой стоит начать — Redux Thunk (документация).

15. Автоматическое тестирование

Тестирование — это процесс оценки того, что все модули приложения ведут себя так, как ожидалось. Благодаря тестированию можно избежать большого количества ошибок, которые вы могли бы не заметить. Изучите, что такое тестирование и какие виды бывают (Тестирование для «чайников»). Научитесь писать модульные тесты к вашему коду, используя одну из библиотек для тестирования, например, Jest.

16. Углубленное

Какие трудности могут быть? Ошибки в начале пути

Senior frontend developer что это. pdoajc2g9brnn 8ozyb4an54fjm. Senior frontend developer что это фото. Senior frontend developer что это-pdoajc2g9brnn 8ozyb4an54fjm. картинка Senior frontend developer что это. картинка pdoajc2g9brnn 8ozyb4an54fjm

Изучение фреймворков вместо базовых знаний

Иногда будет казаться, что лучше сразу изучать какой-нибудь популярный фреймворк или библиотеку. Это достаточно частая ошибка, особенно во фронтенде: люди начинают изучать React или верстают с помощью Bootstrap и Material UI, не разобравшись в основах и не получив достаточных знаний по HTML, CSS и JavaScript. Можно использовать такой подход, если вы «бежите на короткую дистанцию» и вам нужно быстро сделать какой-нибудь проект. Но если вы планируете стать разработчиком, это не принесет нужного результата.

Senior frontend developer что это. ti6yfelakjon0ypohku079yngak. Senior frontend developer что это фото. Senior frontend developer что это-ti6yfelakjon0ypohku079yngak. картинка Senior frontend developer что это. картинка ti6yfelakjon0ypohku079yngak

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

Обучение — это труд, самодисциплина и много практики

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

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

Определитесь, зачем и почему вы хотите стать фронтенд-разработчиком. Фронтенд — это область, в которой можно реализовать интересные решения и работать над проектами, которыми будет пользоваться огромное количество людей по всему миру! В добавок к этому, чем больше вы наберете знаний и опыта, тем выше будет оплачиваться ваш труд.

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

Копирование чужого кода

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

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

Не доверяйте на 100% коду, который вы находите

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

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

Подготовка к собеседованию на Junior-разработчика

Собеседования в разные компании могут проходить совершенно по-разному, я бы хотела рассказать о необходимых знаниях, основываясь на своём опыте.

Направления, по которым чаще всего собеседуют на должность фронтенд-разработчика — это вёрстка, JavaScript, в частности, асинхронность и знание одного из фронтенд-фреймворка или библиотеки. На позицию Junior больше внимания уделяется именно вёрстке и JavaScript.

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

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

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

Сайты с задачами по программированию:

Задачи на применение действительно сложных алгоритмов и знание таких структур данных, как деревья и графы, практически нигде не даются при собеседовании на должность Junior фронтенд-разработчика. Так что не бойтесь: даже если прохождение собеседования кажется вам очень страшным, на самом деле, если вы смогли ответить на все вопросы выше, то с большой вероятностью сможете пройти собеседование.

Маленький совет: если вы не уверены в своих силах, всё равно пройдите собеседование в какой-нибудь компании. И даже если вам не сделают предложение, вы поймете свои слабые места. К следующему собеседованию сможете подготовиться еще лучше!

Senior frontend developer что это. phzpsfist22a56dajqryr6jnyo8. Senior frontend developer что это фото. Senior frontend developer что это-phzpsfist22a56dajqryr6jnyo8. картинка Senior frontend developer что это. картинка phzpsfist22a56dajqryr6jnyo8

Спасибо, что дочитали до конца. Надеюсь, статья была вам полезна. Если знаете, что она может быть полезна кому-то другому, то поделитесь.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *