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.
🔥3👍2👏2❤1
Пригласили рассказать о поиске работы за рубежом. Подкинули вам лайфхаки от экспертов с опытом в разных странах и международных компаниях. Смотрите, ставьте лайки)
https://www.youtube.com/live/EXUqWzDKDeo?feature=share
#interview
https://www.youtube.com/live/EXUqWzDKDeo?feature=share
#interview
YouTube
Как найти работу за границей? | Трудоустройство в международную компанию | AgileFluent + Solvery
#трудоустройство #работазаграницей #IT
Эфир про поиск работы за границей с менторами Solvery из международных компаний и основательницей AgileFluent Дарьей Шульгиной.
В первом эфире феста мок-интервью на английском языке AgileFluent и Solvery поговорим…
Эфир про поиск работы за границей с менторами Solvery из международных компаний и основательницей AgileFluent Дарьей Шульгиной.
В первом эфире феста мок-интервью на английском языке AgileFluent и Solvery поговорим…
🔥3👍1👏1🤡1
Хочу упростить навигацию по каналу и обозначить темы, о которых мне интересно писать и размышлять.
1. Этот канал создавался, как помощник изучающим #swift и #ios в целом. Постараюсь фокусироваться на шеринг знаний в этих областях, как main stream канала.
2. Многие из вас в активном поиске новой работы или даже первой. Я уверен, что мой опыт в проведении и прохождении технических интервью будет релевантным. Топик - #interview #lookingforjob
3. Я долгое время хотел найти работу за рубежом и больше путешествовать. Поэтому хочу делиться своим опытом, как digital nomad и опытом переезда на постоянку в другую страну #relocate #remote #digitalnomad
4. Думаю, что так или иначе будут проскальзывать общие темы об #it и #programming через призму моего опыта и наблюдений #experience.
5. Все, что не попадет в обозначенные темы, но очень захочется запостить помечу #random
Чтобы получше узнать, что вам вообще интересно, запущу опросы. Не стесняйтесь голосовать они будут анонимны)
1. Этот канал создавался, как помощник изучающим #swift и #ios в целом. Постараюсь фокусироваться на шеринг знаний в этих областях, как main stream канала.
2. Многие из вас в активном поиске новой работы или даже первой. Я уверен, что мой опыт в проведении и прохождении технических интервью будет релевантным. Топик - #interview #lookingforjob
3. Я долгое время хотел найти работу за рубежом и больше путешествовать. Поэтому хочу делиться своим опытом, как digital nomad и опытом переезда на постоянку в другую страну #relocate #remote #digitalnomad
4. Думаю, что так или иначе будут проскальзывать общие темы об #it и #programming через призму моего опыта и наблюдений #experience.
5. Все, что не попадет в обозначенные темы, но очень захочется запостить помечу #random
Чтобы получше узнать, что вам вообще интересно, запущу опросы. Не стесняйтесь голосовать они будут анонимны)
🔥9👍2❤1
Провел mock interview для совместного проекта Solvery и AgileFluent. К сожалению, были проблемы с трансляцией и звук записался в плохом качестве. Ссылку на собес все равно оставлю, но рекомендовать к просмотру не буду)
https://www.youtube.com/live/o6jxnLg6tks?feature=share
Теоретические вопросы, которые успели обсудить, прилагаются. На некоторые можно дать лаконичный ответ, а другие предполагают развернутые ответы в зависимости от уровня кандидата.
Common questions:
• First of all, please, tell me about your background and experience?
• What are you looking for in the next role?
• What is your the greatest achievement as an employee?
Computer science and Algorithm complexity:
• Let discuss SOLID principles. Can you find any examples from standard swift libraries where principles were kept or violated?
• Can you give some examples of where singletons might be a good idea? (Examples from ios UIApplication or URLSession)
• What kind of collections we have in Swift?
• What is the complexity of main operations in them?
• What the difference between Set and OrderedSet?
• How does OrderedSet look like under the hood?
Swift and ios
• How would you explain protocol-oriented programming to a new Swift developer? What is the difference between OOP and POP?
• What steps would you follow to make a network request? (Back to main thread, Combine, Swift type result)
Memory handling
• What is the difference between value type and reference type?
• Why we need unowned if we have weak parameter?
• What is the autorelease and autorelease pool? Use cases?
• What is the side table?
UI layer
• What does view controller life-cycle look like?
• What is the difference between CALayer and UIView?
• Can you name any different CALayer subclasses?
• Why we have three similar methods layoutSubview, layoutIfNeeded and setNeedsLayout?
• How can we establish relationship between two horizontal labels in case when text doesn't fit the screen?
Если какие-то вопросы не понятны, можете спросить в комментариях
#lookingforjob #interview #ios #swift
https://www.youtube.com/live/o6jxnLg6tks?feature=share
Теоретические вопросы, которые успели обсудить, прилагаются. На некоторые можно дать лаконичный ответ, а другие предполагают развернутые ответы в зависимости от уровня кандидата.
Common questions:
• First of all, please, tell me about your background and experience?
• What are you looking for in the next role?
• What is your the greatest achievement as an employee?
Computer science and Algorithm complexity:
• Let discuss SOLID principles. Can you find any examples from standard swift libraries where principles were kept or violated?
• Can you give some examples of where singletons might be a good idea? (Examples from ios UIApplication or URLSession)
• What kind of collections we have in Swift?
• What is the complexity of main operations in them?
• What the difference between Set and OrderedSet?
• How does OrderedSet look like under the hood?
Swift and ios
• How would you explain protocol-oriented programming to a new Swift developer? What is the difference between OOP and POP?
• What steps would you follow to make a network request? (Back to main thread, Combine, Swift type result)
Memory handling
• What is the difference between value type and reference type?
• Why we need unowned if we have weak parameter?
• What is the autorelease and autorelease pool? Use cases?
• What is the side table?
UI layer
• What does view controller life-cycle look like?
• What is the difference between CALayer and UIView?
• Can you name any different CALayer subclasses?
• Why we have three similar methods layoutSubview, layoutIfNeeded and setNeedsLayout?
• How can we establish relationship between two horizontal labels in case when text doesn't fit the screen?
Если какие-то вопросы не понятны, можете спросить в комментариях
#lookingforjob #interview #ios #swift
YouTube
Моковое собеседование на iOS-разработчика в зарубежную компанию | Solvery + AgileFluent
Solvery совместно с AgileFluent и при поддержке сообщества Coffee&Code (https://t.me/coffeeCodeEverywhere) проведёт техническое собеседование на iOS-разработчика в международную компанию в прямом эфире! Присоединяйтесь, поддержите участника и узнайте, как…
🔥6👍3❤2
Stack vs Heap 👨💻
Базовый вопрос на любой уровень кандидата, но часто слышу невнятные ответы. Собрал полный ответ, который зачастую, хотят услышать на интервью:
Stack(Стек):
• Статичная память. Выделение происходит только во время компиляции.
• Стек имеет структуру данных LIFO (последний пришел – первый вышел)
• Очень быстрый доступ
• При вызове функции все локальные экземпляры этой функции помещаются в текущий стек. И как только функция завершит выполнение, все экземпляры будут удалены из стека.
• Данные, хранящиеся в стеке, находятся там только временно, пока функция не завершит работу и не вызовет автоматическое освобождение всей памяти в стеке.
• Каждая область действия (scope) в вашем приложении (например, внутреннее содержимое метода) будет предоставлять необходимый объем памяти.
• Cтек не используется с объектами, которые изменяют размер.
• Каждый поток имеет собственный стек
• В стеках хранятся типы значений(value type), такие как структуры и перечисления, скаляры.
• Если размер вашего типа значения может быть определен во время компиляции или если ваш тип значения не содержит рекурсивно/не содержит ссылочного типа, тогда потребуется выделение стека.
• Value type не увеличивает счетчик ссылок. Но если ваш value type содержит внутренний reference typy, для его копирования потребуется вместо этого увеличить счетчик ссылок его дочерних элементов.
Heap(Куча):
• Динамическое распределение памяти и распределение происходит во время выполнения.
• К значениям можно обращаться в любое время через адрес памяти.
• Нет ограничений на объем памяти
• Доступ к объектам медленнее чем на стеке
• Когда процесс запрашивает определенный объем памяти, куча ищет адрес памяти, удовлетворяющий этому запросу, и возвращает его процессу.
• Когда память больше не используется, процесс должен сказать куче освободить этот раздел памяти.
• Требуется потокобезопасность.
• Куча доступна всем потокам
• Если размер вашего типа значения(value type) не может быть определен во время компиляции (из-за протокола/дженерика) или если ваш value type рекурсивно содержит/содержится внутри ссылочного типа (помните, что замыкания также являются ссылочными типами), тогда потребуется выделение кучи.
• Классы хранятся в динамической памяти.
Выделение кучи медленнее, чем выделение стека, не только из-за более сложной структуры данных — оно также требует безопасности потоков. Каждый поток имеет свой собственный стек, но куча используется совместно всеми, что требует синхронизации.
#interview #ios #swift
Базовый вопрос на любой уровень кандидата, но часто слышу невнятные ответы. Собрал полный ответ, который зачастую, хотят услышать на интервью:
Stack(Стек):
• Статичная память. Выделение происходит только во время компиляции.
• Стек имеет структуру данных LIFO (последний пришел – первый вышел)
• Очень быстрый доступ
• При вызове функции все локальные экземпляры этой функции помещаются в текущий стек. И как только функция завершит выполнение, все экземпляры будут удалены из стека.
• Данные, хранящиеся в стеке, находятся там только временно, пока функция не завершит работу и не вызовет автоматическое освобождение всей памяти в стеке.
• Каждая область действия (scope) в вашем приложении (например, внутреннее содержимое метода) будет предоставлять необходимый объем памяти.
• Cтек не используется с объектами, которые изменяют размер.
• Каждый поток имеет собственный стек
• В стеках хранятся типы значений(value type), такие как структуры и перечисления, скаляры.
• Если размер вашего типа значения может быть определен во время компиляции или если ваш тип значения не содержит рекурсивно/не содержит ссылочного типа, тогда потребуется выделение стека.
• Value type не увеличивает счетчик ссылок. Но если ваш value type содержит внутренний reference typy, для его копирования потребуется вместо этого увеличить счетчик ссылок его дочерних элементов.
Heap(Куча):
• Динамическое распределение памяти и распределение происходит во время выполнения.
• К значениям можно обращаться в любое время через адрес памяти.
• Нет ограничений на объем памяти
• Доступ к объектам медленнее чем на стеке
• Когда процесс запрашивает определенный объем памяти, куча ищет адрес памяти, удовлетворяющий этому запросу, и возвращает его процессу.
• Когда память больше не используется, процесс должен сказать куче освободить этот раздел памяти.
• Требуется потокобезопасность.
• Куча доступна всем потокам
• Если размер вашего типа значения(value type) не может быть определен во время компиляции (из-за протокола/дженерика) или если ваш value type рекурсивно содержит/содержится внутри ссылочного типа (помните, что замыкания также являются ссылочными типами), тогда потребуется выделение кучи.
• Классы хранятся в динамической памяти.
Выделение кучи медленнее, чем выделение стека, не только из-за более сложной структуры данных — оно также требует безопасности потоков. Каждый поток имеет свой собственный стек, но куча используется совместно всеми, что требует синхронизации.
#interview #ios #swift
👍15👏2❤1
❓ OOP vs POP
И так, продолжаю рубрику - батл #versus
Объектно-ориентированное программирование (ООП) и протокольно-ориентированное программирование (POP) представляют различные подходы к структурированию и проектированию кода. Вот некоторые сходства и различия между ними, которые стоит упоминуть, отвечая на такой вопрос:
Сходства:
✅ Оба подхода стремятся к абстракции и моделированию реального мира с помощью объектов и их взаимодействия.
✅ И ООП, и POP позволяют использовать полиморфизм для работы с разными типами данных, обрабатывая их через общий интерфейс.
✅ Оба подхода поддерживают концепцию инкапсуляции, позволяющую скрыть внутренние детали реализации и предоставить доступ только к необходимой функциональности.
Различия:
⚠️ ООП сосредоточено на использовании классов и наследования для организации кода. Классы могут наследовать свойства и методы от других классов и создавать иерархию наследования. В POP используются протоколы вместо классов для определения требований к функциональности.
⚠️ Наследование, может привести к сложным иерархиям классов и проблемам с тесной связностью. В особенности, множественного наследования (отсутствует в Swift). В POP используется композиция, где типы состоят из более специализированных компонентов через соответствие (conform) протоколам, обеспечивая более гибкую и модульную организацию кода.
⚠️ В ООП функциональность определяется внутри классов и их методов. В POP функциональность определяется через протоколы. Протоколы могут иметь требования к методам и свойствам, и типы должны реализовать эти требования.
⚠️ В POP протоколы позволяют использовать расширения протоколов для предоставления реализации методов по умолчанию. Это делает код более гибким и легким для расширения новыми функциями или высичляемыми свойствами. В ООП расширение функциональности класса может быть достигнуто через наследование или создание подклассов.
Какой подход выбрать зависит от требований и конкретной ситуации. В некоторых случаях ООП может быть предпочтительным, особенно если требуется сильная связь между объектами и наследование функциональности. В других случаях POP может предоставить более гибкую и модульную организацию кода с помощью протоколов и композиции. Apple транслирует в своих библиотеках именно POP, поэтому при разработке приложений на Swift он используется чаще.
#interview #swift #ios
И так, продолжаю рубрику - батл #versus
Объектно-ориентированное программирование (ООП) и протокольно-ориентированное программирование (POP) представляют различные подходы к структурированию и проектированию кода. Вот некоторые сходства и различия между ними, которые стоит упоминуть, отвечая на такой вопрос:
Сходства:
✅ Оба подхода стремятся к абстракции и моделированию реального мира с помощью объектов и их взаимодействия.
✅ И ООП, и POP позволяют использовать полиморфизм для работы с разными типами данных, обрабатывая их через общий интерфейс.
✅ Оба подхода поддерживают концепцию инкапсуляции, позволяющую скрыть внутренние детали реализации и предоставить доступ только к необходимой функциональности.
Различия:
⚠️ ООП сосредоточено на использовании классов и наследования для организации кода. Классы могут наследовать свойства и методы от других классов и создавать иерархию наследования. В POP используются протоколы вместо классов для определения требований к функциональности.
⚠️ Наследование, может привести к сложным иерархиям классов и проблемам с тесной связностью. В особенности, множественного наследования (отсутствует в Swift). В POP используется композиция, где типы состоят из более специализированных компонентов через соответствие (conform) протоколам, обеспечивая более гибкую и модульную организацию кода.
⚠️ В ООП функциональность определяется внутри классов и их методов. В POP функциональность определяется через протоколы. Протоколы могут иметь требования к методам и свойствам, и типы должны реализовать эти требования.
⚠️ В POP протоколы позволяют использовать расширения протоколов для предоставления реализации методов по умолчанию. Это делает код более гибким и легким для расширения новыми функциями или высичляемыми свойствами. В ООП расширение функциональности класса может быть достигнуто через наследование или создание подклассов.
Какой подход выбрать зависит от требований и конкретной ситуации. В некоторых случаях ООП может быть предпочтительным, особенно если требуется сильная связь между объектами и наследование функциональности. В других случаях POP может предоставить более гибкую и модульную организацию кода с помощью протоколов и композиции. Apple транслирует в своих библиотеках именно POP, поэтому при разработке приложений на Swift он используется чаще.
#interview #swift #ios
🔥11❤3👌2
Algo interview preparing 👨💻
Вот вы уже успешные разработчики и хотите поехать работать в США, или еще куда-то, в крупную компанию. Для этого вам необходимы знания и навыки решения алгоритмических задач. Таковы правила игры. Их нужно просто принять или быть готовым работать только на галлерах.
Собрал свой топ ресурсов для подготовки к собесам с алгоритмическими секциями, в том числеFAANG MANGA
⭐️ LeetCode - это база. Тут и писать нечего. Главная платформа для тренировки алгосиков
⭐️ https://www.techinterviewhandbook.org - для тех, кто основательно хочет подготовиться к интервью в топ компании и изучить весь процесс.
⭐️ Влад Тен - перезалитые разборы задач с LeetCode. Когда вроде бы и сил нет решать задачки, а хочется провести время с пользой для своего развития.
⭐️ Чаты https://t.me/l33tcode и https://t.me/joinchat/oEXjPDz9Av8xZTcy - можно обсудить решения сложных задач, процессов интервью или найти компанию для мокового собеса по алгоритмам или системному дизайну
⭐️ https://interviews.school - можно взять за основу, если эта тема для вас новая.
⭐️ https://coderpad.io - платформа на которой часто происходит сам процесс интервью. Помогает прокачивать навык решения задач без подсказок IDE и подсветки синтаксиса.
Список можно продолжать долго, но чтобы не создавать дилемму выбора остановлюсь на этом.
P.S Холивар на тему нужны ли алгоритмы мобильным разработчиками или вообще программистам оставлю для другого поста)
#interview #lookingforjob
Вот вы уже успешные разработчики и хотите поехать работать в США, или еще куда-то, в крупную компанию. Для этого вам необходимы знания и навыки решения алгоритмических задач. Таковы правила игры. Их нужно просто принять или быть готовым работать только на галлерах.
Собрал свой топ ресурсов для подготовки к собесам с алгоритмическими секциями, в том числе
⭐️ LeetCode - это база. Тут и писать нечего. Главная платформа для тренировки алгосиков
⭐️ https://www.techinterviewhandbook.org - для тех, кто основательно хочет подготовиться к интервью в топ компании и изучить весь процесс.
⭐️ Влад Тен - перезалитые разборы задач с LeetCode. Когда вроде бы и сил нет решать задачки, а хочется провести время с пользой для своего развития.
⭐️ Чаты https://t.me/l33tcode и https://t.me/joinchat/oEXjPDz9Av8xZTcy - можно обсудить решения сложных задач, процессов интервью или найти компанию для мокового собеса по алгоритмам или системному дизайну
⭐️ https://interviews.school - можно взять за основу, если эта тема для вас новая.
⭐️ https://coderpad.io - платформа на которой часто происходит сам процесс интервью. Помогает прокачивать навык решения задач без подсказок IDE и подсветки синтаксиса.
Список можно продолжать долго, но чтобы не создавать дилемму выбора остановлюсь на этом.
P.S Холивар на тему нужны ли алгоритмы мобильным разработчиками или вообще программистам оставлю для другого поста)
#interview #lookingforjob
Leetcode
LeetCode - The World's Leading Online Programming Learning Platform
Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.
🔥7👍6🆒1
Многопоточность
Часто такие примеры встречаются на собеседовании. Нужно ответить в каком порядке будут выведены цифры в консоль.
Проверим ваши знания и внимательность.
UPD: Изначально скрин был неправильный, сорри)
#interview #ios #swift
Часто такие примеры встречаются на собеседовании. Нужно ответить в каком порядке будут выведены цифры в консоль.
Проверим ваши знания и внимательность.
UPD: Изначально скрин был неправильный, сорри)
#interview #ios #swift
🔥4
Capture list 🤔
Сегодня разберем еще один классический вопрос с ios собеседований. Необходимо понять, что будет выведено в консоль.
Начем с самого простого. Переменная cityClass в пункте 4 меняет свое значение поля name. Т.к классы относятся к reference type, то захват в capture list никак не повлияет на итоговое значение. В консоле мы увидем в обоих случаях "Liverpool".
Переменная cityStruct - cтруктура, поэтому в первом замыкании она будет скопирована при захвате в capture list, а во втором обращение произойдет в момент выполнения замыкания к уже обновленной переменной. Поэтому "London" и "Marseille" соответственно.
Последний случай может показаться самым неочевидным. Переменная cityClassOptional захватывается в первом замыкании по слабой ссылке. В пункте 4 сначала создается еще один указатель на cityClassOptional, а потом заниляется. В замыкании closure1 будет выведено Paris - счетчик ссылок у объекта еще не равен нулю (doubleClass удерживает объект по сильной ссылке), а вот closure2 обратится по указателю уже к пустому значению.
Как итог, вывод в консоль будет выглядеть следующим образом:
1 - my city is Liverpool
2 - my city is London
3 - my city is Paris
4 - my city is Liverpool
5 - my city is Marseille
6 - my city is nil
А что произойдет если применить weak к переменной с типом структуры? К счастью, компилятор поможет понять, что такое действие недопустимо. ARC не применим к Value Types
'weak' may only be applied to class and class-bound protocol types
#interview #ios #swift
Сегодня разберем еще один классический вопрос с ios собеседований. Необходимо понять, что будет выведено в консоль.
Начем с самого простого. Переменная cityClass в пункте 4 меняет свое значение поля name. Т.к классы относятся к reference type, то захват в capture list никак не повлияет на итоговое значение. В консоле мы увидем в обоих случаях "Liverpool".
Переменная cityStruct - cтруктура, поэтому в первом замыкании она будет скопирована при захвате в capture list, а во втором обращение произойдет в момент выполнения замыкания к уже обновленной переменной. Поэтому "London" и "Marseille" соответственно.
Последний случай может показаться самым неочевидным. Переменная cityClassOptional захватывается в первом замыкании по слабой ссылке. В пункте 4 сначала создается еще один указатель на cityClassOptional, а потом заниляется. В замыкании closure1 будет выведено Paris - счетчик ссылок у объекта еще не равен нулю (doubleClass удерживает объект по сильной ссылке), а вот closure2 обратится по указателю уже к пустому значению.
Как итог, вывод в консоль будет выглядеть следующим образом:
1 - my city is Liverpool
2 - my city is London
3 - my city is Paris
4 - my city is Liverpool
5 - my city is Marseille
6 - my city is nil
А что произойдет если применить weak к переменной с типом структуры? К счастью, компилятор поможет понять, что такое действие недопустимо. ARC не применим к Value Types
'weak' may only be applied to class and class-bound protocol types
#interview #ios #swift
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥2😱2🤡1
Vibe собесов 😏
Посмотрел на днях интервью Антон проходит собеседование на iOS разработчика – оффер 550к. Оно навело меня на мысли о том, насколько важен именно вайб или ощущение от происходящего, для обеих сторон. Собственно многие позитивные флаги, поддержание правильной атмосферы и продемонстрировал Антон в этом, на мой взгляд, интересном интервью.
Теперь по порядку. Начинающие разработчики зачастую готовятся только по хард скиллам. Заучивают топ 100-150 вопросов по вставь_свой_язык_программирования и думают, что это оптимальный подход. На первых порах может быть так оно и есть, важно продемонстрировать свои навыки и компетенции, зачастую, выдавая заученные клише на популярные вопросы. Но когда речь заходить о высокой позиции, где от сотрудника будет требоваться намного больше, важно попасть в так называемый culture fit.
Бывает и такое, что интервью не задается, вопросы пошли душные и тд. Многие начинают нервничать, выдумывать, или говорят что-то невнятное. Люди поопытней могут сделать более хитрый маневр и постараться перевести поток мыслей и внимание интервьюеров в другую сторону, и попробовать порассуждать или даже убедить их в том, что вопрос не имеет прикладного значения или вообще бессмысленный. Собственно, похожие приемы и помогают выйти победителем по итогу.
Зачастую, после собеседования думаешь, что прошел его хорошо, ответил на все вопросы, но оффер так не получил. Но покопавшись глубже понимаешь - коннекта не было! Ты не смог убедить почему именно тебя должны позвать на работу. А бывает и наоборот. Вопросы сложные, ответы слабые, но получилось быстро понять, кого ищет компания, найти точки соприкосновения и дать им то, что они хотят в другом виде.
Из своего опыта хочется вспомнить несколько моментов, для лучшего описания, что я имею ввиду. Однажды, я попал на собеседование в компанию, приложением которой я пользовался, и оно мне нравилось. Я понятия не имел, как там все устроено в техническом плане. Релевантного опыта тоже не было в этом бизнес направлении. После технической части, я думал, что провалил интервью и на эту позицию компания будет искать разработчика дальше. Но когда дело дошло до моих вопросов (я подготовил их заранее, что рекомендую делать всегда) диалог пошел намного бодрее, я смог продемонстрировать, что мне интересно, как я могу улучшить то, чем уже пользуюсь и люблю. Подсветил вопросы со стороны клиента и мобильного разработчика и даже некоторыми вопросами поставил в тупик интервьюеров. Я думаю, это сыграло ключевую роль при найме меня и я тоже, с радостью, согласился пойти работать в эту компанию.
Что еще важно продемонстрировать на интервью?
Рассуждения вслух. Телепатов среди нас нет, а вот умение переносить поток мыслей в поток вербальности - хороший навык. Любой, кто проводит собеседования обращает на это внимание.
Не сдаваться. Если не знаете, как ответить на вопрос или решить задачу, продолжайте набрасывать идеи и предлагать разные подходы. Важно осознавать, что в современных реалиях вся работа - командная, поэтому не обязательно вывозить все на своих плечах. Грамотный интервьюер всегда направит вас в нужное русло, чтобы вместе прийти к успешномууспеху результату.
#interview #random #it
Посмотрел на днях интервью Антон проходит собеседование на iOS разработчика – оффер 550к. Оно навело меня на мысли о том, насколько важен именно вайб или ощущение от происходящего, для обеих сторон. Собственно многие позитивные флаги, поддержание правильной атмосферы и продемонстрировал Антон в этом, на мой взгляд, интересном интервью.
Теперь по порядку. Начинающие разработчики зачастую готовятся только по хард скиллам. Заучивают топ 100-150 вопросов по вставь_свой_язык_программирования и думают, что это оптимальный подход. На первых порах может быть так оно и есть, важно продемонстрировать свои навыки и компетенции, зачастую, выдавая заученные клише на популярные вопросы. Но когда речь заходить о высокой позиции, где от сотрудника будет требоваться намного больше, важно попасть в так называемый culture fit.
Бывает и такое, что интервью не задается, вопросы пошли душные и тд. Многие начинают нервничать, выдумывать, или говорят что-то невнятное. Люди поопытней могут сделать более хитрый маневр и постараться перевести поток мыслей и внимание интервьюеров в другую сторону, и попробовать порассуждать или даже убедить их в том, что вопрос не имеет прикладного значения или вообще бессмысленный. Собственно, похожие приемы и помогают выйти победителем по итогу.
Зачастую, после собеседования думаешь, что прошел его хорошо, ответил на все вопросы, но оффер так не получил. Но покопавшись глубже понимаешь - коннекта не было! Ты не смог убедить почему именно тебя должны позвать на работу. А бывает и наоборот. Вопросы сложные, ответы слабые, но получилось быстро понять, кого ищет компания, найти точки соприкосновения и дать им то, что они хотят в другом виде.
Из своего опыта хочется вспомнить несколько моментов, для лучшего описания, что я имею ввиду. Однажды, я попал на собеседование в компанию, приложением которой я пользовался, и оно мне нравилось. Я понятия не имел, как там все устроено в техническом плане. Релевантного опыта тоже не было в этом бизнес направлении. После технической части, я думал, что провалил интервью и на эту позицию компания будет искать разработчика дальше. Но когда дело дошло до моих вопросов (я подготовил их заранее, что рекомендую делать всегда) диалог пошел намного бодрее, я смог продемонстрировать, что мне интересно, как я могу улучшить то, чем уже пользуюсь и люблю. Подсветил вопросы со стороны клиента и мобильного разработчика и даже некоторыми вопросами поставил в тупик интервьюеров. Я думаю, это сыграло ключевую роль при найме меня и я тоже, с радостью, согласился пойти работать в эту компанию.
Что еще важно продемонстрировать на интервью?
Рассуждения вслух. Телепатов среди нас нет, а вот умение переносить поток мыслей в поток вербальности - хороший навык. Любой, кто проводит собеседования обращает на это внимание.
Не сдаваться. Если не знаете, как ответить на вопрос или решить задачу, продолжайте набрасывать идеи и предлагать разные подходы. Важно осознавать, что в современных реалиях вся работа - командная, поэтому не обязательно вывозить все на своих плечах. Грамотный интервьюер всегда направит вас в нужное русло, чтобы вместе прийти к успешному
#interview #random #it
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17👍5❤1👏1🤡1🤣1