@MVP_Master

Где можно получить повышение квалификации backend разработчику?

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

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

Но чтоб прям хорошо прокачиваться у более сильных - как этого добиться? Вступать в opensource проекты на добровольных началах при условии работы под наставничеством?

Платить какой-нибудь продуктовой компании за то что берут на стажировку и работать на них бесплатно ради получения доп опыта? Но это реально ли?

Устроиться на постоянную работу и нанять специалиста просьба не предлагать - проект не приносит прибыли и денег нет. Все делается своими силами. И нет времени полноценно работать в серьезной компании - времени на свой проект не останется.

Какой выход в общем?
  • Вопрос задан
  • 230 просмотров
Решения вопроса 1
feycot
@feycot
Если у вас сервис только-только развивается, то стоит сфокусироваться на тех вещах, которые помогут разрабатывать уже сейчас. Соответственно спросите себя, а знаете ли вы:

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

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

- Конфигурация и инфраструктура. CI/CD. Автоматизация. Деплой приложения - это многоэтапный процесс. Миграции, конфигурация, сборка проекта. Тут стоит почитать Приложение 12 факторов 12factor.net В целом, если используется современный фреймворк (например Ларавел), то будет полегче с этим работать. Следует помнить, что окружения должны быть разделены - продакшен, тестовая среда (стейдж), среда разработки. Приложение должно без проблем раскатываться и запускаться, желательно "в один клик".
С этой темой связаны технологии Docker, K8s, Ansible. По поводу последнего - с ним можно автоматизировать настройку локального окружения, деплой. Также следует поизучать Github Actions, Gitlab CI/CD.
Если приложение еще небольшое, то его можно с легкостью деплоить на Heroku.
В целом можно пройтись по этому чек-листу и посмотреть как у вас сейчас и как должно быть.
По оптимизации, нагрузкам соответственно optimization.guide

- Операционные системы. Сети. Большая область про которую забывают разработчики. Понимание ОС позволяет лучше понимать как работают веб-сервера, приложения.
На эту тему есть книги
Операционная система UNIX (Андрей Робачевский, Сергей Немнюгин, Ольга Стесик)
Руководство администратора Linux (Эви Немет, Гарт Снайдер, Трент Р. Хейн)

- Фреймворки. Изучать от и до их не стоит, необходимо понимать как они устроены, чтобы не было магии. Но если используется что-то самописное - это не очень хорошо, особенно когда не хватает квалификации. Стоит присмотреться к большим фреймворкам типа Laravel/Symfony

- Опенсорс. Изучаете код проектов (фреймворков, библиотек), отправляете пулл реквесты на улучшения. В некоторых проектах мейнтейнеры готовы помогать и подскзывать контрибьютерам.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@vitaly_il1
DevOps Consulting
В целом согласен с Alex McArrow. А точнее - я не верю в какое-то "хорошо прокачиваться у более сильных" - подумайте о слабых местах, конкретных проблемах в вашем проекте и ищите, как их улучшить и оптимизировать.
И не вестись на "использовать кубернетес", "выкинь PHP, перепиши на Go", "делай так, потому что я сказал".
Ответ написан
Комментировать
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
Тем не менее, он предвидит рост проекта и понимает, что рано или поздно его умения закончатся и он уже не будет тянуть свою работу.
В чем собственно вопрос умений закончится? В чем вы видите недостатки конкретно текущего кода/проекта на данный момент?
Например, когда сервис станет многопосещаемым.
Во первых - попахивает преждевременной оптимизацией, а во вторых - есть такая штука как нагрузочное тестирование, ну и вообще - замер производительности системы по ключевым точкам. Вот когда вы увидите в цифрах просадку в конкретном месте, тогда есть смысл думать что конкретно в этом месте менять. И тогда уже - гугл, тостер, СО, доки, статьи по оптимизации конкретных технологий...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы