Всем привет! Меня зовут Кирилл Розов, Android Dev. Вы можете знать обо мне по проекту Android Broadcast @andro_broadcast, автором которого я являюсь. На этой неделе буду рассказывать о своем опыте и интересах в Android и Kotlin.
Темы которые я хотел затронуть за свои 7 дней:
День 1. Опыт развития собственного блога
Я поделюсь опытом ведения Telegram канала Android Broadcast и как можно попробовать начать что-то свое.
Также расскажу про Android Broadcast Podcast и YouTube канал.
День 2. Kotlin, Coroutine и Android
Kotlin перевернул мою разработку с ног на голову и вывел удовольствие от процесса написания кода на новый уровень, пройти мимо такой темы я не могу.
День 3. Публичные выступления
Публичные выступления - это мое хобби и я очень люблю заниматься этим сам и помогать другим подготовить доклады. Поговорим о том с чего начать, как делать и зачем.
День 4. Тренды Android разработки
Современная Android разработка. Куда она развивается, ждать ли чего-то интересного? Android Dev - это застой развития или есть куда развиваться? Обсудим этим темы и позовем в тредик ребят, которые сменили Android на другие направления.
День 5. Прохождение интервью
Как пройти интервью и бояться отправить CV в большую компанию? Как готовиться? Что думает интервьюере когда задает вопросы и слушает ответы. Расскажу свой опыт с 2 сторон, который актуален в текущее время + мне и самому пришлось искать работу.
День 6. Обучение в IT
Обсудим курсы: платные и бесплатные, онлайн и оффлайн; как войти в профессию разработчика и как развиваться самостоятельно, менторство и шаринг знаний
День 7. "Вопрос-ответ" + итоги недели
Поболтаем на разные темы, которые я возможно не задел, но вам было бы интересно затронуть. Также подведем итоги недели
День 1. Опыт развития собственного блога
1.5 года назад я начал вести свой собственный Telegram канал с новостями из мира Android разработки. Буквально вчера он перешел цифру в 3K подписчиков. Кто-то скажет это немного, но это уже впечатляющие цифры
Появился канал случайно. Я вел команду и мне хотелось стимулировать ребят смотреть на что-то новое и на засиживаться в стеке, который навязывал проект с legacy кодом в 5 лет. Я закидывал разные статейки в канал во внутренний Slack. Но однажды один из разработчиков ушел...
И он спросил меня: "Как сделать так, чтобы уйти и не потерять доступ к такой информации?". И вот тут я подумал, что слышу подобное не в первый раз и решил что стоит попробовать и сделать канал публичным...
Так и зародился Telegram канал Android Broadcast, который вы можете читать каждый день. Что стоит вынести из этого
ТО ЧТО У ВАС ПОЛУЧАЕТСЯ ХОРОШО, СТОИТ ПОДЕЛИТЬСЯ ЭТИМ С СООБЩЕСТВОМ
Я даже и не мог представить, что все для меня обернется так
И не бойтесь что это будет не так как у топовых блоггеров или крутейших специалистов с конференций. Не обращайте внимание на диванных критиков, они будут всегда!
ВЫ НАЧАЛИ ДЕЛАТЬ, ЧТО УЖЕ БОЛЬШЕ ЧЕМ У ДИВАННИКОВ. ВОПРОС ВРЕМЕНИ И УСИЛИЙ КОГДА ВЫЙДЕТЕ В ТОП!
С чего начинать как вы сделали первые шаги в создание контента? Для начала надо попробовать получить отзывы. Дайте ссылки своим друзьям, коллегам, людям из сообщества. Это важно чтобы понять, что нравится, а что стоит улучшить.
Я всегда дам вам отзыв и помогу. Telegram krlrozov
Следующий шаг - налаживание регулярного графика контента. Когда ваш блог/канал/подкаст/<что-то ещё> простаивает, то подписчики начнут забывать о вас. Слишком много проектов-спичек, авторы которых быстро теряют интерес...
Для того чтобы так не случилось с вами вы должны сделать следующее:
В начале стоит делиться ссылками с друзьями и знакомыми, так как эта аудитория более позитивно расположена к вам: они вас знают, работали с вами и посоветуют вас другим.
Следующий путь который применял я - рассказ о вашем проекте в рамках публичного выступления. Люди пришли вас послушать и поэтому у них уже есть интерес, а если ваше выступление им понравится, то скорее всего они будут следить за вами через ваш публичный проект
Чтобы понимать движетесь ли вы в правильном направление или нет, то общайтесь с аудиторией. Она поможет вам понять, что хорошо, а что стоит изменить.
Относитесь к критике положительно, потому что люди говорят это вам не со зла, а чтобы показать где у вас слабости..
Я считаю, что все хорошо быть не может и есть всегда аспекты, где можно улучшить качество или рассмотреть новые возможности для расширения границ. Так в свое время появился Android Broadcast Podcast
Идея родилась на основе того, что я увидел возможность обсудить разные темы с лучшими специалистами из Android индустрии. Формат статей не очень подходил, видео удовлетворительного качество было делать проблемно и решил рассмотреть подкасты.
В пользу подкастов также сыграло что Android Dev Podcast перестали активно выпускать новый контент.
Подкаст также оказался новой площадкой чтобы популяризировать проект.
Изначально все подкасты выкладывались на YouTube, потому что бесплатно. Чтобы появилась и аудио версия позже стал использовать SoundCloud.
Самым большим удивлением для меня стало, что и на YouTube подкасты слушают лучше и аудитория приходит активнее.
Система рекомендаций YouTube работает очень эффективно и показывает что платформы подкастов - это просто устаревший плеер, которые не развиваются со временем.
Первые выпуски делались с плохим оборудованием, чтобы не тратиться. Позже я понял что подкаст зашел и стал вкладываться в оборудование: купил микрофон, попфильтр и стал использовать сервис @SquadCastFM, чтобы писать в хорошем качестве и отдельными дорожками каждого участника
Если говорить о утилитах для работы с контентом то для создания отложенных постов в Telegram рекомендую сервис telepost.me. Он бесплатный и решает все задачи в Android Broadcast, за исключением поддержки стандартных голосовалок
Я разочаровался платформой подкастов и понял, что нужно двигаться дальше. После рождения дочки я стал очень скучать по публичным выступлениям. YouTube канал Android Broadcast стал как решение этой проблемы и той, что подкаст - это менее популярный формат.
Что я понял сразу:
Сейчас качество видео у меня на канале хромает, но это связано с большим временем для подготовки записи и публикации видео, большими затратами на оборудование и трудностью делать все в одиночку
Поэтому рекомендую вам не спешить с таким форматом без четкой уверенности
Качественный канал/блог - это стабильность подачи информации. Вы должны понимать, что это много времени на подготовку материала и его качественную подачу.
Будьте готовы стабильно тратить на него время, иначе успеха не добиться.
На Telegram канал Android Broadcast каждый день уходит 1.5 часа для выбора контента. Подготовка ролика - от 4 часов до 3 дней. Подкаст - 1 день
И давайте еще немного про монетезацию. Какие способы:
Я не готов образовательный материал давать за деньги ("платный контент"). Если кто-то считает что стоит поддержать автора, то он имеет право это сделать. Материал и будет так.
Пока каждый не попробует что-то свое, то он не поймет сколько лежит работы и расходов на авторе
Какой способ монетизации для проектов вы считаете лучшими?
День 2. Kotlin, Coroutine и Android
Продолжаем движение! Сегодня Kotlin перевернул мою разработку с ног на голову и вывел удовольствие от процесса написания кода на новый уровень.
Впервые попробовал Kotlin в январе 2016 до выхода первой версии и мне очень зашло...
Потренироваться я с ним решил на разработке приложения. Сделал приложение под Android с расписанием для ВУЗа где я учился.
Конечно все зашло и был рад, но стало понятно, что пока не хватает библиотек и скорость компиляции не радовала...
На сегодня уже на подходе версия 1.4 и множество улучшений в плане скорости и backend-а компилятора. Жду не дождусь новой версии, чтобы порадоваться новым фичам
Давайте пройдёмся по тому что мне нравится в Kotlin, что нет и чего бы хотелось увидеть. Конечно же не пройдём мимо Android + Kotlin
Если выделять мою любимую возможность - это особенности системы типов Kotlin:
- разделение на nullable и non-nullable типы
- разделение коллекций на mutable и immutable
- Any, Nothing, Unit
Все это делает вызовы методов безопаснее и более строго типизирует код...
Следующая крутая возможность - extension functions.
Она самая простая, и вполне возможно самая популярная. Почему?
Что такое «Минимизация API интерфейсов»? Яркий пример тому Kotlin Flow, который имеет только один метод, а все операторы и другие возможности реализованы через extension function
С другой стороны extension function - зло, так как разработчики используют их для всего подряд, когда даже уместнее сделать параметр, вместо ext function
Стараться делать все immutable:
- переменные (val предпочтительное var)
- immutable коллекции
- final классы по умолчанию
- final function и property в классах
Хочешь сделать более открытым - делай явно. Конечно часть Java сообщества получила боль из-за этого (например Spring)
Kotlin Property Delegates - просто супер фича языка. Она позволяет закрыть дублирование кода и упростить его. Я нашёл ей много применений:
- SharedPreferences
- Обертки на Java Atomic*
- Упрощение работы с Android View Binding
- LiveData
Пишите про свой опыт с этой фичей
Следующей моей любимой фичей Kotlin стали Coroutine. Почему:
Идем дальше. Следующим в моем списке стало применение стероидов к enum class - sealed class. Позволило делать классные ограничения иерархий и пробегать все возможные ветки через when
Проблема, что пришлось присваивать значение из when в переменную, чтобы компилятор форсил проверку что проходишь во всем возможным значениям sealed class.
Detekt добавил на это правила, но я не успел его проверить еще
Банальщину в стиле меньше кода для реализации одного и того же по сравнению с Java, data классы, object и др решил не упоминать.
Давайте двигаться к минусам
Поговорим про синтаксис. lateinit - ужасный костыль из-за особенностей Android SDK и Dagger. Не используйте его кроме как c inject зависимостей в property. Старайтесь делать inject зависимостей в конструктор. Вместо lateinit используйте lazy, nonNull или nullable property
Nullable property - это нормально. Не любое property в любой момент имеет значение и его отсутствие, выраженное через null, имеет место быть.
Те кто использовал LiveData в Android сталкивались с кодом ниже. Знаете как сделать красиво? Пишите в комментах pic.twitter.com/fypyFxDXff
Как бы я не любил Kotlin Coroutines, но обработка ошибок в них боль ( В зависимости от того как запускаешь Coroutine, исключения могут выбрасывать в разных местах, или их обработка все равно может привести к падению. Грусть и грусть. Жду улучшений в kotlinx.coroutines
Я говорил, что люблю property delegate, но с другой стороны этот функционал, который работает через обертку объекта + еще и используется рефлексия. Будьте осторожны!
В Kotlin 1.4 ждут улучшения в делегатах - неиспользуемый параметры в getValue()/setValue() будут игнорироваться
Введение многих новых фичей, которые могут долго висеть в experimental. Для команды Kotlin - это очень важный и серьезный шаг вывести API в stable.
В Kotlin 1.4 команду Kotlin даже попросили приостановиться с новыми фичами и вывести существующие в stable
Долгая сборка, особенности работы kapt и другие вещи которые негативно влияют на сборку. Однозначно минус, но я уже привык. Отказаться от Kotlin мне дороже чем ускорить сборку на 20% процентов, хотя вопрос еще и времени сколько это будет
Трудно говорить что-то плохое, про язык который ты любишь и получаешь удовольствие писать на нем. Трудно не потому, что хочешь скрыть плохие аспекты, а потому что не докапываешься ко всему и принимаешь решения авторов и стараешься понять почему решили так и как лучше использовать
Стоит занести в минусы, но не критичные - отсутствие литералов для коллекций. Например так pic.twitter.com/HbhD7hJvMq
Я думаю что кто-то скажет что отсутствие тернарного оператора плохо, но мне хватит if...else expression
Kotlin богат на функционал, но как и любое оружие оно позволяет навредить себе и прострелить ногу, затянуть в паутину кода из которой не выпутаться или вовсе отказаться от языка.
Моя главная рекомендация с Kotlin - не используйте Java подходы при работе с ним. Это язык с другими подходами, хоть и основанными на Java, но с избавлением от проблем, которые были найдены за 20 лет и собственным виден
Пишите на подходах Kotlin и он заиграет для вас совсем другими красками и вы получите удовольствие от его использования
День 3. Публичные выступления
Публичные выступления - это мое хобби и я очень люблю заниматься этим сам и помогать другим подготовить доклады. Давайте обсудим вопросы, которые мне на так давно задал один из подписчиков Android Broadcast
Зачем вообще делать доклады?
Доклад позволяет вам развивать ваши навыки: ораторские скиллы, подготовку презентаций, донесения информации, развитие собственного бренда и компании на публичной площадки и др.
Эти навыки важны с ростом вашего уровня (Middle -> Senior -> Lead) и смещения ваших обязанностей в менеджерские (работа с людьми, заказчиками, участие во встречах между командами)
Компании любят активных людей, которые могут не только писать код, но и делать движение внутри компании, так и за ее пределами.
В большей части это касается крупных компаний, у мелких вопрос больше стоит как бы выжить
Лично от себя я считаю, что шаринг знаний - это должна быть неотъемлемой частью специалиста уровня Senior и выше. Такой специалист должен уметь доносить свои мысли и развивать экспертизу.
Шаринг знаний - это доклады, статьи, менторинг, ведение курсов, блоги и др, но доклады...
...но доклады это развитие навыков, которых нет в письменных форматах или формата работы с человеком, когда вы выступаете в качестве ментора
Сделать доклад - это хороший способ познакомиться с новыми людьми и побывать в новых локациях, причём зачастую за счет организаторов или вашей компании
Стоит ли включать такие вещи в резюме - однозначно да. Это показывает ваши soft skills и для работодателя будет плюсом. Какого размера? Для меня люби которые социализируются и стараются делится знаниями - это плюс, но далеко не главный показатель
Также упоминал развитие личного бренда - это тоже плюс когда про вас знает и может помочь вам получить интересные предложения. Это не только работа, но и участия в каких-то инициативах или приехать с докладом куда.
Может ли принести public speaking деньги?... Да, есть спикеры которые на этом зарабатывают (выступают на конференциях за деньги) и вы скорее всего слышали их имена, потому что это звезды IT индустрии.
Вы можете заработать с помощью полученных навыков в ходе подготовки докладов
Мы поняли, зачем стоит таким заниматься. следующе вопросы которые встанут: "О чем рассказать?" и "Где выступить?"
Темы я выбираю по 2 принципам: интересный опыт, которым хочется поделиться, и темы, которые я хочу изучить, а после делюсь этим исследованием/знаниями с другими.
Также порой заходят доклады освежения старых тем и актуализация их в современном мире. Например, я делаю доклад о эволюции уведомлений в Android и как с ними лучше работать в современном мире.
Ко всему этому я делаю библиотеку чтобы упростить создание уведомлений.
Выбирайте тему, которая вам интересна, не старайтесь сделать доклад мегахит из первого опыта.
Также локальные сообщества (например GDG) очень часто ищут спикеров и вы можете обратиться к ним с тем чтобы сделать доклад, а тему они помогут вам найти или предложат.
В современном мире оффлайн событий нет и все ушло в онлайн. Например, @krlrozov, @nekdenis и @mike_emelyanov организовали онлайн площадку Android Dev Virtual Meetup...
...Android Dev Virtual Meetup, где спикерам не нужна усиленная подготовка и в простом и непринужденном формате вы можете выступить и ответить на вопросы аудитории. Также организаторы помогут с подготовкой вашего доклада
youtube.com/c/AndroidDevVi…
Также хорошей площадкой для старта является митап внутри компании. Это закрытая атмосфера, где все люди вам знакомы и простят вам ошибки. Таким образом начинал я
Когда рассказываете что-то из опыта в рабочих проектах будьте осторожны с вставками кода из проекта и если есть сомнения то проконсультируйтесь с коллегами на разрешение использовать это в публичной презентации
Всегда можно взять опыт и перенести его на демо проект для доклада
Темы копания в глубинах работы каких-то утилит, библиотек и фреймворков - это всегда больная тема. Ее надо уметь преподнести легко для аудитории + зачастую аудитория таких докладов - это матерые разработчики, которые обычно либо сами делают доклады или организовывают конфы/митапы
Что я понял за свой опыт выступлений - ваш доклад должен быть массовым и легок для восприятия аудиторией.
Делать крутые, но очень тяжелые для восприятия доклады, направленные на узкую аудиторию будут не так хорошо восприняты ☹️
Перед тем как начнете готовить доклад составьте план, возможно описание в виде текста на страницу. Так вы четко будете знать о чем будете говорить и иметь план по его подготовке.
Доклад должен иметь определенную структуру: введение, основная часть, заключение
Введение я использую для того чтобы подвести к проблеме, решение которой будет разбираться
Заключение должно резюмировать что вы рассказали за время доклада и высказать основные мысли. Для некоторых докладов уместно дать толчок к действию для слушателей
Разбивайте основную часть на секции. Чтобы люди не "перегрелись" нужно давать им остыть во время доклада. Можно задать вопрос в зал, пошутить или другой способ который работает для вас. Так аудитория не теряет внимание и набирается сил для следующей части
Слайды к презентации. Что могу сказать:
В слайдах с кодом убирайте все что не влияет ключевым образом на содержимое. Важно преобразования кода анимируйте.
Делайте выделение той части, о которой сейчас идет речь. Это могут быть стрелки, затемнение текста вне фокуса, выделение прямоугольником
Для презентация я использую Apple Keynote. Люблю их простоту, анимацию Magic Move и то что я могу запускать полноценно презы с iPad
Хороший способ научиться делать круто презы и доклады - посмотреть выступления крутых спикеров, даже если тема вам скучная. Эти ребята знают как подать доклад круто
Давайте дальше. У вас есть черновая версия и вам нужно получить обратную связь. И тут вступают в роль прогоны. Я делаю прогоны 2 типов: с аудиторией для которых делается доклад (Android разработчики например) и люди которые вне сферы (жена и дочка).
Первые дают отзыв как профессионалы, а вторые - как будет интересно и понятно слушателям, которые не в теме.
Хотя моя жена уже стала плохой аудиторией для прогона - получилось ее прокачать в Kotlin и Android 😁
Кстати про презентации - старайтесь делать меньше букв и больше визуализировать. Мозг человека хорошо принимает визуальные образы чем текст, особенно на митапах после рабочего дня
Прогоны делайте полностью как это будет в реальном зале: собираетесь задать вопрос аудитории - задавайте, будет секция вопросов в конце - попросите их вам задавать.
Во время прогона обязательно засеките продолжительность вашего доклада.
Какая продолжительность доклада хорошая? Я считаю что она должна быть в пределах от 25-40 минут, хотя формат конференции может дать и больше сделать. Все что переходит 50 минут надо разбавлять активнее. Возможно даже делать паузу на вопросы (5 минут)
Страх начинающих спикеров: "А если мне зададут вопрос, на который я не знаю ответ?". Подготовить доклад != знать абсолютно все в этой сфере. Я отношусь нормально когда спикер говорит: "Я не знаю ответа, но будет хорошо если обсудим после". Сам так делаю, потому что...
потому что хочу выяснить что не знаю и закрыть пробел для себя и когда буду рассказывать доклад в будущем
И тут появляется тема повторного выступления с одним и тем же докладом. Это нормально, правда если регионы близкие и уже ваш контент давно в сети, то я считаю это не очень хорошим поводом. Хотя пообщаться со спикером мне порой интереснее, чем слушать доклад
Обязательно просите у организаторов предоставить вам обратную связь по докладу от участников. Эта информация хороший поводу понять аудиторию и что они ожидали/как получилось
Главное помните - вы уникальны и у вас есть свои сильные места и свой подход. Используйте их, пробуйте делать доклады и смотреть что заходит из ваших приемов, а что нет. Каждый следующий доклад будет лучше, если работать с обратной связью и стараться улучшать себя!
До завтра
Чем примечательна современная разработка? Наверное самое прорывное и обсуждаемое сейчас в ней - это Jetpack Compose, декларативный UI на Android, который пока находится в разработке и все мы можем только гадать когда получим результат, который можно использовать в production
Также трендами является убирание старых болячек. Сначала это были Architecture Components, которые решили проблему с жизненным циклом, сохранением данных при повороте, пагинация, дали хороший ORM.
Хорошим примером является следующие версии androidx.activity и androidx.fragment в которых уберут работу с onActivityResult и сделают нормальный способ коммуникации между Fragment
Также мне нравится тренд на "закручивание болтов" для разработчиков в ОС. Что только не делают разработчики приложений, чтобы делиться на фоне других. Так что ограничения по получению broadcast, доступ к местоположению и прочее - это хороший поводу приструнить разработчиков.
Дополнительно ограничения происходят через Google Play и изменения его политик. Например, приложения с доступом к SMS так просто не опубликуешь, хотя получить permission можно любому. Аналогично и вводят проверку на доступ к местоположению
Какие ограничения в Android для разработчиков хотелось бы увидеть вам? Пишите в комментариях
Одним из крутых трендов является активная поддержка Kotlin:
Я жду не дождусь, когда в уведомлениях запретят делать собственные View. Я считаю, что стандартный системный UI не должен меняться и выглядеть консистентно. Внутри приложения - делайте что хотите
Красивая анимация - это не то, что можно сделать просто так из коробки в Android, хоть API и много. Я очень верю в MotionLayout в связке с Motion Editor в Android Studio
Будущая Android Studio 4.1 меня радует интеграцией с библиотеками Room и Dagger, инструментов для работы с SQLite БД и встроенный Android Emulator в AS
Грусть пока вызывает инкрементальная сборка, ныне именуемая Apply Changes, работает плохо и не умеет много чего, поэтому лучше заботиться о модуляризации вашего проекта
Хотя многое что делается плохо, для выполнения плана или другим внутренним корпоративным меркам. Я думаю многие из вас слышали androidx.biometric, которая создаёт утечки памяти, а сообщество, которое об этом репортило игнорировали.
Какой школьник писал и ревьювил этот код?
Также у меня есть претензии по androidx.navigation.
Почему нельзя было сделать из коробки так, чтобы я спокойно мог управлять навигацией из ViewModel/Presenter. Но нет, каждый раз при пересоздание Activity/Fragment надо вытягивать заново ссылку на NavController. Грусть☹️
С какой-то стороны я был рад что не было Google I/O в этом году. Иначе бы гусляры опять клипами кучу библиотек за 2-4 до конференции чтобы показать как у нас все круто и мы работаем но все в очень ранних альфах
Форматы устройств, в которые пытается развиваться Android пока странные. Я говорю о складных устройствах. Они пока очень дорогие и непонятно что с ними будет в будущем. В какие устройства верите вы?
Очень грустно что нет достойных конкурентов в сегменте умных часов и планшетов, которые могли бы дать бой Apple Watch и iPad. С планшетами проблема вся понятна - отсутствие нормального софта. разработчики пишут с большей части под телефоны (
Что нам даст Android 11?
Еще бы мне хотелось чтобы систему рендеринга перевели с OpenGL на Vulkan (аналог Metal в iOS). Будеьт крутой буст (теоретически). Хотя возможно Jetpack Compose с его работой через код, без XML, сможет решить проблемы
Также я бы хотел получить API для управления эмулятором из тестов. Например, изменять состояния устройства или подкидывать данные. Было бы супер иметь официальный инструментарий для такого
Все в AndroidX направлено чтобы полечить ее детские болячки и сделать это более гибким. Где-то получается, где-то нет, но стремление неплохое
Также мне нравится стремление Google на уменьшение размера Android приложений: App Bundle, Dynamic Delivery и Dynamic Features
День 5. Интервью
Сейчас непростое время, кто-то лишается работы, у кого-то значительно снижают зарплату. Конечно же ситуацию хочется исправить
Я сам побывал в ситуации что недавно мне надо было искать работу, а также имел опыт проведения интервью у кандидатов в Android Dev
Первое самое что вами нужно понять - чего вы ждёте от своей следующей работы: имидж компании, возможность учиться новому (не только технически), получать много денег, делать полезные продукты для пользователей, работать в шикарном офисе...
Выставьте приоритет между требованиями
Ваше CV, которое вы будете отправлять, должно содержать не только ваш опыт работы, но и всякие полезные навыки: например то что вы делаете доклады, увлекаетесь йогой и можете вести занятия для команды, ведете блог и здоровом питании и пр. Все это может выделить вас из толпы
Резюме можно отправлять во все компании которые интересны и которые зовут на собес + площадки поиска работы: linkedin, Headhunter и другие.
Приоритеты между требованиями к работе используйте чтобы определить компании, которые больше соответствуют им, а также обязательно задавайте вопросы по поводу важных для вас требований.
Возможно компания вам не подойдет еще по обсуждению позиции с HR
Более крупные компании проводят собеседование в несколько этапов. к таким собеседованиям вам надо подтянуть теоретическую базу, алгоритмы, структуру данных, так как будет много вопросов на части разработки, которые в практики задеваются узким кругом разработчиков
Всегда будьте вежливым на интервью. Ваша репутация и поведения с людьми могут перевесить ваш технический уровень и крутость. Работать с токсичным человеком, который будет разлагать атмосферу и никто не захочет такого, чтобы он уничтожил команду. Хотя аутсорсинг,...
Хотя аутсорсинг, которому надо закрыть позицию согласится на всех и каждого
Как вы относитесь к выполнению тестового задания?
Для меня собеседование - это процесс знакомства, в рамках которого работодатель и кандидат должны понять свою заинтересованность друг в друге.
Не молчите на собеседованиях. Если не знаете ответ на вопрос - попробуйте предположить как это может быть реализовано, покатайтесь в чертогах своего разума и что-то сказать. Ход ваших мыслей очень важен и вы покажите что не растерялись
Не бойтесь сходить на интервью. Я считаю что это абсолютно нормально. Я хожу на интервью раз в 6-8 месяцев. Зачем? Чтобы понять насколько я отстаю от рынка, что спрашивают и что нужно подтянуть.
Также вы можете понять какую ЗП вам готовы предложить.
Ходите так на собесы?
Проваленное техническое интервью - это еще не показатель того что вам откажут. Вполне возможно интервьювер копается в пределах ваших знаний
Что делать если сидел долго на старом стеке и не работал с новыми вещами? Однозначно подтягивать, скорее всего про них спросят так как это стандарты. Они меняются и знать что сейчас актуально стоит всегда. Не глубоко, но стоит
Если вы провалили собеседование - всегда просите обратную связь и материалы, которые вам бы порекомендовали изучить, чтобы подтянуть уровень знаний
День. 6 Обучение
Сегодня поговори про шаринг знаний, самообучение развитие, курсы платные от кмопаний, сообществ. В текущие время также нельзя обойти онлайн образование
Я читаю, что делиться знаниями должен любой специалист уровня Senior и выше, но это только планка для обязательного старта. Можно смело начать раньше.
Для себя я выбрал доклады, видео, Telegram канал и статьи. В своем случае определяйте более удобный и комфортный формат для вас
Также, это может быть и формат ведения курсов (платных и необязательно) и менторинг.
В больших городах есть оффлайн планы курсы "Войти в IT", которые ищут преподавателей, а также можно найти онлайн курсы, которые делают курсы платно, и там вы сможете попробовать себя в роли преподавателя. В онлайн даже можно провести только 1 семинар или практическое занятие
Оффлайн курсы "Войти в IT" я не люблю так как они продают мечту, говорят что все трудоустроятся и зачастую наживаются на сложном положении людей, не рассказывая им про то, что деньги в IT получаются за тяжелый труд и постоянное совершенствование совких знаний
Я за формат менторинга. Он не принесет вам денег, но вы сможете потренироваться передавать знания, смотреть как развивать разработчика грамотно. Также более другие разработчики зачастую задают вопросы, которые матерым не приходят в голову и заставляют задуматься
Один из хороших таких примеров где вы можете потренироваться с лекциями и побыть ментором при поддержке более опытных коллег - Android Academy. Она есть в Тель-Авиве, Москве, Минске и Санкт-Петербурге
Не хотите работать с людьми? Тогда вам нужен вариант изолированный от них, например статьи, написание библиотеки или pet project, в котором вы будете развиваться и пробовать новые технологии
Также неплохой вариант разработать решение и написать о нем статью, например так я сделал несколько библиотек о которых написал статью. Мне дали полезную обратную связь в комментариях и я смог улучшить решение
Когда стоит переключиться на развитие за пределами свой начальной специализации (например разработчик)? Скорее всего стоит это делать по мере вашего желания двигаться в другие обязанности, но также может вынудить, что ваш опыт просто никому не нужен или спрос на нее упал
Вполне возможно бывают случаи, когда вы устали от мобильной разработки и/или просто хотите новый вызов. Например, я знаю @stepango и @int02h, которые ушли в развитие инфраструктур.
Читать книги - хороший способ развития, но мне не заходит. Не могу себя заставить дочитать книгу до конца в какой-то определенный срок. Как у вас с этим? Как себя подстегиваете?
Если кто проходил платные курсы по другой специальности, уже работая успешно в IT ? Опишите, пожалуйста, почему возникло такое желание и какого результата хотели добиться
Есть еще популярная практика откладывать статьи для прочтения на потом, например такой функционал есть в Safari, а также популярный сервис Pocket. У меня это превращается в кладбище, которое я разгребаю слишком поздно. Нужно дополнение в виде долга по прочтению и напоминания
Следующий формат самообразования - подкасты. Он очень специфичен и на любителя. Хоть сам и создаю подкасты, но мне очень интересно поговорить с гостями и надеюсь что кому-то интересно это послушать.
Недавно я приостановил новые выпуски подкаста. С вводом карантина прослушивания упали (не у меня одно). Порядка 1/3 всех прослушиваний происходят в дороге в офис на работу. Нет дороги - нет прослушиваний
Как же без оффлайн мероприятий: митапы и конференции. Если первый зачастую бесплатные и довольно годные, то вот вторые уже не таки дешевый и могут по стоимости билета доходить 1000$ (в РФ).
Быть в сообществе важно, чтобы понимать чем живет сфера. Быть на конференциях...
Быть на конференциях - сложный вопрос. Посмотреть все доклады не получиться т.к. обычно идёт несколько потоков. Можно пообщаться со спикерами и коллегами из крупных компаний - несомненный плюс. С другой стороны некоторые конференции зовут именитых спикеров, которые представляют..
...которы представляют из себя зачастую лишь маркетинговый ход и могут говорить о вещах, не тех которых ты хочешь услышать. Однажды все мои сомнения и поездки на конференции перевесило то, что я смог пообщаться с Бреславом и задать волнующие меня вопросы
Рекомендую попробовать конференции со стороны спикера. Это совсем другой опыт, много новых знакомств, самопиар и возможность получить прокачку своего доклада от лучших специалистов индустрии, которые являются членами программного комитета конференций
Я в силу своих интересов ежу на конференции чтобы посмотреть на организацию конференции и на спикеров. Именно на спикеров т.к. мне все равно о чем они говорят, мне интересно посмотреть как они рассказывают, как работают с аудиторией и задать интересующие меня вопросы
В этом году планировал поездить на конференции чтобы делать репортажи с них, общаться со спикерами и организаторами. Все планы отложились. Жду возобновления оффлайн конференций
Раньше я еще слушал подкасты, а сейчас совсем не хватает времени при работе и создании контента. Поэтому перешёл в режим “write only”
День 7. Вопрос-ответ
Писать большие треды в выходной не буду. Задавайте свои вопросы комментарием в этом треде, я постараюсь ответить.
На этой неделе я делился тем, что мною движет в работе сейчас. Возможно, я упустил что-то стоящее о чем мог рассказать
Понял что тема "Ответ-вопрос" - это не формат для этого аккаунта
Всем большое спасибо за эту неделю. Надеюсь вам было интересно. Если вам узнать больше про Android и Kotlin разработку - подписывайтесь @kirill_rozov
- https://ttttt.me/android_broadcast
- http://soundcloud.com/android_broadcast
- http://telepost.me/
- http://youtube.com/c/androidBroadcast
- http://youtube.com/c/AndroidDevVirtualMeetup
- http://kotlin.github.io/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines.flow/-flow/
- https://kotlinlang.org/docs/reference/coding-conventions.html#using-extension-functions
- https://en.wikipedia.org/wiki/Asynchrony_(computer_programming)
- http://github.com/Kotlin/kotlinx-io
- http://carbon.now.sh/