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
если вы, как и я, увлекаетесь алгоритмами, то главный совет — не зубрите алгоритмы, а начните с изучения техник. Одна из базовых техник — это Two Pointer

https://medium.com/@sudarshan.sharma/two-pointer-pattern-swift-64bfa69a4692
👍10
недавно общался с одной калифорнийской компанией, которая с помощью AR капчурит эмоции и собирает их в алгоритм. Проект, мягко скажем, вдохновляющий

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

Разберу это на цитатник:

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

Лучше и не передашь мысль, что не нужно усложнять

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

Программист может быть сильным технически, но не факт, что он сматчится с вами.


Собесы я не прошел. Вывел 2 урока — дальше продолжать качать алгоритмы на алгодэйли, и не усложнять.
🔥13💩2
Forwarded from TonReports
Фоторедакторы все еще актуальны. Редакция не скрывает свою любовь к фоторедакторам, считая эту категорию по-прежнему недооцененной, хоть и более конкурентной, чем в 2018 году. Несомненно, вы вряд ли запросто сможете сделать еще один MSQRD и продать его Facebook за xxx xxx xxx$ (+/- x), но сделать прибыльный бизнес до нескольких миллионов $ в год — вполне реально.

Вот несколько основных ошибок, которые редакция замечала у друзей и знакомых, касающихся фоторедакторов.
1. Излишнее сравнение себя с конкурентами. Как правило, пользователи, перешедшие из платных каналов не сравнивают вас с другими приложениями, а иногда даже не знают про них. Вам необязательно быть Reface и Faceapp, чтобы зарабатывать
2. Непонимание, что фоторедакторы — это частный кейс арбитража трафика, где важно уметь “находить связку” и затем ее масштабировать
3. Переоценка маркетинговых изменений. Чаще всего это апелляция к ухудшению атрибуции и увеличению CPM. Да, маркетинг действительно стал дороже, но появляются новые большие и дешевые каналы, а также улучшается конверсия в странах, от которых раньше не приходилось ждать платящих пользователей

Примеры новых фоторедакторов
LifeEnjoy - AI Face & Predict релиз 10 месяцев назад, выручка 400 000$ в месяц
Quick Art: 1-Tap Photo Editor за 8 месяцев набрал 60 000$ в месяц
Art Me: Cartoon Avatar Editor появился 5 месяцев назад, выручка 40 000$ в месяц

Как использовать тренд?
1. Для проектов с целью заработка макроэкономические факторы со временем откроют новые рынки вроде Африки и Индии, где конверсия в подписку с каждым годом растет, а CPI все еще копеечный
2. Качественные продукты с оригинальной идеей будут переходить в работу с видео-контентом для TikTok/Snapchat etc. Там есть место, как и для венчура, так и для прибыльного бизнеса
3. Все те же тренды в NFT, о которых мы обычно упоминаем, где есть ниши для редактирования контента, но об этом в одном из следующих постов, поэтому обязательно подпишитесь и включите уведомления
👍5💩2
про работу в команде и с людьми

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

1. Проблема слабой коммуникации внутри команды.

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

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

потом получается так, что обычными разрабами 2х часовые задачи делаются днями. Ибо роутер называется присоединятельперезентатор, репозитории — гейзерами. Над rx'ом написано еще куча своеобразных прослоект без документации. Плюс еще притащали всеми любимый вайпер. Куда же без него?

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

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

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

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

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

https://www.youtube.com/watch?v=mKsY98iEqd4
по поводу собесов

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

Я лично считаю, что в индустрию надо идти по внутреннему самочувствию, а не по внешнему экономическому климату. Но запрос есть запрос.

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

1. Собес "Жили-Были". Рассказ о том че делал, какие проекты выполнял, как относишься к Путину. Проводится часто в устной форме. Считаю самым легких из всех, ибо проверяется не хард скиллы, а больше софт.

Такие собесы подходят часто для легких проектов.

2. Собес "Ищу программиста для одежды на вырост". Такие собесы проводятся людьми, кто следит за индустрией. Любят спрашивать вчерашнюю статью уже сегодня. Мало кода, много теоритических задач, которые никогда на проекте не встречались, но их почему-то внедрили в программу для собеседований

Такие собесы подойдут для любителей прокачивать технические бренды

3. Собес "Задрот алгоритмов". Ну тут обратная сторона монеты предыдущей категории. Чел нелюбитель общаться в команде и его любимый девиз "программист должен только программировать". Меньше слов — больше действий. Здесь мы будем 3 часа решать задачи с литкода из категории "бог олимпийских игр".

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

Окей. А что же норм? Я думаю, норм — это гибридный вариант

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

Идеальный собес должен тестить как работу в команде, так и исполнительность. Как написание кода (пусть даже стрессовое), так и лидирование задач.

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

поэтому открываю тут такую рубрику разбирать топ контрибьюторов в гитхабе и их проекты.

на первом месте сеульский прогер, который упростил многим жизнь библиотекой then

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

может у кого-то есть комментарии чем они полезны. интересно узнать почему же либа в топе гитхаба
🔥2
по поводу подготовки

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

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

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

https://www.ozon.ru/product/dumay-kak-matematik-kak-reshat-lyubye-zadachi-bystree-i-effektivnee-oakli-barbara-254359820/?sh=blZTywAAAA
🔥12
#ЦифраДня: В своем новом рейтинге лучшей работы Glassdoor поставил Enterprise Architect на первое место в США и Java Developer на первое место в Великобритании. Интересная аномалия заключается в том, что, хотя Мобильный Инженер (Mobile Engineer) занимает 12-е место в Великобритании, эта работа даже не входит в число 50 лучших в США. Это может быть связано с относительно низкой заработной платой или с оценкой удовлетворенности менее 4 из 5.
😢8😱1
Forwarded from Product Developer
Продукт vs проект, и в чем разница для разработчика.

Представим проект по постройке дома на заказ. Есть чертежи, есть план работ, сроки. Всё посчитано, всё оптимально. Берешь ресурсы, делаешь по плану, в срок сдаешь дом. Звучит просто.

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

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

Что это значит для разработчика?

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

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

Поэтому в продукте так важно «правило бойскаута»:
«оставь место стоянки чище, чем оно было до твоего прихода». Чистка не обязательно должна быть глобальной, достаточно почистить хотя бы небольшой кусок кода, режущий глаз.
© Роберт Мартин
сегодня приснился сон как я работал в нетфликсе (моя компания мечты). поэтому проснувшись я немного причесал свой старый репо с задачами из литкода + сортировки + дата структуры + функции высшего порядка

буду ежедневно пушить туда решения всякие.

road to escape from russia

(скоро сделаю еще по систем дизайну репозиторий)

https://github.com/levabond/Algorithms
👍12🔥3
очень часто встречаю ребят, кто за 6-8 месяцев концептуально и теоретически понимают много крутых вещей, чего не понимали и разрабы с несколькими годами опыта

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

истории замечательные, но не забывайте о продакшен опыте

https://www.youtube.com/watch?v=y-i445LN8Kg
👍2👎1
с бинарного поиска начинаются почти все книги по алгоритмам. но иногда встречал вопрос, а где же его использовать его на практике?

Допустим, в очередной раз приходит менеджер с великолепной таской. Задача: найти быстро загаданное клиентом число. Вы почесав голову спрашиваете "число больше n?". И дальше по понятному многим сценарию. Вместо перечисления каждого числа по-очереди мы делим отсортированный порядок на 2 части и отсекаем лишнее

https://leetcode.com/explore/learn/card/binary-search/
🔥3
но одна из самых интересных задач в бинарном поиске — это поиск в развернутом массиве. На литкоде эта задача сложности медиум. Я не смог решить за час и пошел искать решения в ютубе.

поэтому лучше приступать к ней после уверенного решения хотяб пары изи
🔥2