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

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

Автор: @lvbond Senior iOS Yandex, ex-Avito, VK
Download Telegram
Моя любимая задача с собесов по программированию

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

Алгоритмическая секция уже давно настолько упрощена, где просят только написать очень простой код. От алгоритмов и математических доказательств уже ничего не осталось. Ее уже даже перестали называть алгоритмами, а изменили на общее название «программирование». Но хейт не удивителен. Для зубрителей теории писать код — криптонит.

Статья за авторством Carlos Arguelles, бывший Bar Raiser в Амазон. За свою карьеру провел больше 1000 собеседований.

Carlos поделился своей любимой задачей по програмированию, которую уже задавал порядка 500 раз и которая, по его мнению, на 95% совпадает с итоговым решением.

🟣Для многих гораздо важнее сама беседа, чем код, который человек пишет человек. 

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

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

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

🟣Более грамотные специалисты догадываются, что скорость поиска O(1), необходимую для превращения O(n²) в O(n), может обеспечить словарь (Map). Лучшие же кандидаты предусмотрительно отмечают недостаток такого подхода, заключающийся в использовании O(n) памяти. Здесь повышение скорости достигается за счёт увеличенного потребления памяти.

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

Поэтому, нужно уметь считать сложность и знать время и память основных структур данных и алгоритмов.
Please open Telegram to view this post
VIEW IN TELEGRAM
21🤬42
Технические блоги для систем дизайна

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

Я почти не подписан на другие каналы, кроме своего 🙂 слишком скептически отношусь к любому человеку за которого не берет ответственность ни компания, ни другой образовательный механизм. Ну или человек активно технически контрибьюти в комьюнити и его экспертность доказана через крутые проекты, конкурсы или Олимпиады. Даже часто задаю себе вопросы «а прав ли я». Слишком легко во всем ошибиться. Пока не покрою тестами — не появится доверие

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

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

Ниже список интересных статей:
Netflix TechBlog
Uber Blog 
Engineering at Meta
LinkedIn Engineering
AWS Architecture Blog 
Stripe Blog: Engineering
Discord Blog: Engineering & Developers
Slack Engineering
8🤬41
От каких компаний русскоязычные айтишники больше всего хотят получить оффер, а от каких — в ужасе отшатнутся?

Это один из многих вопросов, на которое отвечает большое исследование NEWHR Data. Мы провели его в сентябре 2023 года.

— Выборка исследования: 807 человек. Анкеты заполнили представители 16 IT-специальностей и всех грейдов вплоть до C-level.
— Мы выяснили, чего айтишники хотят от работодателей на российском и зарубежных рынках. И наоборот — что отталкивает кандидатов.
— Узнали, в каких странах айтишники живут, планируют искать работу и многое другое.
— Например, 5 из 10 наших респондентов живут за границей. А 3 из 10 готовы к трудоустройству только в зарубежные компании.

🦄 Полную версию исследования читайте по ссылке 🦄
🤬41
IT перестало быть гарантией работы

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

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

Как это повлияет на студентов?

С ИИ тяжело тягаться в программировании, учитывая, что он становится все умнее и умнее. Акцент сместится на концептуальное мышление. Вместо обычного написания кода, важнее научиться творчески мыслить и находить нестандартные решения.

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

Будущее IT специальностей будет там, где ИИ пока не может превзойти кожаных мешков. В любознательности, креативности и способности композиции идей.

Как часто вы пользуетесь ИИ для работы?
🤬18102
This media is not supported in your browser
VIEW IN TELEGRAM
Джобс фигни не скажет
25🤬432
Симулятор владельца стартапа

Я почти не играю в игры. Дофамин перестал вырабатываться на них. Но вот какие-то стратегии иногда щупаю. Особо любитель на пару вечеров присмотреться к всяким симуляторам.

Вот и тут наткнулся на хардкорную симуляцию владельца стартапов. Что-то вроде the Sims, только про тех, кем мы себя представляем в грезах.

Отлично поиграть и проиграть пару раз, чтобы понять что это супер сложнейшая затея и многим из нас даст прикурить игра. А что сделает жизнь?

Ну если любите видео, то вот прикольный обзор от практикующего бизнеса дева.
92🤬1
9 обязательных навыков, чтобы называть себя сеньором

Продолжаю формировать образ и критерии сеньора. И сейчас попалась плюс/минус рыночная статья про обязательные навыки.

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

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

Я уверен, что нельзя проверить сеньорность за 30 минут. Но и нельзя путать эрудицию с опытом и инженерностью и растягивая знание терминов на 3 часа.
8🤬2
Как часто вы думаете о римской империи?

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

Одна из сильнейших идей по ресурс менеджмету и самоидентификации у стоицизма — держаться дальше от толпы

🔜 Видос: https://www.youtube.com/watch?v=9-pBBNjfO6E
Please open Telegram to view this post
VIEW IN TELEGRAM
🤬771
Как определить сеньора?

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

🟢Платформа. Где час или два спрашивают всякие вопросы про iOS: многопоточность, управление памятью, UIKit и язык. Обычно это самая легкая секция и к ней проще подготовиться просто прочитав рекомендации или ваши любимые сливы и методички с вопросами. В зависимости от духоты и адекватности, конечно.

🟡Программирование. Её многие называют "алгоритмами", но это уже неверно. Обычно дают одну или две небольшие задачи. Смотрят на ход мышления кандидата, его самостоятельность, качество кода. Может ли он предложить лучшее решение, сравнить свой код по эффективности и как будет действовать в небольшом стрессе. Без подготовки эту секцию очень сложно сделать на отлично.

🟣Проектирование. Это обязательная секция для сеньоров на которой и решается мидл ли ты позорный или тру инженер. На нее зовут тех, кто прошел предыдущие секции на отлично. Здесь и есть возможность определить сеньорность кандидата. Секция обычно длится 1-2 часа. На ней кандидату дают какую-нибудь задачу в стиле "Запроектируй аналитику". Здесь оценивают как кандидат собирает сам требования без подсказок, проактивничает, не усложняет и все эти приколы с чистыми архитектурами и SOLID’ами, как минимум. Также эту секцию без реального опыта лидирования задач очень сложно пройти.

Интересные материалы для проектирования:
- Framework For Mobile System Design
- Mobile system design book
- Mobile Syste design

Делитесь своими материалами по систем дизайну
Please open Telegram to view this post
VIEW IN TELEGRAM
10🤬61
вдохновился прошлым постом и решил спросить у ЯндексГПТ про выгодные ниши для стартапов...
76
Как вести себя на интервью? 🤔

Давайте поговорим немного о самом процессе собеседования.

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

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

🔘 Уточните сколько времени отводится на решение задачи

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

🔘 Не бойтесь спрашивать у интервьюера вопросы

Если вам что-то непонятно в задаче — спросите. Или попросите интервьюера прокомментировать ваши идеи.

🔘 Не бегите сразу писать код

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

🔘 Подумайте о корнер кейсах

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

🔘 Не стоит сразу пытаться придумать оптимальное решение

Задача решенная неоптимально «в лоб» обычно ценится больше, чем супер-оптимальное, но нерабочее решение. Во всяком случае, если интервьюер не попросит вас сразу перейти к оптимальному решению.

🔘 Оцените асимптотическую сложность алгоритма и количество выделенной дополнительной памяти

Умение оценивать алгоритмы — одно из основных в данной дисциплине. Обычно именно по этим оценкам сравниваются 2 алгоритма между собой.

🔘 Просите совета у интервьюера

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

И самое главное. Помните, что любое собеседование это диалог. Софт скилы тут не менее важны, чем харды. Худшее, что вы можете сделать — уйти в молчаливое длительное размышление и в конце выдать готовое решение. Чтобы оценить вас, интервьюеру важно слышать и понимать ход ваших размышлений.
115
💔178
В бывшем Твиттере наконец придумали что-то нормальное. Они там у себя просят YandexGPT придумать названия для всяких жизненных ситуаций и чувств, которые никак не называются.
💔136
Не делай ничего за бесплатно

Потихоньку подвожу итоги года и что было хорошо, а что нет. По структуре он похож на уличную драку: ты начал драться в стойке, а перевели тебя в партер и еще и тыкают в глаз. Все очень разнообразно и насыщено. За этот год получилось многое и многое не успел. Из технической экспертизы я подтянулся в:
- Шел 365 дней алгоритмов
- Впервые поучавствовал в конкурсе телеграма, лидировал команду новичков и выиграл призовое место с 1,5к$
- вошел в топ 50 по конкуру алгосов Яндекса
- Организовал и провел митап
- Стал топ 1 иосником
- Зарелизил симулятор иосника в альфе, который стал топ 3 в апсторе

Сложно конкурировать с этим годом. Если только в ФААНГ не получу оффер в следующих. Но хочу поговорить о релизе симулятора. Мне кажется, что опыт своего пет-проекта, где я вкладывал свои знания и оформлял их в интересные тренажеры, дал один из ценных майндсетов. Понимание того, что потребители чаще не ценят бесплатное и считают это должностью.

Симулятор был чисто некомерческим, бесплатным продуктом. Где мы обладая ограниченными ресурсами старались сделать уникальный продукт с частыми задачами на работе и собесах. Что-то не получилось, а что-то получилось. Но даже это в итоге получился ни на что не похожий продукт. Который имеет уникальные механики и не является просто сборником теории и статей. В итоге, бесплатный контент из канала и симулятора воровали и перепродавали у себя на бусти или платных роадмапах. А находятся те, кто платя за эконом такси, ожидают от него услуг премиума. У нас в iOS любят говорить на такое "Купите себе норм устройство и не трахайте нам мозг".

Такому нытью меня мог заранее научить опыт Xcode. Где по факту мы имеем лучшую БЕСПЛАТНУЮ IDE, которая отлично конкурируют с теми, кого делают за зарплаты и держит на себе компании. Те же продукты JetBrains стоят несколько сотен баксов, но аудитория недовольна качеством бесплатного Xcode, который мало чем хуже. Им мало за бесплатно, оценки в сторе это показываю. А платить не готовы. Всегда вспоминаю мем Лебедева о потребительском терроризме. Если хочешь норм услугу или продукт — плати.

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

Ждите когда-нибудь платный симулятор pro max 🤡
Please open Telegram to view this post
VIEW IN TELEGRAM
💔21765
Media is too big
VIEW IN TELEGRAM
Тоже пришел к этой мысли недавно. Не учим языки. Изучаем computer science
12💔32
Forwarded from Код Воробья для iOS разработчиков
This media is not supported in your browser
VIEW IN TELEGRAM
Залипательно-наглядно в чем разница между Frame и Bounds.

Это моё приложение 📏 Layouter, пока не в релизе.
Please open Telegram to view this post
VIEW IN TELEGRAM
48💔1
В этом году и канал сильно поднялся. Думаю, в первую очередь папке с каналами от @iosdev

А комментов мы много в чате пописали. После этой передозировки я его дропнул. два раза
16💔331
Топ книг 2023

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

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

Мой топ такой. Места в рандомном порядке. Каждая по-своему полезна:

1. Эстетический интеллект. Потому что лучше всего показывает как важен эстетизм в действиях и форме. Материализует то, что не имеет тела. Недавно слышал одну историю, как продавали одно крупное приложение, а покупать его не хотели, потому что выглядит как говно. Книга учит как воспитывать хороший, сдержанный вкус. Упаковывать его и использовать для монетизации.

2. Спроси маму: Как общаться, если все кругом врут? Потому что интернет — место лжи. Огромная маркетинговая площадка. Отфотошопленные мысли, отфильтрованные лица. Люди не знают чего хотят, до того мига, пока не захотят чего-нибудь. Каждый кричит об успехе, которого нет. Каждый показывает свою "рабочую сторону". Приукрашивает, умалчивает, преувеличивает. Среда обитания, где нужно придумывать успех или почему тебя должны слушать? Такая среда формирует ложные амбции. Подсознательно или сознательно мы все играем в эту игру и важнее всего не обманывать самого себя. В книге основы продуктовой аналитики и как собирать данные, которые будут полезны твоему продукту.

3. Нравственные письма к Луцилию. Потому что лучшая книга про софты от воспитателей римских императоров. Все, что вы уже говорите — давно сказано. Если мы хотим сформировать личность или внутреннюю крепость из убеждений, то нет ничего крепче давно проверенных идеалогий. Все идеи интернета — временные. Растворяются в вечном потоке бесконечных роликов, не успевая затвердеть. Трясутся в комментах, когда их закритиковали. Переобуваются, если задизлайкали или отписались. Вызывают на батлы, если оскорбились. Заложники аудитории и донатов. В этом нет фундамента и силы. Это глина, которая не успела стать камнем. Идеи императоров Рима актуальней любого инстаграм психолога, мужественней любого тестеронового блогера, богаче любого успешного коуча.

4. Капитал. Потому что учит эффективно использовать деньги. Зачем тебе деньги, если ты не знаешь куда хочешь тратить? Толпа всегда хочет денег, но не знает что с ними делать. Она всегда в состоянии нужды, но не понимает как ее утолить. Самый легкий ответ — деньги. Они дают финансовую свободу, но что делать, когда ты стал свободный от желаний и стремлений? Куда вкладывать ресурсы? Как бороться с опустошением и параличом свободы? Капитал помогает познакомить с противоречиями и устройством современного мира.
24113