Drupal: полный обзор популярной CMS

Разработка #Обзор #Drupal #Оптимизация CMS Drupal существует уже более 17 лет – разработка платформы началась в 2000 году...

Создаем калькулятор-конвертер на базе React. Часть 9: Подключаем Redux и Router

Разработка #Фреймворки #JavaScript Поговорим о важных и популярных сторонних библиотеках для React: Redux и Router. Зачем они нужны и...

Как сделать приложение из веб-сайта

Разработка #Плагины #Веб-дизайн #Сервисы #WordPress #Конструктор Разработчики популярных веб-ресурсов стараются сделать все возможное, чтобы клиентам было комфортно потреблять...

Что должен знать Junior-разработчик

Разработка #Карьера #Обзор #Технологии #JavaScript #HTML/CSS После обучения многие выпускники начинают активно искать работу по специальности. Диплом IT-специалиста...

Создаем калькулятор-конвертер на базе React. Часть 4: Декомпозиция и мелкие исправления

Разработка #Фреймворки #JavaScript Продолжаем разработку калькулятора-конвертера на базе Реакта с визуальной библиотекой Chakra. В этой статье речь пойдет...

Максимальная производительность 1С-Битрикс: Настройка виртуальной машины

Системы управления контентом (CMS) стали неотъемлемой частью современных веб-проектов, предоставляя множество возможностей для разработки и управления сайтами. 1С-Битрикс —...

Создаем калькулятор-конвертер на базе React. Часть 6: Добавляем конвертер

Разработка #Фреймворки #JavaScript Продолжаем цикл по разработке калькулятора-конвертера. Большую часть нужных опций в калькулятор мы уже добавили, пришло...

Как создать чат-бота ВКонтакте с расписанием уроков

Разработка #Серверы #ВКонтакте #Боты #JavaScript #Ubuntu Для более быстрого просмотра расписания лекций я использую простого чат-бота ВК, которым, помимо...

Сравнение 29 сервисов аналитики маркетплейсов: обзор, рейтинг

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

Как вставить картинку в HTML

Разработка #Авторское право #Фото/Видео #Редакторы кода #HTML/CSS Невозможно представить ни один сайт без визуальной составляющей, в часть которой...

Лучшие IDE и редакторы кода для Python

Разработка #Программы #IDE #Редакторы кода #Python Писать программный код можно хоть карандашом на листке бумаги. Рационально ли это?...

Глобальное обновление Комьюнити: рейтинг, ранги и Таймкарма

Новости #Community news #Правила #Хостинг #Монетизация #Контент Дорогие читатели и авторы Комьюнити, настал час великих изменений! Теперь все...

Краткая история «Параграфа»: советские ученые, которые подарили миру S Pen

Разработка #Технологии #Тренды #Apple #Железо В 1988 году уроженец Азербайджанской СCP Степан Пачиков основал софтверный кооператив «Микроконтур», в результате...

Open source редактор Publii, первый взгляд

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

Преимущества и недостатки CMS 1С-Битрикс

Разработка #1С #Обзор #Интернет-магазин #Веб-дизайн #Bitrix 1С-Битрикс – одна из самых популярных CMS, на которой работают тысячи сайтов....

Обзор DIAFAN.CMS: между вами и сайтом

Это коммерческий продукт, который выпускается в одном варианте лицензии, включающем в себя все модули. То есть здесь нет...

PHP: инструменты для тестирования, отладки, защиты и мониторинга

PHPUnit – инструмент для тестирования, похожий на JUnit (который используется для тестирования Java). Он дает возможность создавать собственные...

Обзор фреймворка Yii

Общее Yii – это объектно-ориентированный фреймворк, написанный на PHP. Если вы не знаете, что такое фреймворк и чем...

Обзор BrainyCP

BrainyCP – это новая панель управления сервером, о которой вы, вероятно, не слышали до этого времени. В этой...

Что такое бэкап

Разработка #Хостинг #Бэкапы Потеря всех данных сайта – страшный сон предпринимателя или компании, особенно, когда веб-ресурс – это...

Как стать full-stack разработчиком

Традиционно разработчики делятся на frontend и backend разработчиков; это обусловлено разделением ответственности между внешним представлением проекта (frontend) и внутренними технологиями (backend). Очень грубо обобщая, можно сказать, что фронтенд разрабатывает интерфейс, который видят пользователи, а бэкенд делает «начинку», т.е. программно-аппаратную часть. Такое деление является логичным и создано для упрощения разработки проекта. Однако все чаще в IT-среде появляются full-stack разработчики. О том, кто они такие и какие технологии актуальны для фулстек-разработчика, я расскажу ниже.

Определение

Full-stack developer (или фулстек-разработчик) – это разработчик, который должен разбираться во всем стеке технологий и используемых в проекте компонентов, как в части фронтенда, так и бэкенда. При этом такому разработчику совсем не обязательно быть senior во всех технологиях, которые используются при разработке приложения.

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

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

Фулстек разработчик имеет свои планы и минусы.

Плюсы:

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

Минусов, конечно, тоже хватает:

  • По сравнению с узкоспециализированным разработчиком, у фулстек-разработчика меньше знаний в каждой из областей (то есть его знания работают вширь, а не вглубь).
  • Из предыдущего пункта вытекает то, что ему сложнее развиваться – приходится осваивать все и сразу, а не концентрироваться на развитии в одном направлении.
  • У Fullstack-разработчика часто отсутствует фиксированная зона ответственности, и из-за этого его еще сложно заменить другим специалистом.
  • Нужно уметь хорошо планировать свою работу для того, чтобы все и везде успевать – иначе появится риск перегрузки задачами.

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

HTML/CSS

HTML и CSS – основа основ. Любой веб-разработчик должен знать HTML и CSS. HTML позволяет добавлять контент на сайт, а CSS отвечает за стиль этого контента. Темы, которые чаще всего затрагиваются при разговоре о HTML/CSS во время собеседования:

  • Семантическая верстка HTML.
  • Блочная (боксовая) модель CSS.
  • Преимущества предпроцессоров CSS: LESS, Sass, Stylus и другие.
  • Медиа-запросы CSS.
  • Bootstrap (фреймворк с инструментами, необходимыми для создания веб-сайтов и приложений).

JavaScript

JavaScript (JS) – язык, который с каждым годом становится все популярнее и обрастает все большим количеством библиотек, фреймворков и инструментов.

Интересно, что в опросе Stack Overflow 2016 года JS стал самым популярным языком во всех трех областях: fullstack, frontend и backend. В опросе 2017 года JS просто стал самым популярным языком среди всех языков программирования. Ничего удивительного в этом нет – JS единственный язык программирования, который используется и в браузере, и в качестве серверного языка (благодаря Node.js). В качестве фулстек-разработчика нужно разбираться в следующих темах:

  • Работа с DOM. Также желательно знать, что такое и уметь использовать JSON.
  • Важные особенности языка: композиция функцийнаследование классовделегирование событийфункции высшего порядка.
  • Порядок обработки событий (в том числе асинхронный), промисы и колбэки (функции обратного вызова).
  • Правильное структурирование кода и работа с модулями.
  • Знание webpackbrowserify и gulp.
  • Знание хотя бы одного популярного фреймворка (ReactAngularJS…). Вообще, понимание самого JS важнее, чем знание фреймворков, т.к. в любом из них тогда будет несложно разобраться.
  • Знание jQuery.
  • Автоматическое тестирование.

Язык бэкенда

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

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

Важное уточнение: вне зависимости от того, какой язык вы решите в итоге изучать, главное – продолжайте изучать именно его. Не надо распыляться сразу на несколько вариантов.
  • Node.js: хороший вариант, т.к. это просто окружение JS (то есть при знании JS не нужно будет учить новый язык программирования). А самый популярный для изучения и создания приложений фреймворк – это Express.
  • Ruby: еще один популярный для бэкенда язык. Самые популярные фреймворки: Ruby on Rails и Sinatra.
  • Python: популярные фреймворки – Django и Flask.
  • Java: сейчас Java уже редко изучают для применения в бэкенде, однако существуют компании, которые его до сих пор используют, поэтому найти работу можно и с этим языком программирования.
  • PHP: сейчас является краеугольным камнем в вебе, но конкретно в бэкенде используется нечасто.

Базы данных и веб-хранилища

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

Поэтому обязательно нужно углубиться в следующие темы, касающиеся БД и хранения данных:

  • Преимущества реляционной модели данныхSQL.
  • NoSQL базы данных, например MongoDB.
  • Умение подключать выбранную базу данных к выбранному языку бэкенда (например, MongoDB и Node.js).
  • Преимущества СУБД в оперативной памятиRedisMemcached.
  • Веб-хранилище для хранения сессий, куков и кэша в браузере.
  • Масштабирование баз данныхACIDORM.

HTTP и REST

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

  • Что такое REST.
  • Использование REST API.
  • Запросы POST и GET.
  • Использование Chrome DevTools.
  • Работа с SSL-сертификатами.
  • HTTP/2SPDYWebSocket.

Архитектура веб-приложения

После того как вы познакомитесь с HTML/CSS, JavaScript, бэкендом, базами данных, а также HTTP/REST, настанет время перейти к архитектуре веб-приложения. Для того чтобы создать сложное приложение, вам нужно знать, как правильно структурировать код, как разделять файлы, где держать большие медиафайлы, как структурировать данные в базе данных и так далее.

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

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

Однако пока вы в начале пути, ознакомьтесь со следующими темами:

  • Платформа как услуга, например Heroku, AWS. 
  • MVC.

А вот вам одно познавательное видео (на английском):

Git

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

  • Руководство для начинающих.
  • Учебник по Git.
  • Основные команды.

Заключение

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

Межтекстовые Отзывы
Посмотреть все комментарии
guest