Архив недели
Понедельник
Привет. 👋 Меня зовут Антышев Дмитрий (about.me/antyshev) и я Руководитель направления (iOS) в трайбе PFM(Personal financial management) в Сбербанке.
Разработкой под iOS я занимаюсь 5 лет.👨💻
Последнюю рабочую неделя в этом году я предлагаю порефлексировать о произошедшем в 2019, а так же обсудить как будем жить дальше в 2020. Но перед этим познакомимся поближе.
ПН: Знакомимся, расскажу о одном дне разработчика в Сбере в фичовой команде
ВТ: Hard skills - что изменилось в 2019 и к чему готовиться в 2020
СР: Soft skills - к чему готовиться в 2020
ЧТ: Развитие мобильного разработчика. Как стать синьором в 20 лет или надо ждать до 40 лет?
ПТ: Проведем опросы и подведем итоги
СБ: Путешествия в 2019, где стоит побывать в 2020?
ВС: Свободное общение, готовимся к Новому году 2020.🎄
Многие знают офис Сбербанка - Agile Home. Но не все команды находятся в этом офисе.
Через дорогу - Poklonka Place. Именно там находится весь наш трайб PFM, а это порядка 70 человек. Но мы часто бываем на Кутузе 😉
Кстати, iOS разработчиков в нашем трайбе 10 человек
Начало рабочего дня🙂 в 9 утра - нас совсем немного. Основная часть ребят приходит к 11:00. И да, график каждый разработчик выбирает- сам. Главное, чтобы он устраивал всю команду👨💻👨💻👨💻
Вспомнил, что забыл рассказать, что такое трайб.
Трайб - это структура, направленная решать определенные бизнес задачи. В моём случае - задачи Персонального финансового планирования (функционал, который помогает вам контролировать, сберегать и приумножать ваши сбережения в Сбере)
В трайбе 8 скрам команд и ещё парочку на этапе формирования. В каждой команде от 1 до 4ех🙈 iOS разработчиков.Так же в каждой команде есть ПО, аналитики, дизайнеры, тестирование.
В некоторых командах есть Скрам мастера, Дата сайентисты, QA автоматезаторы
Все iOS разработчики внутри трайба формируют - iOS Chapter🤝, и моя основная задача (помимо написания кода в фичовой команде👨💻) - это сделать так, чтобы в PFM iOS Chapter все было хорошо🤗
У нас в трайбе есть iOS разработчик, который любит покушать😋
Поэтому наш завтрак обычно выглядит- так 😃
В 11:30 у нас дейли стэндап. Где мы обсуждаем текущий прогресс в свой скрам команде.
С утра было много разных активностей и даже успел чуть чуть 🤏 пописать код.
Пришло время - физических нагрузок 💪🏻 Хорошо, что есть спортзал 😍
Раз в две недели у нас проходит Демо платформы🤘. Ребята с платформы рассказывают, что нового и какие новые инструменты появились для фичовых команд. 👏
А так же обсуждаем разные вопросы iOS комьюнити 🤔
На демо подымали интересный вопрос о проблеме Thread Explosion 💥
Важно это учитывать если вы используете GCD для работы с многопоточностью.
Кол-во потоков в пуле GCD - ограничено! 😔
Во время исследования, стало понятно, что кол-во потоков в пуле = 64. И если вы не влезете, то получите дедлок. В маленьких приложениях верят ли это получится, а вот в больших - всегда пожалуйста 😊
Тут есть пример от нашего инженера с платформы 👍💪🏻
github.com/ozermanious/Th…
Итак, рабочий день закончился и я еду домой.
Вечернее время я провёл за программированием. Увидимся завтра ✌️
Вторник
Утро доброе 👐
Сегодня вспомним, как изменился мир вокруг iOS разработки в 2019 году и что ждать в 2020.🕑
В 2019 вышла iOS 13, а вместе с ней Dark Mode (Тёмная тема)👨🏿💻
До этого момента, наличие поддержки Тёмной темы - было фичей и поддерживалось далеко не всеми приложениями.
В 2020 наличие Тёмной темы у вашего приложения - must have.✊
Помните об этом выпуская приложение в стор.
Хочется понять, а какую тему предпочитает большинство мобильных разработчиков👆
Какую тему вы используете?
Для верстки UI мы используем UIKit. Но в 2019 появился SwiftUI.
Это фреймворк который использует декларативный подход для верстки пользовательского интерфейса. И используется во всех ОС компании Apple.
Скорее всего большенство уже попробовали его использовать и оценили возможность видеть изменения на UI без пересборки приложения.
Когда я искал свою первую работу в роли iOS разработчика, уже появился язык Swift, но его знание совсем не требовалось для трудоустройства, гоняли по Objective-C. Понимаете к чему это я?
Когда сегодня я провожу интервью, то спрашиваю, пробовал ли кандидат использовать SwiftUI?
Поскольку совсем скоро он вытеснит UIKit с рынка, вопрос только в том, сколько долго мы не будем подымать наш Deployment Target.
Знание SwiftUI, будет обязательным критерием работодателей, а значит в 2020 году точно стоит погрузиться в его изучение. Чуть позже напишу, что однозначно стоит изучить. 📚
Тут хотелось бы уточнить, все версии ОС - это iOS, macOS, tvOS и т.д. Про версионность ОС, конечно тоже стоит не забывать
Начать изучение SwiftUI стоит с туториалов
developer.apple.com/tutorials/swif…
Для тех, кто любит видео уроки больше чем статьи, есть набор коротких лекций от Paul Hudson
youtube.com/playlist?list=…
В процессе обучения в качестве шпаргалки можно использовать
fuckingswiftui.com
Objective-C кстати не депрекейтед, а наоборот развивается!💪🏻
Туда завезли Direct dispatch.
@property(nonatomic, direct) BOOL directProperty;
Почитать можно на NSHipster
nshipster.com/direct/
Конечно же, ещё в 2019, Apple 🍎 порадовал и любителей парадигмы реактивного программирования.
developer.apple.com/documentation/…
Лично я, не использовал Combine. Как в коммерческих проектах, так и в Пет проектах. Как вы считаете, стоит ли углубиться его изучение в 2020 году?
Нужно ли изучить Combine в 2020 году?
Еще одно из важных изменений в 2019 стал Catalyst, у нас появилась возможность перенести приложения с iPad на Mac.
developer.apple.com/mac-catalyst
Зачем Apple создала Catalyst?
Лёгкая точка входа для разработки под Mac
Один проект, одна кодовая база, один таргет
Мышление в терминах UIKit
Меньше затраты на разработку под macOS
Сегодня, мы вспомнили важные моменты для iOS разработки в 2019, если что то упустил - пишите.📝
А так же, на что обратить внимание в 2020, для повышения своей квалификации iOS разработчику.
На сегодня у меня всё, увидимся ✌️
Среда
В нашей профессии умение общаться и правильно излагать свои мысли, является очень важным навыком, помимо программирования. А так же ещё ряд качеств которые стоит развивать! Сегодня - поговорим об этом 😉
На мой взгляд - основные навыки общения на каторые стоит обратить внимание:
Умение слушать
Умение приветствовать людей
Умение начинать и поддерживать разговор
Умение оказывать поддержку
Умение замечать достижения людей и хвалить их за это
Умение быть благодарным
Начать работать можно над теми навыками, которые даются вам легче.
Например, умение тепло приветствовать окружающих, искренне благодарить.🤗
Практика легких навыков общения увеличивает вашу уверенность в себе.
А она вам понадобится при освоении более сложных навыков.💪🏻
Тренируйте свои навыки общения каждый день👆
Всегда можно найти возможность пообщаться.
Например: забирая ребёнка с детского сада, можно пообщаться с другими родителями, а стоя на кассе, завязать разговор с кассиром ☺️
Расширяйте свой круг общения и друзей😊
Посещайте разные конференции, к примеру appsconf.ru 😋🙂
Сначала вы вы можете чувствовать волнение и это нормально👌
Со временем оно пройдёт и вы будете получать удовольствие от общения 😀
Ну и конечно, чтобы развивать свои навыки общения- главное практика!
Выберите 1-2 навыка которые вы бы хотели подтянуть на этой неделе, и во время общения, старайтесь уделять этому внимание 🤔
Со временем это будет доведено до автоматизма👍
Развитие определенных личных качеств является очень важным навыком для улучшения личной жизни и для выстраивания межличностных отношений.
Вот на какие личные качества стоит уделить пристальное внимание:👆
1.Самодисциплина
Способность начинать и завершать выполнение задач, получать ожидаемые результаты и достигать поставленных целей независимо от возникающих препятствий.✊
Воля
Способность сознательно начинать выполнение действий, управлять ими и организовывать их для достижения целей.🏋️
Интенсивность
Способность в течение определенного периода концентрироваться на одной цели и прикладывать максимум усилий для ее скорейшего достижения. Концентрироваться на поддержании высокого темпа производительности.🔥
4.Мужество
Способность сохранять текущее состояние или улучшать его при возникновении опасности или страха, препятствующих выполнению действий и достижению поставленной цели.🧔
5.Проактивность
Способность руководствоваться ценностями, а не чувствами и эмоциями. Искать и находить возможность проявить инициативу, разобраться в ситуации, пытаться предвидеть развитие событий. Действовать, а не рассуждать.🤘
Выстраивание межличностных отношений можно и нужно прокачивать, если вы не занимались этим в 2019 году, но чувствуете в этом потребность, то самое время начать это делать в 2020 году.
В свое время мне очень зашла книга Дейла Карнеги “Как завоевывать друзей и оказывать влияние на людей”. Советую ее прочитать.📖
Ну а я пойду заниматься нетворкингом на корпоратив. 🕺☺️Увидимся завтра 👋
Четверг
✌️Сегодня предлагаю обсудить развитие мобильного разработчика.
Пойти поэтапно:
Как войти в ИТ😄 и стать Junior, разработчиком.
Рост из Junior в Middle
Middle 💪🏻🏋️ Senior
А в конце разобраться, Seniorом можно стать в 20 или только в 40 лет 😉
Первое приседание🏋️ которое надо сделать, чтобы стать разработчиком, это получить базовые знания языка программирования, платформы на которой будет идти разработка, SDK, и базовые навыки Computer Science 🖥
Когда я стартовал в профессию, материалов было мало, и все приходилось искать самостоятельно😔
Сейчас есть множество курсов и даже школы для подготовки молодых специалистов.
В одной из таких школ я тоже читаю ряд лекций.🤓
На мой взгляд, в 2020, это самый простой и быстрый вариант стать мобильным разработчиком.
В школе, вы получите необходимый набор знаний, для того, чтобы сделать своё первое приложение 📲
Обычно, рассматриваются все основные темы, такие как:
Изучаем среду разработки
Изучаем языки
Изучаем как верстать UI
Изучаем как ходить в сеть
Изучаем как храненить данные на устройстве
Изучаем работу в многопоточной среде
И другие темы👌
Можно, конечно все это изучить самостоятельно, но получится дольше и менее эффективно🙁
Разобравшись с основной, вы получите свой первый офер в роли Junior разработчика.👏
Junior разработчик, не сможет выполнять все задачи самостоятельно, он будет довольно часто обращаться за помощь к своему ментору.
В этот момент, рекомендую начать писать свои пет проекты, и изучать в момент работы нат проектом, новые инструменты.
Погрузитесь в детали реализации фреймворков.
Изучите архитектурные паттерны
Изучите паттерны проектирования
Займитесь профилированием вашего приложения, попытайтесь увеличить скорость его работы, найти утечки памяти и т.д.
На этом этапе стоит прочитать такие книги, как:
Роберт Мартин - Чистый код
Роберт Мартин - Идеальный программист
Роберт Мартин - Чистая архитектура
Род Стивенс - Алгоритмы. Теория и практическое применение
⚠️ Важно в этот период времени как можно больше практиковаться- писать код ✍️
Как только вы почувствуете, что можете решить практически любую атомарную задачу в рамках своего направления - вы стали разработчиком уровня Middle ✊
Рост до Senior разработчика скорее всего займет больше времени чем от Junior к Middle.
Одним из основных отличий Middle и Senior является способность решить задачу от заказчика.
Часто она может звучать “Сделать что - то, и вот примерно так - то и чтобы было вот так вот хорошо”
Senior разработчик должен уметь разобраться в задаче, предложить возможные пути решения, обсудить взаимодействие с бэкендом, понимать риски и ими управлять.
Чтобы выполнять эти обязанности нужно развиваться как в глубину, так и в ширину.
Естественным образом вы будите погружаться в глубину, изучайте более низкоуровневые компоненты. К примеру если вы работали в iOS с сетью только через URLSession запросами, то изучите работу сокетов.
В ширину, вам нужно изучить верхнеуровнево, работу бэкенда, к примеру, что такое докер, как развернуть свой контейнер, как работают селекты с базы и как происходит взаимодействие с мобилкой с «тёмной стороны»😃
Хорошо изучите HIG, посмотрите другие платформы и iOS и Android, разберитесь в чем их основное отличие и почему одни компоненты легко делать в Android и сложно в iOS, отсюда и разные сроки, и наоборот что то легче в iOS
Прокачивайте свои Soft skills(о них мы говорили вчера), ведь как Senior, вам нужно доносить информацию до ваших руководителей и менеджерить их тоже.
Отвечая на вопрос «Senior в 20 или 40 лет?» Я скажу так:
Главное не возраст в паспорте, а ваши профессиональные навыки и жизненный опыт.
Мне 28 и я считаю, что в 25 я бы не справился с обязанностями Руководителя направления, как хард так и софт.
Тот жизненный опыт, те технические навыки которые я приобрёл в процессе развития и работы в разных командах - бесценны 🙏
Важно понимать, что у всех у нас разный уровень воспитания и образования, а так же разные таланты, сильные и слабые стороны. Кто то усердно работал с 16 и уже в 25 прошёл 🔥 и 🌊
А кто то в 25 вышел из магистратуры, это 2 разных человека
Закончить сегодняшний день мне бы хотелось вкинув немного мотивации 💪🏻
Развивайтесь, изучайте новое, не останавливайтесь на достигнутом, пишите чистый и тестируемый код.
Любите то, чем занимаетесь и тогда все получится в 2020 году🎄
До завтра ✌️
Пятница
Сегодня - пятница🔥
А значит по плану а значит сегодня будет несколько голосований и итоги.
Тут мне нужна ваша помощь 🙏 Кидайте в тред этому твитту вопросы, на которые стоит запускать голосование 📊
В начале начала давайте разберёмся для кого, завтра начало новогодних праздников, а кто работает 30-31.
Брали ли вы отпуск/отгул на 30-31 декабря 2019
Какие темы вам было бы интересней услышать в 2020 в «Мобильном разработчике»
Темы про:
Коллега рекомендовал книгу «Веревка достаточной длины, чтобы выстрелить себе в ногу».
Посоветуйте плиз, что почитать в новогодние праздники, ну и в целом, какие книги 📚 прочитать в 2020, чтобы прям зашли 💯 %
Радует, что 69% выбрали харды, может быть подготовлю хороший хардовый доклад в 2020, но не комичусь😃
Хороших выходных!
Суббота
Доброе утро 🤗
Начались выходные, а у 39% из вчерашнего голосования вообще начались новогодние праздники 🥳🎄
Поэтому самое время поговорить о путешествиях ✈️🚖🚄🚃⛵️🚌
Лично, я не так много путешествую, и немного жалею об этом.
На это было много причин, одна из них - маленький ребёнок.👶 Совсем недавно моему сыну исполнилось 5 лет, а значит можно начинать больше путешествовать в 2020 году 🤘
В 2019, мы ездили в Тунис, мне очень понравилось.
Но я ни в одной стране Европы, кроме России конечно)
А где вы были в 2019 году, пишите о своих впечатлениях, фото приветствуется👍
У нас в PFM трайбе есть самая лучшая iOS разработчица ☺️
instagram.com/natalia__volko…
И так получилось, что сейчас у неё великолепный трип, и она согласилась поделиться впечатлениями.
Лично мне однозначно захотелось посетить эти места в 2020 году.
Франция сейчас - когнитивный диссонанс для большей части российских туристов. У нас в телевизоре - пылающие Елисейские поля и рекомендации министерства туризма воздержаться от поездок. У них - мусорка, горящая неподалеку от триумфальной арки, забастовки по расписанию.
Да, есть проблемы с транспортом, но они легко решаются планированием поездки/ наличием ву/ любовью к пешим прогулкам и минимальным умением "погуглить"
Эльзас: Страсбург, Эгисхайм, Кольмар. Пряничные города как перед Рождеством, так и летом. Игрушки ручной работы, фахверк и узкие улочки🙂
Португалия. Самая западная точка Европы, где океан нежно обнимает бочок континента, а солнце нежно гладит горные долины. Буйство красок и стихии, горы, укрытые покрывалом из горных цветов, узкие дорогие и почти всегда отличная погода
Лиссабон - город, уничтоженный стихией, но сохранивший память об арабской культуре, о флоте, сложной и кровавой истории соседства с Испанией. Азулежу - национальная плитка на фасадах зданий - как отдельный вид искусства. Сумасшедше солнечный и легкий город.
Дешевые и свежайшие морепродукты, ласковое солнце и потрясающее соседство истории и природы.
Вокруг, множество небольших городков и деревень, абсолютно аутентичных и самобытных, сохранивших местные традиции.
Воскресенье
Сегодня мой крайний день в 2019 году в «Мобильном разработчике»
Скорее всего я проведу в бесконечных пробках т.к. буду очень много бегать по магазинам и покупать подарки родным и друзьям.🛍🎁
Если у вас есть вопросы, предлагаю их обсудить в течение дня.
Пишите✍️ в тред к твитту.
С наступающим 2020 годом🎄 Пусть все задуманное - получится.
Увидимся ✌️ 👋