Vadim Chistiakov | IT
1.85K subscribers
67 photos
2 videos
101 links
Сообщество разработчиков со всего мира: boosty.to/chistiakov
Менторство: https://vadim-chistiakov.github.io
Автор: @chvadim

Рассказываю о программировании и жизни разработчика в Лондоне на Global Talent Visa. Делюсь мыслями, опытом и знаниями.
Download Telegram
То как выглядят интерфейсы UserDefaults в ios у меня лично вызывает отторжение. Оберните их в враперы код станет чище и элегантней. На самом деле область применения враперов очень большая.
https://www.avanderlee.com/swift/property-wrappers/
В больших командах иногда сложно договорится даже о таких, на первый взгляд банальных вещах, как именование переменных или методов. На помощь приходит Code Style. Можно написать свой если в команде есть опытные разработчики или доверится влиятельной компании. Мой любимый от Airbnb
https://github.com/airbnb/swift
Допустим у вас есть JSON и вам нужно его распарсить в Codable модели. Стандартная ситуация, чтобы не делать рутинную работу можно сгенерировать из сырого JSON структуры используя https://jsonformatter.org/json-to-swift
Не забывайте делать дабл-чек. Иногда получается ерунда)
Не совсем мэтчится с iOS разработкой, но часто сталкивался с проблемали похожего характера. Понимать как устроен релизный цикл и как его улучшить - важный навык для разработчиков и лидов. Оформил свой опыт в этом на Хабре
https://habr.com/ru/post/710614/
Классная апка для подготовки к собесам. Сидя в туалете можно решать вопросы, а не листать тик-токи)
PS не скупитесь на донаты инди-разработчикам, чтобы их активизм не затухал)

https://apps.apple.com/ru/app/свифти-квиз/id1525844750
Понятный разбор, что такое Autoreleasepool и где он может быть применен

https://betterprogramming.pub/what-is-autorelease-pool-in-swift-c652784f329e
Диспетчеризация методов сложная, но важная тема в iOS. Зачем это нужно и почему важно? Полезный обзор:
https://medium.com/@mina.a.ghalii/increase-app-performance-method-dispatch-ios-f577f9152e55
150 вопросов ios разработчику. Хорошо структурированы и подобраны темы. И самое главное есть примеры, какой ответ хотят услышать на интервью
https://www.hackingwithswift.com/interview-questions
В Swift вы не можете создать, например, массив [Equatable] или использовать протокол Equatable, как параметр функции. Чтобы обойти это ограничение используется техника Type erasure. В статье разобрано, как создать очередь из дженерик реквестов, используя этот подход.
https://www.swiftbysundell.com/articles/different-flavors-of-type-erasure-in-swift/
Написал статью, как построить экран с лэйаутом, похожим на первый экран Netflix, Amediateka или Prequel. Используя UICollectionViewCompositionalLayout это стало гораздо проще и эффективней. https://hackernoon.com/implementing-uicollectionview-compositional-layout-with-pinterest-section
PS на Hacketnoon.com не очень нравится читать с компа, залью еще куда-нибудь, возможно на русском
Media is too big
VIEW IN TELEGRAM
Взял подписку ChatGPT Plus, буду тестировать новую модель GPT-4. Из интересного, что успел попробовал, можно скормить ссылку на википедию и попросить ответить на вопрос по тексту или дописать его. Также на вход можно отправить до 25000 слов, например, сложный юридический документ чтобы вычленить главную мысль.
Обещают улучшенную работу с кодом. Задал вопрос о пет-проектах и получил ответ лучше чем от GPT-3.5)
В планах продолжить эксперементы. Записался в лист ожидания доступа к API. 😏 И, надеюсь, скоро опубликуют в публичный доступ возможность загружать картинки, графики и тд. Можно будет на бумаге набросать макет приложения и пропросить написать код для него на любом языке. 😱
Прошел за несколько дней курс от Яндекса по алгоритмам и структурам данных. Он бесплатный, рассчитан на то, что самые базовые знания уже есть, но в целом подойдет и новичкам. Рекомендую, т.к алгоритмические секции часто встречаются на интервью, особенно в крупные компании и всегда в FAANG

https://practicum.yandex.ru/algorithms-interview/
27 марта буду рассказывать о том, что успел узнать и изучить о новой моделе GPT-4. Поделюсь классными примерами использования. Присодиняйтесь послушать)

https://www.codementor.io/events/chatgpt-4-the-ai-thats-changing-the-game-ggokcrf8b8
Для тех, кто хочет побыстрее разобраться как устроен Combine. Наглядно можно потестить как работают различные операторы в формате игры.
https://apps.apple.com/ru/app/combine-operators/id1507756027?l=en
Зачастую, отвечать на вопросы эйчаров или менеджеров о своем опыте, ошибках, достижениях и прочем, сложнее, чем на технические. Практически все разработчики, с кем я общался, уделяют внимание hard skills и пренебрегают, так называемым behavioral interview. Оно нацелено на проверку soft skills. На мой взгляд, это хороший способ проверки именно сеньерности кандидата, и легкий путь вычислить, если он решил накрутить опыт)

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

Собрал первую часть потенциальных вопросов, которые можно услышать на интервью, и попытался подумать, как бы я на них отвечал. Хочу поделиться этим с вами. https://gist.github.com/vadim-chistiakov/d1b1bd251d8727b745d72c321c2e0027
Постараюсь подготовить следующую часть вопросов в ближайшее время.

Несколько инсайтов по теме:
◦ Постарайтесь выделять именно свои достижения, успехи и качества, а не команды/компании
◦ Не отвечайте односложно на все вопросы, старайтесь раскрыть тему, показывайте что рефлексировали и сделали выводы.
◦ Используйте STAR методологию при ответе
◦ При ответе на неудобные вопросы о своих неудачах, недостатках и слабостях старайтесь показать незначительную часть и как вы преодолели, победили и сделали выводы. 
◦ Добавляйте названия компаний, проектов, чтобы ответы не выглядели общими и придуманными

Вопросы, предложения, конструктивная обратная связь приветствуется в комментариях или в личку)
Вторая часть вопросов для поведенческого интервью. Здесь собрал вопросы, которые чаще всего слышал сам на собеседованиях, как в российские компании, так и в зарубежные.
Некоторые из них могут пересекаться с первой частью.
 
Главное на таких интервью транслировать "флаги" собеседующему. Ваша задача разрекламировать себя со всех сторон, а интервьюеру узнать о вашем позитивном опыте как можно больше.
 
Я бы рекомендовал каждому, вне зависимости от уровня, составить список из 15-20 вопросов/ответов и готовиться по нему. Если предстоящее интервью кажется особенным, (допустим это компания мечты) можно подогнать ответы под описание вакансии и проекта этой компании.

https://gist.github.com/vadim-chistiakov/7daf45b8ff9819ff799861d54c3891cb
Неплохая, на мой взгляд, статья о том, как устроена память. Хорошо разобрана часть о Side Table. По большому счету, прикладного значения я в этом не вижу, но задушнить на интервью вполне могут. Полезна чисто для кругозора и углубленного понимания некоторых аспектов памяти в Свифт

https://habr.com/ru/companies/hh/articles/546856/
Как составлять "рабочее" резюме?

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

Хочу порекомендовать сайт https://www.overleaf.com/gallery/tagged/cv с готовыми шаблонами, он помог мне составить резюме.

Оно точно работает, я успел проверить его опытным путем) в РФ и на иностранном рынке труда, в том числе FAANG. Сейчас думаю поменять некоторые пункты, и постараться показать свои достижения и результаты выразительней.
 
Несколько рекомендаций, которые отмечают по составлению резюме:

1. Только одна страница - must have (Можно больше если вы гуру с 10+ лет опыта)
2. Таймлайн от последнего места работы к первому
3. Убрать нерелевантный или очень короткий опыт
4. Показывать, что получилось достичь, улучшить и к чему это привело тебя или компанию
5. Больше цифр - это все любят! "Улучшил метрику Х на 35%. Изменения Y увеличили Z в 3 раза и тд"
6. Автовыгруженное резюме с HH - red flag🚩 для многих компаний
7. Фото, возраст, пол для иностранных компаний лучше не указывать