Войти
Windows. Настройка. Интернет. Обслуживание. Компьютеры. Безопасность
  • Что за программа Microsoft OneDrive и как ей пользоваться Облако виндовс фон вход
  • Виджет ForkPlayer для Samsung J и K серии Tizen OS
  • Переговорные устройства Commax Принципиальная схема двусторонней связи
  • Добро пожаловать в «Личный кабинет
  • Ярлыки не работают, что делать если ярлыки не открываются?
  • Защита беспроводной сети Wi-Fi Надежный алгоритм аутентификации
  • Backend что должен знать. Frontend- и backend-разработка: принципы и отличия. Как взаимодействуют frontend и backend

    Backend что должен знать. Frontend- и backend-разработка: принципы и отличия. Как взаимодействуют frontend и backend

    Backend-разработчику нужно иметь хорошее фундаментальное техническое образование. Качественное образование дают МФТИ, МГТУ, МГУ, ИТМО или МИФИ. Но многое зависит от человека, от его желания и интереса. При наличии желания хорошее образование можно получить и в менее престижных вузах.

    Профильные факультеты

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

    Mail.Ru Group запустила программу бесплатного дополнительного образования «Технопарк » для студентов МГТУ им. Баумана, в рамках которой можно получить все необходимые для backend-разработчика теоретические знания и практические навыки.

    Книги

    Совершенный код. Мастер-класс

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

    Приемы объектно-ориентированного проектирования. Паттерны проектирования

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

    Вакансия:
    бэкенд-веб-разработчик

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

    1. Какими знаниями и навыками должен обладать бэкенд-веб-разработчик?
    2. Каков инструментарий бэкенд-веб-разработчика?
    3. Каковы требования компании к уровню образования потенциальных сотрудников?
    4. Какие требования предъявляются к опыту работы?
    5. Есть ли особые требования, которые обусловлены спецификой деятельности компании?

    Артур Боженов, старший программист отдела внутренней автоматизации Positive Technologies

    Тимур Гимуллин, cтарший инженер по автоматизации тестирования отдела технологий разработки Positive Technologies

    1. Артур Боженов: Бэкенд-веб-разработчик должен обладать следующими навыками и знаниями:

    • многопоточное программирование;
    • принципы ACID (Атомарность, Согласованность, Изолированность, Надежность) и их применение на практике;
    • общие принципы сетевой архитектуры и протоколов;
    • цикл жизни HTTP-запроса/ответа, путь прохождения запроса;
    • защита сетевых соединений (HTTPS). Авторизация. Настройка прав доступа к ресурсам;
    • REST, ODATA, WebAPI, SOAP;
    • веб-сервисы;
    • хостинг веб-приложения (IIS, Nginx, Lighttpd, Node.js, Apache);
    • масштабируемость решения, балансировка/маршрутизация запросов;
    • логирование;
    • кэширование данных;
    • хранение данных (адекватный выбор способа хранения в зависимости от задачи);
    • работа с большими объемами данных.

    2. Артур Боженов: Основной инструментарий бэкенд-веб-разработчика:

    • удобная IDE (Visual Studio, NetBeans и т.п.);
    • сервисы или утилиты для создания/просмотра/изменения regEx выражений, JSON, XML, текста в неправильной кодировке;
    • Google и Stackoverflow;
    • MongoDb/Redis/memcached;
    • Elasticsearch/Kibana;
    • RabbitMQ/ZeroMQ/MSMQ и прочие MQ.

    Тимур Гимуллин: Насчет IDE – это дела вкуса, хоть блокнот (саблайм, npp), но я бы лучше смотрел в сторону продуктов JetBrain, и прочих, хорошо интегрирующихся друг с другом.

    3. Артур Боженов: Высшее (необязательно) техническое (обязательно). Опыт практической работы важнее.

    Тимур Гимуллин: Насчет образования – лучше техническое или математическое.

    4. Артур Боженов: 3-5 лет разработки не-фронтенда.

    Тимур Гимуллин: Для бэкенд-разработчиков не могу уточнить.

    5. Артур Боженов: Аналитический склад ума.

    Тимур Гимуллин: Реальное умение работать в команде и умение договариваться. Разработчика, который не умеет моделировать и приступает к работе сразу, не продумав общую архитектуру и взаимодействие всех модулей приложения, я бы вообще никуда не брал. На аутсорсе пусть сидят!

    Евгений Кузин, начальник отдела сетевых проектов, ООО «Доктор Веб»

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

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

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

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

    2. Не называю конкретные программы, поскольку по каждому аспекту возможны равноценные варианты.

    Конечно же, браузер, со всеми расширениями, необходимыми для анализа, проверки и манипуляции с элементами и скриптами на веб-странице. Затем утилиты, позволяющие посылать разнообразные кастомные HTTP-запросы (поскольку на 95% веб-разработка – это протокол HTTP) и детально анализировать трафик и обмен данными между клиентом и сервером. Также бэкенд-веб-разработчику необходим текстовый редактор, желательно с поддержкой используемых языков программирования, инструментов отладки, профилирования и контроля версий.

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

    И, конечно, главные инструменты – голова и прямые руки.

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

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

    5. Если говорить о разработке именно для Интернета, то веб-разработка сама по себе уже представляет создание приложения, работающего в публичной среде для пользователя, истинные намерения которого неизвестны. Программируя любое действие, нужно задавать себе вопросы: что если пользователь (злоумышленник) автоматизирует бесконечное выполнение этого действия? Что если входные данные приложения будут произвольным способом отредактированы? Что если ссылка на этот сервис попадет в открытый доступ, будет передана посредством IM другому пользователю? И тому подобное.

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

    Николай Крапивный, руководитель отдела новых разработок, Badoo

    1. Бэкенд-веб-разработчик в Badoo, как любой хороший инженер, должен уметь понимать поставленную задачу и уметь ее эффективно решить в рамках имеющихся в наличии технологий и инструментов. Мы используем PHP+MySQL, поэтому наш веб-разработчик должен прежде всего свободно владеть PHP и SQL. Должен быть ответственным и стремиться делать свою работу хорошо – соблюдать сроки, понимать продуктовую/техническую ценность задачи, отвечать за итоговое качество.

    2. Базовый набор составляют PHP, MySQL, nginx, Git, JIRA, IDE, любимый браузер и командная строка. Кроме этого, у нас в компании написано большое количество различных инструментов, систем, библиотек, которые разработчики повсеместно используют для решения тех или иных задач. Некоторая часть этих инструментов доступна в Open Source, например, Pinba – средство для мониторинга PHP в реальном времени, наш инструмент для форматирования кода – phpcf, PHP-обвязка для библиотеки Leptonica.

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

    4. Ситуация аналогична ситуации с образованием: никаких жестких и формальных требований.

    5. У наших проектов большая аудитория и достаточно нагруженные PHP-бэкенды. В пиках они обрабатывают до 50 тысяч запросов в секунду. В связи с этим мы особое внимание уделяем теме производительности. Нужно понимать основные принципы кэширования, репликации, оптимальной работы с данными, оптимизации потребления и распределения ресурсов. Быть способным увидеть и локализовать проблему с производительностью на любом уровне.

    Денис Силаков, начальник отдела технологических разработок и сопровождения компании «НТЦ ИТ РОСА»

    1. Кандидату на такую должность в «НТЦ ИТ РОСА» понадобятся следующие навыки:

    • хорошее знание Ruby on Rails 4.x;
    • знакомство с Behavior-driven development;
    • знакомство с принципами коллективной разработки – системами контроля версий, трекерами задач и так далее;
    • опыт работы с базами данных (как реляционными, так и NoSQL);
    • опыт работы с SLIM/HAML;
    • знание и опыт работы с JavaScript/CoffeeScript;
    • знание CSS/SCSS.

    2. В «НТЦ ИТ РОСА» для веб-разработки в настоящее время используется фреймворк Bootstrap, а также JavaScript-фреймворк AngularJS. Для хранения данных используются PostgreSQL и Redis. Разработка на Ruby on Rails ведется в соответствии с подходом Behavior-driven development с применением инструментария RSpec.

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

    4. Желателен опыт работы от года в проектах, где использовались упомянутые в первом пункте технологии (по крайней мере Ruby on Rails).

    5. Бэкенд-веб-разработчики в «НТЦ ИТ РОСА» трудятся преимущественно над системой разработки и сборки ABF, используемой для создания наших основных продуктов – линейки дистрибутивов ОС Linux и продуктов под эту ОС. Поэтому будет большим плюсом, если кандидат на эту вакансию хорошо знаком с Linux и со сборкой пакетов под эту систему. Не лишним будет знакомство с другими технологиями, использующимися в ABF – виртуализацией (в частности, LXC), системами управления конфигурацией (например, Ansible) и системами хранения кода (в первую очередь Git).

    Сергей Казанцев, старший разработчик, «Лаборатория Касперского»

    1. Бэкенд-разработчики отвечают за код, выполняемый на веб-серверах.

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

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

    Популярными связками могут быть:

    • C# + ASP.NET + IIS;
    • Java + Spring MVC + Apache Tomcat;
    • Ruby on Rails + Nginx;
    • Python + Django + Apache;
    • PHP + Apache;
    • …или их комбинации.

    Многие веб-сервисы компании построены на базе технологий Microsoft и платформы.NET, но нередко применяются и Ruby on Rails, Perl, PHP.

    В арсенале хорошего бэкенд-разработчика всегда присутствуют инструменты:

    • мониторинга трафика: Fiddler, Wireshark;
    • профилирования производительности, памяти и запросов к базе данных;
    • быстрого поиска по логам: grep.

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

    4. Требуемый опыт работы может зависеть от позиции, на которую претендует соискатель:

    • 1 год – младший веб-разработчик;
    • 2-5 лет – веб-разработчик;
    • 5-7+ – старший/ведущий разработчик.

    5. К специфическим требованиям «Лаборатории Касперского» можно отнести знание криптографии, потенциальных угроз веб-приложений и способов их предотвращения.

    Илья Кутуков, старший программист, специалист по веб-инжинирингу в Parallels

    1. У нас в Parallels сейчас как раз открыто две вакансии для таких специалистов – ведущего веб-бэкенд-разработчика (http://hh.ru/vacancy/12586616?query=parallels) и ведущего веб-бэкенд-разработчика и архитектора (Python) (http://hh.ru/vacancy/12599030?query=parallels), так что мы точно понимаем, что хотим от таких специалистов. Подразумевается, что человек, приходящий к нам, владеет нужными для работы языками программирования и технологиями в достаточной мере. Кроме проверки coding skills и общей эрудиции, мы даем тест на архитектора – текст, представляющий собой вольно написанное и заведомо неполное ТЗ на разработку системы. Дальше просим кандидата уточнить, что ему непонятно, какие дополнительные вопросы у него возникли и как он видит основные составляющие системы, схему данных, как все будет меняться при увеличении нагрузки, объема данных, а где этим можно пренебречь.

    2. Основной инструментарий – IDE (уточню, что мы в команде предпочитаем PyCharm), окружение разработчика, то есть набор программ, который делает его максимально похожим на начинку боевых серверов, но при этом с возможностью быстро разбираться в том, что происходит, VCS, подручные скрипты. Из интересных, сравнительно новых инструментов, технологий и подходов хотелось бы также упомянуть о «реактивном» подходе (Akka, Rx.*, Apache Storm и т.п.), который требует от разработчика мышления на уровне потоков сообщений, событий и их модификации. А также микросервисные архитектуры, хорошо дополняющие их языки описания интерфейсов (Thrift, Avro, Protobufs, JSON schema), которые позволяют с удобством создавать контракты, по которым идет обмен данными.

    3. Образование для нас принципиальной роли не играет.

    5. У нас бэкенд-девелоперы работают над такой функциональностью, как Parallels MyAccount, Access Portal, Desktop Portal, в таких решениях, как Parallels Access (решение удаленного доступа) и Parallels Desktop для Mac (запуск на Маках разных операционных систем и их приложений без перезагрузки), с различными инфраструктурными решениями. Поэтому у нас есть такая специфика, как zero-downtime, и хорошо, если человек не только понимает, какие изменения нужно внести, но и как это сделать, не затронув пользователей.

    Константин Кичинский, эксперт по стратегическим технологиям, Microsoft Россия

    1. Знания и навыки, необходимые бэкенд-веб-разработчику:

    • Архитектура сети, протоколы, каналы коммуникации.
    • Технологический стек, соответствующий проекту (например, C#, .NET, ASP.NET или JavaScript/TypeScript + NodeJS) + управление лежащей в основе операционной системой (например, Windows/Azure + PowerShell).
    • Автоматизация развертывания и тестирования (в том числе нагрузочного).
    • Понимание облачных возможностей основных провайдеров (Microsoft Azure, AWS), включая обеспечение масштабируемости сервисов.
    • SDL и в целом вопросы обеспечения безопасности (вклю­чая шифрование и аутентификацию).

    2. Инструменты: Visual Studio, Git + остальное зависит от процессов и технологического стека.

    3. Образование: профильное (IT) + практический опыт, приветствуются качественные знания в специфичных областях (также безопасность или обеспечение отказоустойчивости сайта).

    4. Опыт: практический опыт в реальных проектах, включая участие в OS-проектах.

    5. Специфичные требования: Azure.

    Александр Горный, директор по информационным технологиям Mail.Ru Group

    1. Во-первых, он должен знать бэкенд – свой основной рабочий язык программирования, базы данных, принципы организации серверных приложений. Кроме того, ему нужны знания в вебе: устройство HTTP-протокола, возможности CSS, хотя бы элементарное владение HTML и JavaScript. И, наконец, он должен быть хорошим разработчиком – уметь отлаживать свой и чужой код, правильно пользоваться классическими алгоритмами, выбирать уместные структуры данных.

    2. Основной инструмент – это, конечно, язык программирования. Язык определяет второй уровень инструментария: стандартные для этого языка фреймворки и наборы библиотек. Затем идут базы данных: чаще всего MySQL или PostgreSQL – и NoSQL-хранилища, такие как Tarantool или Redis.

    3. Формальных требований к диплому при устройстве на работу в Mail.Ru Group нет. Гораздо важнее реальные навыки и проекты, в которых он участвовал. У Mail.Ru Group есть два крупных образовательных проекта: Технопарк на базе МГТУ имени Баумана и Техносфера на базе ВМК МГУ, цель которых – дать студентам конкретные навыки в области веб-разработки.

    4. Формальных требований опять же нет, но в целом можно говорить, что разработчик становится полностью самостоятельным где-то после двух-трех лет опыта работы «вторым номером».

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

    Александр Недзельский, руководитель веб-студии ITSOFT

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

    • понимание ООП, шаблонов проектирования, знание основных алгоритмов и структур данных;
    • владение одним из языков программирования (или несколькими);
    • опыт работы с СУБД, знание SQL;
    • понимание принципов проектирования реляционных БД;
    • опыт работы с популярными фреймворками;
    • опыт работы с системами управления версиями;
    • базовые знания HTML, CSS, JavaScript;
    • умение настроить тестовое окружение.

    2. «Блокнот» и голова на плечах. А если серьезно, то любая IDE/редактор и тестовая площадка. Обычно инструменты выбираются в зависимости от предпочтений/задачи/возможностей.

    3. Строго высшее техническое.

    4. Наличие законченных и работающих коммерческих проектов.

    5. Мы разрабатываем веб-приложения, сайты и сервисы преимущественно на PHP/MySQL. При этом мы используем Yii/Symfony и 1С-Битрикс для стандартных решений. Поэтому для нас важны релевантный опыт и знания.

    Эдуард Гурский, Technical Lead в команде Internal Development, компания JetBrains

    1. Бэкенд-веб-разработчик – это, по сути, человек, разрабатывающий серверную логику и осознающий, в каком контексте она будет исполняться – в контексте веб-приложений. Если бэкенд-веб-приложения реализуются на языке Java, а в большинстве случаев это так, то, по сути, к такому специалисту применимы все те же требования по знаниям и навыкам, что и к обычному Java-разработчику: знание языка, понимание работы и устройства основных библиотечных компонент Java SDK и т.д. Однако еще добавляются опыт работы с различными веб-фреймворками (упрощающими реализацию dependency injection, mvc и т.д.), умение оценивать и улучшать производительность приложения, его масштабируемость. Необходимо учитывать и понимать, насколько быстро пользователь приложения получит результат выполнения серверного кода, а также насколько безопасно и рационально ту или иную серверную функциональность делать доступной через браузер пользователя.

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

    Несмотря на то что такой человек в основном занимается разработкой серверной логики приложения, возникает необходимость отладки или прототипирования с использованием клиентской части приложения. Отсюда вытекает необходимость понимания работы стека протоколов TCP/IP, HTTP, принципов взаимодействия браузера с веб-приложением, базовые знания о верстке, CSS-стилях, JavaScript-возможностях.

    2. Обычно это IDE для разработки. Также временами требуется использовать профилировщик для решения задач производительности, чрезмерного потребления ресурсов и др. В нашей команде мы используем IntelliJ IDEA.

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

    4. Любой опыт разработки production веб-приложений, конечно, является плюсом. Знания и навыки, описанные выше, не могут присутствовать у специалиста при отсутствии соответствующего опыта. На собеседованиях мы обычно интересуемся деталями участия в различных проектах, указанных в резюме, чтобы оценить опыт, который мог приобрести кандидат, реализуя такие задачи. Специалист, пробовавший различные подходы и технологии для решения схожих задач при разработке веб-приложений, умеющий анализировать плюсы и минусы каждого подхода, является весьма интересным кандидатом.

    5. Приветствуется опыт разработки приложений с использованием продуктов JetBrains. Мы все в компании стараемся пользоваться своими продуктами, потому что они удобные и потому что мы хотим сделать их еще удобнее!

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

    Дмитрий Овчинников, веб-разработчик
    Наталья Жук, рекрутер в СООО «Гейм Стрим» в минском центре разработки Wargaming

    1. Бэкенд-разработчику необходимо глубокое понимание веб: от формирования HTTP-запроса на стороне браузера до осуществления межсерверных коммуникаций с использованием различных протоколов. Веб в компании Wargaming – это не только «Личный кабинет» игрока, но и множество сервисов, обеспечивающих единую аутентификацию, регистрацию, участие в реферальной программе и т.п.

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

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

    2. В Wargaming стек используемых технологий вполне стандартен: основной массив веб-проектов разрабатывается на Python, некоторые сервисы написаны на PHP, а другие, критичные к скорости и параллельным вычислениям, – на Erlang. Для хранения данных используется MySQL, для кэша – memcached. В качестве шины передачи сообщений в компании выбран RabbitMQ. Из фреймворков – Django и Twisted. Если говорить о фронтенд-части, то это распространенная связка Backbone/Underscore/jQuery.

    Что касается средств разработки, в Wargaming мы придерживаемся позиции «что лучше для разработчика». Кто-то использует современные IDE, кто-то комфортнее чувствует себя с Vim или Emacs. Неважно, с помощью каких инструментов мы выполняем свою работу, если в результате получаются удобные и полезные сервисы, которыми ежедневно пользуются миллионы игроков по всему миру.

    3. Формализованных требований к уровню образования у нас нет. Профильное (техническое, математическое) образование будет плюсом, так как указывает на наличие фундаментальной теоретической подготовки кандидата, но вряд ли станет решающим фактором при приеме на работу. Мы понимаем, что знания в области математики, ООП, классических алгоритмов и структур данных могут быть получены самостоятельно. Предпочтение отдается кандидатам с опытом работы. Также для нас важно умение кандидата решать инженерные задачи и принимать инженерные решения, а не просто писать код.

    4. Требования к опыту работы зависят от вакансии. Если мы приглашаем молодого специалиста, то в первую очередь будем смотреть на его «домашние проекты» и университетские наработки. Мы должны быть уверенны, что человек пришел к нам не случайно, это был осознанный выбор, который можно подтвердить реальными примерами хоть небольших, но выполненных проектов. Когда речь идет об опытном специалисте – требования более конкретные. Нам важен опыт в нескольких областях: базы данных, Linux, веб-сервера (Apache, Nginx), знание и понимание систем кэширования (Memcached), систем обмена сообщениями (RabbitMQ), а также опыт работы с фреймворками (Django, Twisted). Опыт оптимизации высоконагруженных проектов будет очень полезен и позволит быстро влиться в процесс разработки и трудиться с максимальной эффективностью для себя и команды. Для ведущих специалистов и экспертов, помимо перечисленного, важными являются широкий технический кругозор и опыт работы с разнообразным технологическим стеком.

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

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

    Подготовил Игорь Штомпель

    Исследовательский центр портала Superjob.ru специально для «Системного администратора» изучил предложения работодателей. По позиции бэкенд-веб-разработчика специальные требования пока не определены, в основном они аналогичны тем, что предъявляются к программистам.

    Программист Java

    ИТ
    Телекоммуникации
    Промышленность
    Производство
    Строительство
    Управление недвижимостью
    Услуги В2В Продажи В2В Продажи В2C
    I 65 000 – 80 000 54 000 – 71 000 50 000 – 67 000 60 000 – 75 000 50 000 – 65 000 50 000 – 64 000
    50 000 – 64 000 42 000 – 57 000 40 000 – 53 000 45 000 – 60 000 40 000 – 52 000 40 000 – 51 000
    II 80 000 – 90 000 71 000 – 87 000 67 000 – 85 000 75 000 – 90 000 65 000 – 83 000 64 000 – 87 000
    64 000 – 72 000 57 000 – 70 000 53 000 – 68 000 60 000 – 70 000 52 000 – 66 000 51 000 – 70 000
    III 90 000 – 150 000 87 000 – 125 000 85 000 – 115 000 90 000 – 130 000 83 000 – 120 000 87 000 – 125 000
    72 000 – 120 000 70 000 – 100 000 68 000 – 92 000 70 000 – 100 000 66 000 – 96 000 70 000 – 100 000
    IV 150 000 – 200 000 125 000 – 150 000 115 000 – 150 000 130 000 – 180 000 120 000 – 170 000 125 000 – 160 000
    120 000 – 160 000 100 000 – 120 000 92 000 – 120 000 100 000 – 145 000 96 000 – 140 000 100 000 – 130 000
    Ср 125 000 110 000 100 000 115 000 115 000 110 000
    100 000 88 000 80 000 92 000 90 000 90 000

    Нечетные строки зарплаты - средние по Мск, четные - по СПб

    Зарплатный диапазон Требования и пожелания к профессиональным навыкам
    Диапазон I
    • Неполное высшее образование (техническое / IT)
    • Отличное знание HTML, CSS, Java, XML
    • Знание принципов объектно-ориентированного программирования
    • Знание теоретических основ разработки баз данных
    • Знание английского языка на уровне чтения технической документации
    • Опыт программирования на Java от полугода
    Диапазон II
    • Опыт работы с web-серверами и серверами приложений
    • Опыт программирования на Java от 1 года
    Диапазон III
    • Высшее образование (техническое / IT)
    • Знание шаблонов проектирования Java и J2EE
    • Опыт использования специальных инструментальных средств (Hibernate, Spring, Struts и т.д.)
    • Опыт работы в команде разработчиков
    • Опыт работы с системами контроля версий
    • Опыт работы с СУБД (MS SQL Server или Oracle)
    • Опыт программирования на Java от 2 лет
    Диапазон IV
    • Наличие квалификационных аттестатов
    • Опыт проектирования информационных систем и подготовки проектной документации
    • Опыт работы с интеграционными решениями (IBM WebSphere, Oracle Fusion Middleware)
    • Опыт разработки многоуровневых приложений
    • Опыт программирования на Java от 3 лет
    Возможные пожелания:
    • знание английского языка на разговорном или свободном уровне
    • навыки руководства группой разработчиков

    Подготовила Валерия Чернецова, руководитель отдела аналитики SuperJob


    Вконтакте

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

    Бэк-энд разработчик — боец невидимого фронта.

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

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

    Основные инструменты бэк-енд разработчика - серверные языки программирования: такие как PHP, Python, Ruby, Java, Perl, Node JS (программная платформа). Дополнительно к Node JS полезно изучить Express (библиотека для взаимодействия платформы Node JS с сервером) и Mongo DB (базу данных для получения и хранения информации).

    В качестве дополнительных средств применяются фреймворки Symfony, Codeigniter, Yii, Zend Framework, Kohana и др. С целью хранения данных используются MySQL/SQLite.

    Особенности профессии

    Современным разработчикам недостаточно только писать код для программ. Так работали программисты 10-15 лет назад. В настоящее время такой термин неуместен, потому что в работе часто можно обойтись без написания кода, просто соединяя между собой готовые части в единую конфигурацию. И программистов сейчас называют «разработчик» или «инженер».

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

    Таким образом, функционал бэк-энд разработчика выглядит следующим образом:

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

    Плюсы и минусы профессии

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

    Место работы

    Компании по разработке сайтов, веб-приложений, мобильных приложений.

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

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

    Профессиональные знания и навыки

    Знание хотя бы одного языка программирования: Go, C, C++, Perl, Python, PHP, Ruby, Java.

    • умение писать быстрый, красивый и правильный код;
    • знание популярных веб-фрейморков (Django, Flask, Spring);
    • умение проектировать базы данных и оптимизировать запросы;
    • знание современных парадигм программирования;
    • знание паттернов проектирования;
    • понимание устройств веб-сервисов, интерфейсов;
    • английский язык для чтения технической документации.

    Где учиться на Бэк-энд разработчика

    Обучает (Очно, Москва). Международное учебное заведение, специализирующееся на компьютерном образовании. Работает с 1999 года. 42 филиала в 16 странах мира. Крупнейший авторизованный учебный центр Microsoft, Cisco, Autodesk. Студенты получают международные сертификаты и международный диплом. Главная цель – трудоустройство каждого выпускника.

    Высшее образование:

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

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

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

    Оплата труда (сколько зарабатывает Бэк-энд разработчик)

    Зарплата на 16.09.2019

    Россия 40000—100000 ₽

    Москва 80000—300000 ₽

    Ступеньки карьеры и перспективы

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

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

    Чем отличается backend разработка

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

    Виды backend разработки

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

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

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

    Что нужно знать backend разработчику?

    Вызывает много споров вопрос, что нужно знать backend разработчику, ведь инструментарий для достижения поставленной цели может быть совершенно разным. Одну и ту же задачу можно решить различными способами, при этом каждый может оказаться по-своему эффективным. Главным является понимание, в чём заключается отличие backend разработки от frontend. Говоря об инструментах, нужно понимать, зачем надо инсталлировать Ruby и почему установка Javascript не требуется.

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

    Для создания серверной части разработчик должен владеть такими backend языками программирования:

    • javascript;
    • java;
    • python.

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

    Среди backend фреймворков наиболее популярны следующие:

    • yii2;
    • node js.

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