NexxDigital - компьютеры и операционные системы

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

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

Итак, основные функции back end разработчика сводятся к следующим:

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

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

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

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

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



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


Меня зовут Костя, и я работаю в QIWI почти 4 года. Сегодня расскажу вам, как успешно перешел из frontend-разработки в backend.

Frontend

В QIWI я с конца 2014 года, начинал работать как разработчик iOS–приложений, и, в принципе, пару лет занимался разработкой QIWI-кошелька. При этом не могу сказать, что было скучно – задачи были довольно разные и в рамках одного приложения: мы занимались интеграцией кошелька с другими нашими сервисами, чинили баги, подтягивали анимацию. Кроме этого, был занятный опыт по созданию приложения для Apple Watch. Потом немного расширил фокус и поработал еще и над iOS-приложением для «Совести».



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


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


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


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


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

Backend


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


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


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

Впечатления от бэкенда после фронтенда

Нет работы с UI. Вообще. Раньше приходилось убивать время на исправление багов в UI, сейчас – нет. Минусы такого положения – конечный пользователь не видит результатов конкретно моей работы, как это было с фронтом. Я пытался определить, что же сложнее – бэк или фронт, и понял, что (лично для меня) тяжелее всегда было работать с многопоточностью и сетевым стеком. И тут уже не так важно – за фронт ты или за бэк. На фронте я просто столкнулся с такими задачами впервые, без подготовки, а на бэкенде уже с каким-никаким опытом.


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


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

Что в итоге

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


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


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

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

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

  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 разработчик – специалист, который отвечает за программирование «сердца» веб-сайта. Важными качествами, которыми должен обладать back-end developer являются:

  1. мышление, основанное на логических умозаключениях;
  2. проявление инициативы в обсуждении проектов;
  3. умение планировать свою работу, а также придерживаться планов, установленных руководством;
  4. умение пользоваться распространенными версиями фреймворков: Django, Flask и Spring;
  5. знание английского языка программно-технического направления.

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

Работа в back-end: особенности профессии

Back-end, в переводе с английского, означает «оборотная сторона». Соответственно бэкэнд разработчик занимается внутренними процессами, за счет которых, сайт или приложение могут бесперебойно функционировать. Бэкэнд программист – это боец невидимого фронта, который занимается сложнейшими задачами:

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

Back-end обучение: как стать востребованным специалистом

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

Бэк-энд разработчик (с англ. 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 ₽

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

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



Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter
ПОДЕЛИТЬСЯ:
NexxDigital - компьютеры и операционные системы