Круговорот опыта в Anadea, или путь самурая в программировании

The way of the samurai in programming

Каждый заказчик желает знать, насколько хорош его программист. Да и в самом деле, доверили бы вы воплощение своей мечты дилетанту? Я - нет.

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

Смотрите сами: разве есть какой-то определённый уровень, дальше которого не шагнёшь? Возьмём, к примеру, всем известный символ мастерства - чёрный пояс карате. Разве на этом всё заканчивается? Обладатель чёрного пояса станет только лучше, если он продолжит осваивать другие техники боя. Или, к примеру, премия Оскар. Лучшие творцы кино-академии редко останавливаются, получив только одну статуэтку - у лучших из лучших их насчитывается с десяток.

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

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

Современным программистам приходится всячески совершенствоваться, читать материалы и проходить курсы даже спустя десятилетия по окончании высших учебных заведений. В нашей компании мы стремимся создать наиболее благоприятные условия для развития и приобретения новых навыков, потому что мы понимаем: хороший, качественный и чистый код напишут только хорошие, качественные и чистые (да-да, у нас есть мыло) руки.

Мне удалось побеседовать о курсах, саморазвитии, наставлении юных умов и о том, как всё это происходит с Сергеем Веровцом - Android-разработчиком и одним из наших преподавателей. И вот что получилось:

Привет, Сергей.
Привет.

Готов поговорить о курсах?
Валяй.

Помогают ли курсы в решении повседневных рабочих задач?
Помогают. К тому же, всегда интересно изучать что-то новое, пока есть свободное время. Некоторые курсы достаточно интересно освещают Java или Scala, например. Занимаясь web-сервером на Java, я некоторые моменты открыл по-новому.

Что изучаешь в данный момент?
Сейчас я прохожу два курса: по WebUI-разработке (которая мне, вообще-то, не по профилю, но знать не помешает) и Python (который у нас пока не использовался, но на вооружении иметь стоит).

То есть, курсы построены таким образом, что ты спокойно можешь изучать непрофильные области?
Абсолютно. Всё зависит от желания и любознательности. Ну и времени, конечно - бывает, возьмёшься за три курса и думаешь, куда бы пристроить четвёртый (смеётся).

А что насчёт профильных курсов?
Ну, вот недавно проходил курс Адама Портера (Мэрилендский университет), но не скажу, что я от него в восторге. Прекрасный с точки зрения теории, но слишком мало практики. Тебе буквально дают закомментировать четыре строчки из четырёхсот в уже готовом проекте. Не подводит это к глобальному мышлению. Не везде так, конечно - в курсах по Python, к примеру, целая россыпь практических заданий и не в ущерб теории. В курсе по Java было всего одно практическое задание, но большое - оно шло в конце курса. Нужно было сделать простенький сервер, который определённым образом отвечал бы на запросы пользователя. А вот курс по алгоритмам, который я проходил, вёл какой-то неадекватный товарищ. Сложилось ощущение, что у него время перед камерой платное - куда-то спешит, летит, тараторит, сбивается. Я, конечно, смог изучить что хотел, но уже когда добрался до практики. Теорию пришлось искать самому, читать википедию и так далее, потому что внимать что-то от того парня было невозможно. В отзывах я порекомендовал ему поработать над подачей материала, так как от преподавания товарищ так же далёк, как я от балета, например.

А использовал ли ты полученные на курсах знания в проектах?
Да, конечно. Тот же бинарный поиск, который используется чуть ли не везде. Или подходящий лучше всего вот здесь и сейчас метод сортировки. Вообще стоит сказать, что те или иные знания могут понадобиться в любой момент. В моей практике, помню, был случай - задание написать диаграмму взаимосвязей. Что-то типа визуализации сети Facebook - контакты и как все взаимосвязаны. От корневого человека или компании нужно было построить такую радиальную диаграмму. Придумывал и строил алгоритм я сам - вот здесь мне в полной мере пригодилась и векторная алгебра, и аналитическая геометрия. Или вот, к примеру, совсем уж недавний случай: наши Jav'исты сейчас в работе над проектом столкнулись с необходимостью реализации расписания. Расписание откладывается на временной шкале, им надо смотреть, пересекаются ли эти отрезки у преподавателей или нет. Подобная задача об отрезках на шкале была на курсе по алгоритмам - вот тебе и применение в реальной жизни.


Внезапно!
Это действительно внезапно. Никогда не знаешь, что тебя ждёт в следующем проекте. Поэтому чем больше знаешь, тем лучше.

Насколько знаю, по базам данных ты ведёшь курс.
Да, у меня спецкурс по базам данных на примере MySQL. IT-школа "Хилель" привлекает наших специалистов для обучения своих студентов. Сейчас у меня уже третий поток.

А кто именно приходит? Frontend, backend?
Да все желающие - это факультатив. Хочешь - ходи, не хочешь - не ходи. Всё в добровольном порядке. Сейчас у меня группа из 35 человек специальностей frontend, QA и Java. Перед этим ходила группа тестировщиков и iOS-разработчиков.

Преподавал только ты?
Когда я только пришёл, Кирилл Мачухин, Вадим Ерёмичев вели группу. Насколько я знаю, перед ними этим занимался Лёша Деркач. Женя Олейников вёл курс по администрированию Linux. Сейчас из нашего коллектива в "Хилель" остался только я.

Какой поток больше понравился?
Пожалуй, первый. Дело в том, что я и сам готовил этот материал на ходу. (смеётся) Куча самой разной литературы, подготовка слайдов и всё в пожарном порядке. Сейчас, конечно, читать намного проще - материал уже подготовлен, со всеми практическими и домашними. У первого потока глаза горели - поэтому преподавать было просто в удовольствие.

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

То есть, с мотивацией порядок.
Конечно порядок. На первой лекции я ребятам сказал, что их обучение - дело их же интересов, потому что обучение молодых программистов поставлено на конвейер. Сейчас у меня третий поток - 40 человек, перед ними было два потока тоже по 40, и после них придут ещё 40 человек. И это только в Хилель! А ведь IT-школ сейчас пруд пруди каких хочешь - просто выйди на улицу и оглянись! Чуть ли не половина всей рекламы - приглашения на всяческие курсы тестировщиков, дизайнеров, верстальщиков и прочих!

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

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

Уже есть какие-то успехи y твоих подопечных, применяются ли на практике полученные от тебя знания? Получаешь от них благодарность?
Что до применения, то, как минимум, на собеседованиях по базам данных обычно спрашивают. У меня остались контакты с некоторыми ребятами из первого потока - "спасибо" от них я слышал неоднократно и в общении, и в переписке. Очень приятно, что дело, в которое я, можно сказать, душу вложил, было не напрасно. С самого начала я говорю ребятам, что самой большой наградой для меня будет то, если когда-нибудь им пригодятся на практике знания, которые я закладываю в них сегодня. В те 10 часов курса я попытался вложить максимум. В итоге материала получилось даже чуть побольше, чем в академическом курсе, потому что вошли вещи, о которых мне в ВУЗе, например, не рассказывали. Часто слышу от ребят, что слайды (которые у них остаются после курсов) они используют в качестве методического пособия в дальнейшем. Очень надеюсь, что в дальнейшей работе над проектами они не раз будут прибегать к тому, что даст им мой курс.

Спасибо за приятную и познавательную беседу, Сергей!
До новых встреч.

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

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

Этим всё не ограничивается. Мы частенько обмениваемся опытом с другими компаниями (например, LevelUp), проводим IT-дуэли и так далее. Аттестация позволяет отчётливо понимать, на что способен каждый из сотрудников, какими языками владеет и на каком уровне. Это, в свою очередь, позволяет правильно распределять ресурсы, подбирая программисту задачу по силам. Иными словами, как только ваш проект попадает к нам, мы подбираем разработчиков, идеально соответствующих вашим аппетитам.

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

Связаться