Архив недели @atimca
Понедельник
Доброе утро, на этой неделе с вами Максим Смирнов (
@Atimca ) iOS разработчик из компании MyCujoo ( @MyCujoo ).
Расписание на неделю, как таковое я решил не делать, так как думаю, что некоторые из тем могут занять больше дня, а другие - меньше. Но вот план по темам, очередность я думаю тоже может варьироваться.
План на неделю:
- Нидерланды (жизнь и работа)
- T shape
- Реактивщина и Однонаправленные архитектуры
- Процессы в команде
- Образование в России Высшее и Среднее
- Качество кода (Тесты и Рефакторинг)
- Собеседования
По моей задумке я хотел весь план сделать опросом, чтобы узнать темы наиболее для вас интересные. Но по правилам твиттера один пункт опроса - 25 символов, а пунктов всего 4. Так что не задалась у нас демократия с самого начала
Кстати, на данный момент у этого канала 3995 подписчиков. Я надеюсь мне выпадет честь округлить до 4000
Но перед тем как перейти к темам я хочу сказать спасибо предыдущему автору @vit_ius . Ему будет приятно, если вы подпишитесь на его твиттер!
А начнем мы со знакомства. Вы же должны в конце концов понимать, как меня так жизнь угораздила.
Зовут меня Максим Смирнов. Родился и вырос в городе Брянск. Учился там в хорошей школе, но помимо обучения в школе, никакого желания заниматься программированием тогда не было. У редкого школьника есть такое желание и я всегда немного завидую 16 летним сеньорам.
Единственное что показывало мой "талант" в школе - это то что на уроках информатики все задачки по программированию списывали у меня по кругу. Но там история скорее не потому что я такой умный, а потому что всем остальным было лень их решать.
В итоге я доучился до 11 класса и четко не понимал чем я хочу заниматься по жизни. В универы типо Бауманки идти особо не хотелось, уже тогда я не понимал особо зачем оно мне надо.
Поэтому выбрал вуз под названием "МИЭТ", что в Зеленограде. На тот момент у них была прекрасная фича, как поступление не на специальность, а на факультет.
Я выбрал в итоге МПиТК даже не потому что мне были интересны какие-то особые направления оттуда, а просто там был наибольший пропускной бал и я шел по логике, раз не Бауманка и МФТИ, то лучший факультет в МИЭТе
МИЭТ предоставлял и другой лайфхак для таких неопределившихся, как я. Через 1,5 года обучения мы выбирали кафедру. Я конечно же пошел на самую общую "ВТ".
В тот момент, я еще противился зову программировать. Бытовало мнение обывателя, что программистов и так очень много и никому они не нужны.
И тут начинается самое интересное действо. В какой-то момент, один из профессоров предлагает поработать у него в конторе, которая занимается разработкой микроэлектроники. Ну наконец-то подумал я, сейчас я стану инженером. В итоге я и мой дружбан вместе пошли работать в это место.
Ну и что вы думаете? На дворе 2012 вроде год. Нас посадили 3х студентов за один древний pentium 4 (это не шутка) и заставили 1,5 месяца раскладывать резисторы с конденсаторами по коробкам.
В первый месяц нам еще не платили денег, но мы и счастливы были. Нас наконец-то научат инженерному делу и мы заживем.
Но не стоит обольщаться. Моя первая зп на том месте была 5000р. Что после налогов давало 4350р. А, как вам такое? В этой конторе было правило о повышение зп на 5к каждые пол года. Так что мое повышение после НГ уже было 8700 чистыми!
Вы наверное уже догадались, что я люблю травить байки...
А знаете, что самое ужасное? Это когда у меня была зп 17400 на руки, я приезжал в своей родной город и чувствовал себя чуть ли ни королем бензоколонки с такими-то деньжищами! О том, что в it можно зарабатывать 500к в нс я еще не знал
Немного ускоримся и перейдем в 2015 год. На тот момент сменился начальник и обещал всем золотые горы и зп по 50к гросс! А потом через год 70! Но Совок одним начальником из компании не вывести, так что первые 50 нам дали, а вот повышения мы так и не дождались.
Цифры сейчас могут быть не точными, но погрешность не более 10-15к рублей.
В тот момент у меня уже был мак (вы забыли, я же бедный студент). У меня была самая базовая прошка конца 13 года и копил я на нее пару лет. Но в тот момент, я активно увлекался музыкой и мак на мой взгляд лучше всего подходил для моих задач.
Кстати вот ссылка на мой бенд, который уже не функционирует несколько лет. Но мы же хотим узнать друг друга поближе? vk.com/deviant_state
@mobileunderhood А че за приложение ты делаешь ? Типо мне помогает найти агента ?
На самом деле я хотел об этом чуть позже. Но вижу, что меня куда-то понесло, поэтому расскажу сейчас. Я занимаюсь приложением, которое по сути явлеется нетфликсом для футбольных матчей. У нас есть и второе приложение, которые помогает осуществлять эти самые трансляции. twitter.com/AntonKulibyaki…
По сути в основном на платформе мы собираем все команды и чемпионаты, которые нельзя увидеть по телеку. Хотя из крупного были чемпионат Беларуси и Таджикистана.
mycujoo.tv/en/
Начинал заниматься iOS разработкой я в несколько подходов. Пытался найти книги или уроки. Это сейчас идешь на wenderlich'а покупаешь книжку для самых маленьких и погнал. А в 2014-2015 было еще тяжко. Хотя меня конечно могут поправить и сказать в 2011-2012 вообще ничего не было
Так вот спасением для меня стали божественные уроки от Алексея Скутаренко. В то время прохождение курса с выполнением дз могло гарантировать скил разработчика уровня джун.
Пройдя курсы я попробовал пособеседоваться в несколько компаний. На первом собеседовании я прошел про боль и страдания, так как тогда еще не знал, что вообще могут спрашивать. Но этого было достаточно, чтобы понять что вообще нужно изучать перед собесами.
Вот эта книжка открыла мне первую дверь по прохождению собеседований. Особенно в ней понятна расписана работа с памятью.
litres.ru/mett-gellovey/…
Дело было в марте 2016 года и надо было писать магистерскую диссертацию. А увольняться из компании, где на этаже сидит вся кафедра такое за 3 месяца до сдачи.
Но у меня есть друг, у которого на тот момент была супер мини студия по разработке мобильных приложений. Прям самый начальный уровень, где приложение делается за 50-200к.
И мое первое собеседование на iOS с последующим трудоустройством прошло в формате. "Вот тебе дизайн, посмотри сможешь ли сделать". Так по вечерам и по выходным, после написания диссертации, работы в полный день, музыкальной банды и тренировок 3 раза в неделю я стал iOS разрабом
Кстати, пожалуйста так не делайте. В то время у меня были большие проблемы с раздражительностью и агрессией.
В день оглашения результатов по защите диссертации я пошел увольняться из своей конторы. Начальник меня слезно умолял остаться и доделать одну вещь. Я конечно согласился на это дело, не могу же я так просто подвести.
Но потом оказалось, что за тот месяц, в который я должен был доделывать свои дела мне хотели заплатить 0 рублей. С мотивацией на то, что я в прошлом тратил много времени на диплом. Ну вы поняли, вас просят поработать, а то без вас пропадут. Но деньги, какие деньги
@mobileunderhood Это самое! А у вас нативное или на rn ? И как вообще к rn относитесь ?
Приложение - плеер, которым занимаюсь я - полностью нативное. Приложение, для трансляций написано на rn. Пока на самом деле нативный подход рекомендует себя лучше, но переписывать приложение трансляций пока не планируют. twitter.com/AntonKulibyaki…
Уволился я в тот же день, когда узнал эту информацию. Так что, ребятки и девчонки, работа в гос компании с контрактом не убережет вас от невыплат зп. Я не призываю вас работать в черную, но будьте осторожны, когда в договоре цифра меньше, чем на самом деле.
И в этот момент моей основной профессией стала разработка под iOS.
@mobileunderhood О, Мэтт, мой первый менеджер в фб :) сейчас правда он снова разработчик
Можешь ему передать привет и сказать спасибо! Я кстати честно купил книгу, к чему вас всех и призываю! twitter.com/ruggerprogramm…
@mobileunderhood Брат , а можешь по подробнее сказать , кагбы были ли с ним проблемы ? Или касяки вылазиют во время работы ? И почему так получилось разделялка одно натив , другое rn ?
Я в rn никогда особо сам не лез в нашей компании. Но, как показывает практика в нем всегда какие-то были проблемы. То крошилось как-то активно, а это приложение для трансляции. Оно крашится - трансляция заканчивается. То баги постоянно там вычищали. twitter.com/AntonKulibyaki…
Теперь немного форсируем часть, которую я рассказываю на собеседованиях. С моим другом мы сразу договаривались, что я доделаю пару проектов и уйду в компанию посерьезней. Поэтому в сентябре я стартовал в другой компании.
Компания finch.fm - аутсорс, которому не плевать на качество кода. Много крупных проектов. Спасибо за то, что я смог окунуться почти во все, один написать с нуля. Это дало мне широкие знания об iOS разработке в принципе.
В тот момент я имел как минимум базовые понятия по всем разделам iOS. Но в какой-то момент я вырос до всея iOS в компании и расти больше, как разработчику было некуда, поэтому я ушел в продукт.
tutu.ru - наверное вы слышали про компанию. Реактивные дерзкие однонаправленные ребята. Спасибо @ixrevo @DevAlloy, что научили писать тесты, не стрелять в ногу с rx'ом и вообще в этой компании мои мысли о становлении разработчика изменились.
Спасибо всем с кем я работал в туту, у меня просто вашего твиттера нет.
И тут мы плавно приближаемся к Нидерландам. Надеюсь я вас не сильно загрузил историями о себе. Но это было важно, для того чтобы вы смогли смотреть на все, что я говорю моими глазами и проще понимать, все что сказано дальше.
#mu_работа_из_дома
Но для начала, давайте по быстрому затронем одну из насущных тем, как работа из дома и личная эфективность. Как вы наверное заметили, я добавил хэштег в шапку. По таким хэштегам вы сможете отслеживать большие топики, не разделенные на треды
#mu_работа_из_дома Но для начала, давайте по быстрому затронем одну из насущных тем, как работа из дома и личная эфективность. Как вы наверное заметили, я добавил хэштег в шапку. По таким хэштегам вы сможете отслеживать большие топики, не разделенные на треды
#mu_работа_из_дома
У меня никогда не было особых проблем с концентрацией над задачами, поэтому просто расскажу, как обстоят дела сейчас у меня. twitter.com/mobileunderhoo…
Как я уже сказал, с концентрацией проблем никогда не было. Но! Несколько лет назад я заметил, что не совсем продуктивен, даже не отвлекаясь на соц сеточки и прочее. В тот момент большим толчком моей личной эффективности стала книга @cartmendum
links.mnogosdelal.ru/book
На одних джедайских техниках не уедешь. Так что, вот еще несколько поинтов, о том, как я работаю из дома.
У меня по сути есть 2 рабочих места. 1е - это мой миниофис в спальне.
2е - это рабочее место на террасе. Всю прошлую неделю у нас было 20 градусов. В качестве второго монитора я использовал iPad с sidecar. Скажу вам крайне удобно, картинка даже без провода передается крайне плавно.
Так вот каждое утро я начинал работа на диване в гостиной, а потом после утреннего митинга в компании передвигался на террасу, где работал до того момента, как сядет батарея в MacBook. Потом полноценная работа за столом, пока ноут не зарядится и так по новой.
Смена обстановки действительно помогает. А еще за неделю я обрел хороший загар дачника.
Моя компания, как и у @vit_ius разрешила забрать все необходимое добро с работы. Жалко, что только кресло не влезло в легковушку человека, который мне все это привез.
Так вот, пока я ждал доставку кресла, пришлось сидеть и мучаться на обычном стуле. Не экономьте на хорошем кресле. Карантин во всех странах продлиться несколько месяцев. Хорошее кресло - это здоровая спина. Здоровая спина - это хорошая продуктивность в работе!
Немного о спорте. Когда-то давно я активно увлекался пауэрлифтингом в категории становой тяги. Но никаких результатов мне добиться не удалось. Для каких-то успехов в таком хобби нужно отдавать все свободное время.
В итоге мне это все надоело и через какое-то время я вернулся в спорт. До карантина занимался всякими околокросфитовыми функциональными тренировками.
Это я все к чему. Спорт очень сильно разгоняет общую производительность организма. Особенно сейчас, сидя дома нужно как-то заставлять себя двигаться. Я сам по себе человек ленивый и поэтому стараюсь делать минимум 5 подходов на все тело дома в день.
Каждая тренировка занимается максимум 5-10 минут, что не очень много. Так-же, для тренировки всего тела, я себе купил TRX, что и всем советую
#mu_работа_из_дома
Последнее, чем бы хотелось завершить топик про работу из дома. Сейчас очень популярно стало призывать начинать изучать что-то новое, записываться на курсы и т.д. Я и сам начал изучать дизайн в это время.
Но это нормально свободное время посвятить отдыху! Вы никому не обязаны выйти из картина более прокаченной версией себя. Лучше смотрите сериалы и играйте в игры. Отдыхайте! Таким образом вы выйдете из карантина лучшим, более отдохнувшим и готовым к новым свершением!
@mobileunderhood Ну то есть я правильно понял онлайн падает ? Если он падает то почему бы тогда не переписать ?
Вроде как эту проблему забороли с огромным количеством крашей. Вообще мое мнение немного странно писать такое платформозависимое приложение на RN. По сути там постоянная работа с аппаратной частью, что не совсем удается сделать кроссплатформенно. twitter.com/AntonKulibyaki…
Насколько я понимаю - это был эксперимент. Для того, чтобы это все переписать нужны ресурсы, а на данный момент в компании куча фронтов. 1 iOS и 2 Android разработчика. Таким образом, до переписывания пока не дошло.
@mobileunderhood Уже 3990... Ты не в ту сторону воюешь
Тут похоже одни программисты. Байки мои не заходят twitter.com/part_time_vegi…
#mu_Нидерланды
На себе можно закончить.
Когда я просматривал твиты авторов, которые вели этот канал, я нактнулся на @nikolay_ashanin, который уже живет в Нидерландах. Тут я подумал, что все, рассказывать будет не о чем. Но нет, наше мнение по некоторым вопросам оказалось разным
Поэтому кому не лень почитайте его треды про это, чтобы увидеть более целостную картину. Так-же, не забывайте накидывать вопросы, если я забуду про что-то рассказать
Все нижесказанное будет основываться на моем опыте жизни в этой стране в течение одного года + рассказы очевидцев
#mu_Нидерланды
Почему Нидерланды?
Первое о чем хотелось бы поговорить - это почему я выбрал именно Нидерланды.
Наверное еще под конец универа я начал изучать подходящие страны для иммиграции. Для начала я взял те страны, в которых есть в принципе программы иммиграции. То есть какая-нибудь Норвегия не особо-то и хочет принимать у себя даже высококвалифицированных людей.
Итого получилось не то чтобы много стран (США, Канада, Австралия, Англия, Нидерланды, Германия, Польша, Испания и т.д.).
Южные страны типа Испании на самом деле рассматривать со стороны карьерных интересов даже не стоит. Зарплаты там сильно ниже Московских, а стоимость жизни даже выше.
Я рассматривал страны с сильной экономикой и развитым IT сектором. В итоге получается: США, Канада, Австралия, Англия, Нидерланды, Германия.
Хотелось ехать в англоговорящую страну: США, Канада, Австралия, Англия, Нидерланды. Нидерланды по праву может считаться англоговорящей, потому что каждый пенсионер говорит на чистом и понятном английском. В кинотеатрах показывают фильмы в оригинале и так далее.
Про язык я скорее всего подробнее напишу в одном из следующих постов.
У Англии сейчас проблемы из-за брексита. Куча компаний переезжает в Нидерланды или в Германию. Остается США, Канада, Австралия, Нидерланды.
США крайне страна неоднозначная на мой взгляд. Зарплаты там, конечно, запредельные но, судя по отзывам людей, траты такие же сумасшедшие. Также общество крайне расслоенное и вот этот ваш весь капитализм. Короче там много бомжей и наркоманов. Остается Канада, Австралия, Нидерланды
Итак Канада и Австралия ну уж очень далеко от малой родины, а у меня все-таки еще семья там. К тому-же у Канады и Австралии те же проблемы, что и в США, в плане автомобильного бума.
Мне совершенно не хочется каждое утро стоять в пробках, когда я могу ездить по шикарным велодорогам, которые протянулись по всей стране и даже между городами.
Ну вот и все! Краткий рассказ о том, почему максимально оптимальным вариантом мне на тот момент показались Нидерланды)
#mu_Нидерланды
Я сегодня почему такой активный? Сегодня в Нидерландах 4й день подряд празднуется католическая Пасха. Еще и похолодало.
Вот вам еще дико заедливый трек про Нидерланды.
youtu.be/QBSELrm2-g0
@mobileunderhood А яички красят?
Я кстати не знаю((( Почти месяц сижу дома, местная жизнь пролетает мимо twitter.com/grikkco/status…
#mu_Нидерланды
Пойду с козырей. Поговорим о том, о чем в России говорить даже нельзя. 🌿
Дисклеймер: все нижесказанное будет основываться на опыте других людей. Наркотики - это плохо, сам никогда законов не нарушал и вам не советую.
Сейчас немного придется развеять миф, что местные не курят. Прошлый автор как раз об этом говорил.
twitter.com/i/web/status/1…
Курят здесь местные только в путь. Курят старые леди за 70, курят и молодые. Но вам я не советую!
@mobileunderhood Сделай анонс про плоскую землю
НЕТ! Земля - это геоид. twitter.com/pingwinator/st…
@mobileunderhood Поясни за позицию!)
Обколются этой вашей мариейивановной, а потом... ну вы и сами знаете twitter.com/virocracy/stat…
#mu_Нидерланды
Я не знаю почему, но твиттер порой прекращает давать возможность продолжить тред. Так вот про 🌿.
Совершенно случайно проезжая мимо кофешопа, когда их собирались закрывать можно было наблюдать такие очереди. И я вас уверяю стояла там только местная речь.
Сейчас, насколько мне известно, кофешопы открыли обратно. Кажется, что правительство поняло, что лучше пускай курят и расслабляются, чем сходят с ума в замкнутых стенах и увеличивают домашнее насилие.
Вообще в Нидерландах нет легалайза как такового. По сути дела - это просто супер декриминализация. У кофешопов действительно есть лицензия на продажу, НО они не могут закупать и официально товар. Насколько я понимаю, выращивать тоже им нельзя.
Трава и прочие вещи в кофешопе появляются магическим образом. По улице опять-же больше 5 грамм нельзя носить. И после появления в кофешопе все как-бы легализируется ¯_(ツ)_/¯. Поэтому на продажу травы налог 51%
#mu_Нидерланды
Теперь еще один плюс Нидерландов - Work/Life баланс. Точнее будет сказать LIFE/work баланс. Приведу пример: в нашей компании есть так называемый beer o'clock.
Это каждую пятницу в 16:00 можно смело перестать работать, пойти к крану с пивом, да у нас есть кран с пивом, и налить себе пива и начать просто общаться с колетами. Вообще любые мероприятия проходят в рабочее время.
Все берегут ваше личное время, ведь после работы у вас могут быть планы на семью и друзей. Никто вас не смеет задерживать. Это на самом деле откликается во всем образе жизни Нидерландцев.
В основном принято работать с 9 до 17. Часто приходилось уходить, практически последним в 18. Хотя есть и исключения, в одной из компаний была фишка с ужином, людей кормили вроде в 19, то есть по сути скрытая мотивация работать дольше. Но вы в такие компании не идите
Вообще я хочу зафиксировать один момент о Нидерландах. Сюда стоит ехать не за блистательной карьерой, хотя и это возможно. А за наслаждением жизнью.
Нидерланды так-же являются хорошим направлением для семей с детьми. Здесь огромное количество льгот на детей и по сути все для детей стоит сущие копейки, даже если ваши дети не граждане этой страны.
@mobileunderhood От обычных кофешопов. Кто-то из твоих друзей должен там быть
#mu_Нидерланды
Да, совсем забыл сказать. Кофешопы, о которых я рассказывал - это не там где продают кофе. Просто первые лицензии на продажу травы и прочего получали именно кофешопы (там где продавали кофе). Тебе здесь больше подразумевается именно малекая кафешка с травой twitter.com/vit_ius/status…
@mobileunderhood А что с образованием? Нет такой жуткой сепарации как в Германии?
К сожалению тему образования я никак не ресерчил( Приехал сюда по рабочей визе и больше образование меня не интересует.
Но если мы говорим о детях, то как минимум школьному + допольнительному школьному тут поют оды. Корова не моя, мне рассказывали местные и приехавшие родители twitter.com/CocoTut02/stat…
#mu_Нидерланды
Немного поговорив о жизни здесь, я расскажу, как я перезжал.
Сначала я нашел на LinkedIn несколько людей, работающих в той сфере, которая мне интересна, и поспрашивал у них как оно и чего. Должно быть вполне очевидно, что не надо ехать в другую страну, не поговорив с соотечественниками, которые это уже сделали.
Далее я начал откликаться на все интересные мне вакансии. Одним из советов, который я узнал, было то, что лучше всего собеседоваться сразу в несколько компаний. В моем случае я собеседовался одновременно в 5 компаний. Цель у такого большого похода довольно проста.
Большинство компаний в Нидерландах никогда в жизни не предложат нормальную зарплату с ходу. Они все-таки на ваш переезд тратят кучу денег, а потом еще и ждут вас несколько месяцев, пока вы переедете.
Так вот, чтобы как-то этот вопрос исправить, после момента получения офферов можно начинать торговаться и прямым текстом говорить, что вот эта компания мне предложила на 10к больше, можем ли мы с этим что-то сделать.
К сожалению, не все компании могут конкурировать в плане зарплат между собой. Другого объяснения у меня нет, почему разброс в офферах был настолько большой. В принципе это подтверждают другие люди, с которыми я общался.
Помните я рассказывал про work/life balance? Так вот девиз местных людей: #неспеша! Ребята здесь действительно не торопились, и процесс интервью у меня занял больше месяца. По сравнению с нашими собеседованиями, когда hr звонит через пару часов после собеседования.
Приходилось еще немного лавировать между компаниями, чтобы процесс собеседования шел примерно на одинаковой скорости.
В итоге я получил 3 оффера из 5. Забавный момент, что один из офферов я не получил только потому, что люди из 2х компаний знали друг друга и, видимо, не захотели конкурировать, а жаль. После этого я немного смог увеличить один из самых привлекательных офферов и принял его
#mu_Нидерланды
Вернемся немного назад и поговорим о том на какой уровень сюда ехать и какие к вам в общем-то могут быть требования.
Начнем с зарплат. Зарплата Senior iOS разработчика начинается с 70к gross в год. Жить в 2м можно я думаю примерно на 65к. Проблема в том, что пока вы еще не здесь местные компании вас будут пытаться мягко говоря обмануть, говорить что 4 года опыта - это джунглей и т.д.
Помните девиз? #неспеша тут действительно есть джуны по 4 года опыта. Вот надо сначала им объяснить, что у нашего брата год за местных 3 по опыту.
Вообще на лычки лучше не ориентироваться, а выставлять себе четкие рамки по деньгам. Помогут в этом 2 сайта:
expatistan.com - тут вы сможете сравнить стоимость жизни
thetax.nl - здесь можно прикинуть сколько будет оставаться на руки
@mobileunderhood А почему в Туту ты взглянул на разработку по новому ?
В туту я расширил свои рамки понимания пути становления разработчика. И решил, что знание фреймворков и апи достаточно знать на базовом уровне, а самое важное развивать фундаментальные навыки написания тестов, рефакторинга и т.д. twitter.com/AntonKulibyaki…
Хочется добавить, что траты здесь немного другие, как в той же Москве. Так что, прямо в лоб сравнивать свою зп здесь и там не совсем правильно. Но об этом немного позже
Часто спрашивают, какой нужен уровень знания английского, чтобы приехать. Ответ простой - того знания, которого хватит пройти все этапы собеседования. Своих некоторых коллег по началу я понимал с диким трудом из-за их акцента и гор ошибок. Так что по сути требований никаких нет
#mu_Нидерланды
Итак вы получили оффер. Давайте поговорим про процесс переезда.
Начнется некоторая бумажная волокита, которая потребует документов по месту регистрации, так что узнайте что нужно заранее.
После этого вы получите так называемую визу высококвалифицированного мигранта. Она позволит вам и вашему партнеру (да-да не обязательно законному супругу) жить, учиться и работать в Нидерландах.
Обычно первый контракт дают на 1 год, поэтому первая виза "residence permit" дается вам на 1 год. Обычно второй контракт заключают на постоянной основе, что дает визу на 5 лет. Хочу упомянуть, что вы полностью не привязаны к работодателю, можете менять его в любое время
С рабочей визой можно так-же путешествовать по всему Шенгену (не Евросоюзу).
#mu_Нидерланды
Плюшки для новых мигрантов:
Правительсво крайне заинтересовано в новоприбывших кадрах, поэтому каждый, подходящий под определенные условия может податься на так называемый 30% ruling на 5 лет.
В Нидерландах динамическое налогообложение. 30% ruling - убирает обложение налогов с 30% вашей зп. Для меня чистыми это выходит около 1к евро в месяц. Так что вы вполне можете в итоге зарабатывать больше своего Нидерландского начальника)))
@mobileunderhood А ты покрась и посмотри, прибегут ли к тебе соседи
#mu_Нидерланды
Я спросил у целого голанда. Яйца красят! twitter.com/grikkco/status…
@mobileunderhood а как коллеги реагировали на то, что ты их не понимаешь?)
Совершенно адекватно. Во первых все понимают, что говорят с акцентами и пока ты к этому акценту не привыкнешь - тебя не понимают. Хуже всего нейтивы Британцы/Американцы. Но они даже смеются друг над другом, что их никто вообще не понимает. Во вторых тут все сильно вежливые twitter.com/arefanov/statu…
#mu_Нидерланды
О культурных отличиях. Некоторые спрашивают, как же мы там то общаться с бусурманами будем. Был ли культурный шок?
Когда я переехал из своего уютного Брянска учиться в Москву в общагу - вот тогда у меня был культурный шок.
После переезда в Нидерланды я этого особо не почувствовал. Да люди разные, да у местных есть какие-то свои привычки #неспеша. Но поверьте, по началу большим шоком было поведение соседа из Иркутска и соседа из Уфы
#mu_Нидерланды
Пока о положительном закончим. Поехали о минусах. Начнем с местного IT vs Москвоское
Процесс собеседования. Как часто вы проходили все этапы собеседования за неделю в Москве? Я почти всегда. Забудьте! Местные компании спрашивают вас не просто так ваше время на ближайшие 2 недели. Самое быстрое, на что можно расчитывать собес в неделю. Собеседований обычно штуки 4
Местные hr в большинстве своем - просто мрак. Вот это по сути калька с любого письма hr вам. Вы видите хоть что нибудь в 3х абзацах про саму вакансию? И вот я не вижу.
Они все норовят с вами пообщаться по телефону, чтобы рассказать о вакансии, которую вы найдете на соседней вкладке на LinkedIn. На ваши даже базовые вопросы о компании они часто ответить не в состоянии. Отвечают иногда по день-два #неспеша
Основная проблема в том, что большинство hr сидят в отсорс компаниях и не хотят разглашать данные, чтобы вы не откликнулись в обход их. Потом эти hr идут в работать в компании и не меняют свою тактику.
Конечно есть исключения и есть совершенные милашки и котики, которые адекватно с вами общаются, не звонят каждый день в процессе, чтобы просто узнать как дела, а просто делают свою работу.
Это в след раз, когда вы будете наезжать на Московских hr, которые отвечают вам на все вопросы в тележке
@mobileunderhood Ну от Сергея разработчика из Фейсбук - я такое слышал , что тут it не основной заработок у людей !
#mu_Нидерланды
Собственно, как я и говорил раньше ехать сюда нужно не работать. Ехать сюда нужно сначала жить, а потом работать twitter.com/AntonKulibyaki…
Еще здесь есть какой-то пунктик на тестовые задания. Каждая компания норовит дать разработчику на позицию senior тестовое задание, в котором надо сделать 2 экрана с поиском, выдачей и детальным экраном. Для таких я уже собрал некоторое портфолио на гитхабе.
По сути - это является проверкой на адекватность компании. Мой совет пройти первое интервью (не телефонный скрининг) с разработчиком/менеджером или кто там есть и если вам предлагают тестовое смело просить его заменить на ваш код.
Если вам пытаются доказать в процессе интервью, что их 2 экрана особенные и показывают реальные навыки программирования, то я бы советовал расставаться с такой компанией.
А еще расскажу кейс по медлительности #неспеша. У меня было собеседование в один стартап, который состоит из 10 человек. После первого скрининг разговора с hr, она мне сказала, что обычно после этого разговора резюме рассматривают 3-4 дня. Ну вы поняли
Хотя, что я только о грустном. В местных собеседованиях есть свои плюсы. Здесь больше принято собеседовать, какой ты человек и насколько подойдешь в команду. Нормальные компании и так верят, что код ты можешь писать судя по гитхабу и опыту.
Так что большинство тех собеседований проходят в довольно расслабленной обстановке. Собеседующий, с горящими глазами, не пытается докопаться до вопроса, на который вы не сможете ответить. Разговор больше происходит на уровне высоких материй: проектировании, отношении к тестам...
#mu_Нидерланды
Местное IT действительно кажется слабее нашего в общих представлениях. Конечно здесь много классных разработчиков. Мне трудно оценивать людей на глаз, но ощущение действительно складывается, что за всем этим #неспеша народ заканчивает универы в 25.
Потом берет пару лет поразмышлять о жизни. А потом, только к 30 начинает думать о своей карьере. Поэтому на местном CocoaHeads я уже выгляжу, как мальчишка, заглянувший на праздник к взрослым
@mobileunderhood @Atimca @MyCujoo где искал вакансии? Как выбирал компании(тк не все готовы оплачивать релокейт)
#mu_Нидерланды
Я в основном искал все на LinkedIn. Если вакансия на английском и в ней не сказано, что релокейта нет - значит он есть. twitter.com/westk0r/status…
Вообще вся местная iOS движуха кажется немного более спокойной. Меньше митапов и конференций. Так-же отношение немного другое. Приведу пример:
Я как-то захотел выступить на местном CocoaHeads. Подошел к организатору и спросил, что для этого нужно. На что получил ответ, что я должен скинуть название доклада. Это в общем то и все. На первый свой доклад в Москве организаторы заставляли меня его переделывать 4 раза.
Кстати вот он мой доклад. Можете послушать мой уровень ранглиша. Этого более чем достаточно
youtu.be/i2vtD4DMk8Q
@mobileunderhood А знания они в разговоре проверяют ?
А какие вы знания хотите проверить за 1 час?) На самом деле у меня есть отдельная тема на эту неделю про собеседования. Поэтому стоит сейчас немного потерпеть и все наладится twitter.com/AntonKulibyaki…
#mu_Нидерланды
IT здесь не очень и это сильно отражается на местных сервисах.
Стоит забыть про кешбеки в банках, хотя началась движуха и даже местные банки начали шевелиться. Спасибо разным револютам я пологаю
А вот история про интернет.
Стоит начать с того, что здесь провода тянут одни компании, а потом сам интернет предоставляют другие компании. Так что, когда вы приедете в местным дом, то скорее всего у вас уже будут стоять все необходимые розетки в гостиной.
Недавно моя соседка хотела подключить интернет. У нас в доме есть доступ только к DSL, вы вообще помните, что это такое?) Почти везде уже тянут оптику, но наш хозяин дома зажал 1500 евро, на то чтобы протащить инфраструктуру в дом (см предыдущий пост)
Таким образом, почти все новые подключения происходят так, что вам почтой приходит роутер и вы его просто подключаете в розетку. Но в нашем случае местные умельцы смогли прокачать DSL до 70 мегабит и это требует вызов мастера.
Местная интернет провайдер в открытую заявил, что новые клиенты для них не приоритет и монтажник может прийти только через 2 недели. Ну 2 недели и 2 недели.
Но в итоге моей соседке позвонила служба поддержки и сказала, что у них там корона и монтажник только может прийти в конце апреля. Очевидно, что ждать месяц интернета не очень. На что ей было объяснено, что у них корона и новые клиенты не в приоритете.
Когда она попросила ей перезвонить, чтобы решить вопрос, служба поддержки сказала - нет, мы разговариваем сейчас. В итоге соседка отменила подключение.
U - Customer Service по голандски.
@mobileunderhood а какой испытательный срок обычно? тоже полгода?
#mu_Нидерланды
Если у вас контракт на год, то испытательный срок нельзя делать по закону больше 1 месяца. Если у вас постоянный контрак, то если мне не изменяет память по закону нельзя делать больше 2х twitter.com/pingwinator/st…
#mu_Нидерланды
Короновирус в Нидерландах. Я просто добавлю мемасиков и клип. Заодно хоть посмотрите, как звучит местный язык.
youtu.be/IHZSGYX4zFA
Они тут короче вообще не пуганные респираторными заболеваниями. Государство ждет, пока часть населения получит иммунитет. Хотя всех призывают сидеть дома, на улице соблюдать дистанцию и дают штраф 400 евро за любые собрания больше 3х человек. Но посмотрите на фото в прошлом посте
@mobileunderhood а виза как дается при годовом контракте? время контракта + 3 месяца зазор?
Вообще как есть делается. Вылететь из страны с истекшей визой можно, либо продлить ее, не вылетая из страны. Но это не точно. Точно, что проблем с этим нет twitter.com/pingwinator/st…
#mu_Нидерланды
Медицина
Отдельный топик. Нашего постсоветского брата местная медицина может напугать. Всякую ерунду типо грипа и простуды они не лечат. Но вот, если у вас что-то серьезное, то вас будут лечить по высшему классу.
Народ тут активно живет больше 100 лет. Основная задача медицины дать местным детям болеть чем только можно без антибиотиков, наращивать иммунитет. Ну а потом в взрослом возрасте не болеть всякой ерундой в принципе.
Я сталкивался с местной медициной всего один раз с перхотью. Даже до врача не дошел, мне до приема выписали шампунь, который я просто забрал в аптеке.
#mu_Нидерланды
Эм минусы - все!
Погнали по оставшимся плюсам
Архитектура, о эта архитектура. Каждый город разный и уникальный. Я живу в городе Зандам, в городе стоит памятник Петру I и дом, в котором он здесь жил. Петр приехал сначала в Зандам учиться строить корабли
Гаага - по сути столица. Тут заседает правительство.
Хорн - по сути маленький городишко.
Нидерланды после войны занимались такой-же ересью, как сейчас занимаются в России. Тут тоже есть панельки, а каналы закапывали, чтобы строить автотрассы. Но теперь все делают иначе. Только посмотрите, как они встраивают новые дома, в старую архитектуру.
Но тут не только пытаются строить, чтобы вписывалось под старину. Если район новый, то и дома новые.
varlamov.ru/2951952.html
Так-же тут пытаются строить так, чтобы одновременно жилье могли позволить люди разного достатка. Это все делается для того, чтобы не расслаивать общество и не создавать гетто районы. По сути с домом за миллион может стоять другой дом за 100к евро.
#mu_Нидерланды
Все знают проблемму Москвы? Москва - это отдельное госсударство и жизнь в Брянске != жизни и зарплатам в Москве. Так вот тут не так!
Любая деревня - это не жопа мира! Государство очень пушит тему, чтобы народ не жил в 3х городах. По закону работодатель оплачивает вам проезд до офиса, если вы живете больше 10км.
Из любой точки страны, в любою точку страны можно доехать на велосипеде ♥️! Помните я говорил, что живу в Зандаме? А офис у меня в Амстердаме. Каждый день я проезжаю по прекрасным велодорогам 10км в одну сторону и в феврале и в июле! За это мне еще доплачивают 80 евро к зп
А еще здесь какой-то бешеный микс природы/экологии и современного города. Это нормально видеть каждый день зайцев перегибающих дорогу и лебедей плавающих в канале.
Нидерланды входят в топ стран, которые рассматривают мировые игроки. Здесь есть Амазон, google stadia работает, куча стартапов доставляют всякие вещи с кикстартера и все такое. То есть проблемы, которое создает #неспеша общество здесь с лихвой покрываются мировыми компаниями.
@mobileunderhood Я бы не был так категоричен и вообще не поднимал эту тему, если у тебя нет личного опыта. У меня двое и это очень дорого в Нидерландах
Как я и сказал в самом начале, все сказанное только через призму моего опыта, либо по рассказам очевидцев. Большое спасибо и я буду только рад, если кто-то меня будет поправлять на виражах. twitter.com/atmamont/statu…
#mu_Нидерланды
Последнее, что хочется затронуть по теме - это еда.
Местная пятерочка примерно на уровне нашей Азбуки вкуса. Хотя есть и магазины попроще, но почему этот более распространен. Овощи и фрукты хорошего качество.
Мясо лучше покупать у мясника, хотя в супермаркетах продается неплохая рыба. Стоит все примерно как и в Москве. Что-то дороже - курица. Курица тут бегает и резвится, поэтому стоит как корова. Зато рыба сильно дешевле. Забавный момент, что икра, привезённая из России стоит дешевле
По поводу голандской кухни. Она короче странная - конец истории. Но тут много турецких забегаловок с шавухой. Много итальяских, греческих и прочих ресторанов. Так что с этим особо проблем нет
На сегодня все. Сорян, что так много нагрузил вас - завтра рабочий день. Можете подписываться обратно) Пишите пожалуйста свои вопросы, а я пока
#mu_Нидерланды
В голландском есть забавные для русскоязычного уха слова. По сути слово "Goed" - хорошо всегда сокращают до "Goe", что звучит как хуе. Ну вот подумайте, как звучит хороший соус на местном языке. Живите теперь с этой информацией.
@mobileunderhood Рад, что книга помогла ;) У меня теперь и вторая есть: links.mnogosdelal.ru/JediWay ;)
Не, ну это вроде не совсем реклама. Уже слышал пару отзывов, возможно будет полезно тем, кто на самоизоляции решил освоить вообще все навыки twitter.com/cartmendum/sta…
@mobileunderhood Про дошкольное воспитание? Декретный отпуск? Система школьного образования? Если получил ПМЖ в НД, можно ли работать в Германии? Возможно ли двойное гражданство? Вам удалось выучить их язык? Или на английском?
#mu_Нидерланды Мне уже ударили по рукам за неточности про детей. Поэтому я не буду. Декрет прописывается в контакте с работодателем. Работать в Германии по местному residence permit нельзя. Но после какого-то порога по зп можно оформить синию карту, которая это позволяет делать. twitter.com/AHome62/status…
По поводу языка. Английского хватит полностью, но если хотите погрузиться в местную жизнь, нужно учить местный. Вся почта будет приходить на местном, некоторые приложения и сайты не переведены. У меня в компании люди живут здесь больше 3х лет и даже не думают учить язык
Вторник
@mobileunderhood Кажется, что язык не учат все с паспортами ЕС, так как нет смысла менять гражданство. Я начал учить язык сразу же, но не могу сказать, что идёт легко. Еле добрался до А2
Хорошее замечание. Ещё его довольно трудно учить, потому что в этой стране вы будете окружены английским. Да, некоторые сайты и приложения на голландском, но этого не достаточно для хорошей практики. twitter.com/atmamont/statu…
Чтобы начать хотя бы общаться на улице нужен уже какой-то уровень языка. По рассказам, местные если слышат, что вы не очень говорите, просто переходят на английский.
У нас на работе есть курсы голандского. Но по ценности они ниже, чем уроки в школе. Половина группы пропускает занятия через раз, а ведь низшим балом никого не накажешь. Вот и сидишь раз в неделю по часу с ними только наверстываешь упущенное
На данный момент, я планирую найти частного репетитора. Кажется, что это можно сделать на одном из сервисов, где репетиторы живут в тайландах и преподают за пол цены.
@mobileunderhood Самое дорогое - это продленка и сад, от которой никуда не деться, если оба партнера работают. За 5 полных дней садика плюс 4 дня продленки с 3 до 6 я платил 2300 в месяц, из которых гос-во возвращало около 1000
Спасибо за дополнения twitter.com/atmamont/statu…
@mobileunderhood Момент, когда ребёнок переходит из садика в школу (4 года) - ключевой в финансовом счастье для любой семьи, так как платить с этого момента можно примерно в половину меньше
И ещё одно twitter.com/atmamont/statu…
@mobileunderhood Плеер это кодеки, рендеринг и протоколы? Или вьюшки, контролы и менюшки?
Это вьюшки. От сервера просто получаю streamURL twitter.com/logfooot/statu…
@mobileunderhood Блюкарта позволяет вам работать только в той стране, где она выдана. С NL пмж работать в Германии нельзя, надо все доки получать сначала
Вот про блюкарту я не знал. Я думал, что это что-то типо гринкарты для некоторых стран Европы. Получается, что особой разницы в резиденс пермите и в блю карте нет twitter.com/pingwinator/st…
@mobileunderhood После первого аналогичного курса в офисе я заплатил свои деньги и пошёл в языковую школу. Занятия 2,5 часа по 2 раза в неделю и совершенно разные люди, которые тоже платят самостоятельно - движется намного лучше.
Что и требовалось доказать twitter.com/atmamont/statu…
@mobileunderhood вообще-то блюкард это и есть residence permit. Просто в некоторых странах (чехия, австрия) национальную рабочую визу получить проще, чем БК. В 2 словах, ЕС хотел сделать универсальную визу для специалистов, но каждая страна это сделала по своему. Вот такая фигня https://t.co/k7CG4zswFn
Я может что-то не понял. Но вроде этот документ говорит, что с блюкартой можно менять "Member State" через 18 месяцев проживания. Судя по всему этим другим "Member State" может быть Германия. Плюс ещё какие-то плюшки eubluecard.nl/comparison/ben… twitter.com/pingwinator/st…
@mobileunderhood Есть ещё третий вариант: EU Long-term residence permit, через 5 лет можно получить.
Через 5 лет в Нидерландах можно подать на гражданство twitter.com/whatsurnextste…
@mobileunderhood Иногда страна не разрешает получать второе гражданство и требует отказа от первого. Не для всех приемлемо отказаться от российского. Не все страны дают гражданство через 5 лет. Податься на гр-во ещё не значит его получить. Так что long-term EU permit может быть полезен.
Действительно забыл упомянуть, что двойного гражданства нет twitter.com/whatsurnextste…
@mobileunderhood это работает немного не так. Имея ГК из NL, через 18 мес можно приехать в Германию и податься там на новую ГК, а не получать визу в посольстве для въезда и получения ГК
Спасибо за разъяснения twitter.com/pingwinator/st…
#mu_Нидерланды
На сегодня у меня осталось ещё несколько тем по Нидерландам, которые я забыл осветить вчера.
Первая тема - это структура местных компаний.
На местном рынке в основном преобладают стартапы. Их тут действительно много. Проблемы стартапов вы и сами знаете. Но есть одно отличие от российских. Обычно, когда я видел вакансии в Москве зп всегда была выше рынка чуть ли не в 2 раза.
Тут не так. Большинству стартапов на начальном этапе достаточно нанять крепкого джуна, чтобы валидировать идеи. Работодатель конечно был бы и рад нанять сильных разработчиков, но или не может или не хочет за это платить.
В итоге возникает проблема, что большинство компаний на рынке максимально могут себе позволить начинающего сидела и тем самым давят среднюю картину.
Но конечно так не везде, какие-то стартапы обзаводятся деньгами и могут начинать платить нормально. Ещё в месте стартыпы не стоит бояться идти по причине того, что их могут закрыть.
Если вдруг ваш стартап резко закроется и вы окажетесь безработным, то государство будет выплачивать пособие. Я не знаю его точный размер, насколько я понимаю оно зависит от вашей ситуации отдельно.
Рынок практически пустой на средние компании. В стране, где живет 17,5 миллиона человек локальному бизнесу особо делать нечего, а мировые игроки уже крупные.
Вот мы подбираемся к самой мякотке. Крупных компаний на самом деле единицы - это тот же букинг, ибей, убер. Но эти ребята уже могут и платят деньги. Плюс у вас есть возможность работать в стильной модной компании из кремниевой долины, но в уютных Нидерландах.
Так же в таких компаниях часто есть возможность релокации в другие офисы, в другие страны.
Все вышесказанное относится только к мобильным разработчикам, которые хотят заниматься продуктом. Здесь много средних компаний по B2B направлению. Они занимаются всякими sdk для банкинга и прочего, что мне не особо интересно
В отличие от мобильных разработчиков, судя по отзывам ситуация для беков, девопсов и прочих клауд инженеров намного лучше. Как я уже говорил, здесь развит B2B сектор в который они и идут
@mobileunderhood Слабее только потому что не спешат? Сомнительная предъява) у нас в рф любят крест ставить на тех, кому уже за 30-40. Словно люди никогда сами не постареют. Вот когда исполнится вам по 30-40 точка зрения будет другой)
Ни в коем разе дело не в возрасте. Выводы я строю исключительно по коду, который видел, по общению на интервью с другими людьми, по локальным конференциям. Как я и говорил ранее, что люди здесь немного не за карьерой часто едут, а за жизнью. Поэтому у них все #неспеша twitter.com/DomLochin/stat…
@mobileunderhood А офисы каких топовых (по соотношению уровень разработки/зпшка/плюшки) IT-компаний есть в Нидерландах? Внутри страны есть крутые компании? Типа авито в России
Локальный Авито принадлежит eBay. Как я говорил ранее в стране всего 17,5 млн. человек, что меньше Московской области. Местное авито делать не совсем есть смысл, без оглядки на остальную Европу. Если хочется чего-то местного с хорошей зп - есть банки. twitter.com/novoselov_dani…
@mobileunderhood Все это "неспеша" звучит просто как рай какой-то! Полностью поддерживаю нидерландских товарищей!
В этом действительно что-то есть, когда не ждёшь банковскую карту неделю в 3х письмах twitter.com/algridmd/statu…
@mobileunderhood это ты про bol? а как же olx?
Это я про Marktplaats. Про bol.com я забыл, но таких компаний единицы. Опять-же я говорю только с точки зрения человека, которому интересно делать продукт. Вот чтоб приложенька в сторе была twitter.com/pingwinator/st…
#mu_Нидерланды
Погода в Нидерландах.
Перед тем, как сюда приехать меня сильно пугали местными бесконечными дождями. Да дожди есть, но не так, как о них говорят.
Температурный режим довольно мягкий, зимой нет необходимости носить зимние вещи.
А вот лето было довольно хардкорные. Температура легко доходила до +35. Хотя, когда мы приехали в конце Июня было +17 и местные люди ходили в парках и ботинках)
По местным приданиям когда-то раньше снег зимой был, но последний год его видели только 1 раз и то не везде.
#mu_Нидерланды
На этом мой рассказ про Нидерланды я закончу. Не хочу скатываться в трэвел блог. Не стесняйтесь задавать вопросы, я здесь до конца недели.
#mu_Нидерланды
Если хотите узнать больше про Нидерланды - подписывайтесь на мой канал в телеграме. Там я пишу заметно реже) t.me/thenetherlander
Если хотите увидеть больше фоточек - подписывайтесь на мой инстаграм там меня можно найти под ником @atimca
#mu_Собеседования
Медленно #неспеша перетекаем из Нидерландов в собеседования. Я люблю проводить и проходить собеседования. Так что давайте разберемся какие типы собеседований бывают и каким компаниям они подходят.
Для начала опрос. Комфортно ли вам общаться с hr по телефону?
А теперь с ходу еще один опрос.
Комфортно ли вам общаться по телефону, если hr звонит в рабочее время?
Вывод простой - HR'ы, пожалуйста не звонить без предупреждения, даже с фразой: "Удобно сейчас разговаривать?" Большинство кандидатов слишком вежливые, чтобы сказать - нет
#mu_Собеседования
Теперь о структуре
Судя по моим наблюдениям структура процесса интервью во всех компаниях одинаковая. Это - узнать кто вы такой, тех собеседование и финалка. Самое интересное в деталях.
К примеру крупные и популярные компании часто проводят несколько технических этапов. В итоге процесс собеседования выглядит таким образом (данные могут варьироваться от компании к компании):
- Первичный скрининг
- Тех собеседование
- Первичное общение за жизнь
- Платформа (вопросы по iOS/Android)
- Кодинг
- Алгоритмы
- Другие задачи на лету (любят поспрашивать про потоки)
- Архитектура
- Финалка
А теперь давайте рассмотрим полностью обратную ситуацию. Представьте такой вариант - вы не Google! Как может выглядеть процесс интервью?
- Первичный скрининг
- Тех собеседование
- Финалка
И все это может пройти за один раз.
Вы скорее всего заметили, что базовая структура большой компании не отличается от процесса интервью в маленькой компании
Я хочу отметить, что как-бы я не относился к алгоритмам. Мне действительно нравится проходить собеседования по 5 этапов. Такие собеседования действительно могут показать кандидата со всех сторон и не завернуть кандидата, если он не помнить, как балансировать черно-красное дерево
У больших компаний свои заморочки и проблемы. Им нужно фильтровать сотни кандидатов, так что пускай делают что хотят. Вряд-ли чувак из твиттера сможет повлиять на их процессы)
Я бы хотел сосредоточиться на компаниях поменьше. Итак у нас есть формула: скрининг + тех + финалка. Давайте сперва поймем что мы хотим узнать на этих этапах.
Первичный скрининг:
Сюда скорее всего будет входить разговор, я бы даже сказал синхронизация с HR о том насколько вы поняли о чем вакансия и насколько вы теоретически можете подойти на открытую позицию.
Тех собеседование:
Основная задача для интервьюера понять, насколько кандидат технически подходит под вакансию.
И! Что немаловажно! Насколько компания технически подходит для кандидата
Пожалуйста никогда не забывайте, что собеседование процесс двусторонний. Если вы оставляете кандидату на вопросы последних 10 минут собеседования - то вы можете сделать хуже кандидату и компании.
Так-же я хотел бы обратиться к кандидатам. Пожалуйста готовьтесь к собеседованиям. Составьте список вопросов, чтобы на момент подписания контракта у вас вообще не оставалось вопросов.
Так-же я хотел бы обратиться к кандидатам. Пожалуйста готовьтесь к собеседованиям. Составьте список вопросов, чтобы на момент подписания контракта у вас вообще не оставалось вопросов.
#mu_собеседования
Пошарю с вами свой список вопросов. Это заготовка, которую я перед собеседованием адаптирую под каждую компанию.
gist.github.com/Atimca/eec2e31… twitter.com/mobileunderhoo…
Обратите внимание, что некоторые вопросы повторяются к разным ролям. Иногда разработчик и продакт могут диаметрально противоположно описывать процесс создания продукта, работая в одной команде. Такие ответы должны, как минимум вызывать настороженность
Финалка:
Финалка - это как босс вертолет в старых играх. Ты вроде уже прошел всю миссию без единой смерти, а тут на тебе.
Финалка нужна для того, чтобы обговорить вопросы, которые остались открыты, понять полную адекватность и совместимость компании и вас.
Не нужно недооценивать этот этап, ведь скорее всего именно с этими людьми вам придется договориться о зп. Так-же я видел далеко не один случай, когда кандидатов резали именно на финалке, так как ощущали луну в не той фазе
#mu_Собеседования
Разобравшись в процессе теперь давайте разберем процесс тех собеседования. На мой взгляд он кажется самым неоднозначным.
Что обычно спрашивают на тех собеседовании? Да все что угодно. Я считаю, что подход к собеседованию должен варьироваться от уровня кандидата.
Но начнем с еще одного опроса.
Насколько вы считаете уместным использовать тестовые задания во время собеседований?
Интересно, что столько людей считают это уместным. Мне хотелось бы узнать ваше мнение более развёрнуто.
@mobileunderhood Вполне уместно. Если я собеседую к себе в команду человека, с которым мне работать, мне интересно качество его кода и его работы. Github не всегда бывает показателен, потому что там могут быть как чужие форки, так и копии командной работы с его прошлого проекта.
У меня на этот счет такое мнение. Тестовое задание, как таковое совершенно ни к чему, если вы хотите посмотреть, как кандидат в 100й раз сделает 2 экрана с подкачкой данных и детальным экран, то здесь что-то не то и с такими компаниями я часто не хочу продолжать общение. twitter.com/anioutkajarkov…
Но сразу же хочу оговориться, что в таком случае у кандидата должно быть некоторое демонстрационное портфолио, которое может на простых задачах показать навык кандидата. Действительно GitHub часто просто завален пустыми форками и таким образом ничего нельзя понять.
Пошарю с вами, как пример моего демонстрационного портфолио. Здесь можно посмотреть 3 разных маленьких проекта - нацеленных на разные стороны кандидата.
github.com/Atimca/Currenc…
Если такого портфолио нет - делайте тестовые задания и создавайте свое портфолио. Конечно портфолио может устаревать, но камон - это тестовые на 2 экрана.
@mobileunderhood А вот что бесит в таких домашках - очень абстрактные тз. Ты хочешь уточнить, что и как и в ответ - делай как считаешь нужным. Ты делаешь - а потом, "мы ожидали другое увидеть". уже 2 раза на такое натыкался. Нет тз - получи хз.
Коллега прекрасно демонстрирует ситуацию, когда на тестовые особо не смотрят сами собеседующие. Плацдарм для общения на 2 экрана крайне трудно бывает найти, так что чаще всего проверяют на общую адекватность и чтобы вы уж совсем дичь не написали. twitter.com/pingwinator/st…
@mobileunderhood Сама же задача должна быть абстрактной в плане применения и простой, чтобы показать, умеет ли человек работать со стэком технологий. И все. На этом связь задачи с проектом заканчивается
Говорить могу только за iOS. Мне не совсем понятно, какой стек технологий можно проверить на тестовом задании, которое должно будет быть сделано за 4 часа? twitter.com/anioutkajarkov…
@mobileunderhood кстати, 1 раз вообще послал архив с паролем (так сами хотели), но пароль так и не спросили.
О том и речь twitter.com/pingwinator/st…
Моя тактика в этом вопросе такая. Не нужно говорить hr на первом собеседовании, что вы не хотите делать тестовое - врядли hr пойдет просить за noname кандидата с порога. Пройдите первый этап интервью, посмотрите на условие тестового (вдруг оно действительно особое).
Если нет (что скорее всего так и будет) - предложите ваше портфолио, как альтернативу. На этом этапе вы проверите, насколько компания готова идти на встречу своим сотрудникам.
@mobileunderhood С тех пор я тестовые не делаю.
Мой герой) twitter.com/xotta6bl4_/sta…
Часто так-же слышно мысль в защиту тестовых заданий. Ну оно же всего на 4 часа. Ок, кандидат собеседуется в 5 компаний одновременно (сюрприз, вы не одни такие).
Вы вот серьезно думаете, что кандидату будет за счастье потратить 20 часов, на то чтобы показать вам, как он умеет парсить JSON? Опять же хочу добавить, что показательный код обязателен. Это будет ваше тестовое или что-то готовое - не важно.
#mu_Собеседования
Пока бушует тема с тестовыми, двинемся дальше. Сейчас я хочу поговрить про такую инициативу, как пробный день. День - это обычно не 8 часов, он может занять даже 1-2 часа.
Тестовый день может проходить как в офисе, так и удаленно. Из чего может состоять такое событие.
Знакомство со всей командой. Очень важно познакомиться команде с кандидатом и кандидату с командой. Вам все-таки всем вместе работать потом.
Дать кандидату поучаствовать в дейли, в одном из митингов по поводу новой фичи или в чем-то еще. Таким образом у кандидата может появиться полное представление о процессах в команде.
Показать кандидату кодовую базу и по возможности рассказать, как будет делаться новая фича. Этот момент важен, так как здесь можно понять насколько вы подходите друг другу
Не, а вы как думали, только кандидата мучать и просить тестовые делать?) Кандидат имеет полное право посмотреть чего вы там наделали, перед подписанием контракта.
Проблемы с конфиденциальностью по всем пунктам решаются довольно просто. Создаете документ nda и просите кандидата его подписать.
Конечно некоторые из этих пунктов выполнить тяжело. Возможно на этой неделе нет ни одного митинга по новым фичам или что-то еще. Но чем больше вы узнаете друг друга до старта работы, тем вам будет проще потом.
@mobileunderhood Так это для кого "тестовый" день, для кандидата или для компании?)
Кажется вы начинаете понимать, о чем я тут рассказываю. Это тестовый день для обоих сторон. Любой этап собеседования для обоих сторон. Как компания собеседует кандидата, так и кандидат собеседует компанию twitter.com/algridmd/statu…
@mobileunderhood Мне больше нравится лайвкодинг, это гораздо лучше и показательней. Очень сложно понять, что хотят от тестового, и когда нет четких требований, сложно остановится. Всегда есть что дополнить
Коллега действительно предлагает альтернативу. В ней есть только один минус, на лайвкодинг интервью народ крайне сильно начинает нервничать, что приводит к негативным последствиям twitter.com/vit_ius/status…
На мой скромный взгляд лучшей альтернативой тестовому/лайвкодингу может выступить тот самый демо проект на 1-2 экрана, но который написал не кандидат, а собеседующая компания.
Написать этот демо проект необходимо максимально плохо, возможно даже так, чтобы оно не компилилось с первого раза и дать этот проект в лайве поревьюить/отрефакторить кандидату. Рефакторинг может привести к тем-же проблемам, что и лавйв кодин. Почему такой подход хорош?
Во первых нахождение косяков и предложение, как их исправить отличный показатель опыта и знаний кандидата. Во вторых на этом же этапе можно обсудить архитектуру и дальнейшее развития этого мини приложения. Таким образом, вы сможете пощупать кандидата в около боевых условиях.
#mu_собеседования
О чем мы поговорили сегодня:
- Какие этапы интервью бывают в компаниях
- Кандидат и соискатель проводят интервью в обе стороны
- Тестовое задание можно заменять на код из портфолио
- Пробный день может стать отличным вариантом, чтобы познакомиться
Все вышесказанное - это лишь подытоживание моих слов. Мнение аудитории может отличаться
Среда
#mu_собеседования
Вчера я думаю, практически все пришли к консенсусу, что какой-то код нужен. Тестовое задание, либо что-то что может сойти за это самое тестовое.
Сегодня двинемся дальше и порассуждаем, каким образом может пройти остальной этап собеседования
Единственная вводная, которая есть - вы, не Google. Таким образом, на собеседование я считаю можно выделить 1-2 часа, в которые еще и кандидату нужно будет задать вопросы.
Хочется отметить для интервьюеров, оставляйте всегда хотя-бы 30 минут собеседования на вопросы кандидата, а еще лучше не ставьте встречи на ближайший час, ведь если вы спрашивали кандидата час или два, может означать, что следующий час кандидат будет спрашивать вас.
Но о чем разговаривать? Для этого я предлагаю разделить кандидатов на 3 пресловутые группы: джуниор, миддл, сеньор. В вашей компании могут быть сотни грейдов, но на этом разделении можно правильно подойти к вопросу собеседования.
Начнем с джуниоров. Вы уже убедились, что какой-то код этот человек писать умеет, дальше что? А дальше, как бы банально это не звучало джуна можно и нужно спрашивать самые базовые теоретические вопросы.
Банальные вопросы могут подход джуна к поиску работы и своему обучению, либо человек сразу начал кнопки красить и любая нештатная ситуация вызовет шок, либо человек прочитал хоть какую-то книжку или прошел курс.
При собеседовании джуна начального уровня, я бы не требовал знание всего. Человек должен как минимум уметь рассуждать на темы, которые не знает. На моей практике один человек вообще не мог ответить на 80% вопросов, но показался смыленным и в итоге мы его взяли как стажера.
Спустя несколько лет - человек, который не мог отвечать на вопросы показывает отличный карьерный рост
После того, как вы убедились, что джун хоть что-то читал и может писать какой-то код. Пообщайтесь с ним по этому коду, спросите почему он/она выбрали тот или иной подход. Скорее всего человек просто где-то что-то услышал и применил это.
Если услышите аргументированную позицию по выбору технологий и подходов у джуна - это отличный знак. Можете попросить джуна рассказать, как бы он дальше развивал этот маленький демо проект.
Но не стоит ждать от джуна чего-то особенного. От человека требуются лишь базовые знания и способность думать основываясь на предыдущем опыте (которого особо-то пока и нет)
#mu_собеседования
Как проводить тех собеседование мидла/сеньора?
Я сознательно объединяю эти категории, потому что процесс именно тех интервью для них может быть одинаковый
Итак интервьюеру стоит действительно подготовиться и разобраться в коде, присланным кандидатом. На этом этапе можно подробно поговорить о выбранных подходах, выборе оптимального решения в различных ситуациях. Возможно обговорить лучшее решение с точки зрения интервьюера.
Кстати еще одно преимущество отказа от тестовых, в пользу присылаемого кода кандидатом. Интервьюер не предвзят по используемым технологиям. Интервьюер самостоятельно разобрался в коде кандидата. Кандидат же хочет понять, что идет в команду к профессионалам, способных читать код
На мой скромный взгляд лучшей альтернативой тестовому/лайвкодингу может выступить тот самый демо проект на 1-2 экрана, но который написал не кандидат, а собеседующая компания.
После обсуждения кода кандидата предложите ему ваше ужасно написанное демо приложение, о котором я говорил ранее twitter.com/mobileunderhoo…
Хороший кандидат должен разнести такое приложение чуть ли не построчно. Заодно вы проверите уровень токсично) Разнос должен быть мягкий и вежливый, но интервьюер должен полностью понять, что было не так в этом коде
И вот здесь начинается самое интересное. Вы сразу будете видеть опыт и теоретическую подкованность кандидата. Кандидат без опыта в лучшем случае сможет запустить приложение пофиксив краши, а вот опытный будет долго рассказывать, как можно исправить ситуацию и предлагать варианты
Этот демо проект может содержать в себе все возможные проблемы с памятью, потоками, алгоритмической сложностью и т.д.
Вам же интересно не услышать от кандидата как работает ARC, GCD и другие аббревиатуры, а посмотреть, как кандидат будет работать этим в реальных условиях. Вот отличный вариант.
Попросите кандидата перед ревью вашего проекта представить, что он все-таки на интервью и рассказывать максимально подробно о решениях, которые он/она принимают
Такое техническое собеседование можно уложить в 1-2 часа. Проводить без похода в офис и не спрашивать в сотый раз чем отличает weak от strong ссылки. Все это должно быть уже заложено в этот проект.
В идеальном исходе такое интервью может полностью покрыть все потребности демонстрационного кода. Но бывают ситуации, когда на словах ты Лев Толстой, а не деле... дальше вы знаете.
Какие есть минусы у такого подхода? С ним крайне тяжело выставлять кандидатов в какой-то градации, чтобы потом выбрать лучшего. Но вы же не гребцов ищете, так?) Поэтому все тут очень субъективно и дальше мы постараемся поговорить, каким образом выбрать кандидата на финалке
#mu_собеседования
С тех интервью разобрались, остались первичный скрининг и финалка.
Для обоих этих этапов нанимающей компании необходимо четко понять кто им нужен. Уровень опыта (он может варьироваться), зп вилка, необходимые софт скилы от кандидата.
До первичного скрининга необходимо ознакомиться с резюме кандидата и понять может ли он/она подходить под ваши критерии хотя-бы приблизительно.
На первичном скрининге по сути необходимо синхронизоваться с кандидатом, чтобы понять, что вы теоретически можете подойти друг другу. После такого разговора кандидат должен иметь базовое представление о вакансии.
Пожалуйста раскрывайте по возможности зп вилку до начала интервью, самое ужасно - это узнать после оффера, что компания чисто физически не может удовлетворить ваши зарплатные ожидания. А в вакансии было написано competitive salary, зп больше рынка.
#mu_собеседования
Итак вы получили от кандидата базовую информацию, посмотрели его код и провели тех собеседование. Что теперь - финалка.
Вот на этом этапе вы должны четко понимать, кто вам нужен помимо роли программиста в команду. Программиста вы уже нашли на прошлом этапе, раз человек добрался до финалки.
Поняв кто вам нужен, вы сможете составить список ситуативных вопросов. Если вам нужен ментор, спрашивайте, как человек кото-то менторе. Если вам нужен лидер, подберите подобные вопросы.
Так-же хорошо-бы проверить человека на базовые софт скиллы, такие как конфликтность и работа в коллективе. Я думаю опытные hr/лиды, да много кого могут с этим помочь. Но пожалуйста не надо спрашивать, почему люки круглые.
Как здесь оценивать кандидата? Если у вас нет психолога под рукой, то придется только чутьем. Увы софт скиллы проверить намного сложнее, чем хард.
Итак в итоге у вас получаться несколько кандидатов, которые прошли тех собес. Вот теперь выбирайте, кто больше всего понравился с точки зрения человеческого общения. В современных командах - это даже важнее, чем код писать. Ведь перед тем, как что-то писать, нужно понять что.
@mobileunderhood Либо озвучиваешь свои ожидания и тогда "досвидания" говорят рекрутеры) ну или договариваются о собесе
Хочется немного остановиться на зп вопросах. Коллега довольно правильно рассуждает, но в таких простых разговорах есть подводные камни. twitter.com/Andrey__Danilo…
Озвучив свои ожидания, до процесса интервью вы можете оставить большую сумму от своего оффера на столе. Поэтому я хотел бы порекомендовать вот эту книгу, о том, как стоит разговаривать о деньгах.
Эта книга рассказывает почему не стоит говорить работодателю о своих ожиданиях и как правильно вести переговоры о зп. Конечно такая книга не покрывает все кейсы. Серебряной пули не бывает, но несколько советов вы сможете почерпнуть fearlesssalarynegotiation.com
@mobileunderhood Это не совсем верно, так как озвучивается минимальная сумма после которой имеет смысл продолжать общение. Понятно, что дальше будут результаты техсобеса, уточнение плюшек и согласование конечной зп
Хорошее замечание. Как альтернатива партизанского молчания может быть четкое озвучивание базовой суммы, с которой вы в принципе готовы продолжать общаться. Но книжку я все равно советую почитать) twitter.com/Andrey__Danilo…
#mu_собеседования
Последнее, что хочется сказать по собеседованиям. Работодателям стоит начать подстраиваться под соискателей. Вы же наверное подозреваете, что соискатели в рабочее время (сюрппиз сюрприз) работают. Поэтому не гоняйте соискателя в офис без особой нужны
Собеседования можно проводить в нерабочее время. Я уверен, что за положенную по закону двойную оплату ваши работники смогут найти час на собеседование. Такой же вариант и с выходными. Не жмите денег, за доплату собеседований в нерабочее время. Поиск кандидата может стоить дороже
Когда кандидат видит, что работодатель пытается идти на встречу кандидату - вы зарабатываете себе очки в глазах соискателя.
#mu_собеседования
#mu_Нидерланды
Вечерняя коллаборация перед подведением черты. Расскажу в кратце основные отличия в процессе интервью в Нидерландах.
Все происходит #неспеша. Ответ дают довольно шустро по каждому этапу, максимум день-два. А вот готовьтесь что расстояние между этапами будет не меньше недели. Они не просто так спрашивают вашу доступность на ближайшие недели.
Так же, у меня сложилось такое ощущение, что они не совсем понимают, что если кандидата проморозить лишнюю неделю, то кандидат может принять оффер другой компании. У меня был случай, что я ждал финалки 3 недели, потому что там кто-то заболел, а по пятницам день релакса.
Еще они очень сильно любят давать тестовые задания. Но! Практически все готовы принять за альтернативу ваш код с GitHub, пример которого я уже скидывал.
Этапов на поговорить, больше чем технических. В среднем по больнице у вас будет
- Скрининг
- Первое собеседование за жизнь
- Техническое интервью
- Второе собеседование за жизнь / финалка
А знаете, как проходит техническое собеседование? Это разговор за жизнь, но только с техническим уклоном. Любят поговорить как раз за код, который вы присылали, но не то чтобы очень активно.
Каким образом они принимают решение на основе такого собеседования мне не очень понятно. Тут наверное, как в Гарри Поттере с палочкой. Но такие собеседования у меня никогда не вызывали какого-то напряжения или чувства, что я что-то не знаю.
#mu_собеседования
День подходит к концу, поэтому по собеседованиям у меня все.
Давайте подводить черту и попробуем сформулировать о чем мы разговаривали.
Кадидат:
- Готовь демонстрационное портфолио, либо делай тестовое, чтобы это портфолио было.
- Оформи все красиво
Вот пример:
github.com/Atimca/Currenc…
Кадидат:
- Готовь вопросы для собеседования - это важно.
Ссылка на мои вопросы:
gist.github.com/Atimca/eec2e31…
Но я еще нашел очень годную статью, где расписано какие вопросы, что показывают в компании
habr.com/en/post/468923/
Кандидат:
- Проси провести пробный день, либо сделать экскурсию по проекту.
Кандидат вывод:
Попробуй узнать максимальное количество информации о компании и роли, до принятия решения об оффере
Работодатель:
Три этапа интервью:
- Скрининг
- Тех
- Финалка
Работодатель:
Скрининг - производим синхронизацию с кандидатом, просим демонстрационный код, либо даем тестовое.
Работодатель:
Техническое собеседование:
- Разбираем код кандидата
- Даем свой "плохой" демо проект, обсуждаем его
- Говорим за жизнь, ищем точки соприкосновения
Работодатель:
Финалка:
- Четко определяемся, чего мы хотим от кандидата, помимо написания кода
- Спрашиваем его по этим темам
- Говорим за жизнь, ищем точки соприкосновения
- Делаем оффер😉
@mobileunderhood Это самый правильный вид технического собеседования) правда зачем отдельно «за жизнь» собеседовать - непонятно...
Я немного утрировал общие собеседования, в которых обсуждают процессы, пытаются понять кандидата и так далее. Часто на таких собеседованиях приходят люди разных ролей например на один собес приходит по, а на другой хед оф мобайл и они задают немного разные вопросы twitter.com/algridmd/statu…
Я бы сказал, что вопросы за жизнь - это вопросы в которых нет правильного ответа. Важно именно как человек рассуждает и какие доводы приводит.
Четверг
@PavelPotapkin @mobileunderhood А мне нравится собеседования в офисе, причём на обоих ролях. В качестве соискателя можно посмотреть офис и вживую поболтать с разрабами. А в качестве интервьюра вживую поговорить с кандидатом, а то некоторые даже камеру не включают.
#mu_собеседования Собеседование в офисе должно быть в любом случае, если кандидат будет работать в этом офисе, но если у вас больше одного этапа, то все, кроме последнего собеседования можно переносить в онлайн. twitter.com/vit_ius/status…
Так-же я считаю, что онлайн собеседования при возможности должны проходить с включенными камерами, что увеличивает эффект присутствия
#mu_реактивщина_однонапраленщина
Доброго всем утречка, сегодня мне хотелось бы обсудить техническую тему. А это реактивщина. Давайте начнем с опроса.
Вы используете реактивные подходы/фреемворки?
Пока вы голосуете, я начну с моей теории о том, почему Rx и прочие фреемворки не так прижились на iOS, как на андроид. Насколько я понимаю, что до недавнего времени Rx’ом на андроиде решали проблемы работы с потоками, так как ничего толкового нативного не было.
На iOS чуть ли не самого начала подобные вопросы решались с помощью GCD - фреемворк, предоставляющий абстракцию над голыми thread’ами. Действительно на iOS простые задачи можно решать без всякого там Rx’а.
Rx - это не только о потоках, реактивное программирование - это совершенно другая парадигма и подход к написанию кода.
Хочется подчеркнуть, что речь сегодня идет не о фреемворке RxJava или RxSwift, а о самой парадигме, как она помогает или мешает решать задачи
Еще одним из пунктов, почему реактивщина где-то не прижилась, является порог входа. Самые популярные подходы в программировании под iOS учили работать в императивном стиле. И когда юные умы начинают подключать заветные библиотеки в свои проекты - они активно стреляют себе в ноги
Я уже встречался с несколькими проектами, которые были написаны крайне криво с Rx'ом. И скажу вам, что это не великое удовольствие в них что-то понять. На мой взгляд - это основная причина неприязни и боязни к подходу
#mu_реактивщина_однонапраленщина Доброго всем утречка, сегодня мне хотелось бы обсудить техническую тему. А это реактивщина. Давайте начнем с опроса. Вы используете реактивные подходы/фреемворки?
#mu_реактивщина_однонапраленщина
Итак опрос начинает набирать видимые очертания.
С андроидом все более менее понятно, а вот что собираются делать iOS разработчики, после того как Apple выкатила свой реактивный фреемворк не совсем понятно. twitter.com/mobileunderhoo…
Я хочу, чтобы все мои твиты и подходы к реактивному программированию были понятны всем. Поэтому недавно я написал супер вводную статью про это. Для того, чтобы ее понять необходимо уметь читать Swift на самом базовом уровне
medium.com/atimca/what-is…
А пока хочется спросить у всех тех, кто не хочет и кому не нравиться Rx? Apple представила Combine, вы чего планируете вообще с этим делать?
#mu_реактивщина_однонапраленщина
На этой неделе все реактивные подходы я буду называть просто Rx. У твиттера есть ограничения на символы(((
Rx == Реактивная Парадигма/Подход
#mu_реактивщина_однонапраленщина
Супер вводная по Rx.
Данные - это
Sequence
, с которой мы можем работать, как с обычным массивом. Делать map
, reduce
и тд.
На изменения данных можно подписаться и как-то react
реагировать
Все это дело работает чаще всего lazy
лениво.Суть в том, что с таким подходом мы не ждем завершения работы какого-то кода. Теперь это не важно, мы просто
react
реагируем на изменения данных#mu_реактивщина_однонапраленщина
Начнем с проблем в Rx в интернете можно найти много статей подобного толка
adamborek.com/top-7-rxswift-…
Но в основном можно услышать нападки подобного вида: "Оно там что-то летают твои вот эти Sequence'ы ничего не понятно, где что меняется". Имеет место быть. Как я говорил ранее в Rx можно потоки данных обрабатывать, как массив.
Вот небольшой пример. Пример упрощенный и сделан просто с массивом. А теперь представьте, что в приложении десятки потоков данных. И чисто технически можно делать такую дичь.
Если обобщить, то здесь мы мутируем данные не там, где мы должны и не там где это ожидается
В реальном проекте возникает постоянная необходимость мутировать какие-то данные, ведь приложение - это не рисунок. Приложение не статично. Приложение - живая, постоянно меняющаяся система
Итак первый пример наглядно показывает, что reference типы не очень заходят для Rx. Давайте попробуем исправить пример выше. Простой уход от reference (class) к value (struct) типу убирает возможность выстрела в ногу.
Если мы пойдем дальше и заменим перемеренную
var val
на константу let val
. То компилятор выдаст ошибку на таком коде. Такой код будет полностью защищен от непредсказуемых мутаций в реактивных потоках данныхХочу еще привести один пример, который касается не только Rx. Наверное не сложно догадаться, что если по системе летает много мутабельных объектов, то в какой-то момент система(приложение) станет неконсистентной.
Думаю, что все видели баг в приложениях с количеством нотификаций? На бадже в приложении одно число непрочитанных сообщений, а на экране с этими сообщениями другое. Проблема в том, что у разных частей приложения 2 источника правды.
#mu_реактивщина_однонапраленщина
Итак приложение - это живая, изменяющаяся система. Как сохранить потоки данных имутабельным, а источник правды в приложении сократить до 1? Один ответом я предложу убить сразу 2х зайцев.
Завести один источник правды на все приложение. Только один объект состояния, который будет изменяться, а все остальные участники вечеринки будут следить за его изменением.
Система довольно проста. Есть один источник правды и за этим источником правды следят все части приложения.
Но в этой системе есть одна проблема, мы поменяли состояние напрямую
store.state.value = 10
. Такой подход может привести к тем же проблемам, от которых я пытался избавиться. Решается это довольно просто. Необходимо ввести понятие события и только по этому событию меня состояниеНо скатываться к туториалу я не хочу, а лишь выровнять знания, чтобы можно было рассуждать) Такой подход называется однонаправленным. Одной из самых известных архитектур в этом подходе является Redux.
github.com/ReSwift/ReSwift
Как можно заметить никакого Rx в ней не используется. Но если проблема в том, что подобный подход без Rx ведет в колбэк хэл. Поэтому вот вам подход с Rx, ну я не забыл про Андроид)
github.com/NoTests/RxFeed…
github.com/NoTests/RxFeed…
@mobileunderhood Так он будет слишком большим и сложным, если он один на все приложение. И гранулированно обновлять UI будет сложно и неэффективно.
#mu_реактивщина_однонаправленщина
Коллега @algridmd сделал хорошее замечание. Такой подход подозрительно напоминает паттерн Singleton. Массивный объект, сложный, неэффективный. Сейчас я расскажу в чем отличия, а так же затрону тему, как с этим жить в мире модуляризации twitter.com/algridmd/statu…
Начнем с отличий.
В однонаправленных подходах единственная точка входа - это чистая функция reducer. Изменения состояния возможны только с помощью событий
Event
. Не трудно догадаться, что такую функцию просто тестировать.
В Singleton, изменения можно вносить хаотичноRx природа такого подхода решает проблему того, что Event'ы могут прилетать из разных потоков и из разных мест. Все Event'ы выстраиваются в очереди и меняют состояние последовательно.
Как я показывал в примере с 2мя Observer'ами. Rx помогает вашим вьюшкам ожидать изменения состояния и реагировать на них. Это как раз к вопросу: "Зачем Rx на UI".
Вопросом модуляризации сейчас активно занимаются @pointfreeco. Они создают свой подход на базе Combine и SwiftUI. Библиотека Composable Architecture ещё в разработке. Но на их сайте есть много видео, можно реализовать модули. Вот доклад на эту тему youtu.be/QOIigosUNGU
#mu_реактивщина_однонапраленщина
Дело близится к вечером. Поэтому давайте подводить черту.
Реактивный подход:
- Rx уже близко и от него никуда не деться
- Rx не такой страшный, как его малюют
- Можно выстрелить в ногу, если готовить Rx неправильно
- Это совершенно другая парадигма, отличная от императивного подхода, поэтому и больно
Однонаправленный подход:
- Позволяет избежать летающих потоков данных по всему приложению
- Легко тестируется (reduce - чистая функция)
- Позволяет работать с Rx иммутабельным путем
- Один источник правды
Как вывод хочется добавить, что если приложение разделено на слои (нетворк, бизнес, ui). То все, что вам придется делать в Rx на постоянной основе - это использовать функцию
map
, чтобы конвертировать модельки и bind
чтобы подписывать ваши вьюшки на изменения этих моделек#mu_реактивщина_однонапраленщина
После подведения черты мне интересно узнать, насколько вас заинтересовали описанные мной подходы?
К сожалению формат твиттера не дает подробно расписать тонкости, плюсы и минусы подхода. Так что подписывайтесь на мой твиттер там будут анонсы по предстоящим статьям на эту тему @atimca
Статья, которой я с вами делился была лишь вводной
bit.ly/whatisrx
#mu_реактивщина_однонапраленщина
#mu_тестирование_рефакторинг
Завтра мы будем разговаривать про тестирование и рефакторинг. В начале я затрону тему лучших практик тестирования Rx и однонаправленных архитектур. Оставайтесь с нами 😉
Пятница
@mobileunderhood О, наконец то светлые мысли в мобильном разработчике
А народ отписывается ¯_(ツ)_/¯ twitter.com/M0rtyMerr/stat…
#mu_тестирование_рефакторинг
Доброго всем утречка!
Сегодня мы будем разговаривать про тестирование и рефакторинг. Судя по моим наблюдениям вы любите опросы) Поэтому
Пишите ли вы тесты?
Сюда по опросам тесты вас как минимум интересуют. Сейчас у многих обед поэтому предлагаю посмотреть мой доклад на тему рефакторинга и тестов.
youtu.be/i2vtD4DMk8Q
Есть версия на русском языке, но она немного неполная
youtu.be/b3FwkRqUr8Y
#mu_тестирование_рефакторинг
Судя по опросу тесты вызывают интерес, но далеко не все используют их, как постоянный инструмент разработки. Честно говоря уложить мысли о тестировании в твиттер довольно сложно. Постараюсь рассказать тезисно.
Начнем с самого начала.
Когда начинать писать тесты при разработке нового приложения? Разработку приложения стоит начинать с так называемого "walking skeleton". Сначала вы создаете даже не базовый функционал, а просто создаете наброски связанные наброски приложения.
После создания "walking skeleton" у вас получится создать слой работы с сервером, бизнес, ui и тд. Все это необязательно должно еще работать, запросы на реальный сервер на этом этапе не нужны. Но нужно иметь структуру (скелет) приложения
И вот только после создания "walking skeleton" у вас появится возможность писать тесты. Далее по тексту, я в основном буду использовать подходы из TDD, хотя прекрасно понимаю, что бывает довольно сложно с ходу начать писать тесты до написания кода. Поэтому я не настаиваю)
#mu_тестирование_рефакторинг
Что нужно тестировать в приложении?
ВСЕ!
Тестирование бизнес логики позволяет избежать проблем при изменении кода. Знаете как приятно оптимизировать какой-то сложный код, а потом не запускать приложение и не протыкивать 10 возможных исходов, когда у вас просто написан тест на это
Интеграционные тесты между модулями позволяют проверить взаимодействие между изолированными участками кода.
Подобные мемасы наверное все видели?
UI тесты позволяют снизить нагрузку с вашего QA отдела. Вы думаете им очень интересно делать регрессы по 2-3 часа перед каждым релизом?
Snapshot тесты позволяют тестировать верстку приложения. Когда приложение разрастается очень сложно следить, чтобы верстка не поехала, при изменении базовых компонентов
#mu_тестирование_рефакторинг
Как тестировать? Базовые вещи я рассказывать здесь не буду, а то мы до следующей недели точно не справимся. Вот прекрасная книжка, которая раскрывает все базовые практики
amazon.com/Test-Driven-De…
Поэтому TDD навсегда поменял моё мировоззрение. Естественнее использовать небольшие классы, имеющие минимальную область соприкосновения с окружающим миром. Естественнее использовать фабрики, а не смешивать создание объекта и его логику.
Ничего лучше о прелестях тестирования в формате твиттера я не придумаю. Так что слушайте коллегу @rbsgn twitter.com/rbsgn/status/1…
Я прекрасно понимаю, что UI и Snapshot тесты возможно излишни в начинающем и быстрорастущем проекте. Но всему плохому вы и без меня научитесь, а сегодня я буду TDD монашкой и учить только правильным вещам
@mobileunderhood Мне ещё вот эта книга нравится: amazon.com/dp/B002TIOYVW/… Единственная книга, где TDD показано полностью, начиная с UI.
Это был мой следующий совет по книгам) Но раз вы меня опередили. Вообще хочется сказать, что вся эта так сказать “серия” книг отлично отвечает на вопрос “зачем?” twitter.com/rbsgn/status/1…
#mu_тестирование_рефакторинг
По поверхностному тестированию мы пробежались, но я обещаю сегодня еще вернуться.
Теперь про рефакторинг.
Часто рефакторите код?
Рефакторинг без тестов для меня выглядит примерно так
В своем докладе, что я скидывал недавно, я крайне часто повторял, что тесты и рефакторинг - это по сути не разлей вода братья. Но сколько можно пиариться со своими докладами. Давайте я лучше пошарю книгу, которая для меня стала просто открытием в новый мир
martinfowler.com/books/refactor…
Один из разов, когда это было не нужно, твиттер не отрендерил нормально ссылку. Но мне не лень, я пошарю другую.
Рефакторинг - это просто своего рода библия разработчика любого направления. В ней рассказываться как, когда и зачем рефакторить код
amazon.com/gp/product/013…
#mu_тестирование_рефакторинг
Тезисно пройдусь по рефакторингу.
Рефакторить нужно всегда/постоянно и меленькими шагами
Так вы сможете поддерживать тех долг проекта на оптимальном уровне
Рефакторинг без тестов - это прогулка по минному полю.
Никогда не было, что поменял что-то в одном месте, а сломалось в совершенно другом?
Начинать процесс разработки новой фичи можно с рефакторинга
Это поможет вам разобраться в коде, с которым придется работать
Процесс код ревью можно начинать с рефакторинга.
Тут конечно могут вопросы по процессу, но если ревью проходит в обнимку с человеком, который написал код - это возможно
Вообще любые движения в коде можно начинать с рефакторинга.
Самое главное!
Рефакторинг != переписывание кода
Рефакторинг != фикс багов
#mu_тестирование_рефакторинг По поверхностному тестированию мы пробежались, но я обещаю сегодня еще вернуться. Теперь про рефакторинг. Часто рефакторите код?
#mu_тестирование_рефакторинг
Практически четверть опрошенных на момент написания этого твита ответило что у них нет времени на написание тестов, полагаю что с рефакторингом ситуация совершенно такая-же twitter.com/mobileunderhoo…
А что, если я вам скажу, что у менеджера не нужно спрашивать время на рефакторинг и тесты?
@mobileunderhood Менеджер может очень удивиться, что время на выполнение задач увеличилось в два раза.
Отличный вопрос! Но вы же с вашим менеджером не обсуждаете, каким образом вы будуте подбирать паттерны проектирования, как работает навигация? Рефакторинг и тесты - это не что-то такое отдельное, что вы добавляете в разработку. Тесты и рефакторинг - это и есть часть разработки twitter.com/algridmd/statu…
Еще меня немного забавляет миф про увеличение времени разработки с тестами) В моем случае TDD позволяет мне писать новый код быстрее, про работу со старым кодом я вообще молчу.
Тесты и рефакторинг - это не что-то такое, что просто повышает какие-то очки крутости вашего проекта в тех плане. Это инструмент, который помогает вам разрабатывать качественный продукт. И я вас уверяю, что в проекте с историей в год и более эти техники только ускоряют разработку
Конечно по началу будет тяжело. Вы не умеете пользоваться инструментом, и пока вы разбираетесь - это будет только отнимать время. Но стоит только научиться и начать использовать его, как помощника, а не как обузу - то все будет хорошо)
@algridmd @mobileunderhood "выполнения" потому что без тестов нет уверенности в том, что задача выполнена
В одой из прошлых компаний все проекты были уже с “историей”. И в какой-то момент даже ПО добавлял в DOD(definition of done) тесты. Беклог багов был просто гиганский и было очевидно, что дальше так быть не может twitter.com/zxovq/status/1…
#mu_тестирование_рефакторинг
#mu_реактивщина_однонаправленщина
Вчера я обещал немного поговорить о тестировании/дебаге Rx кода и однонаправленных архитектур.
Как я говорил ранее Rx - это всего лишь Sequence с данными. Поэтому любые тесты проходят примерно в таком ключе. Вы мокаете ваши нетворк сервисы и по сути 2 функции внизу эквиваленты с точки зрения теста.
Двигаемся дальше. Однонаправленная система, о которой я рассказывал раньше - это по сути чистая функция, которая не зависит от внешних факторов. Здесь совсем просто есть входные параметры с которыми результат функции будет один и тот-же
Но у нас все-таки система с большим количеством зависимостей. Как же тестировать такую систему?
Начнем с того, что у меня немного нестандартный подход работы с зависимостями. Я не использую протоколы для одной-двух функций, я инджекчу сами функции. Такой подход дает возможность избавиться от бойлерплейтных моков.
@algridmd @mobileunderhood Интересно, кто ему сказал первое время? Тесты, это часть работы. Если кто-то недооценил работу - естественно менеджер расстроиться. Он точно так же расстроиться, если работа сделана быстро, но все жалуются... Просто надо быть честными.
#mu_тестирование_рефакторинг
Коллега говорит правильные вещи twitter.com/Dronmdf/status…
В итоге протестировать всю систему целиком можно таким образом. Мы мокаем необходимые зависимости напрямую в тесте, прописываем цепочку ивентов и смотрим за тем, как изменялось состояние
Тут немного набросали на кложеры в инитах. Совершенно не важно, как вы работаете с зависимостями. Про кложеры я рассказал, чтобы вы поняли предыдущий пост. А суть в том, что однонаправленную систему довольно просто тестировать целиком.
Такой подход даже позволяет тестировать полноценные пользовательские истории. Вьюшка здесь максимально тупая и ей просто нужно отрисовывать изменение состояния
#mu_тестирование_рефакторинг
День и рабочая неделя движется к завершению. Будем подводить черту. Сегодня мы вскользь затронули темы тестирования и рефакторинга. Судя по вопросам и вашему отклику тема вам интересно, но как мне показалось знаний по теме не много
Некоторые моменты и тезисы были встречены агрессивно. Поэтому я постараюсь лишь подытожить свой опыт и рассказать, что мне дали знания тестирования и рефакторинга, а так-же поделиться еще раз литературой.
Без тестов действительно можно жить на проекте, но на мой взгляд не долго. Проект разрастается, как и связанность кода в нем. Не нужно рассказывать, что вы делаете все по солиду, поэтому тесты потом. Это вас не убережет.
Как написал коллега @rbsgn TDD принудительно заставляет вас писать более качественный код. Здесь уже не получится написать спагетти код. Поэтому такой подход вас приучит писать маленькие классы с минимальной ответственностью. Всякие солиды и прочие аббревиатуры придут сами собой
А теперь для тех, кто хочет разобраться в вопросе.
Первая книга по TDD. В ней разжёвывается все с самого начала с примерами и практиками. Паттерны и рефакторинги тестов. А вы думали, что тесты не надо писать качественно?
amazon.com/Test-Driven-De…
Вторая книга по TDD. На мой взгляд в ней более полно рассказывается процесс с примерами на реальном проекте. Именно в ней рассказывается принцип "The Walking Skeleton".
amazon.com/dp/B002TIOYVW/…
Третья книга - это библия рефакторинга. Недавно вышла вторая версия, немного стряхнувшая пыль со старых подходов.
amazon.com/dp/B07LCM8RG2/…
Читая эти книги, вы заметите что рефакторинг и тесты - это неразделимые вещи. В любой из этих книг будет, как про рефакторинг, так и про тесты. Суть написания тестов в том, что написанный уродливый рабочий код можно отрефакторить и превратить в элегантное решение.
Так-же вы сможете обратить внимание, что TDD и рефакторинг идут рука об руку с процессами. Эти книги вам расскажут, каким образом вы сможете ускорить и сделать процесс разработки более гибким
Четвертая книга, про которую я упомянул ранее - это книга об экстремальном программировании. То и дело возникали комментарии про менеджеров, про замедление процесса. В этой книге, как мне кажется отличный ответ на вопрос "зачем?"
amazon.com/dp/0321278658
А на этом на сегодня все. Пишите качественный и скалируемый код!
#mu_процессы
На этом технические темы у меня закончились. Завтра будем обсуждать процессы в команде: скрамы, аджайлы, т шейпы. А так-же затронем тему развития разработчика.
@mobileunderhood А если основная функция приложения связана со звуком, как это тестировать?🤔
#mu_тестирование_рефакторинг
Кстати, когда я работал инженером, в основном я занимался как раз железками, которые тестируют другие железки, так что если очень хочется то и звук можно протестировать twitter.com/UnbreakbleTita…
Суббота
@mobileunderhood Слушай было бы отлично чеб ты теперь все эти книги в один твит собрать. А то я пока на эту книгу смотрел предыдущие ссылки уже потерял)
Пожалуйста
amazon.com/dp/B002TIOYVW/
amazon.com/dp/0321278658
amazon.com/dp/0321146530
amazon.com/dp/B07LCM8RG2 twitter.com/AntonMinashkin…
#mu_процессы
С первым выходным вас!
На выходные я не хочу вас сильно нагружать, поэтому спойлер, сегодня нет правильного ответа ни на один вопрос) А начнем мы с опроса
Как вы считаете, нужно ли работать над процессами внутри команды?
Отлично, что мы сходимся во мнении, процессами заниматься нужно. Теперь давайте сузим область опроса.
Что вы думаете, о таких практиках, как scrum, agile, kanban, XP?
#mu_Нидерланды
Судя по вопросам @AntonKulibyakin, я пропустил в своем рассказе коллег фронтендеров. Немного поспрашивал.
Стек чаще всего реакт. С реактом работа точно будет, сто процентов.
ЗП "от 60 до я бы сказал тыщ 120, можно и больше но в консалтинге"
Корова не моя
Я бы сказал, что жить одному можно нормально начиная от 50, но вы сами понимаете, у всех разные случаи
У твиттера такой убогий UX, я просто не могу. Треды вести это именно боль. Я сам свои твиты с трудом нахожу.
Вы вообще успеваете следить за моими постами?
Спросил я в предпоследний день
@mobileunderhood t.me/ruggerprogramm… если кому-то интересно :)
У коллеги неплохой телеграмм канал) twitter.com/ruggerprogramm…
Сегодня мое мнение синхронизируется с мнением большинства) Я считаю, что все эти методологии имеют право на существование и следование их по учебнику действительно может помочь команде, в которой процессов вообще не было
Современная разработка дошла до уровня, когда понять, что программировать намного важнее, чем само по себе программирование. Отлично сочетается с пословицей "Семь раз отмерь, один раз отрежь"
Но не стоит уходить в крайности, когда серам мастер гоняет на встречи, команду совершенно не понимающую зачем все это нужно
Команда сама должна дойти до того, что ей нужны какие-то процессы, обсуждения и дополнительная визуализация работы. Но если команда не знает о таких подходах, сама она до этого будет доходить довольно долго
Поэтому вот книга, которая описывает основные подходы в построении процессов. Мое мнение, что не только скрам мастер или аджайл коуч должны рассказывать про процессы. Каждый участник команды должен быть заинтересован в улучшении процессов
amazon.com/dp/B00PJ8YKRM
Часто скрам мастера могут входить в крайности и превращать хорошие вроде начинания в фарс. Я слышал ни раз от людей, что все эти скрамы никому не нужны. На мой взгляд команду нужно не заставлять, команду нужно учить.
Вот еще книжка, рассказывающая про это
amazon.com/dp/1484236904
Как показала моя практика любая крайность по этому вопросу приводит к плохим результатам.
Если процессов нет и нет их развития, в команде все начинают заниматься чем угодно, но не развитием продукта. Поверьте, что если убрать все "ненужные" встречи, то разработка не станет быстрее.
Если процессы вводят насильно для команды, то команда не понимает зачем все это нужно. Команда неохотно ходит на ретро каждые 2 недели. Таким образом вы не будете получать профита от процессных активностей. Народ будет просто тратить энергию, чтобы отсидеться на встречах
В итоге нужно искать золотую середину. Нужно доносить команде необходимость каких-то дополнительных активностей. Если у вас канбан заключается только в том, что вы на доску задачки добавили и дальше с этим ничего не делаете, то у вас не канбан, а просто доска с задачами
Если у вас гоняют на демо всю команду, которая находится в потоке разработки. Вы просто выведите разработчиков из потока, чтобы они обязательно услышали мнение о том, как они добавили новую кнопку.
Процессы нужно вводить когда команде это нужно, процессами нужно заниматься и образовывать команду, чтобы команда решала, что им действительно нужно. Перегибать людей через колено к хорошему ничему не приведет
#mu_процессы
Теперь двигаемся дальше к Т шейпу. Я все чаще начинаю слышать запрос в команду к таким людям. Если кто-то не в курсе, о дем идет речь
medium.com/@jchyip/why-t-…
Расскажите считаите ли вы такой подход рабочим?
Перед тем как развить тему по Т shape
Были ли у вас когда нибудь проблемы в команде с другими ролями? Дизайнер опять ввёл новый оттенок серого? Бекендер придумал схему, что надо делать 5 запросов, в не 1? А ПО не понимает, почему фронт, андроид и iOS работают с разной скоростью?
А теперь по порядку. Крайне сложно выбрать с самого начала чем хочется заниматься, здесь как в диабло, выбрать за кого хочешь играть можно только когда прошел всю игру за всех персонажей. В том числе и поэтому наше образование пытается выучить специалистов широкого профиля.
Но в крайности впадать тоже не стоит. Приведу пример из собственного опыта. Когда я работал инженером я занимался по сути всем и сразу: электроникой, топологией (это элементы на плате расставлять), программированием микропроцессоров и написанием программ для десктопа
За 4 года работы в таком режиме я думаю, что я не достиг не по одному направлению уровня крепкого джуна. Да это дало мне большой кругозор и позволило выбрать направление, которым мне действительно хотелось заниматься. Но я думаю этого можно было и быстрее достичь
За пол года прохождения курсов по iOS я узнал больше о программировании, чем за 4 года карьеры инженера. Моя мысль заключается в том, что начинать стоит с I, но лучше посмотреть по сторонам с самого начала, чтобы потом обидно не было
И уже в тот момент, когда I из Т станет весомой и вы сможете называться профессионалом стоит начать немного смотреть по сторонам.
Сейчас я не призываю становиться каждого становиться командой разработки в самом себе. Знать дизайн, фронт, бек, мобилки и продуктовую часть. Это особо и не нужно. Но для лучшего понимания вашего дизайнера или бекендера какие-то самое знания вам пригодятся
Знания в разработке могут пригодится дизайнеру, который не понимает, почему лучше использовать нативные компоненты для дизайна. Могут пригодиться бекендеру, который для домашнего экрана предлагает сделать 5 разных запросов в сеть.
Один из основных бенифотов поможет наладить общение внутри команды. Помните я рассказывал про процессы, а как вы выстроите процессы, если никто друг друга не понимает
Так-же Т shape помогает перенаправлять уменьшить bus factor. Если разработчик немного умеет в дизайн, то при горящих сроках не придется напрягать дизайнера, чтобы накидать элементарный экран.
В моей практике была проблема, что когда дизайнер был в отпуске мы не могли нормально согласовать изменение шрифта. Это уже край беспомощности, но я надеюсь смысл вы поняли
Я все еще считаю, что в команде каждый должен заниматься своим делом - разрабатывать продукт. А вот как его разрабатывать в основном будет зависеть от вашего ключевого навыка
Ну и конечно почти каждый разработчик хочет сделать свой пет проджект. Но как можно сделать что-то достойное, если кроме своей области вы ничего не знаете?
Не просто так большие компании, такие как Google или Uber поощряют, когда разработчики внутри компании пробуют что-то новое. Помните историю про диабло? Может быть вы всегда были прирождённым дизайнером, но застряли, как бекендер?
Но я хочу отметить, что в фуллстек именно в процессе разработки я особо не верю. Каждый должен заниматься своим делом, но должен четко понимать, что делают остальные и насколько это возможно коммуницировать друг с другом на равных
#mu_процессы
Сегодня выходной, поэтому я не хочу вас сильно нагружать своими бесконечными рассказами)
Будем подвоить черту.
Процессами в команде необходимо заниматься. Заниматься всем вместе, а не только 1му скрам мастеру, менеджеру или кому-то еще. Процессы будут работать только в том случае, если команда сама до них дойдем и поймет необходимость
Никого принудить не получится. Но, если команда не в курсе о возможностям, которые дают те или иные практики - команду можно научить. Всякие канбан/скрам тренинги полное тому доказательство.
Один из ключей улучшения коммуникации и соответственно процессов в команде является понимание и гармония между всеми участниками этой команды. Один из возможных путей улучшения этого взаимопонимания - Т shape.
Т shape позволяет оказаться на месте своего коллеги и понять все его боли. Так-же продуктовая команда занимается продуктом, а не пишет код или делает дизайн или тестирует или что-то еще. Чтобы создавать продукт эффективно необходимо знать, как создавать каждую его часть
Не забывайте про коэффициент автобусы. Если дизайнер или тестировщик уйдут в отпуск, то вы всегда сможете их подменить в критических случаях и тем самым не будете стопорить разработку
Один из бонусов T shape - это возможность попробовать себя в новых ролях и возможно найти то, чего вы всегда искали.
Ну и мы же все с вами хотим создать много миллиардную компанию))) Есть вы обладаете всеми навыками по созданию продукта - ничего не сможет вам помешать воплотить ваши идеи в жизнь)
Использованные сегодня книги и статьи:
amazon.com/dp/B00PJ8YKRM
amazon.com/dp/1484236904
medium.com/@jchyip/why-t-…
#mu_образование
Завтра мой последний день на неделе. Начнем мы его с обсуждения современной системы образования. А закончим подведением черты по всем обсуждаемым темам.
Воскресенье
#mu_образование
Сегодня намного затронем тему образования. Говорить я могу только за Россию. Обсудим эффективность и непоколебимые устои. Предложим альтернативы.
Начнем со школьной скамьи так сказать.
Практически каждый родитель наказывает свое чадо хорошо учиться в школе. Но так ли эффективен подход?По моим наблюдениям система образования не сильно изменилась еще со времен союза да в школах появились электронные дневники, а родители зависают в чатах, но на этом все
Особенно сейчас, когда все переходят на удаленку сам школьный институт проверяют на прочность.
Считаете ли вы, что школа выполняет свою основную функцию - давать детям знания?
Задачей школьного образования СССР была обучить крестьян грамоте. Задачей постсовкового школьного образования была именно социальная задача.
Приведу пример, мои родители очень сильно хотели чтобы я попал в хорошую школу, но совсем не для того, чтобы я там получал знания, больше всего их пугал факт, что в обычной школе я могу стать, вон как те ребята, которые клей нюхают около подъезда. А это уже был 2000й год
В итоге дети мучаются в школах, пытаются заучивать химию или математику, но не пытаются разобраться в вопросе. Не поймите меня неправильно, я считаю, что ребенку действительно дать основы, но только основы по всему, что проходят в школе.
Дальнейшая задача - это заинтересовать и научить тому, что ребенку действительно хочется и получается. В чем смысл заставлять учить физику, если он/она прирожденный историк?
Опять же хочу оговориться, что базовые знания давать необходимо, но не считать сопротивление электрической схемы в форме звезды. Мне кажется, что большинству предметов сверх базы нужно обучать в формате фильмов BBC и Discovery. Задача заинтересовать.
К примеру моему отцу не нужна была школа, чтобы покупать журналы по радиоэлектронике и разбираться в них самостоятельно. Но как вы все знаете с ментором обучение идет сильно быстрее. Поэтому еще раз: сначала мы увлечены, потом разбираемся в деталях
Образование прошлого было поставлено на поток, чтобы дать стандартизированные знания большому количеству человек. В пост индустриальную эру - это так не работает. Дети учатся читать, писать, считать еще до 1го класса.
На мой скромный взгляд сейчас может зайти история персонализации образования. Со всеми онлайн обучениями, базовую лекцию даже ребенку не нужно проводить живому человеку. Задача учителя помочь ответить на вопросы и усвоить материал, уже после лекции.
Но со школой есть одна проблема. Во первых она обязательная, а во вторых не каждый родитель может финансово выстроить вокруг своего чада полностью персонализированную систему, хотя постараться стоит.
Помните мой рассказ в начале недели о том, что действительно я понял чего хочу, только к 4 курсу универа. Никто не занимался мной, у меня получались точные науки, поэтому даже вопросов не возникало, чем заниматься
#mu_образование
Как я уже писал про школу трудно рассуждать, так как у всех свои проблемы и свои тонкости.
Поэтому я хотел бы двинуться к высшему образованию. Здесь мы можем принимать самостоятельные решения.
Как вы считаете, нужно ли высшее образование в насчтоящей форме?
Хочу подчеркнуть, что разговор идет только о настоящей системе высшего образования, а не о системе в принципе
Рассмотрим минусы текущей системы высшего образования.
Туда идут все. Кто-то чтобы не идти в армию, кого-то послали родители, а кто-то просто по инерции. В итоге получаем большие группы немотивированных людей.
Основная проблема в том, что раздута важность высшего образования. Если убрать всех тех людей, которым это не нужно, то получаться группы по 5 человек, а не по 2.
Кстати в том же союзе, и здесь в Нидерландах идти в ПТУ (колледж) не зазорно. Если человек хочет быть слесарем или парихмахером, то идти решать тройной интеграл по объему нет никакой необходимости.
@mobileunderhood Вместо того чтобы идти сразу в вышку, лучше годик попробовать постажироваться по будущей специальности. И понять вообще - твое это или нет. Такой маневр может сохранить лет 5 - 10.
#mu_образование
Вообще система бакалавриата на это и нацелена. По идее вы должны больше внимания уделять практике, а не теории. Но у нас это просто специалитет без год, а не у нас я не знаю как) twitter.com/ashumidub/stat…
Но поможет ли просто сокращение потока? Я в этом сомневаюсь. На мой взгляд система, что первую пару лет тебе накидывают горы фундаментальной теории, а потом на последнем курсе магистратуры удивляются как же вы все забыли, вам же на первом курсе читали, меня сильно удивляет
Кстати хочу отметить, что у меня красный диплом магистратуры далеко не последнего тех вуза страны. Так что любые набросы на то что я ленивый или тупой не работают. Я сам прошел весь этот процесс, пытаясь действительно с ним подружиться
#mu_образование
По минусам высшего образования я пробежался. Но что делать? Что можно делать сейчас? Все нижесказанное - это исключительно мое личное мнение
Если вы хотите корку, для заведения трактора или для каких либо других целей, то для этого необязательно идти в приличное заведение. Сейчас существует огромное количество вузов с дистанционным обучением. Диплом вы получите международного образца, но не везде, так что проверяйте
Я уже видел ни один пример людей, которые приходят в универ только во время сессии и сдают все без особых проблем. Это на мой взгляд полностью дискредитирует систему, но если нужна корка, то ¯_(ツ)_/¯
Кстати в Нидерландах им нужен только диплом магистра, но только, если у вас зп на получении визы. Но поверьте, что даже минимума без диплома не хватит на жизнь здесь. Мне было даже обидно, что мой европейский вкладыш, так и не пригодился
А как же получить знания? В первую очередь необходимо понять чего вы хотите, а дальше уже обращать внимания на курсы и программы, которые вас научат именно тому, чему вы хотите
Даже некоторые вузы проводят такие программы, обучая вас всем фундаментальным знаниям. Кстати, если провести ресерч образования на западе, то вы сможете обратить внимание, что далеко не на все специальности учат по 4 года. В тех же Нидерландах есть программы с дипломом на 2 года
#mu_образование
Как выглядит на бумаге болонская система (бакалавр + магистр).
Бакалавр - это специалист, которые имеет все необходимые практические навыки, чтобы делать то чему научили и навыки, чтобы узнавать новое. Процесс образования выстраивается таким образом, чтобы учащийся большую часть времени пытался сам что-то сделать под присмотром ментора.
Магистр - это человек с навыками, который хочет толкать науку, делая открытия. Поэтому магистерская диссертация - это научная работа и 2 года обучения вы занимаетесь не как-бы обучением, а именно научной деятельностью
Что получилось у нас? Бакалавр - порезанный специалист, которому выдают ту же тонну теории, без особой практики, мотивирую тем, что наши то ребята могут всегда научиться чему-то сами. Хотя бакалавр - это как раз про практические скилы - это тот самый колледж или пту, если хотите
Магистр - это я даже не знаю ¯_(ツ)_/¯. По идее человек науки, но наукой у нас занимаются в аспирантуре. В итоге просто накидывают то, что было в специалитете, но не успели в бакалавриете + все пытаются сделать что-то еще
Хочу признаться, что в магистратуру я пошел не ради науки, а просто под давлением родственников и историями про то, что трактор на бакалавре едет не очень активно
#mu_образование
3 года назад я как раз писал статью на тему своего опыта с нашим образованием
habr.com/post/324000/
Но пожалуйста думайте своей головой. Я - просто рандомный чувак из твиттера, который еще и пропадет завтра. Не принимайте никаких импульсивных решений, поддавшись общественному мнению
#mu_образование
Хочу отметить, что частные компании, как мне кажется начинают взрывать и переворачивать современное образование в России.
Тот же skyeng открыл для меня совершенно новый подход к изучению языка, у них есть свои проблемы с учителями, но сама идея игровой формы заходит на ура. В противовес курсы голландского, которые я посещаю сейчас на уровне школьного английского, который за 10 лет мне ничего не дал
Не могу говорить за все онлайн школы, но есть уже гигантское количеству разнообразных курсов, которые за месяц смогут вас познакомить, а не научить со сферой. Не нужно сидеть 2 года на высшей математике, чтобы узнать захочется вам программировать или рисовать.
К примеру прямо сейчас я прохожу курсы продуктового дизайна. За 15 часов чувак рассказывает по сути только, как пользоваться Sketch'ом, но этого уже достаточно чтобы понять насколько мне это интересно
Я ни в коем случае не хочу отрицать полезность фундаментальных наук, но все эти науки должны изучаться в нужный момент, а не за 4 года да первого практического применения мат формулы
Неделя подходит к конце, поэтому будем подводить черту) С каждым постом буду оставлять хештег, по которому вы сможете найти всю необходимую информацию
#mu_Нидерланды
В понедельник мы с вами общались про жизнь в Нидерландах. Все, что я рассказывал вы сможете найти по хештеги. Скорее всего в ближайшее будущее, я скомпоную всю информацию и выложу в своем телеграмм канале - подписывайтесь)
t.me/thenetherlander
#mu_собеседования День подходит к концу, поэтому по собеседованиям у меня все. Давайте подводить черту и попробуем сформулировать о чем мы разговаривали.
#mu_собеседования
Немножечко похоливарили про собеседования и тестовые
twitter.com/mobileunderhoo…
#mu_реактивщина_однонапраленщина Дело близится к вечером. Поэтому давайте подводить черту.
#mu_реактивщина_однонапраленщина
Множечко пообсуждали про реактивщину и однонаправленные архитектуры
twitter.com/mobileunderhoo…
#mu_тестирование_рефакторинг День и рабочая неделя движется к завершению. Будем подводить черту. Сегодня мы вскользь затронули темы тестирования и рефакторинга. Судя по вопросам и вашему отклику тема вам интересно, но как мне показалось знаний по теме не много
#mu_тестирование_рефакторинг
Кто-то так и не принял TDD в свое сердце, но я старался.
twitter.com/mobileunderhoo…
#mu_процессы Сегодня выходной, поэтому я не хочу вас сильно нагружать своими бесконечными рассказами) Будем подвоить черту.
#mu_процессы
Обсудили необходимость процессы в работе команды и T shape
twitter.com/mobileunderhoo…
#mu_образование По минусам высшего образования я пробежался. Но что делать? Что можно делать сейчас? Все нижесказанное - это исключительно мое личное мнение
#mu_образование
И на последкок пробежались по образованию
twitter.com/mobileunderhoo…
Спасибо всем за неделю! Помимо хорошего общения я накопил заготовки на несколько статей и докладов)
Чтобы следить за всеми новостями подписывайтесь на мой твиттер:
@atimca
Если интересно узнать про Нидерланды:
t.me/thenetherlander
А с вами был Максим Смирнов до встречи