Soft и hard skills

Soft и hard skills, image #1

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

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

Soft skills, которые подойдут для разных направлений веб-разработки, и hard skills — для каждого разработчика в отдельности.

Веб-разработчик. Soft skills

  • Тайм-менеджмент. Учитывая ненормированный график, не обойтись без умения планировать работу. Особенно этот навык важен при работе в команде, где даже небольшая задержка значительно замедляет работу над проектом.
  • Коммуникабельность. Этот навык будет полезен для общения с заказчиком и членами команды. Нужно уметь правильно задавать вопросы, обмениваться мыслями, давать обратную связь.
  • Проактивность и желание учиться. Даже специалистам уровней middle и senior полезно общаться с коллегами, обмениваться идеями и заполнять пробелы в знании технологий. А для джуниора это обязательное условия для развития карьеры.
  • Умение сосредотачиваться, внимательность. Этот скилл необходим всем программистам. Одна лишняя или недостающая запятая, незакрытая скобка, и сотни строк кода не будут работать.
  • Алгоритмическое мышление. Нужно уметь разбивать задачу на отдельные части. Это помогает в работе над крупными проектами, особенно на этапе планирования.

Frontend-разработчик. Hard skills

Базовый набор инструментов frontend-developer состоит из языка гипертекстовой разметки HTML, таблиц стилей CSS и языка программирования JavaScript (JS). HTML и CSS разработчик использует для верстки страницы. Это позволяет создать каркас сайта, установить шрифты, стили, адаптировать сайт для мобильных и компьютерных экранов. Что касается JS, то это единственный язык программирования, который поддерживается браузерами. Визуальные эффекты, элементы управления и встроенные веб-приложения, от калькулятора до видеопроигрывателя, пишутся именно на нем.

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

  • Фреймворки и библиотеки функций: Angular, Vue, React, JQuery. Это рабочая среда с готовыми шаблонами функций, которые можно добавить в проект в несколько кликов.
  • Препроцессоры, постпроцессоры и фреймворки CSS: SCSS/SASS, PostCSS, Less, Bootstrap. Упрощают работу с каскадными таблицами, дают гибкость при настройке стилей.
  • Пакетный менеджер NPM. Позволяет быстро загружать JS-библиотеки и приложения.
  • Система управления версиями Git.
  • Сборщик проектов (бандлер). Собирает проект из отдельных частей: сжимает и объединяет файлы, оптимизирует разрешение картинок, автоматизирует подключение внешних модулей, библиотек. Популярные сборщики: gulp.js, Parsel, Webpack.
  • Особенности кросс-браузерной и кроссплатформенной верстки сайта. Нужно понимать, как устроены протоколы HTTP.
  • В качестве бонуса: умение работать с графическими редакторами. Например, Figma, Photoshop. Хотя создание визуального макета — задача дизайнера, программисту иногда приходится экспортировать и импортировать изображения, менять размеры картинок, вырезать отдельные элементы.

Backend-разработчик. Hard skills

У бэкенд-разработчика нет жесткой привязки к технологиям. Для написания серверной части специалисты могут использовать разные языки программирования: PHP, Python, Ruby, Perl, Java, JavaScript, C#, Go, Cotlin, Rust. Такой разработчик должен уметь использовать инструменты, которые позволяют автоматизировать написание кода:

  • Фреймворки и библиотеки: Django для Python, ASP.NET для C#, Symfony, Laravel, Yii2 для PHP, Ruby on Rails для Ruby, Node.js для JavaScript.
  • Систему контроля версий Git и пакетные менеджеры, которые необходимы для быстрого добавления библиотек и модулей. Например, pip для Python, RubyGems для Ruby, Composer для PHP.

Бэкенд-разработчик отвечает за настройку сервера, правильную обработку запросов и безопасность сайта. Поэтому он должен понимать:

  • как устранять типовые проблемы;
  • особенности настройки серверов: Apache, NGINX, IIS;
  • принципы работы с базами данных и языком запросов SQL;
  • основы сетевой безопасности и защиты данных;

Fullstack-разработчик. Hard skills

Фулстек-разработчик должен обладать навыками для backend- и frontend-разработки. Обычно в вакансиях компании указывают следующие требования:

  • знание JavaScript и Python (или C#, Ruby, PHP, Java);
  • навыки верстки: HTML+CSS;
  • знание основных фреймворков: Django, ASP.NET, Node.JS — для бэкенда, Angular, Vue, React — для фронтенда;
  • умение работать с базами данных и языком запросов SQL;
  • умение настраивать серверы, понимание основ безопасности;
  • понимание принципов дизайна.
51 views·1 share