Андрей Берюхов

Андрей Берюхов

Неделя
Nov 29, 2021 → Dec 5, 2021
Темы

Архив недели @phansier

Понедельник


Всем привет! С вами на этой неделе я, Андрей Бе́рюхов - Android Engineer в Авито Тех.

Эта компания, наверное, не нуждается в представлении. В ней я занимаюсь вопросами авторизации в Android-приложении. А до этого прошел путь от стажера до Senior Android Developer-а в "Лаборатории Касперского".

Прежде чем начнем, хотелось бы предупредить, что большинство мыслей будут сугубо субъективными и основанными на конкретно моём опыте. А также могут не совпадать с позицией компаний. У вас может быть другое мнение и это здорово 🤝

На неделе пойдем от работы в сторону лайфхаков и развлечений. Ловите расписание на следующие дни:

Пн: 1- и кросс- платформенные команды Вт: про роль образования в IT Ср: доклады и смежные интересы Чт: как употреблять Mindmaps Пт: work-life balance / изба-читальня Сб: прогулки и путешествия Вс: общение или что-то дополню

Постараюсь совмещать в твитах полезное и интересное, а также не налажать с тредами - всё-таки первый опыт 😌

🔥Тред (Андрей Берюхов)
Начнем с различий в типах команд разработки: 1- и кросс- платформенных/функциональных. Насколько интересно для вас сравнение опыта в таких командах и работали ли вы в обоих типах?
🤔 41.2% Интересно - работал
🤔 17.6% Не интересно - работал
🤔 29.4% Интересно- только в одной
🤔 11.8% Не интересно - только в 1

Большинство голосует за "интересно" - продолжаем 😎 Мне удалось поработать и в той и другой. Интерес к новому для меня формату стал одной из основных причин подтолкнувших к переходу между компаниями.

Начнем с 1-платформенных. Больше 4 лет я проработал в одной команде разработки Кaspersky Intеrnet Sеcurity 4 Andrоid. И попал в неё совсем случайно стажёром-тестировщиком (но не про это сейчас). Постепенно перешел в стажёры-девелоперы, а затем уже вверх по лестнице.

В моём опыте 1-платформенная команда (одного продукта), это когда примерно 6-10 Android-разработчиков, 5 тестировщиков, PM и пара аналитиков делают один продукт под одну платформу.

Конкретно в Лаборатории эта команда входила в большую единицу - Мобильный департамент, где разрабатывают другие приложения под Android, iOS и не только.

Фронт работ в этом департаменте в основном ограничен клиентской разработкой под мобилки. Backend, frontend, десктопные продукты - это отдельные команды, в другом здании.

Даже до Covid было минимальное количество пересечений с ребятами из других функций, а уж тем более понимания, как они работают. А контракты API приходили к нам обернутыми в C++ библиотеку из третьих команд.

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

Если резюмировать, плюсы работы в Android-only команде: Глубокое понимание платформы Хорошая возможность для роста - множество коллег одного профиля работают рядом и помогают 2а) В моем случае вообще повезло - т.к. тимлидом был сам @e_matsyuk

Как сейчас - в кросс-функциональной команде: 1-Android, 1-iOS, 1-2 - Web, 1-3 - Back, 2 - аналитики, 1 - product manager. И все эти люди придумывают и разрабатывают примерно одинаковые части для одной фичи - авторизации.

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

Теперь к минусам кросс-функциональных команд. В команде я - один разработчик под Android. Чтобы что-то спросить/узнать - нужно идти в другие команды или на встречи Android Community. Это может быть не очень комфортным на ранних этапах карьеры.

(продолжение минусов кросс-ф.) 2) Зона ответственности ограничивается одной функциональной областью - версткой и логикой в ней. Чтобы узнать что-то больше, нужно идти "помогать" в платформенные команды (для погружения) или брать задачи других продуктовых команд (смена домена).

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

(продолжение плюсов кросс-ф.) 3) Можно сходить посмотреть, как то же самое сделано у других клиентов (iOS, web), перенять какие-то подходы. 4) Можно задуматься о реюзе кода с клиентами. 5) Легче начать t-shape / отдохнуть от своей платформы.

🔥Тред (Андрей Берюхов)

Вторник


Тему второго дня - роль образования в IT начну тоже с опроса. Есть ли у вас высшее образование по IT специальности, и жалеете ли вы об этом?
🤔 48.9% Есть, не жалею
🤔 7.6% Есть, жалею
🤔 24.3% Нет, не жалею
🤔 19.2% Нет, жалею

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

Отдельные опасения - по поводу выпускников различных курсов, если они приходят в IT только из-за зарплат, желая работать по-минимуму, не сильно погружаясь внутрь.

Я думаю, что нужно разделять понятия: образование в высоком смысле и специализированные курсы; а также отличать проблему качества образования от его практической полезности.

Есть высказывание, которое присваивают Эйнштейну (а он, вроде бы, его цитировал): "Education is that which remains, if one has forgotten everything he learned in school."

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

Я бы хотел поделиться своим опытом, почему не считаю моё время обучения потраченным впустую.

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

В 10 минутах от дома у меня был лучший лицей области. В котором с 7 класса была компьютерная специализация и прекрасные учителя. Из интересного могу отметить лекционную систему в 10-11 классе и основы мат. анализа. Да, сейчас это мало применимо, но учит мозг работать по-другому.

Лицей и затраченные усилия позволили мне поступить на бакалавриат "Прoграммная инжeнерия" BШЭ (не реклама). Хотел бы я сейчас сделать что-то по-другому? Нет. Да и так получилось, что я работаю теперь непосредственно по специальности.

Если коротко о плюсах программы. 1-2 курс - языки: С#, Java (ООП), C++ (алго и стр.данных), Python (основы анализа данных). Матан, линал, тервер и матстат. Причем без диффуров и физики, что многих привлекало.

3-4 курс - много полезных курсов про Soft Skills и продуктовую составляющую. Из интересного: "Стартаповедение" (unit-экономика и пр.), интеллектуальное право, Scrum, программная инженерия (как код превратить в проект и пр.). Часть инженерных дисциплин, типа БД, ОС, компиляторы.

Спектр достаточно объемный. Мои однокурсники сейчас работают в самых разных областях IT: разработка (клиенты, бек ...), PM и PrM, аналитики, менеджеры QA, DataScience, ... Как мне кажется, это хороший показатель качества базы.

В магистратуре BШЭ с похожим названием "Системная и программная инженерия" было более скучно (возможно, после бакалавриата) и склонно в науку чем в практику.

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

Подытожу. Основной целью последних твитов было желание поделиться опытом. Ни кого ни к чему не побуждаю) Тем более, что сейчас могут быть другие обстоятельства, чем N лет назад.

🔥Тред (Андрей Берюхов)

Среда


Давайте начнем тему этого дня с немного отвлеченного вопроса. Как давно вы были на оффлайн митапе/конференции?
🤔 20.7% Был в этом году
🤔 2.9% Был в прошлом году
🤔 58.9% В доковидье 2019 и раньше
🤔 17.4% Не ходил и не планирую

Подойти к теме оффлайн-мероприятий можно с двух сторон. Со стороны посетителя с онлайном ушла необходимость синхронного присутствия. Зачем, если после можно будет выбрать "выстрелившие" доклады и посмотреть их на большей скорости. Магии общения тоже нет такой, как в оффлайне.

Ни для кого не секрет, наверное, что до кoвидa многие использовали конференции не только для обучения, но и для нетворкинга, отдыха от работы, поездок в командировки. Сейчас же от онлайн конференций остаются только "люди в телевизоре".

С точки зрения докладчика, потерялось еще кое-что. Огонь в глазах слушателей, когда доклад - огонь. Ну или любой другой фидбек, например, когда шутка не зашла 💁🏽

Мне в этом году удалось побывать и со стороны слушателя и со стороны спикера оффлайн. И это был новый всплеск год назад забытых эмоций.

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

Так было у меня с Подлодкой, когда вместо моей темы организаторы предлагали сделать обзор библиотек из Jetpack. С WorkManager у меня не было возможности столкнуться раньше - просто не попадалось таких задач. Я копнул поглубже, и потом начал видеть новые места для применения.

Вторая либа - Jetpack DataStore - зашла не так сильно. Я как-то так и не смог увидеть значительных улучшений по сравнению со старыми подходами. А при выборе либ я обычно консервативен.

Например, так и использую findViewById()
notion image

Ох уж это чувство, когда успеваешь расписать тему дня за несколько минут до полуночи. А днем пытаюсь успеть в фиче фриз. Завтра поделюсь моим взглядом на инструмент, который помогает систематизировать инфу для докладов и статей; и не только.

🔥Тред (Андрей Берюхов)

Четверг


По традиции начнем с опроса: Твиттер не дает выбрать несколько опций, поэтому выберите наиболее частую. Использовали ли вы Mindmap для:
🤔 14.6% Подготовки к собесам
🤔 5.8% Управления техдолгом
🤔 14.6% Планов на год
🤔 64.9% Не использовал

В опрос не влезли подготовка статей и докладов, а также планирование любых других проектов. Как можно догадаться, всё это можно сделать с помощью Mindmaps (или ментальных карт). картинка, как Mindmap может примерно выглядеть
notion image

Для теоретического погружения порекомендую книгу Тони Бьюзена, который считает себя изобретателем интеллект карт. Там и про то, почему это работает. И про другие примеры применения.

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

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

Про то, как использовать MM для контроля за тех долгом, хорошо рассказал @e_matsyuk тут youtube.com/watch?v=ZD7Jr-… (первые 10 минут) Насколько я знаю, этот MM используется и сейчас. Лишь только подчищаются закрытые задачи в конце года.

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

Такой план даёт не только больше уверенности в правильном направлении движения, но и поможет в конце года провести ретро и увидеть, что удалось сделать.

Наконец MM для статей и докладов. Начну с статьи за два дня: habr.com/ru/post/471670/ В октябре 2019 Jetpack Compose стал доступен в виде первого Dev Preview в Maven-репозитории Google. В первый день я потыкал библиотеку, перенес в MM. Во второй - преобразовал MM в статью.

В комменты тогда пришли разработчики Compose и поправили некоторые моменты. А через неделю Compose официально представили на Dev Summit.

С тех пор я регулярно использовал MM для других тем. Иногда даже приводил его как альтернативный summary в презентациях и примерах кода. А MM по Compose расширялся. Одна из последних версий
notion image

🔥Тред (Андрей Берюхов)

Пятница


Читаете ли вы книги?
🤔 28.1% читаю бумажные
🤔 51.2% читаю электронные
🤔 3.8% слушаю аудио
🤔 17.0% не читаю

Даже опрос вызвал много реакций. Я бы рад дать больше опций, но в твиттере их всего 4. Дальше я бы хотел поделиться книгами, которые прочитал и нашел для себя полезными. Если вы согласны - лайк, если нет - альтернативные варианты по теме в ретвитах.

Начнем "Effective Kotlin" Помогает писать на Kotlin не только легко, но и понятно для последующего чтения и рефакторинга кода. Когда использовать именованные параметры, ... Особенно полезно на PR-ревью.

Getting Things Done и Джедайские техники Первая - очень подробно про GTD. Вторая про GTD кратко + другие техники. Прочитал именно в такой последовательности, что, как мне кажется, помогло лучше проникнуться GTD.

@mobileunderhood Не-не-не, вы чего??? Только Swift!!!
А есть книжка про Swift, чтоб он понравился Android-разработчику?) twitter.com/EvgeniyKirillo…

@mobileunderhood А каковы вкусы у Android-разработчиков?)
Сейчас рискую скатить беседу в холивар. Но лично мне язык не так принципиален, как способ задания параметров сборки в разных окошечках XCode вместо какого-либо текстового вида. Будь то Gradle, CMake, ... twitter.com/soaltomas/stat…

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

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

Богатый папа, бедный папа Хорошая книжка для начала погружения в смысл инвестиций. Тут прям реквестирую другие книжки для продолжения.

45 татуировок менеджера Не всем подойдет, но что-то можно применить, даже не являясь менеджером.

Чистая архитектура (Роберт Мартин) Про сам Clean - всего одна глава. Остальные - повторение из других книг и статей Мартина. Но для джунов полезно в одном флаконе.

🔥Тред (Андрей Берюхов)
Дальше по традиции жанра должно последовать предложение вступить в пирамиду twitter.com/mobileunderhoo…
Ещё что-то про крипту 🎰 Любую инфу нужно воспринимать через фильтр. Как думаешь, что лучше почитать по теме? twitter.com/SunFoxx_/statu…

Суббота


Начнем (внезапно) не с опроса. Если вы давно не были в отпуске - возможно, это знак. Сходите в отпуск. Там здорово, правда! Особенно, если получится уехать из серой погоды куда-то в более теплое место.

А теперь опрос) Во скольких городах вы ночевали (не просто проездом) в 2021.
🤔 45.2% 1-3
🤔 29.7% 4-6
🤔 12.4% 7-10
🤔 12.8% >10

Побуду тут чуть кэпом, с прикрытыми границами стало путешествовать чуть сложнее. Но, несмотря на это, я в этом году побывал в 9 городах РФ и Стамбуле.

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

Я живу в Москве и люблю по ней гулять. Самое впечатляющее - пока обойдешь хоть сколько-то значимую долю города, когда возвращаешься в старые места - появляется что-то новое: парк, кофейня, или другое приятное место. Конечно, с маленькими городами такое не работает.

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

Самым удивительным городом для меня стал Омск. Во-первых, спасибо ребятам из GDG Omsk - если бы не позвали, я вряд ли бы сам туда доехал. Во-вторых, чтобы вообще понять, что там смотреть - посмотрел несколько видео на ютубе и кроме Летова и сбегавшего шара ничего особо не нашел.

От того было интереснее. Я в основном гулял по центру, но он поинтереснее чем центры многих других городов РФ. Главное, что запомнилось, Кофе. Оно просто повсюду. Можно встать в одной точке и насчитать 12 кофеен вокруг - намного больше чем везде. И это, в основном, хороший кофе.

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

Возвращаясь к Москве. Главный ботанический сад. Дышится как в лесу, при этом есть дорожки - обувь не пачкается. Лучше заходить от Владыкино.Если станет скучно - можно уйти на ВДНХ. И, по сравнению с Лосиным островом - не беспокоят насекомые.

Территория Cкoлково (лучше в теплый сезон). Есть свои косяки, но в целом интересно: попытка в новую архитектуру, неплохой парк с прудом, свой прокат электросамокатов.

От Курской через Арму и Бауманскую до Красносельской. Достаточно длинный пешеходный маршрут, но по пути много разнообразной архитектуры (в том числе 2-3-этажной) и её переосмысления под новые места притяжения.

Не в Москве, но тоже рекомендасьон. Севкабель Порт в Питере. Летом барная стойка на берегу залива с видом на закат - это бомба.

🔥Тред (Андрей Берюхов)

Воскресенье


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

Ограничение в 280 символов - это весело. Невольно начинаешь писать и сокращать. А около пяти твитов этой недели умещались ровно в лимит.

Если вы социолог, собрать статистику по мобильным разработчикам можно здесь:

Начнем с различий в типах команд разработки: 1- и кросс- платформенных/функциональных. Насколько интересно для вас сравнение опыта в таких командах и работали ли вы в обоих типах?
В понедельник обсуждали различия в типах команд разработки twitter.com/mobileunderhoo…

Тему второго дня - роль образования в IT начну тоже с опроса. Есть ли у вас высшее образование по IT специальности, и жалеете ли вы об этом?
Во вторник - мой взгляд на роль образования в IT twitter.com/mobileunderhoo…

Давайте начнем тему этого дня с немного отвлеченного вопроса. Как давно вы были на оффлайн митапе/конференции?
В среду скучали по оффлайн митапам twitter.com/mobileunderhoo…

По традиции начнем с опроса: Твиттер не дает выбрать несколько опций, поэтому выберите наиболее частую. Использовали ли вы Mindmap для:
В четверг кто-то узнал про MindMaps twitter.com/mobileunderhoo…

Читаете ли вы книги?
В пятницу делились книгами twitter.com/mobileunderhoo…

А теперь опрос) Во скольких городах вы ночевали (не просто проездом) в 2021.
В субботу мечтали об открытии границ и не только twitter.com/mobileunderhoo…

На сегодня заготовленной темы нет. Готов поотвечать на вопросы. Ставьте лайки, подписывайтесь на GitHub @phansier

🔥Тред (Андрей Берюхов)

Ссылки