12 вопросов об iOS-разработке интервью с деканом


Содержание

Вопрос об интервью с разработчиком iOS [закрыт]

Насколько глубока должна быть рассмотрена структура iOS разработчиков iOS; алгоритм при подготовке к заданию на работу в IOS? Я знаю, что большинство людей просто скажут, что нет никакого вреда в рассмотрении этого вопроса, но хотелось бы получить некоторые сведения, основанные на вашем собеседовании о том, какой процент вопросов связан с структурой данных /алгоритмом и какой процент связан с iOS?

2 ответа

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

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

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

Что должен знать junior ios developer?

Должен знать один из двух языков Swift или Objective-C;
Должен иметь представление об паттерне MVC и как приложения строятся на основе этого паттерна;
Должен знать базовые классы фреймворка Foundation — Int, String, Date, Data, DateFormatter, IndexPath . фреймворка UIKit — UIView, UIViewController, UITableViewController, UINavigationController, . ;
Должен знать жизненный цикл вью контроллера;

Должен уметь строить простые интерфейсы как в коде так и в сториборде, должен знать AutoLayout;
Должен уметь читать английскую документацию;
Должен уметь пользоваться гуглом;

Очень желательно иметь небольшой опыт с
GCD, Operation
CoreData
MapKit
Cocoapods

Исповедь iOS-разработчика, или «за что я ненавижу iOS»

Для пользователя iOS — прекрасная платформа. Иногда она бывает немного скучной и недостаточно гибкой, а иногда — красивой и удобной (второе — большую часть времени).

А вот у разработчиков не все так гладко. Для них иметь дело с iOS (и Apple вообще) — это как пытаться найти общий язык с роботом-параноиком, работающим советским пограничником в произведении Кафки.

Safari под iOS — это боль

Это один их самых кошмарных браузеров, с которыми я имел удовольствие работать с тех пор, как в далекие 90-е стал веб-разработчиком. Я потерял счет хакам и костылям, которые наворотил в своем коде, чтобы он нормально себя вел в Safari под iOS. Для мира, живущего по стандартам 2020 года, это дико.

Чтобы вы понимали, о чем я. Как вам то, что вы не можете указать высоту элемента iframe? Он появился в 1999 году, и поэтому это можно сделать в любом браузере — даже на IE6, самом ненавистном браузере планеты. Но не в Safari. С 2011 года эта проблема так и висит неразрешенной.

20 ноября в 18:30, Москва, беcплатно

Естественно, вас это поразит. Почему Apple не может использовать под iOS другие браузерные движки? Или почему Apple больше не инвестирует в проект Webkit, как делает это Google с Chromium?

Вы не можете (без проблем) потестировать старые версии iOS

Как-то раз я хотел потестировать симулятор под iOS 7, и знаете, что мне помешало? Так сделать нельзя. Нет, ну вообще кое-как можно, но для этого надо скачать старую и уже давно не поддерживаемую версию Xcode, которая работает только под Mavericks.

Таким образом, остается собирать у рабочего стола коллекцию старых “маков” и складывать в ящики старые устройства под iOS, молясь, чтобы Apple не сломала что-нибудь еще.

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

Сертификаты и профили

Работа с сертификатами iOS — работа утомительная, полная бюрократии и покрытая завесой загадок. Иногда что-то идет не так — и ни документация Apple, ни Xcode, ни ужасный Member Center не прольет свет на истинные причины происходящего.

Недавно я потерял 2 дня, пытаясь понять, почему у меня не создается сертификат. Наконец, я нашел ответ в непонятной документации от Mozilla. Xcode просто продемонстрировал мне неактивную кнопку, на форуме разработчиков Apple ответа никто не дал.

Как разработчику вам не требуется спрашивать у Apple разрешения на запуск своего кода на ваших устройствах. Знаете, как и на любой другой платформе мира. Даже macOS.

AppStore

AppStore — еще один уголок разочарования. Например, всего несколько часов мое приложение отклонили, потому что кому-то в компании не понравились его скриншоты.

Мы заметили, что ваши скриншоты не демонстрируют должным образом работу приложения.

Я просто загрузил те же скриншоты, ничего не меняя.

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


Кстати, на то, чтобы решить, нравятся ли компании ваши скриншоты, Apple тратит примерно неделю. Удачи вам с планированием даты релиза.

Помните робота из фильма Элизиум?

«Вы хотите поговорить с живым человеком?»

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

Впрочем, моя ситуация не так страшна, как та, что недавно случилась с приложением Dash под iOS. Apple решила, что разработчик такого успешного приложения — определенно мошенник, и заблокировала его приложение.

Решение Apple окончательное и обжалованию не подлежит.

Естественно, все мы знаем — Apple идеальна и ошибок никогда не совершает. Почему это вы хотите подавать апелляцию?

Самое страшное

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

Быть может, однажды Apple делает среду разработки под iOS бесплатной для всех. Весь мир будет дружно аплодировать, а фанбои — утирать слезы счастья. Ах, какой щедрый жест!

Кстати, почти под любую другую платформу можно разрабатывать бесплатно и даже компилировать под какие-нибудь другие платформы. Ну то есть скомпилировать приложение для Windows под macOS, Android-приложение под Linux.

В iOS 12 есть большой секрет, который изменит всё. Время Скайнета пришло

Кажется, ещё вчера идея искусственного интеллекта в смартфоне казалась бесконечно далёкой. Помните, как попросили Siri рассказать вам шутку, а затем кинули айфон в сторону с небрежным: «Фигня»?

Мы смеялись над беспомощным «умным ассистентом» в смартфоне очень долго. Теперь его очередь, и он будет мстить.

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

Этой осенью с ИИ в вашем айфоне снимут одно из главных ограничений, и назад дороги уже не будет. Это одновременно и волнительный, и пугающий момент: вначале мы допустили ИИ до нашей жизни, а теперь впервые даём ему волю решать за нас.

Не понимаете, о чём я говорю? Пора понять, что за «рекомендации Siri» начнут работать в iOS 12, и почему это нарочито безобидное название скрывает за собой кое-что гораздо более масштабное.

Как изменится Сири в iOS 12. Почему это важно?

Первые зачатки искусственного интеллекта в мобильных девайсах Apple появились с релизом iOS 9. Именно тогда Тим Кук впервые произнёс со сцены заветное словосочетание «ИИ» и добавил к нему стремительно вошедшее в моду «машинное обучение».

С тех пор во всех ваших айфонах невдомёк для владельца постоянно функционирует искусственный интеллект. Да, он следит за вами. И он постоянно учится:

  • Предсказывать: когда, в каких случаях, после чего, в какое время, как долго, что конкретно вы делаете на устройстве и даже с ним самим.
  • Сообщать и отображать: что, когда, где произойдёт или происходит прямо сейчас.
  • Предлагать: что, когда, где сделать пользователю.
  • Действовать: что, когда сделать с устройством или его настройками, чтобы достичь целей, определённых как положительные для пользователя и/или Apple.

Релиз iOS 12 улучшает возможности встроенного ИИ по всем фронтам, но делает два последних наиболее заметными, наконец-то представляя миру осязаемый итог последних четырёх лет работы сотен миллионов разрозненных инстанций «ассистента».

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

Примеров масса. Но главное — полная независимости и самостоятельное «мышление» вашего смартфона.

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

Такого ещё не было, но то ли ещё будет.

Ой, да ладно! Все искусственные интеллекты тупые, а я умнее

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

Рано или поздно он действительно станет, и тогда нам, скорее всего, кранты.


Ладно, не будем о будущем, — всё это кажется так далеко. Вот вы сейчас, скорее всего, держите перед собой смартфон. И чисто статистически это, скорее всего, айфон. Возможно, на нём установлена iOS 12.

Искусственный интеллект в iOS 12 постоянно управляет всеми элементами устройства: от скорости отрисовки каждой анимации до частоты процессора через 30 секунд от того момента, как вы прочитаете эту строку.

Более того, если вы читаете эти строки с «бета-версии», iOS 12 уже успела предположить, в какую милисекунду ваши глаза остановятся прямо на этих буквах – и когда, даже КАК вы начнёте скроллить страницу далее. Несколько самых вероятных сценариев уже отрендерены и готовы к отображению.

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

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

Прикол в том, что вас сейчас отпустило, а iOS 12 это запомнила и внесла ваше поведение в список вероятностей. В следующий раз оно так или иначе повлияет на решение рендерить ту или иную часть страницы в первую очередь. И хорошо, что пока оно влияет только на это.

Как работает искусственный интеллект в iPhone на примере

Объясню основу работы ИИ в гаджетах Apple на примере аналогии.

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

Однажды вместе с новой прошивкой Apple высаживает одинаковый ИИ с одинаковым набором инструкций на сотню миллионов островков. В том числе ваш iPhone.

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

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

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

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

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

Рано или поздно алгоритм приводит к положительному результату. Ему присваиваются выводы по заранее заданным критериям, например: отдать результат iOS, которая отобразит его пользователю; передать результат такому-то облачному сервису для его применения; пометить как лучший результат решения этой задачи; скрыть результат от пользователя, но оставить до появления новых инструкций; и так далее.

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

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

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

Всё это время ИИ действует сам, лишь изредка передавая результаты локальной копии iOS.

Какую тогда роль играет Apple, если ИИ работает только внутри смартфона?

Продолжая аналогии, к берегу «островка» регулярно пристаёт корабль, который загружает на борт результаты и сортирует их по выводам. Корабль не знает, к какому острову он пристыковался и не видит сами погруженные результаты – только выводы.

Собранные с островков результаты оперативно передаются с корабля облачным сервисам Apple и командам разработки Apple. Первые применяют исключительно результаты и не вдаются в подробности, а вторые – анализируют всё вплоть до алгоритма. Работа последних заключается в разработке следующей версии ИИ.

В новой версии искусственного интеллекта iOS:

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

Новая версия ИИ доставляется на все островки через обновления прошивки. Как правило, она не начинает работу с нуля: все ранее сделанные выводы остаются, просто задачи перезапускаются снова.

Что ещё умеет искусственный интеллект в iOS 12?

Если кратко, то очень многое. iOS 12 — это лишь первая версия операционки, в которой Apple настолько плотно интегрирует искусственный интеллект.

Цукерберг рекомендует:  Алгоритм - Задача извлечения цифры из позиции числа (Java)

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


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

История с мобильной фотосъемкой приобретает еще более радужные оттенки. Благодаря наличию ИИ iPhone не только умеет «видеть» сквозь объектив, но и анализировать увиденное.

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

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

В попытке сравнить iOS 12 с реальной жизнью представьте, что характер использования вами смартфона — это младенец, которого воспитывают родители. Их роль и выполняет искусственный интеллект.

Но одновременно такой ИИ – опаснейшее оружие в руках крупнейшей корпорации в мире

Искусственный интеллект и правда способен совершить революцию, но не такую, какой вы себе её видите.

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

Apple будет полностью контролировать эту систему и анализировать все потоки данных, проходящих через Siri.

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

И контролировать все ваши действия по предпочтениям очень просто. Достаточно обучить Siri понимать, что хочет тот или иной пользователь. И здесь речь идёт не о чтении какой-либо конфиденциальной информации, но и полном её управлении.

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

С другой стороны, радуйтесь, что это не Google

У Apple действительно огромная база устройств, но она не сравнится в гаджетами на ОС от Google. Сейчас буквально каждый второй чайник работает на Android.

Только представьте, что каждое «умное» устройство постоянно слушает, о чем вы говорите. Знает все ваши секреты и слабые места. Это всё копится в одну большую базу знаний. И всё это могло бы быть под контролем Google, которая, как вы знаете, очень любит шпионить за своими пользователями.

Только пока в корпорации ещё не достигли того уровня, который появился в iOS 12.

В общем, с iOS 12 нам станет чуть легче, но одновременно тревожнее

Всего через два с половиной месяца почти все владельцы iPhone установят себе iOS 12. Вместе с ней они поставят себе совсем другую Сири. Но не ту, что разговаривает. А ту, которой даже говорить с вами не надо. Она и так знает.

Пять с лишним лет она умнела вместе с несколькими конкурентами, но не подавала виду. Когда вы поднимете айфон с iOS 12, не удивляйтесь тому, что он начнет рекомендовать, напоминать и даже что-то делать – самостоятельно, а не потому, что вы её так настроили.

Машинное обучение в смартфонах наконец-то достигло точки невозврата. Без него в 2020-м году больше нельзя. Так что дальше будет больше.

Вот это больше и напрягает больше всего.

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

Он знает, когда вам лучше всего что-то продать. Когда вам можно что-то внушить. И что именно вам можно внушить проще всего. Куда вы пойдете. Когда вы пойдете. Через сколько секунд вы поднимете телефон (не забыли про Screen Time в iOS 12?). Кому вы пишете чаще всего. На каких фото есть ваш сын и жена. Как они выглядят.

Где вы бываете чаще всего. Где работаете, где едите. Что едите, судя по фото. Какие сайты посещаете. Какие слова пишете в мессенджере. Когда просыпаетесь. Когда спите. Когда вас проще всего убить. Хм.

Короче… пойду-ка отключу предложения Siri. Хорошо, что сейчас это вообще возможно сделать. А тем, кто рекомендует надеть шапку из фольги: надеюсь, встретимся в этом посте через 10 лет и оценим, как глубоко ИИ пробрался в нашу жизнь.

(4.50 из 5, оценили: 2)

Интервью с деканом нашего факультета

Алексей Георгиевич, как изменится жизнь ФПФЭ с внедрением Физтех-школ?

Организация школ в МФТИ – это процесс, который, пожалуй, впервые за все 70 лет существования Физтеха так серьезно затронул организационную структуру образовательных и научных подразделений. Все-таки за эти годы жизнь и в институте, и в стране изменилась очень сильно и стало ясно, что мы не можем продолжать работать так, как работали раньше, делая вид, что ничего не происходит. Наверное, все хорошо знают, что в последние время у нас очень развилась научная составляющая: образовано несколько десятков лабораторий, которые в целом весьма успешно работают и вносят достаточно солидный вклад в достижение нашим институтом хороших показателей в мировых рейтингах. Но как организовать науку, чтобы получить максимальный эффект и добиться синергии, добиться того, чтобы научные коллективы разных лабораторий активно взаимодействовали и взаимно усиливали бы друг друга. Как эта наука должна взаимодействовать с нашим традиционным образованием? Это вопросы, на которые, я думаю, ни у кого на сегодняшний день нет ясного и четкого ответа. Реформа организационной структуры Физтеха в этом смысле может помочь, потому что лаборатории, которые раньше были несколько оторваны от реальной образовательной жизни, теперь вошли в соответствующие школы и будут продолжать свою деятельность в тесном контакте с факультетами и с недавно сформированными Учеными советами школ.

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


Как изменится поступление в вуз с внедрением Физтех-школ?

Изменится кардинально, потому что, начиная с этого года, прием на Физтех будет вестись на все факультеты в рамках нескольких направлений по разным конкурсным группам. Это, разумеется, внесет существенные коррективы в работу приемной кампании. Раньше, как известно, в рамках каждого направления был единый конкурс. Заявления подавались в факультетские комиссии и дальше проводилась очень большая работа по согласованию списков абитуриентов с тем, чтобы равномерно заполнить вакантные места на всех факультетах. Несколько лет назад в рамках нашего главного направления «Прикладные математика и физика» в порядке эксперимента был введен прием по двум конкурсным группам – «Математика и физика» и «Математика и химия». В этом же году отдельные конкурсные группы введены для каждой школы, поэтому и конкурс будет проходить в каждой школе отдельно, но для факультетов из одной школы он будет общий. Наша обязанность – правильно ориентировать абитуриентов в специфике физтеховских школ и факультетов и разъяснять им новые правила приема, что мы уже и делаем на Днях открытых дверей и других встречах с абитуриентами.

Чем гордится наш факультет?

Гордимся всей историей факультета, а она была довольно сложной. Начинался наш факультет в Москве, в знаменитой и родной «Стекляшке» – двухэтажном здании, облицованном стеклянными панелями на территории Института космических исследований РАН. Это здание одним из «отцов-основателей» факультета, директором ИКИ РАН и заведующим кафедрой космической физики того времени академиком Р.З.Сагдеевым было предоставлено новому факультету для проведения учебных занятий. В нем и сейчас мы по-прежнему продолжаем работать, несмотря на все проблемы и тяготы факультетской жизни, протекающей вдали от Долгопрудного. Были проблемы и с общежитием, потому что своего корпуса у нас долгое время не было, да и 4-ку мы получили после известного пожара и не слишком капитального ремонта. Но невзирая на эти проблемы, факультет очень активно рос и развивался, у нас с удовольствием основывали базовые кафедры ведущие научные институты страны. Должен сказать, что когда мы в прошлом году подводили итоги 40-летней работы факультета, все наши выпускники и преподаватели очень тепло вспоминали эти тяжелые годы с сознанием того, что нам удалось преодолеть все невзгоды и сделать хороший и интересный факультет.

Кстати, рождение факультета было отмечено курьезным случаем. На торжественном открытии «Стекляшки» в присутствии великих физиков, таких как Е.П.Велихов, П.С.Капица, А.М.Прохоров при демонстрации лабораторных работ факультетского практикума сорвало заглушку на камере высокого давления, которая пробила защитный кожух и вылетела в потолок, застряв в перекрытии. Как позже выяснилось, эта заглушка была недостаточно закалена. Со временем она деформировалась и в самый неподходящий момент выстрелила. После этого лет двадцать студентам показывали эту дырку как наглядный пример «визит-эффекта».

Вообще в Стекляшке в 70-80-тые годы прошлого века, во времена становления факультета работала очень хорошая научная команда. Многие результаты были получены впервые в мире и получили всеобщее признание. Так, например, одним из наших достижений было создание мощного эксимерного лазера на длине волны 308 нм, который по тем временам обладал рекордной энергией в импульсе и превосходил по этому параметру все советские и зарубежные установки подобного типа. К сожалению, в 90-тые годы эта замечательная команда начала, как и вся наука в России, таять, однако многое нам удалось сохранить и даже преумножить.

Когда интенсифицировалась научная деятельность на Физтехе, когда Физтех выиграл мега-грант, затем грант НИУ и грант программы 5-100, мы с помощью ряда базовых кафедр практически с нуля организовали 7 хороших лабораторий уже непосредственно в Долгопрудном, которые успешно работают на мировом уровне и показывают очень неплохие результаты. Правда, в настоящее время в рамках переформатирования научной политики Физтеха они в большинстве своем отошли в другие школы, но, тем не менее, мы продолжаем поддерживать с ними тесные и плодотворные контакты и по научной, и по образовательной линии.

Тяжел ли путь ученого в России?

Ученым везде быть тяжело, не только в России. Хлеб ученого достаточно горький, потому что любой успех в науке дается с большим трудом, но зато это уникальная возможность заниматься очень интересным и творческим делом. Это большая привилегия, но и большая ответственность, и, конечно же, это нелегкий путь, но тот, кто на него ступил, испытает и глубокое удовлетворение от процесса познания того, как устроена природа. И это удовлетворение останется с человеком на всю жизнь и, пожалуй, мало зависит от того, назовут ли твоим именем какой-нибудь эффект или не назовут. Само осознание того, что ты заложил пусть маленький, но прочный кирпичик в здание науки, в понимание окружающего нас мира, конечно дает многое.

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

Что же до ступеней становления ученого, то они понятны: магистратура, аспирантура, научный сотрудник, старший научный сотрудник, кандидат наук, доктор наук и т.д. Но все люди разные, и поэтому здесь важно понимать, что некоторые по складу характера — одиночки, и им удобнее работать над сугубо теоретической проблемой, только периодически общаясь с коллегами на семинарах, а есть экспериментаторы, которые по определению работают в коллективе. Есть коллективы, в которых работают десятки и сотни людей, как например, на больших ускорителях, есть коллективы из двух-трех человек на малых установках, которые, например, характерны для физики твердого тела. Соответственно, и этапы научной карьеры у всех могут быть разные. Многое зависит еще и от того, обладает ли человек какими-либо организационными способностями, способен ли он так организовать работу нескольких ученых, чтобы она оптимальным образом продвигала науку вперед, чтобы научные сотрудники друг друга дополняли, а не конфликтовали друг с другом. Такие организационные способности очень помогают в карьерном продвижении, но, как известно, занятие руководящих позиций в значительной степени начинает мешать научной деятельности, потому что все больше времени приходится уделять организационным моментам: написанию множества бумаг, взаимодействию с вышестоящим начальством, снабжению, и прочему. Но с другой стороны, если вы оказываетесь в состоянии объединить достаточно большой научный коллектив, то появляется возможность решать крупные научные проблемы, что, конечно же, всегда крайне заманчиво и интересно.

Чем занимаются выпускники ФПФЭ?

Наверное, здесь нет никаких специфических для Проблем особенностей. У нас порядка 30-40 человек идет в аспирантуру после магистратуры и строят затем свою научную карьеру, как правило, в своих базовых институтах или на Физтехе. Еще какое-то количество выпускников идет в наукоемкие фирмы при базовых организациях. А остальные прекрасно устраиваются где хотят. Во всяком случае, за всю мою более чем десятилетнюю работу деканом никто ни разу не приходил с просьбой о помощи в трудоустройстве на работу. Как я уже говорил, хлеб науки – горький, и не все его выбирают. Многим хочется иметь все сегодня и сейчас, поэтому они и идут в какие-то коммерческие структуры. Но при этом самое главное – не попасть в болото, в котором можно до самой старости заниматься нудным и рутинным делом, пусть даже и зарабатывая неплохие деньги. И зачастую выпускники, работающие в бизнесе, с некоторым оттенком горечи говорят, что, наверное, им следовало бы продолжить занятия наукой. Но, тем не менее, все зависит от человека, можно и в бизнесе найти творческую составляющую, подняться и вырасти. И такие примеры есть среди наших выпускников, которые являются крупными бизнесменами, входящими в списки Форбс. Есть и хорошие ученые, которые, защитив докторскую диссертацию, решили применить свои таланты в бизнесе и успешно выстроили практически с нуля свои компании. Среди наших выпускников есть крупные ученые, свои академики, члены-корреспонденты РАН, директоры академических институтов, есть и политические деятели, и сотрудники госслужб, так что карьеру можно построить на любой вкус. Вообще я бы сказал, что это общемировая тенденция, что после окончания магистратуры вуза половина выпускников уходит в бизнес, потому что конечно же 18-летнему абитуриенту трудно понять, что ему в жизни хочется и где он в жизни может преуспеть. Ну и потом бывают всякие жизненные обстоятельства, которые заставляют принять то или иное решение. Успеха добиться можно везде, главное – нужны нестандартные подходы, нужна усидчивость, большая работоспособность и то, чему учат физтехов – умение моделирования процессов, т.е. умение построить теоретическую модель, провести ее экспериментальную верификацию и последующее уточнение теории. Оказывается, что вся жизнь человека устроена так же: если хочешь чего-то добиться, то приходится и в бизнесе строить модели бизнес-процессов, проверять их, находить слабые места, исправлять и двигаться дальше. Наши выпускники, как мне кажется, умеют это делать.

Изменились ли студенты с момента основания ФПФЭ?

Изменились. Когда-то, совсем давно учиться плохо было непрестижно. Сейчас довольно много неуспевающих студентов, которым, на мой взгляд, особо Физтех и не нужен. Наверное, это связано именно с тем, что и жизнь вокруг нас изменилась, и общая ситуация в мире и в стране другая. Но все-таки я очень боюсь, что студенты, которые плохо учатся то ли из лени, то ли из-за простого разгильдяйства, то ли из-за того, что много отвлекаются на какие-то посторонние дела, в результате окончат Физтех недоучками, не сумеют взять все, что им мог бы дать Физтех, базовые кафедры и преподаватели, и в силу этого потом им в жизни придется нелегко. Кто-то это поймет, задумается и исправит свои взгляды на жизнь, а кто-то так и не поймет и будет винить всех вокруг, не задумываясь, что все-таки каждый сам кузнец своего счастья. Раньше таких студентов было существенно меньше. Мое глубокое убеждение заключается в том, что любая работа, если она честно сделана, будет вознаграждена: не сейчас, так когда-то потом, но обязательно тем или иным образом любые старания будут отмечены. А если относиться без энтузиазма к своей работе, к учебе, то вряд ли что-то хорошее получится.

Цукерберг рекомендует:  Html - Обучаюсь HTML

Дружный ли наш факультет?

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

Какую помощь может оказать деканат студенту в случае ЧП?

Если говорить о материальной помощи, то любую, которая будет в наших силах. К сожалению, бывают случаи, когда действительно приходится по максимуму искать средства для поддержки студентов в чрезвычайных ситуациях, в том числе, просить о помощи ректорат, наших выпускников и т.д. Дмитрий Леонидович Зайцев, заместитель директора школы по нашему факультету, который курирует эти вопросы, много сил, и души вкладывает в поддержку оказавшимся в непростой ситуации студентам. И здесь иногда даже материальная помощь отступает на второй план, например, если студент стоит на грани отчисления, но он хочет и в состоянии учиться, то деканат окажет ему максимальную помощь и содействие, будет ходатайствовать за него перед институтскими кафедрами и ректоратом чтобы дать человеку шанс исправить ситуацию. Иногда, к сожалению, студенты этим пользуются для того, чтобы просто максимально продлить свое существование на Физтехе, не собираясь при этом выполнять свои обещания.

Почему стоит выбрать ФПФЭ?

Во-первых, наш факультет – физический, во-вторых, в большой степени конкретный. Я всегда говорю, что наш факультет недаром называется «проблем физики и энергетики». Он был создан для подготовки высококвалифицированных специалистов, готовых заняться решением крупных практических проблем, которые двигали бы вперед человечество. Но чтобы это было возможно, приходится учиться решать и сугубо фундаментальные задачи. Если вы возьмете, например, проблему термоядерного синтеза, то столкнетесь с массой очень трудоемких и тяжелых сугубо фундаментальных задач в области физики плазмы, нейтронной физики, материаловедения и т.д. Но с другой стороны решение этих задач может привести нас к созданию термоядерного реактора и получению практически неисчерпаемого источника энергии. Возьмите ту же космическую физику, которая в 60-е годы прошлого века казалось была практически полностью оторвана от реальной жизни. И когда запускали исследовательские спутники, то полагали, что полученные с их помощью результаты будут иметь сугубо академический интерес. Но прошли годы и сейчас мы без космоса не представляем свою жизнь: это и системы спутниковой навигации, и прогнозы погоды, и спутниковое телевидение, и так далее. Однако, нацеленность факультета на решение крупных проблем не исключает того факта, что практически на всех кафедрах ведутся и крайне интересные сугубо поисковые научные исследования по направлениям, которые не обещают прямой и скорой практической отдачи, но здесь всегда следует помнить, что нет ничего более рентабельного, чем фундаментальная наука. Еще одно наше существенное отличие заключается в том, что на факультет много экспериментальной физики, у нас на 3 курсе читается обширный лекционный курс «Методы экспериментальной физики» и работает хорошо оборудованный практикум по методам измерений. А вообще нам всегда были интересны студенты не только с «головой», но и с «руками», которые с детства занимались чем-то практическим, например, авиамоделизмом или радиолюбительством.

Тот ли Физтех? Как сильно он изменился за многие годы?

Изменился очень сильно. Сейчас очень приятно пройтись по кампусу, где установлены современные фонари, скамейки, заасфальтированы дорожки, отремонтированы старые корпуса, построены новые. Изменилось и оснащение Физтеха, закуплено много нужного, важного и активно используемого оборудования. Из образовательного центра Физтех становится и научным, появилось много молодых преподавателей и научных сотрудников. И это очень важное изменение, потому что для того, чтобы Физтех в целом оставался Физтехом, нам необходимо, чтобы на все руководящие посты в институте приходили ребята, прошедшие школу Физтеха, которые бы понимали, что такое образование Физтеха, что такое наука и так далее. Очень важно, чтобы те или иные направления административной работы возглавляли не просто «эффективные менеджеры», а люди, которые понимают, как устроена физтеховская жизнь. Только тогда нам удастся сохранить творческий дух на Физтехе, который является залогом всех его успехов. Но сейчас из-за роста Физтеха, из-за изменения внешней среды мы видим тенденцию к формализации всех сторон деятельности МФТИ. С одной стороны, она нам диктуется сверху министерством, с другой стороны, иногда мы сами в погоне за какими-то призрачными показателями если не способствуем формализации, то не слишком активно противостоим ей. Возможно, некоторая формализация и необходима, но, тем не менее, нужно помнить, что творческие люди рождаются в творческой атмосфере. Поэтому пока выпускники к нам и стремятся, приезжают на все наши праздники, помогают в развитии института, потому что они помнят дружную, теплую, творческую атмосферу на Физтехе, и ее нам нельзя терять, иначе они начнут забывать, откуда родом, и зачем им была нужна Альма-матер. И если мы все и вся заформализуем, то, боюсь, все наши преимущества начнут постепенно испаряться. У нас могут быть замечательные достижения по всем параметрам, но если мы потеряем этот дух, то мы потеряем Физтех.

Что вы можете пожелать студентам и абитуриентам?

Абитуриентам я могу пожелать успешно сдать ЕГЭ, успешно написать все олимпиады и поступать к нам на факультет. А студентам – поддерживать творческую, дружную атмосферу на факультете, но также и быть принципиальными людьми, потому что нельзя из-за ложно понимаемого товарищества проходить мимо нарушений внутренней жизни, это относится к очень многому. Надо понимать, что Физтех – наш общий дом, и порядок в нем мы можем навести только мы сами. Ну и конечно необходимо пожелать хорошей учебы, трудной и тяжелой, но тем не менее совершенно необходимой, если человек выбрал Физтех, удачи и больших успехов. Ну и всегда помнить свою Альма-матер и своих товарищей, куда бы судьба вас не закинула.

Восемь студентов из России, которых Apple пригласила на WWDC Материал редакции

Какими проектами они занимаются в свободное время и что сделали, чтобы попасть на конференцию.

С 3 по 7 июня в Сан-Хосе пройдёт ежегодная конференция для разработчиков WWDC. Каждый год Apple предлагает студентам по всему миру отправить свои проекты на конкурс WWDC Scholarships и получить возможность бесплатно поучаствовать в конференции.

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

Кирилл Аверьянов, 17 лет, Санкт-Петербург

Кирилл Аверьянов работает iOS-разработчиком во «ВКонтакте». Он занимался созданием приложений «Клевер» и VK Admin. В 2020 году Аверьянов попал в список Forbes «30 до 30 лет». Ведёт Telegram-каналы про разработку iOS.Heads и iOS.Events.


Помимо работы «ВКонтакте» Аверьянов создаёт собственные приложения, а также организовывает одно из крупнейших в России сообществ iOS-разработчиков CocoaHeads, которое собирает около 250 участников каждый месяц в Москве и Санкт-Петербурге.

Аверьянов разработал приложение для изучения и улучшения разговорных навыков иностранных языков с помощью искусственного интеллекта Monica, оно поддерживает 11 языков. Недавно разработчик выпустил приложение для медитации Green (доступно в англоязычном App Store).

Для участия в WWDC Аверьянов создал приложение для обучения программированию. В нём персонаж в образе Тима Кука с помощью синтезированного голоса учит принципам написания кода, шутит и даёт советы с весёлой музыкой.

На этом WWDC уже точно появится «тёмная» тема в новой iOS 13, и я думаю, что компания уделит много внимания приватности. Ещё в прошлом году обещали показать подробно Marzipan — инструмент, с помощью которого приложения iOS можно перенести на macOS. Думаю, если и не будет релиза, то хотя бы расскажут подробнее.

В скором времени покажут AR-очки и, возможно, на WWDC сделают для этого какой-то очевидный шаг с точки зрения iOS.
Поскольку Apple идёт в сторону сервисов, то уделят внимание продуктам вроде App Store Arcade (всем разработчикам недавно приходило письмо с возможностью рассказать о своей игре).

Поскольку я сам еду на WWDC, то для меня важнее общение, новые знакомства и встречи с инженерами Apple. А всем остальным советую смотреть сессии — я два года назад смотрел все выступления на протяжении пяти дней. Это как длинное кино без перерыва, а для просмотра есть удобный клиент wwdc.io.

Филипп Захарченко, 18 лет, Москва

Единственный студент в истории WWDC, который получал приглашение на конференцию четыре года подряд. Сейчас Захарченко оканчивает обучение в московской экономической школе «Зайцево», однако разработчика уже пригласили в семь вузов: пять в США (среди них UC Berkeley), один в Германии.

В свободное от учёбы время Захарченко занимается разработкой приложений для iOS, macOS, watchOS, tvOS. Например, в App Store можно скачать его трекер для отслеживания дедлайнов Deadliner, карты для iOS с дополненной реальностью Extmaps, виртуальную клавиатуру для учёных с греческим алфавитом GreekType, macOS-конвертер для создания GIF ZetGIF и таймер для перевода компьютера в спящий режим Sleep App.

Кроме того, Захарченко — сооснователь онлайн-платформы для создания интерактивных форм и опросов CrowdBack, а также студии ZetStudios, в которой работают разработчики из Италии, Германии, Великобритании, США и Пакистана.

Сейчас Захарченко занимается собственным проектом Style GO — «Uber для красоты», с помощью которого можно найти ближайший салон, записаться на процедуры и оставить отзыв. В App Store доступна бета-версия приложения.

Для участия в WWDC разработчик создал обучающее приложение про устройство атомов и молекул.

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

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

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

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

Яков Маньшин, 21 год, Липецк

Яков Маньшин учится в Высшей школе экономики на факультете международного менеджмента. Два года назад изучил Swift по электронному учебнику Apple и увлёкся разработкой приложений. Сейчас работает на полную ставку iOS-разработчиком в Chanel.

В свободное время Маньшин занимается развитием собственного приложения — Space Photos. В его основе лежит сервис NASA, из которого и загружаются фотографии с пояснениями. Сервис работает с 1995 года, и за это время в нём появилось больше 8000 фото — все они доступны в приложении.

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

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

Для участия в конкурсе WWDC Маньшин изучил опыт предыдущих соискателей: «Увидел в соцсетях, что выигрывают проекты, которые представляют собой простые игры. Решил пойти по тому же пути и разработал игру, в которой главный герой — разработчик — принимает разный облик».

Цель игры — набрать больше баллов, чтобы его приложение стало лучшим в App Store и получило награду Apple Design Awards. В ходе игры персонажу необходимо ловить падающие устройства и прыгать на жуков, которые символизируют программные баги.

Анатолий Ягов, 23 года, Кондопога

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

Ягов решил принять участие в конкурсе WWDC Scholarships после лекции Дмитрия Розова о поездке на WWDC в 2020 году. Для конкурса Ягов разработал симулятор аэропорта в дополненной реальности, в котором нужно справляться с очередями.

У нас был предмет в университете, который назывался «Теория массового обслуживания». Хоть это и было около двух лет назад, но эти знания у меня остались в голове, и иногда мне интересно почитать про этот предмет.

Когда я думал над идеей приложения для конкурса, я хотел создать что-то на основе AR, потому что это актуально и Apple активно продвигает свой фреймворк ARKit. Я подумал, что неплохо было бы связать проект с чем-то околонаучным. На основе этих двух мыслей возникла идея моего проекта.

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

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


Меняя эти три параметра, меняются и расчёты. Математическая часть приложения проста — несколько несложных формул. Было сложнее всего синхронизировать все анимации и математику, которая не учитывает задержки реального мира.

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

stoicist / ios-questions-interview.md

Вопросы на собеседование iOS разработчика (дополненное издание):

Что такое полиморфизм ?

Что такое *инкапсуляция? Что такое *нарушение инкапсуляции?

Чем абстрактный класс отличается от интерфейса ?

Расскажите о паттерне MVC . Чем отличается пассивная модель от активной ?

Реализация синглтона (Singleton) в ARC и в non-ARC ?

Какие еще паттерны знаете?

Паттерны порождающие, создания объектов (Creational): Singleton, Abstarct Factory ?

Паттерны структурные (Structural): MVC, Decorator(Categories, Delegation), Adapter(Delegation), Facade, Composite ?

Патерны поведения и взаимодействия объектов (Behavioral): Observer(Notification, KVO), Memento(Archiving+UserDefaults), Chain of Recponsibility, Command(Target-Action mechanism) ?

Что такое responder chain ?

Как работают push нотификации ?

  • Опишите основные понятия ОО программирования в терминах Objective-C ( интерфейс, реализация, свойства, протоколы, и т.д)
  • Что такое назначеный инициализатор (designated initializer ), напишите любой элементарный инициализатор, почему он так выглядит? (имеется ввиду if (self = [super . ]) )?
  • Суть рантайма (Runtime), отправление сообщения ;
  • Объявление свойств (property) (retain, assign, nonatomic, readonly, copy) . С подвохом: вопрос о несуществующем параметре atomic , что он означает? Как правильно реализовать сетер для свойства с параметром retain? Вопрос о циклах в графах владения, и почему свойства delegate (предоставляющие доступ к делегату) обычно задаются как assign ?
  • В чем разница между точечной нотацией и использованием квадратных скобок? Что происходит когода мы пытаемся вызвать метод у nil указателя? Разница между nil и Nil?
  • Что такое селектор (selector) ? Как его вызвать? как отложить вызов селектора? Что делать если селектор имеет много параметров? (NSInvocation) Как запустить селектор во второстепенном (фоновом) потоке ?
  • Как запустить поток ? Что первым нужно сделать при запуске потока ? (NSAutoreleasePool) Что такое runLoop , кодга он используется? (timers, nsurlconnection . )
  • Что такое делегат (delegate) ? как его создать и использовать?
  • Как представлены структуры C (CGRect, CGSize, CGPoint) в Objective-C?
  • Чем объект Objective-c отличается от структуры С, что такое структура в С.
  • Какие существуют root классы в iOS? Для чего нужны root классы ? Корневые классы: NSObject, NSProxy? Как работает proxy? Как эмитировать множественное наследование?
  • Тип id . Что случится во время компиляции если мы посылаем сообщение объекту типа id ? Что случится во время выполнения если этот метод существует? Что произойдет здесь (компиляция + время выполнения): NSString *s = [NSNumber numberWithInt:3]; int i = [s intValue];
  • Что такое указатель isa ? Для чего он нужен?
  • Что происходит с методом после того, как он не нашелся в объекте класса, которому его вызвали? Цепочка ответсвенности, что происходит с методом после того как он не нашелся в объекте класса, которому его вызвали (в сторону forwardInvocation:)?

  • Чем категория отличается от расширения (extension, наименованная категория)? категория vs extension ?
  • Можно ли добавить ivar в категорию?
  • Когда лучше использовать категорию , а когда наследование ? категория vs наследование ?
  • Что такое notifications (уведомления) ? как мы должны их использовать?
  • Какая разница м/у использование делегатов (delegation) и нотификейшенов (notification) ?
  • В чем разница между NSArray и NSMutableArray ?
  • Чем отличается NSSet от NSArray ? Какие операции происходят быстро в NSSet и какие в NSArray ?
  • Формальный и неформальный (informal) протокол? Протоколы (protocols): основные отличия между c#/java интерфейсами и Objective-C протоколами. Что делать в случае если класс не реализует какой-то метод из протокола?
  • Есть ли приватные и защищенные методы в Objective-C?
  • Что такое быстрое перечисление (fast enumeration) ?
  • Как имитировать множественное наследование ?
  • Что такое KVO ? Когда его нужно использовать? Методы для обозревания объектов? Работает ли KVO с instance переменными (полями) объекта?
  • Что такое KVC ? Когда его нужно использовать?
  • Что такое designated initializer ?
  • Как удалить объект в ходе итерации по циклу?
  • Что такое Run Loop ?
  • Как лучше всего загрузить UIImage c диска(с кеша) ?
  • Какой контент лучше хранить в Documents , а какой в Cache ?
  • Как связаны NSRunLoop и NSAutoreleasePool на пальцах?
  • Почему нам не следует вызывать instance методы в методе initialize ,?
  • NSCoding, archiving
  • Протокол NSCopying , почему мы не можем просто использовать любой собственный объект в качестве ключа в словарях (NSDictionary) , что нужно сделать чтобы решить эту проблему? (разница между глубоким и поверхностным копированием)
  • Как происходит ручное управление памятью — MRC в iOS?
  • autorelease vs release ?
  • Что означает ARC ?
  • Что делать, если проект написан с использованием ARC, а нужно использовать классы сторонней библиотеки написанной без ARC?
  • Weak vs assign , strong vs copy ?
  • Atomic vs nonatomic . Чем отличаются? Как вручную переопределить atomic/nonatomic сеттер в не ARC коде?

  • Зачем все свойства ссылающиеся на делегаты strong/retain . :)))
  • Что такое autorelease pool ?
  • Как можно заимплементировать autorelease pool на с++ ?
  • Если я вызову performSelector:withObject:afterDelay: — объекту пошлется сообщение retain?
  • Как происходит обработка memory warning (предупреждение о малом количестве памяти)? Зависит ли обработка от версии iOS, как мы должны их обрабатывать?
  • Напишите простую реализацию NSAutoreleasePoll на Objective-C
  • Когда нужно использовать метод retainCount (никогда, почему?) Объясните что такое подсчет ссылок (retain count )?
  • Темы управления памятью, такие как владение retain/release/autorelease .
  • Что случится если вы добавите только что созданный объект в Mutable Array , и пошлете ему сообщение release ? Что случится если послать сообщение release массиву? Что случится если вы удалите объект из массива и попытаетесь его использовать?
  • С подвохом: сборщик мусора для iPhone.
  • Нужно ли ретейнить (посылать сообщение retain) делегаты ?
  • Для чего используется класс NSCoder ?
  • Опишите правильный способ управленя памятью выделяемой под Outlet’ы ?
  • Реализуйте следующие методы: retain, release, autorelease ?
  • Преимущества и недостатки синхронного и асинхронного соединения?
  • Что означает http, tcp ?
  • Какие различия между HEAD, GET, POST, PUT ?
  • Как загрузить что-то из интернета? В чем разница между синхронными и асинхронными запросами ? Небольшое задание. Опишите как загрузить изображение из интернета и отобразить его в ImageView — все это должно происходить после нажатия кнопки.
  • Что такое deadlock ?
  • Что такое livelock ?
  • Что такое семафор (semafor) ?
  • Что такое мьютекс (mutex) ?
  • Асинхронность vs многопоточность . Чем отличаются?
  • Какие технологии в iOS возможно использовать для работы с потоками. Преимущества и недостатки.
  • Как запустить поток? Что первым нужно сделать при запуске потока? (NSAutoreleasePool — пул автоосвобождения) Что такое runLoop, кодга он используется? (timers, nsurlconnection …)
  • Чем отличается dispatch_async от dispatch_sync ?
  • Для чего при разработке под iOS использовать POSIX-потоки ? pthread_create(&thread, NULL, startTimer, (void *)t);
  • А чем реально POSIX-потоки лучше чем GCD или NSOperationQueue вместе с NSOperation ? Приходилось ри реально использовать POSIX и как в этом были прюсы? Реально, просто интересно… Use POSIX calls if cross-platform portability is required. If you are writing networking code that runs exclusively in OS X and iOS, you should generally avoid POSIX networking calls, because they are harder to work with than higher-level APIs. However, if you are writing networking code that must be shared with other platforms, you can use the POSIX networking APIs so that you can use the same code everywhere.
  • Разница между свойствами bounds и frame объекта UIView? Понимание системы координат?
  • Какие бывают состояния у приложения?
  • Цикл жизни UIViewController ?
  • Что такое View (представление) и что такое window ?
  • Какого разрешение экранов iphon’ов, и в чем разница между points (точками) и пикселями (pixels) ?
  • Что такое responder chain (цепочка обязанностей, паттерн chain of responsibility , на примере UI компонентов iOS ), becomeFirstResponder .
  • Что означают IBOutlet и IBAction , для чего они нужны, и что значат для препроцессора?
  • Как работает UITableView ?
  • Как многопоточность работает с UIKit ?
  • Что можно сделать если клавиатура при появлении скрывает важную часть интерфейса?
  • Почему мы должны релизить IBOutlet’ты во viewDidUnload?
  • Что такое awakeFromNeeb , в чем разница между xib и nib файлами?
  • Иерархия наследования UIButton.
Цукерберг рекомендует:  Обучение - Микропроцессорное ядро. Структура ядра.

Базы данных, CoreData:

Составить SQL запрос на выборку всех проектов на которых сидит девелопер с >Developers:id,name; Projects:id,name; Developers&Projects:project_id,developer_id )?

Зачем нужно делать двустороннии связи в таблицах?

Что такое Core Data ?

В каких случаях лучше использовать SQLite , а в каких Core Data ?

Что такое контекст (Managed object context) ? Как происходят изменения в NSManagedObjectContext ?

Что такое Persistent store coordinator ? Зачем нужен NSPersistentStoreCoordinator ?

Какие есть нюансы при использовании Core Data в разных потоках ? Как синхронизировать данные между потоками (Как синхронизировать контекст)? Синхронизация разных типов NSManagedObjectContext (получение и изменение данных в child контекстах)?

Использовали ли NSFetchedResultsController ? Почему?

Что такое Fault и зачем он нужен?

Что таке Fetched Property и особенности работы с ним по сравнению с обычной связью?

Как использовать СoreData совместно с многопоточностью ?

Что такое NSManagedObjectId ? Можем ли мы сохранить его на потом если приложение закроется?

Какие типы хранилищ поддерживает CoreData?

Что такое ленивая загрузка (lazy loading) ? Что ее связывает с CoreData? Опишите ситуация когда она может быть полезной?

12 вопросов об iOS-разработке: интервью с деканом

Для создания приложений важно понимать жизненный цикл мобильной разработки. Разработчики iOS также отвечают за внедрение новых технологий, чтобы увеличить производительность приложений. Разработчик iOS несет ответственность за вклад в разработку, создает и поддерживает приложения. Реализация мобильных продуктов происходит путем сотрудничества с другими инженерами и разработчиками. Важна вовлеченность, желание непрерывно учиться, так как Apple ежегодно обновляет свою ОС.

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

В iOS разработке есть два основных языка: Objective-C и Swift. Первый был создан ещё в 80-х годах и был основным языком для создания iOS-продуктов до 2014 года. В 2014 тогда компания Apple представила новый язык Swift, который считается более эффективным и простым, почти вся разработка iOS приложений ведется сейчас на нем. Это удивительно быстрый рост популярности для языка программирования, Swift имеет все шансы полностью вытеснить разработку на Objective-C в ближайшие годы.

Каким опытом должен обладать iOS-разработчик:

  1. Важно умение разбираться в чужом коде, даже если разработка идет на Swift, а старый код на Objective-C.
  2. Шаблоны проектирования, iOS SDK, архитектура (MVC, MVP, MVVM, VIPER).
  3. Опыт с Core Data.

Собеседования iOS-разработчиков мало чем отличаются от собеседований для других направлений. Само интервью можно разделить на поведенческую и техническую части. И если первая зависит от интервьюера и является скорее индивидуальной, то вторая более-менее стандартная с разделением по сложности, в зависимости от требуемого уровня кандидата для заданной позиции. Градация для оценки обычно используется стандартная — Junior/Middle/Senior, но уровень требуемых навыков и знаний для этих уровней может отличаться в зависимости от компании. Вопросы лучше задавать с учетом опыта кандидата, начиная от простого к сложному. Для более эффективного собеседования необходимо корректировать будущие вопросы и структуру интервью, в зависимости от ответов на вопросы текущего уровня.

Вопросы на интервью можно разделить на основные (по языку программирования и основным фреймворкам), и специфичные для конкретного проекта (например, по используемому стеку технологий или предметной области проекта). Также можно выделить отдельный тип интервью, с вопросами уклоном на computer science. Особенно он эффективен при необходимости собрать команду с нуля при отсутствии первоначальной экспертизы в iOS-разработке. После интервью из результатов поведенческой и технической части формируется окончательное мнение о кандидате — уровень его навыков, мотивации и т.д.

Сергей Марчуков, iOS TeamLead в SuperJob

  • Сколько у вас готовых коммерческих проектов?
  • Писали ли вы их в одиночку или в команде? Если команда – расскажите сколько человек работает над одним продуктом и как распределялись задачи?
  • Какая роль была у вас в этом проекте?
  • Имеете ли вы опыт работы с Objective-C?
  • Какую задачу в своем опыте вы можете назвать наиболее интересной, увлекательной? Почему так? Как удалось её решить?
  • Какой опыт был наиболее полезен для вас в профессиональном плане?
  • Над каким продуктом вам хотелось бы поработать и почему?
  • Есть ли опыт с RxSwift? Как относитесь к реактивному программированию? (если это необходимо для позиции)

Джони Айв рассказал об iPhone X в интервью для журнала Time

Главный дизайнер Apple Джони Айв и инженер Дэн Риччио дали интервью для журнала Time 16 ноября. Они рассказали о том, с какими сложностями им пришлось столкнуться при разработке iPhone X.

Вот, что Айв ответил на вопрос по поводу отказа от кнопки «Домой» в новых смартфонах:

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

Также Айв рассказал про дизайн iPhone X:

«Есть некоторые вещи, которые вы как пользователи четко осознаете. Какие-то моменты вы тоже замечаете, но на подсознательном уровне. Подобный подсознательный опыт дарит дисплей iPhone X, интегрированный в корпус из нержавеющей стали и стекла».

«Этот смартфон станет основой для будущих iPhone на ближайшие 10 лет», – добавил Риччио.

Айв и Ричио отметили, что у Apple есть четкое видение того, каким будет будущее компании:

«iPhone X – в каком-то смысле лишь завершение очередной главы для корпорации», – дополнил Джони.

Также представители компании рассказали о том, как в Apple решают проблемы, с которыми инженерам и дизайнерам приходится сталкиваться:

«Достаточно взглянуть на то, как развивались технологии в прошлом, чтобы вновь обрести веру в то, что решение обязательно найдется. Этого, конечно, недостаточно. Важны определенные инженерные навыки, но вера помогает не терять надежды. И это очень важно».

Вновь речь зашла об отсутствии 3,5-миллиметрового разъема для наушников:

«Я думаю, что это не наш путь – держаться за технологии, которые были эффективны долгие годы. Он безопасный и менее рискованный, но это путь к поражению в долгосрочной перспективе».

Айв прокомментировал и стоимость iPhone X:

«Очевидно, что такое количество технологий, упакованных в столь компактном устройстве, будет стоить недешево»

«Наша цель – создавать совершенные продукты, а не дешевые», – добавил Риччио.

С того момента, как Айв стал руководителем отдела дизайна в 2015 году, он сфокусировался на работе над новой штаб-квартирой компании и магазинами Apple Store.

Сейчас Айв больше мечтает о технологическом будущем и занимается интересными для него проектами. Задачи по управлению командой дизайнеров он доверил вице-президентам Apple: Ричарду Говарту и Алану Дайю.

Ранее ходили слухи о том, что Айв вовсе больше не участвует в разработке iPhone и Mac, но на самом деле он все еще отвечает за то, как выглядят и ощущаются продукты компании.

В интервью для японского журнала Casa Brutus Джони сказал, что на создание iPhone X ушло более двух лет. Из-за внедрения функций вроде Face ID и системы камер TrueDepth новый смартфон стал самым сложным проектом, за который бралась Apple.

16 ноября 2020 года журнал TIME опубликовал список лучших изобретений 2020 года. iPhone X вошел в этот список. Также в него вошел новый автомобиль Tesla, дрон DJI’s Spark и спиннер.

Следите за новостями Apple в нашем Telegram-канале, а также в приложении MacDigger на iOS.

20 самых необычных вопросов на собеседовании в Apple

Издание Bloomberg опубликовало несколько самых сложных вопросов, которые сотрудники Apple задают на собеседовании кандидатам на работу. Среди них оказались как технические вопросы, основанные на прошлом опыте, так и необычные головоломки

Консультанту по развитию: «Сколько весит Эмпайр-стейт-билдинг?»

Ритейлеру: «Каким супергероем вы хотите быть и почему?»

Кандидату в Apple Genius: «Объясните пятилетнему ребенку, что такое оперативная память»

Ведущему системному инженеру: «Как работает крыло самолета?»

Руководителю отдела проверки устройств: «Нарисуйте как iPhone выглядит внутри»

Инженеру аппаратного обеспечения: «Назовите пять способов измерить количество бензина в машине?»

Кандидату в инженеры-программисты: «Если у вас есть два яйца, и вы хотите выяснить, какой самый высокий этаж, с которого вы можете бросить их, не разбивая, как бы вы это сделали? Какое оптимальное решение?»

Apple инвестирует в «зеленую» добычу алюминия для своей продукции

Товароведу: «Как бы вы объяснили стоимость этой ручки?»

Кандидату в инженеры-программисты: «Опишите интересную проблему, с которой вы столкнулись и то, как вы ее решили»

Сотруднику службы поддержки: «Расскажите восьмилетнему ребенку, что такое модем и объясните его функции»

Завхозу: «Сколько детей рождается каждый день?»

Инженеру: «Есть три коробки. В одной — только яблоки, в другой — только апельсины, в третьей — яблоки и апельсины. Коробки подписаны неправильно, и вы не глядя берете один фрукт из одной коробки. Сможете ли вы после этого понять что в какой коробке находится?»

Инженеру: «Вы умны?»

Техническому специалисту: «Опишите ситуацию, когда вы причинили боль другу, и то, как вы с этим справились?»

Инженеру по контролю качества ПО: «Как вы будете тестировать тостер?»

Специалисту по тестированию ПО: «62-63=1. Сделайте это равенство верным, поменяв в нем один элемент»

Руководителю проектов по тестированию оборудования: «Как бы вы планировали поездку для полетов на дельтаплане в Северной Корее для ваших коллег?»

Консультанту: «Вы имеете дело с рассерженным клиентом, который прождал двадцать минут в очереди и начал нервничать. Она говорит, что сейчас пойдет и купит нужный ему компьютер в Best Buy или Microsoft Store. Ваши действия?»

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

Понравилась статья? Поделиться с друзьями:
Все языки программирования для начинающих