У последнего вместо смузи сертификат об окончании курса. А если серьезно, то разработчик - это тот, кто умеет решать проблемы, а не только их создавать. Об этом сегодня и поговорим.
Я превращаю людей в разработчиков и мои студенты прежде всего учатся ходить по граблям. Считаю, что это необходимо. Посмотреть пару десятков гайдов и решить пару сотен задач можно и без ментора. Я же могу дать уникальный опыт, который позволит стать специалистом. Раскладывать грабли и давать на них наступать - моя задача и фирменный стиль. Достаточно абстракций, ниже один из множества горячих примеров из практики.
Задача: Посчитать среднее и медианное количество транзакций пользователей. Подобных в Overmoney много, сервис же про аналитику расходов.
В ход с вероятностью в 99% идет абсолютно наивное решение
SELECT * FROM transaction
И дальнейшая обработка в коде: фильтрация, агрегация. Естественно все взлетает на воздух, ведь транзакций у одного только пользователя оказывается тысячи. Опыт получен.
Как обычно проходит самообучение? Открыл гайд, посмотрел, покопипастил. Че-то запилил, как-то заработало. Едем дальше. Только вот куда - не особо понятно. А я знаю куда надо ехать - в продакшен. Писать код - дело нехитрое. А вот создавать продукт и релизить фичи…
Только на реальном продукте можно столкнуться с огромным количеством абсолютно базовых штук. Решать мерж конфликты, прятать сикреты, ковырять логи, лечить ООМ, оптимизировать запросы, мигрировать данные, взаимодействовать с инфраструктурой. Все это будет рутиной на будущей работе. Но я горд тем, что не станет головной болью тимлидов моих подопытных.
Моя главная цель - создавать боевые единицы, способные причинять пользу бизнесу. Вопрос о том, как этого добиться постоянно висит надо мной и заставляет импровизировать на ходу. Ведь обучать можно бесконечно долго. А я пытаюсь усидеть сразу на двух стульях в попытках сделать опыт своих студентов максимально релевантным и уместить обучение в один год.
➜ О принципах, которыми руководствуюсь в обучении