В больших командах иногда сложно договорится даже о таких, на первый взгляд банальных вещах, как именование переменных или методов. На помощь приходит Code Style. Можно написать свой если в команде есть опытные разработчики или доверится влиятельной компании. Мой любимый от Airbnb
https://github.com/airbnb/swift
https://github.com/airbnb/swift
GitHub
GitHub - airbnb/swift: Airbnb's Swift Style Guide
Airbnb's Swift Style Guide. Contribute to airbnb/swift development by creating an account on GitHub.
Допустим у вас есть JSON и вам нужно его распарсить в Codable модели. Стандартная ситуация, чтобы не делать рутинную работу можно сгенерировать из сырого JSON структуры используя https://jsonformatter.org/json-to-swift
Не забывайте делать дабл-чек. Иногда получается ерунда)
Не забывайте делать дабл-чек. Иногда получается ерунда)
jsonformatter.org
Best JSON to Swift Converter
JSON to Swift Online with https and easiest way to convert JSON to Swift. Save online and Share.
Не совсем мэтчится с iOS разработкой, но часто сталкивался с проблемали похожего характера. Понимать как устроен релизный цикл и как его улучшить - важный навык для разработчиков и лидов. Оформил свой опыт в этом на Хабре
https://habr.com/ru/post/710614/
https://habr.com/ru/post/710614/
Хабр
Жизненный цикл задачи после разработки
Фича = задача и далее по тексту :-) Что есть задача для разработчика? Как правило, разработка получает от продакт-менеджера техническое задание на разработку новой или исправление старой...
Классная апка для подготовки к собесам. Сидя в туалете можно решать вопросы, а не листать тик-токи)
PS не скупитесь на донаты инди-разработчикам, чтобы их активизм не затухал)
https://apps.apple.com/ru/app/свифти-квиз/id1525844750
PS не скупитесь на донаты инди-разработчикам, чтобы их активизм не затухал)
https://apps.apple.com/ru/app/свифти-квиз/id1525844750
Понятный разбор, что такое Autoreleasepool и где он может быть применен
https://betterprogramming.pub/what-is-autorelease-pool-in-swift-c652784f329e
https://betterprogramming.pub/what-is-autorelease-pool-in-swift-c652784f329e
Medium
What Is Autorelease Pool in Swift
And how to optimize memory usage in your loops
Диспетчеризация методов сложная, но важная тема в iOS. Зачем это нужно и почему важно? Полезный обзор:
https://medium.com/@mina.a.ghalii/increase-app-performance-method-dispatch-ios-f577f9152e55
https://medium.com/@mina.a.ghalii/increase-app-performance-method-dispatch-ios-f577f9152e55
Medium
Increase App Performance (Method Dispatch iOS)
App performance is one of the most important key elements that measures app quality and affects the user experience. It is affected by many…
150 вопросов ios разработчику. Хорошо структурированы и подобраны темы. И самое главное есть примеры, какой ответ хотят услышать на интервью
https://www.hackingwithswift.com/interview-questions
https://www.hackingwithswift.com/interview-questions
Hacking with Swift
Swift Interview Questions – 150+ free interview questions from Hacking with Swift
Over 100 interview questions for Swift developers
В Swift вы не можете создать, например, массив [Equatable] или использовать протокол Equatable, как параметр функции. Чтобы обойти это ограничение используется техника Type erasure. В статье разобрано, как создать очередь из дженерик реквестов, используя этот подход.
https://www.swiftbysundell.com/articles/different-flavors-of-type-erasure-in-swift/
https://www.swiftbysundell.com/articles/different-flavors-of-type-erasure-in-swift/
Swift by Sundell
Different flavors of type erasure in Swift | Swift by Sundell
A situation that most Swift developers will encounter at one point or another is when some form of type erasure is needed to be able to reference a generic protocol. This week, let’s start by taking a look at what makes type erasure such an essential technique…
Написал статью, как построить экран с лэйаутом, похожим на первый экран Netflix, Amediateka или Prequel. Используя UICollectionViewCompositionalLayout это стало гораздо проще и эффективней. https://hackernoon.com/implementing-uicollectionview-compositional-layout-with-pinterest-section
PS на Hacketnoon.com не очень нравится читать с компа, залью еще куда-нибудь, возможно на русском
PS на Hacketnoon.com не очень нравится читать с компа, залью еще куда-нибудь, возможно на русском
Hackernoon
Implementing 'UICollectionView Compositional' Layout with Pinterest Section
You can use Collection Compositional Layout to define layouts that support dynamic content and varying item sizes.
Выбрал самые популярные задачи с live coding собеседований, попробовал объяснить как их решать и зачем это нужно.
https://habr.com/ru/post/718334/
https://habr.com/ru/post/718334/
Хабр
Live coding интервью для iOS разработчиков
Процесс технического собеседования для разработчиков может различаться в зависимости от компании и конкретной роли. Какие этапы все же стоит ожидать: Телефонный скрининг. Первым...
Media is too big
VIEW IN TELEGRAM
Взял подписку ChatGPT Plus, буду тестировать новую модель GPT-4. Из интересного, что успел попробовал, можно скормить ссылку на википедию и попросить ответить на вопрос по тексту или дописать его. Также на вход можно отправить до 25000 слов, например, сложный юридический документ чтобы вычленить главную мысль.
Обещают улучшенную работу с кодом. Задал вопрос о пет-проектах и получил ответ лучше чем от GPT-3.5)
В планах продолжить эксперементы. Записался в лист ожидания доступа к API. 😏 И, надеюсь, скоро опубликуют в публичный доступ возможность загружать картинки, графики и тд. Можно будет на бумаге набросать макет приложения и пропросить написать код для него на любом языке. 😱
Обещают улучшенную работу с кодом. Задал вопрос о пет-проектах и получил ответ лучше чем от GPT-3.5)
В планах продолжить эксперементы. Записался в лист ожидания доступа к API. 😏 И, надеюсь, скоро опубликуют в публичный доступ возможность загружать картинки, графики и тд. Можно будет на бумаге набросать макет приложения и пропросить написать код для него на любом языке. 😱
Прошел за несколько дней курс от Яндекса по алгоритмам и структурам данных. Он бесплатный, рассчитан на то, что самые базовые знания уже есть, но в целом подойдет и новичкам. Рекомендую, т.к алгоритмические секции часто встречаются на интервью, особенно в крупные компании и всегда в FAANG
https://practicum.yandex.ru/algorithms-interview/
https://practicum.yandex.ru/algorithms-interview/
Бесплатный курс «Подготовка к алгоритмическому собеседованию»: обучение онлайн — Яндекс Практикум
Пройдите бесплатный курс «Подготовка к алгоритмическому собеседованию» от сервиса Яндекс Практикум. Онлайн-обучение поможет узнать, как проходят собеседования по алгоритмам и как к ним подготовиться. Теория, тесты, практика для самостоятельного изучения на…
27 марта буду рассказывать о том, что успел узнать и изучить о новой моделе GPT-4. Поделюсь классными примерами использования. Присодиняйтесь послушать)
https://www.codementor.io/events/chatgpt-4-the-ai-thats-changing-the-game-ggokcrf8b8
https://www.codementor.io/events/chatgpt-4-the-ai-thats-changing-the-game-ggokcrf8b8
www.codementor.io
ChatGPT-4: The AI That's Changing the Game
As ChatGPT becomes more and more popular, implementing a AI chatbot seems to be the next industry trend. Vadim will be talking about how ChatGPT works and how to implement it in different scenarios.
Для тех, кто хочет побыстрее разобраться как устроен Combine. Наглядно можно потестить как работают различные операторы в формате игры.
https://apps.apple.com/ru/app/combine-operators/id1507756027?l=en
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 методологию при ответе
◦ При ответе на неудобные вопросы о своих неудачах, недостатках и слабостях старайтесь показать незначительную часть и как вы преодолели, победили и сделали выводы.
◦ Добавляйте названия компаний, проектов, чтобы ответы не выглядели общими и придуманными
Вопросы, предложения, конструктивная обратная связь приветствуется в комментариях или в личку)
Я и сам несколько раз проходил этот этап плохо, особенно на английском языке. Сейчас захотел прокачать свои навыки в прохождении именно этой части и основательно подготовиться.
Собрал первую часть потенциальных вопросов, которые можно услышать на интервью, и попытался подумать, как бы я на них отвечал. Хочу поделиться этим с вами. https://gist.github.com/vadim-chistiakov/d1b1bd251d8727b745d72c321c2e0027
Постараюсь подготовить следующую часть вопросов в ближайшее время.
Несколько инсайтов по теме:
◦ Постарайтесь выделять именно свои достижения, успехи и качества, а не команды/компании
◦ Не отвечайте односложно на все вопросы, старайтесь раскрыть тему, показывайте что рефлексировали и сделали выводы.
◦ Используйте STAR методологию при ответе
◦ При ответе на неудобные вопросы о своих неудачах, недостатках и слабостях старайтесь показать незначительную часть и как вы преодолели, победили и сделали выводы.
◦ Добавляйте названия компаний, проектов, чтобы ответы не выглядели общими и придуманными
Вопросы, предложения, конструктивная обратная связь приветствуется в комментариях или в личку)
Gist
Behavioural questions for software engineer
Behavioural questions for software engineer. GitHub Gist: instantly share code, notes, and snippets.
Вторая часть вопросов для поведенческого интервью. Здесь собрал вопросы, которые чаще всего слышал сам на собеседованиях, как в российские компании, так и в зарубежные.
Некоторые из них могут пересекаться с первой частью.
Главное на таких интервью транслировать "флаги" собеседующему. Ваша задача разрекламировать себя со всех сторон, а интервьюеру узнать о вашем позитивном опыте как можно больше.
Я бы рекомендовал каждому, вне зависимости от уровня, составить список из 15-20 вопросов/ответов и готовиться по нему. Если предстоящее интервью кажется особенным, (допустим это компания мечты) можно подогнать ответы под описание вакансии и проекта этой компании.
https://gist.github.com/vadim-chistiakov/7daf45b8ff9819ff799861d54c3891cb
Некоторые из них могут пересекаться с первой частью.
Главное на таких интервью транслировать "флаги" собеседующему. Ваша задача разрекламировать себя со всех сторон, а интервьюеру узнать о вашем позитивном опыте как можно больше.
Я бы рекомендовал каждому, вне зависимости от уровня, составить список из 15-20 вопросов/ответов и готовиться по нему. Если предстоящее интервью кажется особенным, (допустим это компания мечты) можно подогнать ответы под описание вакансии и проекта этой компании.
https://gist.github.com/vadim-chistiakov/7daf45b8ff9819ff799861d54c3891cb
Gist
Behavioural interview. Frequently questions
Behavioural interview. Frequently questions. GitHub Gist: instantly share code, notes, and snippets.
Неплохая, на мой взгляд, статья о том, как устроена память. Хорошо разобрана часть о Side Table. По большому счету, прикладного значения я в этом не вижу, но задушнить на интервью вполне могут. Полезна чисто для кругозора и углубленного понимания некоторых аспектов памяти в Свифт
https://habr.com/ru/companies/hh/articles/546856/
https://habr.com/ru/companies/hh/articles/546856/
Хабр
Память в Swift от 0 до 1
В этой статье мы рассмотрим принципы работы памяти в Swift и разберемся, как Swift располагает байты в памяти, как управляет памятью, и что из себя представляет жизненный цикл объектов. Содержание Что...
Как составлять "рабочее" резюме?
Я знаю, что многие из вас готовятся к интервью и откликаются на вакансии и знают как часто приходят отказы еще на этапе отклика. Очень важно зацепить рекрутера именно своим резюме.
Хочу порекомендовать сайт 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. Фото, возраст, пол для иностранных компаний лучше не указывать
Я знаю, что многие из вас готовятся к интервью и откликаются на вакансии и знают как часто приходят отказы еще на этапе отклика. Очень важно зацепить рекрутера именно своим резюме.
Хочу порекомендовать сайт 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. Фото, возраст, пол для иностранных компаний лучше не указывать
Overleaf
Gallery - Templates, Examples and Articles written in LaTeX
An online LaTeX editor that’s easy to use. No installation, real-time collaboration, version control, hundreds of LaTeX templates, and more.
HR Screening interview
Я уже писал о том, какие неудобные вопросы можно услышать от рекрутера или нанимающего менеджера. Чтобы показать свою вовлеченность в процесс интервью, узнать больше о позиции и понять, насколько вам подходит новая роль, необходимо задавать правильные вопросы и вам.
Подготовил список вопросов, которые я люблю спрашивать на интервью. Упор был сделан на поиск работы за рубежом, так как, на мой взгляд, это перспективней на данный момент. В том числе для меня, как не native speaker, это создает больше трудностей.
1. Is remote work an option for this position? - Это база. Многие мечтают зарабатывать доллары и евро, и чилить на дешевых островах (хотя таких уже и нет).
2. Does the company provide support for relocation and offer visa sponsorship? - Все-таки вы решили забустить карьеру и уехать в Долину.
3. What qualities and skills are you seeking in an ideal candidate for this role? Или What can distinguish a candidate as the most suitable for the company? - Если это первый этап интервью, дальше будет проще выстраивать диалог и подсвечивать нужные качества.
4. Could you walk me through the interview process for this position? - Сразу выясним, будут ли тестовые задания, которые никто не проверит, или 7 этапов душных алгоритмических собеседований.
5. How many employees are currently part of the iOS squad? - Для меня важно, чтобы я был не один в команде разработчик. Иначе у кого учиться и кому передавать свои знания?
6. Is this position newly created, or did someone leave the company? - Может и мне не стоит туда залетать вообще?
7. Why is the company seeking external candidates rather than promoting someone internally? - То же самое, что и предыдущий вопрос, только в другой руке). Больше мэтчится с позициями лидов. На мой взгляд, безопаснее повышать людей, а не нанимать с рынка.
8. What is the development process like at your company? Are there any specific methodologies or tools that the team uses? И туда же How do you ensure code quality and maintainability in development? - Проверить, вообще ли они слышали про процессы разработки или это стартап на коленках. Ответ может сказать много о зрелости и профессионализме команды.
9. Are there any particular challenges or upcoming projects that the team is currently facing? - Пролить чуть больше света на то, чем вам предстоит заниматься в ближайшее время. Может быть, вас зовут писать тесты и фиксить баги после команды говнорей-аутсорсеров.
10. Can you describe the company's approach to testing and releasing apps? - Мне это дает понимание о том, в каком темпе и с каким прессингом со стороны менеджмента команда существует.
11. Are there opportunities for professional growth and skill development within the company? - Наверное, базовый вопрос, больше для формальности, чтобы показать мотивацию и целеустремленность. Ответ в 9 из 10 случаев не соответствует реалиям по итогу.
Вот такой у меня список. Очевидно, что в процессе интервью могут возникнуть еще вопросы, или какие-то вопросы задавать не придется, так как представитель компании уже расскажет об этом. Пользуйтесь и пишите в комментариях, что вам важно узнать на интервью.
Больше статей на тему интервью можно найти на сайте https://www.themuse.com/advice/interviewing
PS: Как спрашивать о зарплате и выторговывать оффер послаще, думаю, написать отдельно."
#interview
Я уже писал о том, какие неудобные вопросы можно услышать от рекрутера или нанимающего менеджера. Чтобы показать свою вовлеченность в процесс интервью, узнать больше о позиции и понять, насколько вам подходит новая роль, необходимо задавать правильные вопросы и вам.
Подготовил список вопросов, которые я люблю спрашивать на интервью. Упор был сделан на поиск работы за рубежом, так как, на мой взгляд, это перспективней на данный момент. В том числе для меня, как не native speaker, это создает больше трудностей.
1. Is remote work an option for this position? - Это база. Многие мечтают зарабатывать доллары и евро, и чилить на дешевых островах (хотя таких уже и нет).
2. Does the company provide support for relocation and offer visa sponsorship? - Все-таки вы решили забустить карьеру и уехать в Долину.
3. What qualities and skills are you seeking in an ideal candidate for this role? Или What can distinguish a candidate as the most suitable for the company? - Если это первый этап интервью, дальше будет проще выстраивать диалог и подсвечивать нужные качества.
4. Could you walk me through the interview process for this position? - Сразу выясним, будут ли тестовые задания, которые никто не проверит, или 7 этапов душных алгоритмических собеседований.
5. How many employees are currently part of the iOS squad? - Для меня важно, чтобы я был не один в команде разработчик. Иначе у кого учиться и кому передавать свои знания?
6. Is this position newly created, or did someone leave the company? - Может и мне не стоит туда залетать вообще?
7. Why is the company seeking external candidates rather than promoting someone internally? - То же самое, что и предыдущий вопрос, только в другой руке). Больше мэтчится с позициями лидов. На мой взгляд, безопаснее повышать людей, а не нанимать с рынка.
8. What is the development process like at your company? Are there any specific methodologies or tools that the team uses? И туда же How do you ensure code quality and maintainability in development? - Проверить, вообще ли они слышали про процессы разработки или это стартап на коленках. Ответ может сказать много о зрелости и профессионализме команды.
9. Are there any particular challenges or upcoming projects that the team is currently facing? - Пролить чуть больше света на то, чем вам предстоит заниматься в ближайшее время. Может быть, вас зовут писать тесты и фиксить баги после команды говнорей-аутсорсеров.
10. Can you describe the company's approach to testing and releasing apps? - Мне это дает понимание о том, в каком темпе и с каким прессингом со стороны менеджмента команда существует.
11. Are there opportunities for professional growth and skill development within the company? - Наверное, базовый вопрос, больше для формальности, чтобы показать мотивацию и целеустремленность. Ответ в 9 из 10 случаев не соответствует реалиям по итогу.
Вот такой у меня список. Очевидно, что в процессе интервью могут возникнуть еще вопросы, или какие-то вопросы задавать не придется, так как представитель компании уже расскажет об этом. Пользуйтесь и пишите в комментариях, что вам важно узнать на интервью.
Больше статей на тему интервью можно найти на сайте https://www.themuse.com/advice/interviewing
PS: Как спрашивать о зарплате и выторговывать оффер послаще, думаю, написать отдельно."
#interview
The Muse
Interviewing
Get tips and tricks for answering tough questions, dressing appropriately, sending the perfect thank you note, and interviewing like a pro.