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

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

Автор: @lvbond Senior iOS Yandex, ex-Avito, VK
Download Telegram
Для тех, кому не хватило аргументов и мотивации решать литкод, то вот статья той самой героини с твиттер треда. Можно сказать ее тред также был одним из вдохновителей моего челленджа 365 градусов по Фаренгейту даров богу Алгоритмов.

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

А главное честно. Если нечестно, то это легко спалить, плюс позор на всю жизнь и бан от скилловых программистов. Наказание от бога Алгоритмов, так скажем
🏆6💅31👍1🔥1😁1
🎭 Fake it till you make it

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

Один из приемов перебороть синдром — вера в себя. Она бывает адекватной и нет. Одна черпается из лужи лжи, другая строится из фактов. Прием "Fake it till you make it" имеет 2 стороны медали и при неправильном использовании приведет к более плачевным последствиям. Большая маленькая ложь.

есть условия, когда принцип будет работать:

1️⃣. Прогнозы о будущем должны быть на фактах

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

2️⃣. Притворяться о прошлом — мошеничество.

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

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

Я против лжи. Её переизбыток — опасен. Это плохой инструмент, который погрузит в иллюзии и даст фальшивую метрику.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍71🐳1🫡1
😃 SwiftUI vs UIKit

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

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

В статье автор сравнивает вечных соперников.

плюсы SwiftUI:

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

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

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

минусы SwiftUI

- Фреймворк ограниченный, а попытки его перехитрить приводят к проблемам. Очень простой способ столкнуться с загадочными и неразрешимыми проблемами рендеринга. Достаточно использовать индекс в качестве определения уникальности и уже получим серьезные последствия для того, как SwiftUI будет обновлять список.

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

Так нужно ли учить SwiftUI? Если приложение очень простое, то да. Но где мы видели простые приложения в больших продакшен компаниях? Разве только эксперименты и MVP. Как только экранов будет больше пяти, то лучше переходить на UIKit
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7😁31🔥1🐳1
📚 iOS 15 Programming Fundamentals with Swift

Следующий пост позора автору канала. Это первый первый пост с рекомендацией книги по iOS.

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

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

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

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

Ссылка на книгу тут

#books
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥14🔥2😁2🐳2👍1
Об опыте, мастерстве и знаниях

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

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

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

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

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

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

Любая важная информация имеет долгий период переваривания. Знание и опыт требуют смелости и отважности. Заглядывать туда, куда никто не хотел. Кто сомневается, ленится, отговаривает.

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

Аппетит приходит вовремя еды
🔥6😁3👍2🐳2💯1
Тут в шутку подумали об идее организовать для работодателей, которые меня читают, аудит работников. Но если желающих наберется больше 5, то шутка станет реальностью. Спойлер, не совсем аудит

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

Наша команда имеет большой опыт оценки эффективности сотрудников как в прошлом, так и в настоящем. Разным работадателям из разных стран.

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

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

Нагрузка на ит высокая. В процессах собеседований много проблем. Тут возникает прослойка, помогающая вам сохранить деньги в безопасности и уменьшить риск закрытия
Please open Telegram to view this post
VIEW IN TELEGRAM
😁113👍2❤‍🔥1🐳1🏆1
🦆 365 дней богу Алгоритмов: Отчет за пятую неделю

Главный совет этой недели — не решать алгосы ночью. Сейчас началась сессия, где я делаю как много полезной, так и много бесполезной работы. Мыслетоплива к вечеру почти не остается. Я мог просто долго тупить и без шансов решать задачи, которые решал давным давно.

Только сквозь большие усилия получилось без пропусков

31. Удаление элемента с массива. Стандартная задача. Вроде даже давали на каком-то собесе в сбердевайсы. Так что изи

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

33. Смерджить отсортированный массив. Супер дефолт задача, но тупил жестко. Только спустя пару попыток осознал, что ведь это часть от mergesort

34. Самый длинный палиндром. Здесь я тупил над пониманием задачи. В итоге после часа неудержался и подсмотрел решение

35. Сортировка цветов. Решил тупо сортировкой выбора

36. Реверс слов в строке. Очень странный медиум. Наверное, нужно было сделать задачи без использования системных функций.

37. Максимальная длина в бинарном дереве. Тоже задача из учебников. Решил дефолтно через рекурсию.


#365_дней_богу_алгоритмов
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🏆3😁1🐳1
Как решать алгоритмы?

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

Даже 100-200 задач считаю — это не та экспертиза, с которой я могу претендовать на советы. Вместо создания велосипеда начал искать роадмапы в интернете. Тут спасибо всем, кто помог ❤️

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

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

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

Через час ты уже забудешь как решал это и не разберешься в своем же коде.

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

Подготовил список найденных советов:

1. LeetCode DataStructure Study Plan
2. Roadmap базовых техник
3. 150 лучших практик от литкода
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥1😁1🐳1
This media is not supported in your browser
VIEW IN TELEGRAM
💎 Новая сборка симулятора

Версия: 1 (15)

⚡️ Новый подгон — первый тренажер! Теперь можно проверить себя на самом популярном вопросе всех собесов про многопоточность. Очередь рандомная и каждый заход будет другим от предыдущего.

А также:
- Добавили локализацию — выходим на международный рынок 🤖
- Небольшое изменение дизайна чата
- Поправили баги
- Доработали фильтрацию
- Изменили экран ачивок

💎 Что ожидать дальше
- Новые тренажеры
- Улучшение собесов
- Создание новых багов
Please open Telegram to view this post
VIEW IN TELEGRAM
8🔥6🐳2😱1
Не вступайте в диалог с террористами

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

Любая система несовершена. Каждый из нас берет на себя одну из двух ролей: законопослушника или террориста. Закон и правила формируют порядок. Помогают нам не скатиться в животных. Животных, двигающихся ради своей выгоды и переступающих любые нормы.

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

Этот человек — угроза. С ним нет переговоров.

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

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

Террористические организации и оправдание терроризма не принимаются и никогда не были эффективными. Многие просто пересмотрели фильм «Джокер»

«Ты сер, а я, приятель, сед, И волчью вашу я давно натуру знаю; А потому обычай мой: С волками иначе не делать мировой, Как снявши шкуру с них долой». И тут же выпустил на Волка гончих стаю. И. А. Крылов. Волк на псарне

Надеюсь, больше ни у кого вопросов не будет
👎17🫡9👍8🍌3😁2🦄2🔥11
Решение проблемы Data Races с Actors

Мы почти не затрагивали современные технологии. Ни SwiftUI, ни Swift Concurrency.

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

В статье автор разбирает решение проблемы гонки данных старыми и новыми техниками
👍6🍌1