С чего начать изучать backend

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

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

С чего начать изучать backend. Смотреть фото С чего начать изучать backend. Смотреть картинку С чего начать изучать backend. Картинка про С чего начать изучать backend. Фото С чего начать изучать backend

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

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

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

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

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

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

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

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

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

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

27–29 декабря, Онлайн, Бе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 и научиться работать с веб-серверами. О веб-безопасности мы уже писали в нашем гайде по фронтенд-разработке. Кстати, быть в курсе того, как работает фронтенд, бэкенд-разработчику также не помешает, ведь в итоге клиентская и серверная сторона должны эффективно взаимодействовать, обеспечивая бесперебойную работу веб-ресурса.

Источник

Что вы сможете запрограммировать через год, занимаясь по два часа в день: бэкенд

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

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

С чего начать изучать backend. Смотреть фото С чего начать изучать backend. Смотреть картинку С чего начать изучать backend. Картинка про С чего начать изучать backend. Фото С чего начать изучать backend

разработчик IT-компании MediaSoft

Привет, меня зовут Андрей, и я PHP-разработчик. Работаю программистом 5 лет, повидал больше 20 проектов, познакомился с толпой руководителей, разработчиков, тестировщиков, аналитиков и других людей из сферы IT.

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

Перед началом: стек и задачи

Для успешного освоения годового плана обучения программированию я рекомендую придерживаться следующих правил:

План универсален: всё, что будет различаться в другом стеке, это название языка и список сопутствующих технологий. Замените PHP на Python (Django), Ruby (Ruby on Rails) или C# (ASP.NET), а MySQL — на PostgreSQL или MSSQL, ничего не поменяется. А в двух самых популярных редакторах кода — IntelliJ IDEA и VS Code — поддержка того или иного языка включается пятиминутной установкой плагинов.

В нашем случае язык программирования — PHP. Рядом с ним будут стоять веб-сервер nginx (не люблю Apache) и любая база данных (допустим, MySQL). Это мейнстримное решение в стеке PHP, поэтому остановимся на нем.

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

Что мы встретим в краях бэкенда

Не расслабляйтесь, на этом список не заканчивается. Это базовые требования к человеку, который претендует на работу бэкенд-разработчика.

Первый этап: основы языка, ООП, базы данных — 4 месяца

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

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

Основы языка

Открываем справочник языка и начинаем разбивать его на логические блоки. Берём первые пять: типы, переменные, операторы, конструкции и функции. Это первый пункт плана: основы языка.

При формате «примерно два часа в день» на это уйдет месяц-полтора. За это время надо суметь поставить PHP, написать на нем что-нибудь ради баловства, всё сломать и начать разбираться. Вспоминаем третье правило — избегаем скуки. Можете сразу придумать себе проект, и не надо говорить, что идей нет. Делайте приложение, связанное с вашими интересами или хобби. Каталог книг домашней библиотеки, инструмент для ведения записей или расходов на кота — вперёд и с песней! Через месяц у вас будет приложение — кривое и косое, но оно уже будет работать, и его автором будете вы.

Объектно-ориентированное программирование (ООП)

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

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

Базы данных

Мы уже написали приложение и даже переписали его на ООП, а всё ещё храним данные в массивах? Непорядок! На этом этапе нужно поставить какую-нибудь базу данных (самое простое — MySQL) и разобраться с языком SQL. В жизни так бывает, что люди сначала изучают базы данных и только потом ООП, но, на мой взгляд, это не слишком удобно: ООП — сложная вещь, на неё требуется больше времени. Пока человек будет с ней разбираться, весь SQL может выветриться у него из головы, и придется учить заново. Так что лучше сначала изучить ООП, а потом БД.

Начните с создания таблиц, наполните их данными, делайте запросы с условием и без. Возможно, за неделю изучения вы дойдете до пресвятого JOIN. Если нет, то за две — это нормально. Главное, не зацикливайтесь на SQL как таковом. БД пока выступают просто как хранилище данных для нашего приложения, а трюки с оптимизацией вы изучите позже. Достаточно разобраться, как это работает, и переходить на отправку запросов из PHP. В PHP для этих целей используется библиотека PDO — встроенный механизм работы с любыми базами данных. Как только поймёте, как работать с БД из PHP, можно прикручивать всё это к вашему приложению.

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

Второй этап: системы контроля версий, фреймворки, паттерны проектирования — 4 месяца

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

Системы контроля версий

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

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

Фреймворки

В современной веб-разработке мало что пишут с нуля, потому что есть инструменты и каркасы разработки, в которых уже заложена необходимая функциональность. Для начала советую фреймворки Yii2 или Laravel (Yii для новичка будет немного проще, но Laravel, на мой взгляд, лучше организован). Просто начните точно так же с изучения их документации и перепишите с нуля ваше приложение, которое вы написали в самом начале обучения. Реализация одной и той же идеи с помощью разных инструментов позволит увидеть принципиальные различия в коде. Если же старый проект вам наскучил, напишите что-то новое. Необязательно выдумывать стартап — просто возьмите готовую идею и перепишите по-своему, это для опыта, а не для выхода на IPO.

Очень рекомендую разбирать всё, с чем вы сталкиваетесь, как можно подробнее. Увидели QueryBuilder — напишите свой, если не делали этого, когда разбирались с PDO. Увидели роутинг — посмотрите, как он сделан во фреймворке, и попробуйте придумать его самостоятельно. Зачем? Во-первых, чтобы набить руку. Во-вторых, чтобы лучше понимать работу и внутренние процессы очень многих вещей и это не было для вас магией. В-третьих, как я говорил в самом начале, — чтобы создать резюме в виде репозитория своих проектов. Если хотите, можете даже попробовать написать свой домашний микрофреймворк, тоже интересный способ изучать эту область: у меня своих фреймворков как минимум два, их создание помогло мне разобраться с такой вещью, как метапрограммирование.

Паттерны проектирования

В ООП есть раздел, о котором очень многие почему-то говорят с придыханием — это «шаблоны ООП» или паттерны. Само появление этого раздела и одноименной книги связано с тем, что разработчики раз за разом сталкивались с одними и теми же проблемами проектирования, в итоге был предложен список из 23 шаблонов, решающих типовые задачи. Это так, краткий экскурс в историю. Почему мы не занялись этим раньше? Потому что без практики сразу погружаться в эту достаточно академичную область сложно. Банальный пример — как объяснить устройство и пользу паттерна «Строитель» (Builder), если до этого человек не изучил QueryBuilder? Это будет слишком сложно.

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

Третий этап: сопутствующие технологии — 4 месяца

Далее мы подходим к самой размытой части нашего плана — к многообразию сопутствующих технологий, и не только в области бэкенда, а программирования и разработки вообще. Разработка программного обеспечения безгранична, и ваши дальнейшие действия будут зависеть от ваших потребностей (или потребностей работодателя). Изучили Laravel или он вам просто надоел — изучайте Symfony, этот фреймворк не менее востребован. Захотели немного во фронтенд — изучайте JS, Angular, React, да хоть jQuery. Захотели изучить что-нибудь за пределами REST API — вебсокеты и GraphQL ждут вас. Хотите попробовать NoSQL, чтобы хранить документы, которые в обычную БД без боли не засунуть, или хранить настолько разрозненные данные, что никакой SQL не справится, — берите MongoDB или Redis и разбирайтесь до посинения. Хотите узнать, что такое поисковые движки и как у «взрослых дядь» работает текстовый поиск, — ElasticSearch и Sphinx к вашим услугам.

Обязательно изучите Docker — систему упаковки приложения для более удобного деплоя. Чем это может быть полезно для домашнего проекта? Если вы захотите сменить версию PHP или вообще язык, вам не придется что-то ставить на рабочую машину: достаточно поменять конфиги Docker, и приложение запустится без вашего участия. А еще немного поможет с пониманием, как взаимодействуют между собой отдельные части приложения: фронтенд, веб-сервер, бэкенд, база, что такое отдача статики (картинок и шрифтов). Таким образом, Docker позволяет не зависеть от окружения на сервере, от окружения на рабочем месте, упрощает сборку и развертывание проекта, повышает безопасность работы за счет изоляции всех частей приложения, в том числе и друг от друга. Маленький совет: если вы до сих пор работали на Windows, то настало время разобраться с Linux. Потому что Docker и Windows очень плохо дружат.

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

Источник

Как стать backend-разработчиком с нуля?

С чего начать изучать backend. Смотреть фото С чего начать изучать backend. Смотреть картинку С чего начать изучать backend. Картинка про С чего начать изучать backend. Фото С чего начать изучать backend

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

1. Определитесь с языком программирования

В отличие от frontend-разработчика, которому достаточно владеть HTML/CSS и JavaScript, backend-девелоперу приходится сделать непростой выбор. Языков много, одни развиваются более активно, другие применяются для узких задач.

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

Cогласно исследованию The State of the Octoverse, Go входит в топ-10 языков с самым быстро растущим комьюнити. Кроме того, в 2020 году он занял первое место в списке самых высокооплачиваемых языков. В backend-разработке он нужен для создания микросервисов и высоконагруженных проектов, где много пользователей одновременно работают с сайтом или приложением.

PHP не сдает позиции одного из самых популярных языков интернета, Ruby и Node.js также предлагают отличные возможности для тех, кто их изучает. Когда вы освоите базовые правила и возможности выбранного языка, сразу опробуйте их на практике. Пишите маленькие приложения, которые будут собирать веб-страницы по заданному тегу, автоматизируйте свои ежедневные задачи, придумывайте цели и выстраивайте пути к ним.

2. Познакомьтесь с пакетными менеджерами

Когда вводная часть позади, а список базовых приложений выходит за 5-10 позиций, переходите к следующему шагу. Освойте пакетные менеджеры (package manager) — специальные утилиты, которые позволяют добавлять в приложения сторонние библиотеки, чтобы расширять свои возможности и создавать новые функции. При помощи них вы также сможете предлагать свои библиотеки для использования другим разработчикам.

Пакетный менеджер у каждого языка свой. В Python он называется pip, в PHP — Composer, в Ruby — RubyGems. К этому моменту вы поймете, чего недостает вашим предыдущим продуктам, улучшите их работоспособность и поставите перед собой новые цели.

Освойте программирование на Go и backend-разработку высоконагруженных приложений, чтобы стать незаменимым специалистом в команде. Дополнительная скидка 5% по промокоду BLOG.

3. Приобщитесь к лучшим практикам

Главный навык любого программиста — это умение искать информацию. Изучайте опыт других разработчиков на Github и других профильных сайтах, ищите отраслевые стандарты. Некоммерческая организация OWASP (Open Web Application Security Project) регулярно обновляет правила для создания безопасных веб-приложений.

Когда вы разберетесь с пакетными менеджерами и усвоите общепринятые принципы разработки, вы сможете создавать более сложные программы. Поищите открытые проекты на GitHub, разберитесь в их устройстве, попробуйте сделать нечто похожее и добавить свои функции. Не стесняйтесь задавать вопросы, но помните, что ответы на многие вопросы уже есть на форумах.

4. Тестируйте свой код

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

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

5. Переходите к базам данных

Работа backend-разработчика часто ассоциируется с реляционными хранилищами данных, потому что именно они и составляют backend сайта или приложения. А SQL-базы остаются одной из ключевых технологий как в программной разработке, так и в веб-девелопменте.

Это обширная тема, разобраться в которой может быть даже сложнее, чем выучить тот же Python. Сам по себе язык структурированных запросов (SQL) освоить нетрудно — в 70-х годах его придумали как раз для тех специалистов, которым для работы необязательно знать программирование. Однако простые на вид процессы обработки запросов в базе данных скрывают множество хитростей, так что будьте готовы отложить обучение до тех пор, пока не начнете заниматься рабочими проектами. А пока выучите базовые принципы и термины — ключи, индексы, нормализация и т.д.

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

6. Изучите фреймворки

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

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

7. Углубляйтесь в базы данных

От реляционных баз данных переходите к нереляционным. Эта тема чуть сложнее, поскольку решений для работы с неструктурированными данными очень много, и у многих из них своей собственный, уникальный язык. Новичку стоит разобраться с MongoDB, Cassandra, RethinkDB и Couchbase. MongoDB набирает все большую популярность у разработчиков, так что ее нужно сделать приоритетом.

8. Расширяйте набор умений

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

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

Освойте программирование на Go и backend-разработку высоконагруженных приложений.

Источник

Очередь в backend: за чем стоим и с чего начать свой путь?

С чего начать изучать backend. Смотреть фото С чего начать изучать backend. Смотреть картинку С чего начать изучать backend. Картинка про С чего начать изучать backend. Фото С чего начать изучать backend

Для всех, кто не любит делать UI, «дышит» очередями и мечтает об идеальном API, в четвёртый выпуск подкаста «Сушите вёсла» мы позвали backend-разработчиков Андрея, Азата и Антона.

Железные разработчики Redmadrobot Артём и Рома записывают подкаст, где вместе с гостями обсуждают разные стороны создания ИТ-продуктов и делятся опытом в диджитале. В выпуске #4 ведущие разузнали у собеседников, с чего начинался их путь в backend, какой web-framework стоит выбрать, снится ли им верстка экранов и как объяснить маме, кем ты работаешь.

Прикладываем подкаст и ответы на несколько животрепещущих вопросов

Тайминг

01:27 — Как приходят в backend-разработку
10:33 — Что привлекает специалистов в backend
12:32 — Срыв покровов: нужны ли глубокие знания алгоритмов для тех, кто «пилит апишку»?
15:17 — Вопросики масштабирования и безопасности
16:23 — Одинаковую ли работу делают все backend-разработчики?
19:23 — Ruby on Rails, его «магия», взлёт и падение
24:23 — Как выбрать платформу?
28:06 — Зачем нужны микрофреймворки и как с ними работать?
33:55 — Что такое асинхронный сервер и для чего он нужен?
35:58 — Go: простота и архитектура
41:46 — Postgresql вместо MySQL. Почему?
44:58 — Зачем нужно изучить Docker как можно быстрее и для чего стоит поставить nginx?
50:49 — «Зелёные» разработчики: какими минимальными навыками необходимо обладать выпускникам университетов, чтобы устроиться на работу?
1:04:21 — Лучшие книги по алгоритмам
1:09:33 — Что нужно знать и что не нужно делать на собеседовании?
1:14:29 — Не хочется ли ребятам уйти из backend?
1:20:28 — И все-таки, чего не стоит делать на работе и почему «с людьми нужно общаться»?

Как приходят в backend разработку?

Несмотря на популярность мобильной разработки, остались еще те, кому милее старый-добрый backend. Среди них, разумеется, и наши гости.

Азат, например, рассказал, как он не пошел в мобильную разработку и решил, что логичнее заниматься веб-разработкой в широком смысле. А вот история Антона тесно связана с Python.

Я учился в университете и выучил Python. Он мне нравился, и мне хотелось продолжать делать что-то на «питоне». А в Белгороде, где я жил и учился, можно было найти только какую-нибудь веб-студию, которая делает сайты на CMS’ке — просто подверстывают шаблоны. Мне этим вообще заниматься не хотелось. Поэтому мы с другом нашли каких-то людей, сделали им сайт, а потом ещё кому-то сделали. И было классно, потому что я делал то, что хотел. Но хотел я, наверное, не то, что было нужно в тот момент. Но, по крайней мере, я научился делать backend и после этого нашёл нормальную работу.

Что привлекает людей в backend.

…Когда есть суперпопулярный frontend? Артём вспомнил множество собеседований, на которых соискатели рассказывали, почему они хотят строить карьеру в мобильной разработке. Просто чтобы потом похвастаться крутостью приложения. В backend с этим сложнее.

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

Плюсы Backend-разработки

Азат предположил, что людей привлекает тот факт, что не нужно верстать. Ещё есть мнение, что backend сложнее и круче, хотя каждому, конечно же, свое. После этого ребята ушли в беседу о масштабировании и безопасности. Подробнее — с 15:17.

Все ли backend-разработчики делают одну работу?

Это не так. Задачи в backend разработке бывают разными, и они зависят не от языка или платформы, а от потребностей и специфики компании, а также от уровня самого разработчика.

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

Python, Ruby, Go, С++ и все-все-все

Ребята в студии заговорили о том, как выбрать платформу. А также о том, что Ruby «ещё живет» (Рома недавно видел доказательство), а ещё почему Антон начал учить Python, о странных именах создателей языков программирования, простоте Go, микрофреймворках (о них говорили особенно много — слушайте с 28:06), MySQL, Docker, асинхронных серверах и магии рельсов.

«Зелёные» разработчики и минимальные навыки для соискателя

Насколько глубоко должен, например, выпускник университета разбираться в backend, чтобы получить работу?

Во время обсуждения выяснилось, что он должен быть «уверенным пользователем ПК». А если серьезно, то по мнению Азата, молодой специалист обязан обладать минимальными навыками администрирования unix-систем — знать определенный набор команд: cd, ls и другие.

Также должен понимать, что такое процесс, какие есть права доступа, какая система прав Linux и как вообще в ней функционируют сети, как работает IPC (inter process communications), TCP сокеты. Для начала этого достаточно. Нужно просто уметь программировать. Вот что сказал Антон:

Есть базовые вещи, общие для любой разработки, допустим, для ООП (объектно-ориентированного программирования) есть правила написания, проектирования классов. Если это алгоритмы, нужно просто знать, как они проектируются, что там есть, динамическое программирование, ну и «использовать stack везде, где можно».

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

Какие книги по алгоритмам стоит прочитать

Андрей «топил» за Стивена Скиена и его «Алгоритмы. Разработка и применение». Антон порекомендовал книгу Томаса Кормена, в которой «есть баланс между строгостью, понятностью и простотой изложения», и ещё «Cracking the Coding Interview» — хорошее практическое руководство, чтобы быстро разобраться в алгоритмах.

Также гости посоветовали «Искусство программирования» Дональда Кнута, которая задумывалась как пособие по компиляторам, а стала настоящей «книгой книг».

В итоге, backend — да или нет?

Ребята пришли к выводу, что во всех сферах веб-разработки есть свои плюсы и минусы. И это нормально. Если вам нравится backend, алгоритмы и очереди, то вам стоит задуматься о карьере именно в нём. Это если кратко. Если же хочется вживую услышать рассуждения, то включайтесь в подкаст с 1:14:29.

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

Для желающих погрузиться в Python можно почитать:

Источник

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

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