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

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

Автор: @lvbond Senior iOS Yandex, ex-Avito, VK
Download Telegram
С днем программиста

Хочу поздравить всех программистов с этим праздником. С самого раннего детства я увлекался компьютерами и зарабатывал только с помощью них: проходил игры за деньги, переустанавливал винду и программы, записывал dvd диски с фильмами и продавал. В моем колхозе уже с 13 лет он помогал мне зарабатывать. Ничего другого я не умел.

Уже в студенчестве я начинал писать первые сайты на фрилансе, а потом уже и приложения. В чем-то другом я никогда не видел себя. Влюбившись в свое ремесло и каждый день стараясь быть лучше.

Поздравляю всех тех, кто любит свою профессию и получает удовольствие от работы. Гигабайты счастья и здоровья вам. Триллионы сумм на офферах
47
Запах кода: необоснованная сложность

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

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

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

А читать проще код, который не строит из себя умного и объясняет сложные вещи просто. Экономит множество когнитивных ресурсов и упрощает понимание.

Одна из главных задач хорошего кода в проде — упростить когнитивную нагрузку


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

Вчера записывали мок-собес, с разрабом из известного мессенджера, "как проектировать Телеграм" и получилось очень круто. Это не был собес, а получилось нечто среднее между интервью, мок-собесом, воркшопом и подкастом.

Мне всегда были скучны подкасты и неинтересны. Из 1,5 часов обычно можно сжать до 15 минут. А тут формат систем дизайна держит внимание и не отвлекает от мыслей. Как в том меме в инстаграмах про кинотеатр для СДВГшников, где на пол экрана идет фильм, а на остальные пол экрана идет какой-то рандомный видос.

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

Это вдохновило меня снова улучшить контент и собирать для такого формата экспертов с уникальным опытом. Поэтому ищу ребят для подкаста-интервью в формате систем дизайна:
- экспертов CI/CD
- архитекторов
- разрабов GPU
- необычных приложений
- музыкальных и видео плееров
- разрабов дизайн системы
- BDUI
- кроспплатформу
- и других

Такое интервью будет без оценок и свободным в формате воркшопа, где аудитория сразу получит лучшие практики.

Ну и если ты просто хочешь пройти собес для самопроверки, то тоже пиши
16
🔥 Новый формат мок-систем дизайн-подкасты. Проектируем телеграм

Жирный подгон вам ко дню программиста! В прошлом посте я говорил, что совершенно случайно получился новый формат. Он похож на смесь мок-интервью, воркшопа и подкастов.

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

Получилось очень здорово. Мы проговорили:
🟣методы синхронизации
🟣офлайн-онлайн
🟣пагинация
🟣перфоманс UI и не только

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

Для следующих таких интервью ищу ребят из платформенных команд, FAANG'ов или видео/аудио плееров.

Канал эксперта: @alexdevaslifestyle

🧬 Получить доступ к закрытым мок-собесам оформив подписки на бусти и в боте
Please open Telegram to view this post
VIEW IN TELEGRAM
6
Пятничная викторина
7
Что выведется в консоль?
Anonymous Quiz
11%
5, 10
5%
Ошибка компиляции
8%
10, 10
33%
5
38%
10
5%
nil
Почему вам нужен ментор

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

Я скорее увидел другую сторону. Качественную культуру взаимного роста. Где огромное множество существует хороших менторов, которых так просто не найдешь в интернете и чьи услуги не всегда доступны. Кто не впихивает свою "консультацию", а использует это как инстурмент развития.

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

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

Вот хороший выпуск от ex топов крупных компаний как майрософт и jetbrains. Авторы разбирают крутые вопросы:
🟣Зачем менти нужно идти к ментору
🟣Различие между коучем и ментороством
🟣Зачем ментору менторство
🟣Гросс майндсет
🟣Конфлиткты интересов и многое другое
Please open Telegram to view this post
VIEW IN TELEGRAM
5
Никто не будет думать о твоем повышении кроме тебя

Сейчас читаю нахваленную многими книгу The Software Engineer's Guidebook, автора сайта pragmatic engineer и уже разобранную нами "Growing as a Mobile Engineer"

Книга мне уже нравится и много мыслей заходят. Возможно, будет серия постов про самые интересные мысли и советы.

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

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

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

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

Сейчас я все сильнее выстраиваю фундамент развития в нашем сообществе. Один из них — быть проактивным и не зависеть от менторов, руководителей, гайдов и роадмапов. Развивать любознательность, смелость и крепкость. Создавать инфраструктуру для взаимопомощи. Самим их строить и отвечать за свой рост. Брать ответственность в свои руки и не быть нытиками, которые жалуются на сломанную индустрию.
21
🌿 Вопросы для подготовки к собесам: Анти-паттерны

Недавно произошел забавный случай. Мне писал коллега, что проводил свой собес в крупном банке с помощью нашей базы знаний. Он задавал уточняющие вопросы, рядом с методичкой открыв наш ноушен. Это приятно, но смешное в том, что кандидат отвечал ответами 1 в 1 будто читал из той же самой методички. Было одновременно забавно и приятно, что наши сборники используются по обе стороны. Но лучше все же не зубрить ответы и не списывать...

Поэтому я стараюсь собирать самые интересные и полезные вопросы. Даже если вы не готовитесь к собесам, то это поможет вам держать себя в тонус. Как решение кроссвордов или загадок по вечерам. Эту идею мы также несем с "ежедневными задачами в чате".

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

В этом сборнике я собрал интересную тему анти-паттернов:
🟣Что такое анти-паттерны?
🟣Почему в мобилке так осторожно относятся к Vendor Lock и причем тут жизненный цикл?
🟣Почему синглтон считается анти-паттерном?
🟣Когда switch/case считается анти-паттерном?
🟣Антипаттерн Ambient Context и многое другое

Также к вопросам приложены материалы для подготовки

🧬 Получить доступ к задачам можно через подписку в бусти или в боте
Please open Telegram to view this post
VIEW IN TELEGRAM
2
Что такое анти-паттерны?

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

Эта формулировка для тех, кто говорит, что их не существует 🙂

https://www.youtube.com/watch?v=Btm3CTI6eMA
4
Почему стало сложно найти работу?

Хорошая статья, которая объясняет почему стало и будет сложнее искать работу. Прогнозы не очень хорошие и понятно одно — находить работу будут не все. Давайте по пунктам:

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

Рынок вакансий уменьшился. Стали меньше публиковать вакансии и чаще увольнять.
🟣Изменения процентных ставок и налоговых обложений заставили компании ужесточить найм.
🟣FAANG'и начал нанимать меньшее количество людей.
🟣Нанимать стало сложнее из-за большого количества обмана и лжи.

Повлиял ли на это AI?
🟣В найм сотрудников стали меньше вкладываться, а больше в ИИ.
🟣AI юзается для создания резюме, которые подходят под фильтр и проходят hr-скрининг. В результате кандидаты, что юзают AI для создания резюме, получают больше приглашений на собеседования, даже если они не соответствуют требованиям.

Ну а самый главный вывод — стоять на месте и не развиваться смертельно опасно
Please open Telegram to view this post
VIEW IN TELEGRAM
11
Почему if/else — это плохо

В чате сообщества мы уже недели полторы спорим о коде: что считается сложно, а что плохо; когда полезны комментарии; полезно ли помечать код MARK'ами; насколько полезны if/else.

Давайте разберемся когда же if/else считается плохой практикой.

1. Злоупотребление if/else может привести к проблемам чтения и дебагинга

2. Чаще лучше использовать guard, чем if/else

3. Не используйте if/else для проверки типов

Также в FAANGA'ах считается, что каждое использование if/else или bool флага приводит к усложнению чтения и поддержки кода в 4 раза.

Материалы для знакомста:
🟣Don’t write if-statements
🟣Stop Using If Statements In Your Swift Code
🟣Why We Should Avoid Using `else` in Programming
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
13
Если тех.дир Тинька начал решать литкод, то ждем алгособесы в тиньке?

Ну а пока все наивно надеются, что алго-собесы вымрут и их отменят, мы в сообществе уже решили ~150 задач и ежедневно решаем и делимся кодом (иногда эмоционально). Где разрабы из JetBrains, Яндекса, Авито, Тинька и других компаний дают фидбэк и точки роста каждому.

Каждый сам выбирает готовить ли сани летом.
1262
Как Leetcode влияет на прохождение интервью

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

👉В целом корреляция между решением задач на Leetcode и успешным прохождением интервью довольно сильная.
👉На силу корреляции влияет количество решенных задач и их сложность. При этом количество влияет только до определенного порога, после 500 задач эффект перестает расти так сильно.
👉Рейтинг на Leetcode не коррелирует с успешностью интервью.
👉Прорешивание сложных задач в два раза эффективнее, чем задач средней сложности. Каждые 50 сложных задач ведут к повышению успешности прохождения интервью на 7%.
12
🧬 Push уведомления: APNS, виды пушей, хитрости и гайд по настройке

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

В этой статье разберемся в работе пуш уведомлений:
🟣Что такое APNS и как он работает
🟣Чем отличаются Silent Push от других видов пушей
🟣Гайд по настройке пуш-уведомлений
🟣хитрости с запуском приложения через пуши
🟣примеры использования

🧬 Получить доступ к статье можно через подписку в бусти или в боте
Please open Telegram to view this post
VIEW IN TELEGRAM
63
🤔