«Как объяснить маме, кем ты работаешь?» — выпуск подкаста «Сушите Вёсла» про бекэнд-разработчиков

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

Железные разработчики red_mad_robot Артём и Рома записывают подкаст, где вместе с гостями обсуждают разные стороны создания ИТ-продуктов и делятся опытом в диджитале. В четвёртом выпуске ведущие разузнали у собеседников, с чего начинался их путь в 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-разработчик red_mad_robot

Что привлекает людей в 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 везде, где можно».

Антон Медведев
backend-разработчик red_mad_robot

Иными словами, для начала погружаться в это с головой не нужно.

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

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

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

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

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

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

Если же хочется вживую услышать рассуждения, то включайтесь в подкаст с 1:14:29.

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

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

Подборка для будущих джедаев REST:

Предыдущие выпуски подкаста 

  1. 1_QA для начинающих: как протестировать ракету или самолёт.
  2. 2_Архитектор ПО: зачем он нужен и в чём его проклятие.
  3. 3_CTO от стартапа до корпорации и обратно.
  4. 4_Источник правды: как аналитик учит менеджера и разработчика работать вместе.

Слушайте нас там, где удобно: Soundcloud, Apple, Google Podcasts.

Забегайте обсудить выпуск в Telegram-чат.