что нужно для бэкэнд разработчика

Что нужно знать начинающему бэкенд-разработчику, кроме языка программирования

Авторизуйтесь

Что нужно знать начинающему бэкенд-разработчику, кроме языка программирования

что нужно для бэкэнд разработчика. Смотреть фото что нужно для бэкэнд разработчика. Смотреть картинку что нужно для бэкэнд разработчика. Картинка про что нужно для бэкэнд разработчика. Фото что нужно для бэкэнд разработчика

продакт-менеджер программы «Python-разработчик» в Яндекс.Практикуме

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

Меня зовут Лера Солодовникова, я продакт-менеджер на программе «Python-разработчик» в Яндекс.Практикуме, сегодня хочу обсудить необходимые для работы бэкендера смежные знания и умения. По большей части текст ориентирован на Python-разработчиков, но пригодится и тем, кто работает с другими языками, — принципы довольно общие, разница лишь в инструментах.

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

Базис

Начнём с главного — с ОС. Хороший бэкендер должен быть знаком с unix-подобной операционной системой. Это могут быть не только разные Linux-дистрибутивы, но и macOS или FreeBSD, но общепринятым стандартом всё же является Linux. Работать вы можете на ПК или ноутбуке с любой ОС, но Linux нужно знать. Ведь вам придётся довольно активно взаимодействовать с серверами, а большая часть из них работает на Linux.

20–22 декабря, Онлайн, Беcплатно

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

Следующее требование ― знание систем контроля версий. И тут уже без особых альтернатив: нужен именно Git, несмотря на наличие выбора. Изучите сам Git и механику взаимодействия с ветками, если собираетесь работать в команде. Впрочем, если вы интересуетесь бэкенд-разработкой и сейчас читаете этот текст, аккаунт на GitHub у вас уже наверняка есть (а если нет, вы знаете, что делать).

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

Дополнительным преимуществом для начинающего бэкенд-разработчика будет знание хотя бы одного веб-фреймворка — для Python это Django или Flask. Плюс базовые знания SQL. Никто не будет выставлять вас на ежемесячные соревнования SQL-программистов, но важно уметь самому проектировать БД, работать с ними через ORM, если мы говорим про Django, или через SQLAlchemy в случае с Flask.

Ну и, конечно, никуда без основ администрирования сервера, хотя бы на уровне «Я могу сам задеплоить свой проект по SSH, не отвлекая коллег от чтения Хабра».

Алгоритмы и тестирование

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

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

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

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

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

GitHub и хакатоны

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

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

Командная работа

Про soft skills написано множество постов и, скорее всего, несколько книг, поэтому я не будут сильно вдаваться в их важность и необходимость — вы всё это уже читали много раз.

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

Разговаривайте, спрашивайте, уточняйте. Это нормально. Так же нормально, как пойти и усердно погуглить что-то, если не получается.

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

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

Полезные книги

Марк Лутц, «Изучаем Python». Марк написал эту книгу по мотивам собственных курсов, которые ведёт уже более 10 лет. Здесь всё важное: обзор инструментов, типы объектов, функции плюс описания моделей и инструкции по обработке исключений.

Антонио Меле, «Джанго 2 в примерах». Книга делает упор на практическое создание приложений для реальных задач. Кроме непосредственной работы с компонентами самого фреймворка, рассматриваются также и возможности интеграции сторонних инструментов.

Лекции Тимофея Хирьянова по алгоритмам. Тимофей — один из преподавателей МФТИ. Лекций по алгоритмам множество, но эти наглядные. Особенно полезны для новичков, но и разработчику с опытом тоже пригодятся.

Если вы можете свободно читать профильную литературу на английском, то порекомендуем ещё и пару книг о разработке на основе тестов: Harry Percival, «Test-Driven Development with Python» и Kevin Harvey, «Test-Driven Development with Django».

Источник

Как стать бэкенд-разработчиком в 2022 году: дорожная карта

Авторизуйтесь

Как стать бэкенд-разработчиком в 2022 году: дорожная карта

Как стать бэкенд-разработчиком, что изучать в 2022 году и в каком порядке? Мы составили дорожную карту, которая поможет в этом разобраться:

что нужно для бэкэнд разработчика. Смотреть фото что нужно для бэкэнд разработчика. Смотреть картинку что нужно для бэкэнд разработчика. Картинка про что нужно для бэкэнд разработчика. Фото что нужно для бэкэнд разработчика

Зона ответственности

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

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

Операционные системы и базис

Очень важно научиться работать с терминалом, особенно если речь идёт о Linux.

Бэкенд-разработчик должен знать, как работают ОС, что такое потоки и параллелизм, понимать, концепции построения сети и стандарты POSIX, а также уметь управлять процессами, памятью, вводом и выводом (I/O).

Полезные материалы:

А также видео о том, что такое операционная система и как она работает:

Выбор языка программирования

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

20–22 декабря, Онлайн, Беcплатно

Допустим, если вы уже знаете JavaScript и вообще решили освоить бэкенд после фронтенда, хорошим выбором станет Node.js: и поддерживать будет проще, и можно поиграться в фулстек. Знаете Python? Что ж, Django также предоставляет много готовых решений для серверной части. За Java стоит браться, если перед вами сложный долгоиграющий проект, а если же веб-приложение небольшое, писать для него бэкенд на Java — всё равно что шар-бабой гвозди забивать. Неизменной классикой по-прежнему остаётся PHP, ведь на этом языке действительно разработано подавляющее большинство современных сайтов.

И это далеко не все. Подробнее можете почитать в нашей статье о 8 основных языках для бэкенда.

Базы данных

Базы данных станут вашим главным ресурсом, а СУБД — новым домом. Следует понять разницу между реляционными и NoSQL СУБД, освоить нормализацию, транзакции, ORM, ACID, проблему N+1 и теорему CAP.

Материалы по работе с базами данных:

Также есть хорошее видео, которое наглядно объясняет нормализацию в БД:

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

Веб-серверы

Стоит научиться устанавливать и настраивать популярные веб-серверы, такие как Nginx, Apache, Caddy и MS IIS. Все они достаточно безопасны и просты в использовании.

А ещё можете почитать о том, как самостоятельно настроить сервер для сайта, используя DigitalOcean хостинг и операционную систему Ubuntu 20.04 LTS.

Заключение

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

Источник

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

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