iOS Makes Me Hate
3.94K subscribers
1.17K photos
167 videos
15 files
1.33K links
Авторский канал про iOS разработку. Путь продуктовых самураев в MAANG.

Самое больше iOS сообщество практиков: https://boosty.to/lionbond/

Автор: @lvbond Senior iOS Yandex, ex-Avito, VK
Download Telegram
Если пропустили новость, то Ян «Hixie» Хиксон, фаундер и техлид Flutter, покинул Google

Новость грустная. Но что она значит на самом деле? Ведь, как сказал сам Hixie, OpenSource тем и хорош, что даже в этом случае он сможет продолжать работать над Flutter.

Скорее всего, последствия печальны не столько для Flutter сколько для Google. Разработчик из Apple Тим Снит подтвердил, что последняя неделя была сложной для команды Flutter, а в Google по непонятной причине не понимают ценность этого проекта и необходимость сохранения ресурсов его разработчиков.

«Любой негатив, который последнее время публикуют про ситуацию в команде Flutter, исходит от людей, которые хотели, чтобы их старшие руководители лучше распоряжались этим удивительным наследием» — считает разработчик.

Он так же рассказал: «Дело не в зарплате. Это разработчики, которые считают эту работу своим призванием. Это не взаимозаменяемые ресурсы, которые можно перераспределять по своему усмотрению. Я надеюсь, что Google наконец осознает, какими ценными активами она обладает, пока не стало слишком поздно. Часы тикают».

#flutter #google
👍7👎2❤‍🔥1😡1
Реимплементация опционала с дженериком и Equatable

Сейчас, когда SwiftUI весь в дженериках, то вопросы о них стали звучать чаще. На собесах почти всегда уже просят написать свой опционал, а к нему добавить Equatable или Hashable. Почти все такие вопросы легко гуглятся. Но есть интересные статьи.

Самые частые вопросы, которые мне задавали давно и недавно:
🔵Как написать свой Optional?
🔵Как использовать Equatable, Comparable и Hashable протоколы?
🔵Как ограничить дженерики протоколами
🔵Как написать свой uwrap
🔵Написать функцию, которая удаляет дубликаты

Пример не для прода, а скорее концептуальный

Cтатьи:
- Re-implement optionals in Swift
- GENERICS in Swift
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12😡31
Буду иногда заливать прикольный ит контент

На западе чет слишком качественные короткие видосы пошли
👍26😡74❤‍🔥31
Как умер один фуллстек разработчик

Нельзя объять необъятное. Эту фразу больше 10 лет назад сказала мой преподаватель по программированию. Она возвращается бумерангом каждые пару лет в разных сферах. В спорте. В жизни. В работе.

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

На днях мы общались с парой команд из кроссплатформ. Я вел эту встречу и задавал 90% вопросов. Они выбрали натив. Точнее их попросили. Две разные команды. Две разные технологии. Их проблема была не в технологиях, а в людях. В найме. Сложно найти качественного спеца, который одинаково хорошо разбирается в технологиях, не боится алгоритмов, знает глубокие специфики обеих платформ и хорошо шарит за архитектуру. Легче переписать все на натив.

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

Даже опытные стратеги скажут, что играя одними фигурами или юнитами чаще худшая тактика на высоких уровнях или со сложными задачами. Хороший отряд или команда должна быть сбалансирована из разных спецов, лучших в своём деле. Этому меня научил Xcom на последних сложностях.

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

Нужно быть экспертом в одной специфике, а не бежать соперничать со всеми во всем. Каждый должен быть хорош в чем-то одном. Выбирать нужно работу, людей, тренеров, которые улучшают сильные стороны. И не бежать качать слабые.
2984🤬22
Моя лучшая инвестиция в этом году. Современные проблемы итшников требуют современных решений.

Купил еще стол с регуляцией высоты. 2 раза оказался бракованный. Сдал.
2212🤬4
Проблемы многоработности

Все мы работали на нескольких работах. Хорошо или плохо каждый сам решает. Я себе ответил на него давно.

Вопрос "сколько у тебя работ?" крайне абстрактный. У тебя может быть подработка раз в неделю, по вечерам или раз в месяц. Но мы поговорим про несколько фуллтайм работ и как это влияет на карьеру или мотивацию.

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

Какие проблемы я замечал, когда был юным и старался захватиться за любую возможность заработать?
1. Теряешь фокусировку. Доказано, что многозадачность сильно уменьшает эффективность на 20% при смене каждой задачи. Эта проблема чем-то похожа на switch context в многопоточке
2. Не углубляешься и не доходишь к сложным задачам. Имея пару проектов или фуллтайм работ ты пытаешься разделить свой ресурс поровну. Что в итоге позволяет уделять каждому только небольшое внимание. Где ты мог бы делать задачи и получать опыт уровня сеньор, но остается ресурс только задач для мидла или джуна. Эффективность становится низкой
3. Сложный лайф-ворк баланс. Один проект позволяет тебе лучше распределять энергию. Прогнозировать планы и не тратить время на синхронизацию отпусков, праздников и отдыха. Твое состояние не будет чаще на пределе и быстро износиться
4. Bad experience. Проблема измученных и утомленных спецов, что их сложно замотивировать и вскоре они либо покидают тебя, либо забрасывают ит полностью уходя в инфоцыганство и рассказывая про софты. Но один из прошлых опросов показал, что главное качество хорошего инженера — это опыт. Какой опыт могут получить те, кто его накручивает и это слово для них пустое? Пустой?

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

Мне кажется, что нужно выбирать одно дело и доводить его хорошо. Так выиграют все.
12🤬772
Как оценивают кандидатов на собеседованиях по программированию в ведущих технологических компаниях

Оценка кандидатов — очень сложная вещь. Часто встречаю мнение, что главная проблема СНГ это не дефицит разрабов, а неправильные оценки. В крупных компаниях неправильная оценка может достигать 60%. Это понятно и не удивляет. За процессами чаще следят либо энтузиасты, либо он формируется в самую последнюю очередь, либо сильно штормится. А масштабировать и актуализировать его еще сложнее.

Сам процесс не редкость превращается в формальности и оценку крайностей, далекой теории или ценностей отдельных взятых интервьюеров.

Программирование или проектирование же в этом процессе хорошо помогают. Они оценивают практику, которую сложно выработать. И отсеивают теорию, которую легко загуглить или спросить у чатгпт.

Отборы в крупные компании еще сложнее. В статье делятся опытом крупных компаний, где нужно пройти 4-5 часовых раундов на кодинг и решения задач. По каким критериям оценивают кандидатов, какие оценки у них есть в методичках

В целом на ресурсе есть много интересных статей:
- Best mock coding interview platforms for Software Engineers
- Coding interviews: Everything you need to prepare
- Data structures and algorithms study cheatsheets for coding interviews
105🤬1
Please open Telegram to view this post
VIEW IN TELEGRAM
396
Кто найдет эмодзи с черным огнем (вот такой 🔥) тому вечная память, подписку подарю в тг премиум и закрытый чат с секретными материалами

Upd: Голосование за смайлик под постом
1361485🤬21
Навыки высококачественного iOS разработчика

Каждый год я актуализирую свой роадмап по целям и плану роста. Когда я хотел придти в большие компании, то впервую очередь хотел узнать ответ на вопрос «а кто такой этот мифический сеньор?». Зачем компании вводят так много секций и требований? К моему сожалению, побывав в разных компаниях никто не знает четкого ответа, а споры всегда ведутся между менеджерами и лидами как стайлгайды у джунов.

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

Чаще легче залететь на сеньорные грейды через собес, чем вырасти внутри компании. Уж очень много карт должно лечь и звезд встать. Должна появиться необходимая задача. Твой импакт должен быть хорошо донесен руководителю или он должен сам его адекватно оценить. Командного бюджет хватить. Появиться мотивация у твоего руководителя защищать тебя перед 10 лидами. А не редкость, придя к своему повышению через трудный путь, награда может разочаровать.

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

Основные навыки высококачественного инженера:

🟣 Инженерность. Кто бы что не говорил про софты, но экспертиза всегда стоит особняком. Ее нужно заслужить через рост или получить через собес. Без нее любой софт скилл обесценивается и кредит авторитетности к словам падает.

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

🟢Автономность. Уметь сформулировать и довести фичу самому. Не ждать пока продакт заведет задачу, QA протестирует или дизайнер нарисует кнопку для прототипа. Высококачественный инженер умеет организовать или довести задачу сам. Заменторить, деллегировать, помочь.

🔵Эффективность коммуникации. Чтобы уметь доносить свои мысли четко, аргументировано и конструктивно. Эффективно вести встречи одна из главных задач и чаще встреч больше, чем кодинга.

🟣Высококачественный код. Отличие хорошего инженера — это навык написания кода. Опытный спец пишет просто, понятно и с минимальным кол-вом багов. Некачественный спец пишет быстро, но нагрузка на поддержку его кода высокая начиная с понимания, заканчивая поддержки и вернувшихся багов на доработку. Этот пункт может вызывать споры. Т.к. этот навык часто игнорируется, если нет согласованного стайлгайда и сроки горят. Пример с тем же телеграмом или другими большими проектами чаще ставят в контр.аргумент, что качество кода не всегда говорит о качестве продукта. Но, все же иногда этот пункт является решающим при прочих равных.

🟡Таймменеджмент. Тут нечего сказать и добавить.

Следующий пост попробую сформулировать задачи, которые могут претендовать на сеньорность
Please open Telegram to view this post
VIEW IN TELEGRAM
484🤬22
все: хотим работать в ит. там много денег
курьеры: подержи мое пиво

вообще уже давно считаю, что итшку переоценивают по бабкам
🤬1621