Подготовка к собеседованию на iOS Developer
Менторы
Специалисты своей области, которые смогут помочь вам
Middle .Net Developer
Senior Product Manager
Middle Python Developer
Ведущий программист
Backend Software Engineer (PHP)
Senior .NET/C# developer
Middle DevOps Engineer | Tbilisi, Georgia
Middle C# .NET
Senior PHP-разработчик
Middle python developer
Каналы
Полезные Telegram каналы и чаты
Транскрипция видео:
Всем привет привет А Напишите пожалуйста плюсики в комментарии Если всё хорошо со звуком и с видео вы нас прекрасно видите и слышите А мы пока будем начинать но я буду смотреть чтобы всё было О'кей а такс у нас сегодня последний завершающий эфир в рамках собеседования для мобильных разработчиков и Сегодня у нас пройдёт Моко интервью на iOS девелопера а с нами сегодня Екатерина тее которая собственно будет проводить собеседование iOS разработчик в Одноклассниках и также Семён - это ученик который его будет
00:00:09 - 00:01:12
проходить А Катя является также у нас ментором на солвере это место где вы можете искать себе Наставников и зайти для того чтобы прокачивать свою карьеру быстрее и эффективнее И также у нас сегодня есть партнёр трансляции Telegram канал на Собес как на танцполе Вы ссылочку можете найти в описани описани там ребята рассказывают о том как успешно проходить собеседование в it да камера включена а вот и также рассказывают различные лайфхаки для того чтобы вас наняли супер вижу что по звуку всё хорошо
00:00:41 - 00:01:48
а так и также у нас есть для вас промокод Если вы ещё ни разу не занимались ментором и Хотите попробовать то есть скидочка в 20% по промокоду Mobile 20 у меня на этом всё И я желаю участникам удачи накидайте пожалуйста каких-нибудь реакций в чате для того чтобы их поддержать удачи семёну и Кате мы будем начинать Окей спасибо всем привет давайте будем начинать Меня зовут Екатерина ботева Я работаю в компании Одноклассники занимаюсь дискуссия увлечениями и сегодня Привет Семён поговорим с тобой про а разработку при
00:01:14 - 00:02:28
да а попробуем понять Насколько сложно или просто пройти собеседование расскажи о себе вообще как ты долго учишься аюс разработке какие-то проекты делал где-то работал А да Давай так я начал изучать разработку чуть меньше дву лет назад а это случилось вообще стало на мне интересно когда Я переехал в Петербург поступил в Горный университет а встретиться со своим старым товарищем пообщался у меня с в это посветил рассказал что такое вообще есть Я ещё на онлайн компиляторе стал изучать Синкс за полгода скопил на Мак
00:01:52 - 00:03:17
Вот взял мак и стал более углублённо вот погружаться а изучал всё сам по книгам по видеоурокам [музыка] А это длилось наверное в течение года или полутора лет потому что были свои скажем так нюансы связанные с работой или обучением в университете вот пос толь как я всё это закончил университет а с ноября прошлого года я стал а так выложил своё резюме и стал искать работу взялся активно за тестовый задания А И вот уже получается на протяжении Ну 4 месяцев я их регулярно пилю И вот именно за этот за процесс Когда я делал тестовое
00:02:33 - 00:04:04
задание я считаю лично для себя что я очень сильно прокачался практически То есть я хорошо понимаю как и что я делаю Зачем меня та или иная архитектура а пришло глубокое Ну не глубокое но приличное понимание основных конструкций языка вот ну и обрёл уверенность в себе скажем так и понял свою ценность какую-то что я только это значит для себя Давай Прежде чем перейти к технической части мы с тобой минут 5-10 уделим Расскажи чуть подробнее вот ты говоришь сделала тестовое задание что это за были за приложение
00:03:20 - 00:04:31
И что ты там делал то есть это было Като U это анимация хранение данных Угу Так ну давай а самая первые тестова за который брался и самое сложной для меня а потому что мне приходилось Ну переламывать себя и понимать другие архитектуры То есть если этого работал с mvc mvp то тут был mvvm и координатор То есть у меня очень много времени ушло на то чтобы понять Как это работает и ложить по полочкам А да там получается был проект интернет-магазина а Первая страничка - это была горизонтальный СРО с категориями
00:03:55 - 00:05:08
там телефоны ноутбуки книги и прочее это это всё была коллекция я делал на composition Вот то есть второй вторая секция нули секция один а не нулевая это была новостная лента и третья уже просто список телефонов по клике на телефон у нас открывалась страничка с телефоном мы там по шнику его сравнивали ну открывали нужную страничку вот мы могли менять его цвет там тоже была коллекция Что посмотреть его фотографии добавляли в корзину была корзина поклик на кнопку купить у нас всё обновлялось и мы шли дальше то есть
00:04:32 - 00:05:40
на первую страничку перекидывало то есть там была сложная вёрстка и у меня на него много времени ушло То есть это было прям довольно у весиля этого я делал другие приложения на табличках с использованием скелетов лоти анимации сортировок по фамилии имени дате сортировок по департаментам А был проект на вайпере а с использова был у меня проект на стажировка цфт это список заметок там тоже делал бординг всё делал на коллекции от той же компании для которой делал приложение по покупке телефона у них Они давали
00:05:06 - 00:06:28
приложение для букинга отелей то есть там тоже были кастомные элементы первы э ни отеля там тоже коллекция с Control внутри пришлось немножко попариться покка на кнопку перейти там переходили на страничку выбора Номера тоже по дишни отеля всё равнялось И третье это самое сложно было а там надо делать раскрывающиеся ячейки в которых мы заполняем то есть должна была быть валидация что у нас то-то заполнено правильно что номер телефона по форме видн Что по форме и что Поля не пустые если они пустые по клику дальше у нас
00:05:54 - 00:07:08
ничего не происходило то есть ну такие моменты хорошо мы Извини я тебе ещё я да наверное основное всё отлично давай ну мы ещё чуть поподробнее обсудим твои проекты Давай для начала поговорим про базовые вещи в I разработке Давай наверное начнём с любимой темы Как устроен ус память своё разработки потому что это очень важный момент Да у нас память устроена Так что Ну мы работаем с кучей и с подожди с кучей со стеком помимо этого есть текстовая память Ну набор инструкций для компилятора область глобальных данных
00:06:30 - 00:08:00
получается куча стек и у них есть ещ Общее пространство куда они могут расширяться скажем так почта ссылок Да механизм почта ссылок или это механизм который нужен в айосе для того чтобы избегать цикла сильных ссылок избегать утечек памяти работает по принципу того что мы можем создать ссылку и делать е роговой по умолчанию То есть она увеличивает счётчик ссылок на обо можем делать слабой то есть или а при создании сильной ссылки у нас счётчик ссылок хранится в самом объекте мы создаём при создании слабой
00:07:19 - 00:08:57
ссылки у нас создаётся сайт таблица и Если не ошибаюсь этот объект имеет в себе ссылку на сайт таблицу А по дефолту если нам надо избежать ретей цикла мы используем к ссылки потому что они более безопасные А ну в сравнении с а ссылками а если у нас а скажем так больше не нужна или Ну Неправильно сказать зане лилась потому что она не может быть Не а при обращении э коно если её не существует скажем так у нас всё закрашивания к мы получим не Ну ничего страшного не случится у Ну смотри получается у нас
00:08:15 - 00:09:43
довольно рискованно использовать зачем тогда нужен может нафиг тогда просто ви и всё Ну его используют на самом деле я сколько смотрел сколько читал никто не рекомендует его использовать потому что он по скорости выше он не требует времени на создание сайт таблицы Вот но озен полною контролировать наверняка было Где инициализирована где надо мы после этого к не не обращались мы можем его использовать если мы чётко знаем что у нас допустим существует объект Я приведу пример делала приложение ты открываешь
00:09:02 - 00:10:22
приложение у тебя PW то есть экран для подписок и обычно если вот так вот открывается Ты понимаешь что как бы ну пользователь уже никуда с него не удт особенно если ты ему даёшь возможность использовать твоё приложение бесплатно А если ты качаешь данные из сети который P должен отобразить ты можешь использовать АНО Вот потому что ну всё он никуда не денется объект У нас есть но как бы Действительно это довольно узкие кейсы и использовать это сложно Окей хорошо Так ты говорил по-моему про ретей сайклы
00:09:45 - 00:10:44
вообще что это такое и А что мы боимся там М это случается когда у нас получается перекрёстные ссылки с двух объектов один объект ссылается на другой и другой ссылается на первый а тем что при денели зации какого-то из объектов он не уходит из памяти и продолжает жить так ну происходит так называемая течка памяти Угу Вот и как раз чтобы этого избежать и оптимизировать память служит существуют механизмы РС Угу А чем нам вообще опасна течка память-то ну Ну это чревато а полагаю пусть будет тем что у нас
00:10:15 - 00:11:42
увеличивается потребление памяти оперативное устройства м а ну после Дени цивилизации объект продолжает жить существовать Ну памяти у нас много как бы объекты объекты небольшие Ну фиг с ним ну это если объекты небольшие если небольшие тяжёлые там есть какие-то картинки изображения всё это будет много веси на надо это удалить ты правильно говоришь что объект будет жить условно такой очень очевидный кейс если у нас остаётся утечка объект живёт допустим плеер у нас музыка продолжит играть и вот это вот так вот
00:11:06 - 00:12:34
наверное тот момент который я узнала когда начала с медио работать вот ты понимаешь что утечка памяти не просто тебе какой-то место занимает это реально баг который мешает пользователю потому что как как это выключить вообще Вот соответственно Да так что да на заметку Как можно вообще утечки посмотреть Ну то есть понятно что в Допустим мы знаем по каким правилам они образовываются Да вот ты там говорил про ссылки друг на друга допустим Один из примеров Хотя Это не единственный вариант но допустим вот даже такой
00:11:52 - 00:13:05
момент Гру уменя есть проект Я понимаю что там может быть утечки допустим достался в наследство как я могу понять есть или нет Или я не уверена ну существует инструмент это раз но я слышал что он бывает не совсем корректно работает что подобное а также мы можем прописывать принты вни чтоб убедиться наверняка что у нас объект уш вот може Трей случай Нако овид мы можем делать объект А опциональный и при занять его когда надо чтобы он уходил из памятью Ну это несколько нает ручное управление Ну это уже ручное будет да
00:12:29 - 00:14:02
Окей хорошо а вот смотри допустим я такая боюсь что у меня ретей сайкл будут образовываться допустим я все переменные буду Вик делать по умолчанию в чём проблема вот всё точно не будет [музыка] Угу А ну всё подряд делать тоже нехорошо поскольку А ну предположу что будет разрастаться сайт таблица а Тараз Ну наверное меня от меш беспокой чем cle и да и тогда ничто не будет держать ссылку друг на друга если один объект уйдёт то остальной потеряет данные от него которые че нужны были да то есть у нас объект инициализируется
00:13:15 - 00:14:51
сразу де инициализируется Кстати когда работает RC вот этот вот почёт ссылок В каком этапе Самон а поставляет их на стати компиляции А вас считает уже в ран тайме Угу Ну наверное такой тоже популярный вопрос Может ты знаешь есть gage колектор такой есть вариант управления памятью наме как бы используется чем отличие А боюсь что это плохо знаю насколько я это знаю Горбач коллектор Он забирает за собой все неиспользуемые объекты они там ну так называемые Зомби объекты Да вот но он не имеет сать таблиц то есть
00:14:05 - 00:15:36
ну здесь я не уверен Он собирает объекты который не используются и эти объекты ину Зомби объектами Ну у него есть некоторое дерево объектов которым скажем так он смотрит там которые остались одиночные объекты Поэтому в них он вот он будет искать эти объекты которые остались и смотреть ти можно их удалять или нет Там могут быть такие локализованные объекты которые тоже не удалятся то есть типа есть идея что рпач коллектор он более предпочтительно в том плане что там меньше вот шанса образования Таких вот
00:14:53 - 00:15:58
подвиг объектов как у нас склом но при это есть тоже такой вариант что у нас какие-то утечки будут происходить Ну то есть у нас это всё делается сни компиляция в ран тайме и соответственно там у тебя ещё объект он есть он какое-то время живёт он создаст хотя он может не разу не использоваться вот так что вот знаешь ли ты про такую штуку как мемори Граф слышал но не работал либо работал но не могу сейчас привести в голове эту картинку Угу это сказал способ поиска утечек потому что инструменты там у тебя
00:15:25 - 00:16:45
просто будет такое количество как бы там вот этих объектов и так далее и очень сложно слить оно не всегда оперативно отрабатывает emory Граф он строит конкретный Граф объектов которые у тебя сейчас есть и ты прям можно эти циклы увидеть а он прямо изображён вот этими кольцами скажем так ну он не кольцами Ну там там вот эти стрелочки там Граф там элементы и вот между ними связи и ты прям увидишь цикл там как бы это будет более заметно Хотя в больших проектах мои марграф очень большие и соответственно вот понял Так э
00:16:09 - 00:17:21
Давай наверно Сейчас я подумаю Будем ли Давай мы наверно Сейчас скоро пойдём к практике Э давай а а вот давай вот ты говорил про Вик опциона а как это Какие способы разворачивания опциона а так ну мы можем либо всё зафорсили бордом у нас автоматически делается Форс ссылка либо при работе с тестами можем за форсить Если уверен что всё есть а либо у нас есть а а также можем работать сном но самое опционально - это не помню точно название через и или через Guard А если у нас ard то мы проверяем условия
00:16:45 - 00:18:18
если оно не соответствует мы дальше не идём Ну прописано правило самом верху функции А если If то Ну через иле если оно соответствует какое-то условие выполняется если не соответствует просто идём дальше но функция у нас не становится может ещё какие-то вспомнишь варианты так работа с опционами Ну вот допустим у нас есть массив опциональный о нам хочется сделать е ма через Compact Map его пропустить у нас вернётся без без без нело всё А вообще что такое Ош вообще это и нам перечисление у нас может быть либо объект сам либо е может
00:17:38 - 00:19:14
не быть то есть Ну а если не быть то что м ну если не быть то Ну то есть если у нас есть возвращается объект сам с некоторым ассоциированным значением которые мы пропускаем Насколько помню либо возвращается Ну Нил ничего Угу Ну да верно Давай мы пошарить проект я тебе присылала заранее чтобы наше время немножко со оптимизировать Угу сейчас секундочку мы посмотрим небольшую задачку демонстрация так экран видно да Супер Давай подождём пару минут наших э зрителей уточним не знаю напишут нет видно не
00:18:33 - 00:20:03
видно Угу так Ну будем надеяться что видно если что пишите говорите окей хорошо вот Давай мы сейчас сначала остановимся на нашем методе VI did Load А у тебя проект запустился Всё хорошо Да да да Давай остановим его сейчас мы М Подумаем и обсудим А давай тоже по трём консоль выполнения и я тебе задам вот тебя там да там корзиночка есть в правом нижнем углу Вот вот смотри у нас открывается экран а проходит 5 секунд и у нас печатается влог текст текст текст Давай мы сейчас с тобой немножко фантазируем
00:19:23 - 00:21:06
А вот допустим я запускаю приложение я там как у нас вообще приложение оно начинает контролера То есть у нас есть New VI Коле начинается с vie контролера вот можешь перевести на другой файл Да тут просто кнопочка в середине мы на неё жмяка открывается новый экран и то есть вот New viw Controller и соответственно через 5 секунд У нас этот Лок Давай вернёмся New Котлер Извините Тут в основном как бы возможно архитектурно не самый правильный код но мы просто чтобы было просто и понятно И мы это моли
00:20:19 - 00:21:34
посмотреть и обсудить кейсы давай вот если откроется Этот новый кран New View Controller и мы его скип нем через секунды две-три что у нас произойдёт Ну то есть меньше чем через 5 секунд Ну то есть он открылся и мы его быстренько свернули Угу Так а он открылся у нас прошли все методы жизненного цикла Ну да так ме Давай давай с Это с этого момента Извини пере тебя давай вот это с этого момента вот открылся экран что происходит вот Вот Угу именно по циклу м Давай наверно Даже начнём с вю контроллера вот с
00:20:58 - 00:22:30
предыдущего файла вот там вот вот я нажала на кнопку вот у меня Button Ted вот на трид третьей строчке какие методы сработали у в контроллер а мы Нажали на кнопку Так мы обратились к контроллеру То есть у нас то есть во-первых произошла инициализация да А во-вторых мы стали его презентовать Нет мы на три Третий мы вот пока что на ри чет не перешли у нас работала инициализация Ну в этом методе четвёртую строку что у нас происходит какие у нас методы ещё теперь срабатывают А ну у нас по идее должен а
00:21:47 - 00:23:09
сработать метод lad viw Угу Когда у нас происходит погрузка нашего вьюшки Угу Ну мы наверное теперь пойдём в New viw Котлер потому что теперь уже всё там происходит что после luse работает а после у нас идёт viit Lo как раз Lo мы настроили цвет бэкграунда и вызвали на асинхронный Давай раз мыж пришли мы чуть-чуть коснётся этой темы Что такое синхронно асинхронно Угу а синхронно так у механизма gcd и очередей есть методы то есть синхрон запускает задание друг за другом и то есть синхронное задание
00:22:34 - 00:24:17
потоки И ждёт своего полного выполнения пока не выполнится оно не пойдёт следующее а асинхронное же оно ток не блокирует и запускают его в следующий ток и выполняет когда ему Ну удобно когда оно произойдёт А вот кстати у нас э очередь последователь ль вот тоже давай затронем немного она серил очередь а и мы на неё запускаем асинхронно А что значит что у нас сериал значит что она последовательная тоже все экшены идут один за другим Угу Окей А если я в неё положу три подряд асинхронные задачи как они будут
00:23:28 - 00:25:23
выполняться А ну не смотря насколько они тяжёлые скажем так а мы не будем знать когда Какая задача выполнится это будет так называемый R Коди м ну мы наверное не знаю То есть они либо скорее всего если они не тяжёлые пойдут друг за другом но возможно нето будет Путаница в порядке если приты будем вводить там 1 2 [музыка] 3 Окей с этим немножко разобрались Хотя вот ну у нас да может быть разное управление хотя в принципе то есть мы даже скорее если мы синхронно Ну то есть мы так запрашиваем у асинхронного какой-то
00:24:29 - 00:26:16
задачи результат она выполнится не сразу но в принципе порядок плюс-минус он нам должен гарантировать последовательная очередь ну окей хорошо А это мы Ещё обсудим чуть позже так вот мы запустили экран открыли через 3 секунда 3 секунды смахнуть происходить так экран у нас закроется за скорее всего А слушай но метод уже был запущен асинхронно и он всё равно должен отработать Мне кажется давай с первого пункта Он точно за денити Я знаю что видел что возможно есть некоторые отличия при работе с Mod pres
00:25:27 - 00:27:18
presentation стал в отличие от простого Navigation контролера если мы его можем не доокн мы его открыли полностью условие такое А так пока у нас есть э ссылка на а не не это имеется в виду что ну как бы да вот это вот шторка такая то есть Нижний экран чуть-чуть видно то есть Угу но он скорее всего не не денется он будет ждать выполнения это момента да А ну мы уже нет В смысле Извини перебью у нас вообще за денити контроллер я на самом деле сейчас а мне кажется что он должен за денити но не сразу то есть он должен дождаться
00:26:28 - 00:28:18
выполнения этого метода Угу сколько у нас в методе лежит функция на неё есть ссылка Угу и она ждёт свого выполнения Угу Да а почему ждёт выполнения давай так Почему есть ссылка то есть мы же экран закрыли Да мы закрыли Но мы уже запустили задание на поток то есть оно выполнится оно через 5 секунд Ну выполнится ну как бы Давай так на уровне памяти Почему мы не ните всё сразу Угу А ну вы не помёте потому что у нас Аа удерживается ссылка на Ну вот в этом замыкании очереди у нас удерживается ссылка на сам класс и на
00:27:37 - 00:29:30
его метод Да у нас сильная ссылка на New viw Controller да А мы замыкание держим м замыкание вообще да если мы не прописываем кло Нет ну мы не держим это замыкание со стороны в контроллера а замыкание держит в контроле поэтому у нас нит тут вызове Но после того как мы Ну есть у нас селфи всё рано будет сильно держать то есть он мы как бы задерживаем жизнь этого New viw контролера Давай мы с тобой это проверим Давай создадим нит и мы с тобой проверим Я надеюсь на твою скорость что ты успеешь закрыть экран
00:28:38 - 00:30:10
Ну что Ну что-нибудь да там нит можно просто да Угу давай Запускай К сожалению мы не видим твой симулятор но я надеюсь ты быстренько Ага он у тебя заблочил по-моему Да блин бывает Всё хорошо Ну допустим всё открылось но экран откры и закрываем пойдём сюда секун мся Да а вот допустим к тебе пришёл какой-нибудь там твой технический руководитель говорит Слушай не хотим держать Ну что делать Как можно Зарифа тырить этот код так не хотим держать а пам-пам-пам пам-пам-пам ну я не помню работает ли это в
00:29:29 - 00:31:17
замыканиях Ну допустим Так мы не должны её держать давай проверим давай наш любимый силя Работают ли в замыканиях с много потока Да вот получается Он визирует всё Совершенно верно Да как бы это как бы хороший вариант А кстати вот Ну не знаю знаешь ли такую штуку как Caption то что мы скобочках записываем Угу А ну мы захватываем либо слабы у себя Ну мы пишем тот Объект который мы захватываем а ссылочный объект Угу правила А почему использовать Зачем использовать Caption list а допустим вот мы можем сда
00:30:50 - 00:32:28
написать VI S Почему Caption list а потому что мы так Мы захватываем же ссылку на объект на себя мы захватили себя но чтобы избегать мы сделаем а вот мы также можем копировать объекты в листе какие-то если намну не надо чтобы они менялись если мы изменили ссылку нах захватываем Да когда мы его не хотим чтобы он поменялся или там захотим захватить до там ну то есть чтобы он объект этот попал в наш CL ещё до изменения Ну да да О'кей так Ну наверное Давай тут пока пока Давай на паузу а О'кей поговорим чуть больше про
00:31:50 - 00:33:44
UI Вот ты говорил ну вот мы сегодня сечас открыли экран это какой у нас ещ есть вообще механизм довольно популярный для показа как мы ещё можем Показать этот экран или не можем мы можем показать его То есть через н модально либо через при работе со ри борми самый популярный нале и после есть у Насри метод есть для показа следующего экрана а для показа следующего экрана там мы пушим Угу то есть пушим в Стак контроллеров на самого верх А смотри э вот допустим Если я э делаю ну там открыла несколько экранов
00:32:54 - 00:34:31
делаю там пуш пуш пуш Да там открыла экраны потом делаю ди смис у последнего что будет ди смис у последнего а мы сможем за 10 Мить экран который мы открыли через пуш Ну вообще теоретически можем Ну тогда получается Он за 10 месяца но он останется в стеке Давай так я на сделаю такой Я презентом открываю Navigation колер потом в нём делаю пуш пуш пуш потом там допустим на четвёртом экране я его Открыла что-то нажала сделала мис Что произойдёт то есть мы открыли Navigation Controller а потом закрыли все Navigation
00:33:49 - 00:35:10
контроллеры Ну нет у нас один Navigation Controller у нас экраны лежат внутри одного Navigation контроллера он просто у нас типа топовый меняется потому что прибавляется да И вот мы открыли Navigation контроле какой-то первый экран ещё три открыли и вот на там уже в сумме четвёртый мы говорим ми Угу я вернусь на шаг назад или ничего не произойдёт или что-то ещё так ещё раз у нас был какой-то экран без най контролера мы нажали НМ Да Navigation contr и пошли оттуда уже по навигейшн какому-то потоку
00:34:32 - 00:35:44
экранов потом мы задиссили у нас исчезли все най мы снова на экране без най контролера Ну это уже к тебе вопрос Мы Нажали на последний мис Что произошло у нас так после Давай ещё раз был экран какой-то вот стартовый мы открыли презентом Navigation controll какой-то там с каким-то экраном там с таблицей прошлись внутри таблицы там открыли ещё там пушами ещё три экрана у нас получается сейчас что у нас вот верхний экран Navigation Controller с какими-то м ну где мы уже где-то провалились и вот мы делаем мис что
00:35:07 - 00:36:31
происходит так ну чтобы за закрыть открытый Navigation Controller мы бы его поплина кака у него метод вызываем мы просто прям взяли типа Угу Ты же можешь сделать там типа Vim вызвать Я предполагаю что либо на dism нет реагирует если мы его вызываем в навиг либо если мы его кнопку используем с какими-то делегатами нашему первому экрану то возможно у нас ну на котле Он же у нас опциональный идёт возможно он тоже станет не ловом уничтожить у нас закроется вот Navigation Коле со всеми его экранчик и
00:35:55 - 00:37:29
мы будем опять видеть стартовый экран А если допустим мы вызвали Надеюсь что вернёмся к крутому экрану Navigation контроллера А что нам надо было вызвать для этого а для этого надо было бы контроллер на контроллер Окей смотри поговорим чуть больше про UI вообще какие методы Ты знаешь вёрстки на вьюшка да ну самый первый из которой все начинали это через сториборд После этого это конечно же кон фрейма и Ну опять же какие-то дополнения для скита с этим Да они ВС равно с он там использует какие-то Ну он использует некоторый Микс
00:36:51 - 00:38:32
на самом деле алеута и фреймов в зависимости от но Давай остановимся на авто Фрей пото такие более пое вариации на фрейма что-то вестал как-то компоновки мы делаем игру запускаем анимации сверху они у нас идут на фрейма Угу скажи вообще Ну в чём то есть что такое анимация А что такое что такое вёрстка на Что такое вёрстка на вообще работает нав Ну это система координат а которую нам должен рассчитать рассчитать само приложение Ну не приложение компилятор любой Так а ну в смысле я задаю Ну то есть я задаю констрейнт что я задаю Ээ
00:37:42 - 00:39:35
как это задаю систему координат м нет Э какой-то ты задаёшь какое-то расстояние какое-то значение которое должен пересчитать которое должно войти в систему этих уравнений кото будет считать на А фреймы фреймы мы сами задаём какое-то значение То есть у нас допустим VI то Frame это идёт нам надо задать точку на экране C где она будет располагаться её ме обем работу комт читать размеры В чём плюсы и минусы вот каждого из [музыка] подходов на фрейма всё происходит быстрее для компиляции приложения сколько не требуется
00:38:44 - 00:40:36
считать систему уравнений [музыка] а Но для того допустим чтобы отображать нам систему через autolayout нам надо постоянно ставить translate aiz Mask constraint false а также разница будет в отличии при работе с анимацией а допустим при пересчёте констрейнт нам надо будет вызывать метод layout If needed Если не ошибаюсь а при смене Ну размеров фрейма или его положения этого делать не надо а а ну при задаче размеров через фрейм они будут конкретными конечными а при задаче через систему констрейнт ну там в зависимости
00:39:47 - 00:41:30
от того как мы это делаем или отходим точное значение или какой-то мулье используем у нас может всё это подстраиваться под экран более конкретно Угу И через конты мы можем менять у них приоритеты сжатию или сопротивлению вот или сопротивление отжатие приоритетное растяжение помню что такое сопротивление растяжению сжатию А когда мы задаём для юхи м ну есть свойство inis Content size Да как-то так то есть да Это вроде бы минимальное расстояние которое должна занимать Юха на экране то есть в зависи это не то свойство не
00:40:40 - 00:42:20
то Ну смотри вот и cont S у него есть те намекнул в название кон Сай да да размер контента Ну или тот В общем в зависимости от приоритетов сопротивлению сжатию которые мы задаём уже для этого значения у нас допустим есть два разных лейбла один л может растянуться сильнее чем надо или в случае чего он может сжаться если у нас внешняя в Юха по размером получилось меньше чем ожидали Ну смотри давай так немножечко укомплектовать Ты знаешь или не очень что это за свойство скорее не очень ну я им один
00:41:30 - 00:42:58
раз пользовался Но это было так то есть Мы через него должны задавать минимальный размер или содержимого который будет в ВХ это размер который вха считает исходя из её контента условно У тебя вот не знаю там текст вылетел это размер который вю считает исходя из своего контента то есть ЕС какой-то контент и она как-то может исходя из него посчитать свой размер не Ну там какое-то какое-то Значение принимает это нам важно когда мы хотим допустим вот да рассчитаем там хотим считать фреймами и мы хотим понимать а какой вообще ну
00:42:23 - 00:43:40
минимально нужен размер чтобы это всё уместилось текст снижался и так далее соотвественно У нас там кнопки тексты там картинки если есть есть картинка картинки Нет мы почитать можем Кати не там нот скоре всего говориш про сжатие и растяжение Вот смотри у нас есть два термина Давай тоже подскажу гин prity compression resistant да да hen priority Зачем он нам нужен а гн приорити то есть хаген - это что хаг - это обнимаш обнимашки Да обнимашки А ну я прям такая вот Путаница тамм с этим в голове вечно находится потому что
00:43:09 - 00:44:51
сопротивление сжатию и приоритет видимо растяжению Ну давай порасскажу короткий лайфхак как это запомнить чтобы это было это действительно сложно смотри ну хаги как бы не Машки то есть наивысший приоритет к обнимашкам то есть вьюшка старается вот как бы вот чтобы ей размером было достаточно под этот пресловутый н Сай да то есть чем выше приоритет тем больше вьюшка стремится занять Вот то Сколько ей минимально необходимо ниже занимает там Да как ты говоришь два лейбла то есть вишку которая этот приоритет выше она такая
00:44:06 - 00:45:11
так всё тут только моё место а другая такая ну я всё остальное пространство займу если у нас двум лейлам места не хватает нам важен compression Resistance сопротивление сжатию то есть вьюшка который выше кон ре говорит я сопротивляются до конца максимально То есть если там той даже места не останется я растянуть максимально как смогу и всё на остальную пофиг Вот вот то есть как бы это стремит себя как бы обнять это стремит не дать себя жать то есть вот на таком вот противопоставлении можно это запомнить
00:44:40 - 00:45:48
Окей хорошо мы поняли Ну давай всё-таки вернёмся к нашему вопроса Я поняла что фрейма как ты говориш Нужно меньше напрягать наши какие-то калькуляционные там способности компилятора потому что ему не надо считать вот эти вычислять все уравнения но допустим если у меня экран обладает и альбомные портретные ориентации насколько мне удобно в этом случае что-то использовать То есть мне удобнее леау или мне удобнее использовать фреймы Я знаю что использование фреймов при повороте экрана у нас скам так фрейм не будет совпадать с
00:45:14 - 00:46:50
тем который был задан вроде бы Поэтому если нам необходимо поворачивать экран то лучше использовать Ну скорее всего фрейм у тебя останется у тебя там как бы ну грубо говоря orig вот это вот да он ну ну у тебя может быть картинка немного не та тебе прид каждый раз реагировать на это событие в контроллера Ну это да тут лейт удобней принципе Кстати на самом деле Может ты скажешь где фреймы наиболее вообще такой яркий пример использования если знаешь так где фреймы на более ярки пример использования Ну вот не знаю
00:46:04 - 00:47:22
можем знаешь в таблицах часто любят использовать Ну то что любят Ну как бы советуют использовать таблица так сейчас секунду тоже сего не вижу так давайте мы возьмём технические шоколадки небольшие поправить сейчас поим да сейчас Перейди пожалуйста Да можешь перей Да и тогда продолжим не разбегайтесь но буквально П 5 секундочку надо на это пока мы так управляем технику Вы можете писать в чатик Да появился вопросики Да которые мы потом зачитаю по так всё супер вас всех видно можем продолжать отлично честно не вспоминаю
00:46:47 - 00:48:26
Но это л который мы создаём как U T controll или просто добавляем Table на скрин наш Ну смотри UI Table колер это просто UI viw Котлер у которого одна в таблица растянутая вот как бы до предела но там же как бы механизм всё равно это UI Table View Да так Нет я так не помню какой Ну может если ещё какой-то дашь хинт Ну смотри у нас много ячеек Угу И каждый из них верста ется Угу поэтому как бы этот у нас довольно Ну мы можем делать это на автолейаут верстать каждую ячейку Но это будет по производительности
00:48:01 - 00:49:35
сильно нас напрягать Угу но мы можем сделать на фрейме Ну вот я не знаю е знаешь или не знаешь есть просто одна особенность использования Но если ты не делал а нет я знаю что есть отличие если Ну в использовании типа T контроле и просто растяжки Table Ну особенно связано что если будет Window Ну клавиатура влазить снизу будет то это что-то перекроет какой-нибудь ко у нас будет в этой ячейке работат копался в таблицах ну там смотри там просто основная особенность что в таблице если мы делаем автолейаут для
00:48:48 - 00:50:13
ячейки у нас ячейка благодаря автолейаут сама может посчитать свою высоту прах намм нужно её вычислить То есть самим там понять всякие инсет особенно если у нас вообще нет ну мы можем теоретически совместить но в принципе если у нас нет вообще автов мы должны Как бы объяснить сами посчитать наши чеки говорит смотри твоя высота Вот такая там вот там с какой-то по-моему Союз десятой как раз-таки таблиц научилась высоту если у тебя ячейка влат умер сае обсчитать Но это как бы есть такой момент Давай мы сейчас немножечко с
00:49:31 - 00:50:39
тобой поговорим про многопоточность и завершим А вот смотри у тебя Ты мы обсудили последовательно параллельное Давай поговорим про проблемы Угу а основные проблемы которые есть это Deadlock если мы вызываем вроде бы синхронная очередь на асинхронный Да а что ещё раз как делок Ну да А ты когда Как как он появился у тебя в примере Я просто вызываем Я сказал что мы когда вызываем синхронно асинхронной А ну сейчас я подумал что если мы вызовем синхронно асинхронно у нас просто дальше синхронно ничего не пойдёт если мы
00:50:05 - 00:51:37
вызовем на синхронной асинхронную то у нас вылетит приложение с крашем не знаю Ну тут Тут ещё как бы здесь надо сре в код смотреть Да на словах тяжелее само себе не Ну давай бы просто по принципу в чём дело-то почему он происходит он же там не то что синхронно не асинхронно у нас как бы по какой-то причине он появляется Ну когда один поток блокируется другим и всё встаёт и дальше не идёт ну одна задача да как бы задача ждёт выполнение другое как бы другая ждёт когда выполнится сама не может выполниться Да есть ещё Лог Ну
00:50:51 - 00:52:10
если в случае дет лока задачи просто ждут ничего не делают то в случае Лайф лока задачи ждут и пытаются всё равно получить доступ к этому потоку м у нас э Deadlock блокирует прямо поток у нас как бы этот Фриз есть да там вот например на ЮА который мы видим лук не блокирует но задачи не идут Окей что ещё есть есть ещё проблема й и проблема читателя писателя когда два объекта птся обращаться Нет когда разные задачки пытаются обращаться к этому объекту и и получить его и записать его [музыка] вот когда мы не знаем
00:51:34 - 00:53:21
точно точный результат выполнения В каком порядке или какие цифры Ну в общем О'кей м ещё по крайней мере есть две проблемы не знаю может быть ты их просто не вспомнил может быть что-то с приоритетами знаешь м ну мы можем задавать Quality of сес нашим очередям да да то есть мы можем сдавать Quality serv То есть самый высокий Quality User interactive если мы прямо взаимодействуем то есть с нашим интерфейсом а User есть есть дефолтный utility и background то есть Back - это самая низко приоритетная
00:52:27 - 00:53:53
задача нам неважно когда она выполнится сути дефолт стандартное по умолчание идёт а зачем нам вот ко всё ну как бы у нас дофига Ну как бы берём дефолт и всё фига В чём проблема-то Ну допустим возможно будет Проблема в том если мы поставим какой-то тяжёлый задачу какие-то тяжёлое вычисление на US interactive то оно под забьёт поток то есть мы можем тяло задачи отправить бэкграунд который нам Ну неважно не нужна угу и может быть знаешь что-то с голоданием голодание слуша голодание знакомо такое штучка Ну это ну это это тоже довольно
00:53:16 - 00:54:41
редко нам встречается Когда нам просто как бы на текущий момент не хватает ресурсов для выполнения задачи Ну как бы О'кей ладно в принципе самый важной назвал Давай Ой блин надо было Э А как вообще можно Давай сейчас Мы ещё одну задачку сделаем и Давай мы Ну ты пока Начни шарить А ну пока сейчас поговорим 2 минутки как будто вводить Как какие-то можно как это можно решить вот эти проблемы Ну давай хотя бы там наши главные так Ну допустим я знаю что для решения Race conditions мы можем задавать блоки то есть устанавливать
00:54:00 - 00:55:23
атрибуты барьер какой-то Угу сейчас секунду я заша Угу М Угу угу так так Ну надеюсь нас вывели Да ну то есть да можно задавать какой-то барьер блок называется ещ вро по-другому то есть Пока У нас выполняется один поток другой поток не будет начинается выполнение если надо дождаться какого-то последовательного выполнения разных задачек мы можем их се засунуть в группу то есть также как с барьером атрибуты задам какую-то ждём выполнения каждого из них Но когда они выполняются Мы выполняем и в блоке
00:54:41 - 00:56:04
уже выполняем наш финальную задачку достим что Можем ли мы можем ли мы с помощью gcd как-то останавливать выполнение задач [музыка] Да так сейчас секунду я знаю что есть способ если мы задам через там есть способ мы можем блокировать поток через семафора это выглядит как аварийный тормоз несколько Ну Задачка ждёт как бы да можем либо ставить намы можем [музыка] у груп группа тоже может ждать выполнения задач Ну на поставить в режим ожидания усыпить нашу очередь Наф поток это заблочить да да да ну не на
00:55:30 - 00:57:36
самом деле мы можем если только э Задачка не пошла в работу но вот то что ты говоришь слип там вей Ну это ну просто блокирование тобо Ну это блокирование И это не очень класно во-первых во-вторых Ну как бы заблокировали мы разблокируем или как бы если заблокирую и просто не даём Ну как бы не очень хороший вариант задач Ну это просто был вопрос Можем ли мы GD не знаю может быть ты знаешь что каким инструментам для этим я про него читал что там можем пря отнять все задачки та тут Угу Ну может про Operation Q что-то знаешь
00:56:43 - 00:58:19
[музыка] А ну в общем там там у нас есть Operation Q операции Вот мы с ними можем делать Что что угодно это более высоко уровня у нас Да к сожалению сегодня не так много времени Поэтому если вы хотите про это больше понятия о Q Operation и вы там вам расскажет Как можно там остановить возобновить и отменить задачку там пря большой Фло для этого есть Давай мы сейчас вот пройдём книжек нашей вот у нас там есть функция загрузки картинок допустим вот ты открываешь Код Да Простите ещё раз то что мы прямо в контроллере это
00:57:31 - 00:58:55
делаем Ну смотри допустим вот мы решили загрузить сторис Чтобы потом их показать сразу чтобы не каж ри загрузить А вот сразу загрузить Как ты думаешь какие есть проблемы у этого кода Ну не считая того что он не работает у нас сетью только имитирует его работу Почему Ну мы не обрабатываем никакую ни ошибку ни респонс не Ну слушай то что мы не обрабатываем респонс это не значит что он нет мы ошибку Да не обрабатываем но ты думаешь он в сеть не пойдёт м нет пойдёт тоже ити раз у нас есть какой-то л Ну тут сторис пустые но предположим
00:58:12 - 00:59:48
что там я просто чтобы ошибки не ругались допустим нам какой-то массив а урловска задачку а проверяем если у нас дата а Ели у нас идж из этого Из этой [музыка] даты Ну опять же по-хорошему нам надо Нет Ну во-первых даже не знаю Нам нужен здесь декодер что декодировать зачем принял дату как бы это один из конструкторов UI Image мы получили UI Image как бы вроде счастливы Так ну О'кей допустим А если не сложно можно на пятнадцатой строчке стереть optional в е Image Э да я планировала Чтобы не optional
00:59:08 - 01:00:56
были картинки Но что ЕС типа ЕС картинка скачалась мы её применим если не скачалась фиг с ней не очень-то и надо так то есть если она скачалась мы должны добавлять массив наши картина да да [музыка] Угу Так а задача у меня найти здесь проблему какую-то Ну вот ты ревью код Ну как бы либо ты пропускаешь либо такой нет вотт такие-то пробле Ну по-хорошему надо всё раскидывать по отдельным классам мы сейчас архитектуру Да я заранее сказала нет Вот вот конкретно Вот вот э функция берём её изолированную
01:00:17 - 01:01:46
в вакууме ели там какие-то проблемы Так ну у меня почему-то вот сидит мыс Не факт что Вер надо запускать главная очереди поскольку это будет Ну поскольку объект Image не такой лёгкий хоть мы я обновляем UI Я просто помню что у меня ругался [музыка] А давай чуть конкретнее ещё раз Почему мы должны в главную очередь это ты просто назвал два признака потому что не очень лёгкие потому что UI оба один То есть Какой признак тебя заставляет использовать тут главную очередь м Ну опять же возможно вот у неня смысл
01:01:09 - 01:02:57
потому что мы не вставляем эту картинку ни в какой UI [музыка] О'кей Ну либо же Ну хотя картинка мы то есть если бы мы не знали что картинку получили Насколько быстро она пришла Мы запускали это просто в асинхронный поток потому что нам неизвестно когда точно скачается та Задачка но здесь мы уже должны получать картинку а дата таск синхронно или асинхронно выполняет задачу скачивания картинки асинхронно Угу рата сети должна быть [музыка] [музыка] Угу то есть всё хорошо Ну или что-то тебе подсказывает
01:02:07 - 01:03:38
что раз это Задачка задана всё хорошо Не может быть да это раз Ну меня просто смущает вид этой задачки когда привыкаешь это видеть С обработкой всех входящих параметров с Джейсон декодером таком момент попадаешь ступор Хорошо давай так ошибка ошибка номер один мы не обрабатываем ошибки О'кей принимается Да О'кей а Давай посмотрим с точки зрения проблем многопоточности которую ты Обозначил Может ли какая-то тут возникнуть Ну опять же да я Обозначил что мне кажется что надо засунуть это на главный синхронный
01:03:17 - 01:04:41
поток Почему А поскольку это у нас UI элемент он ну нелёгкий то есть он ресурсо пожирающий для системы если мы будем обновлять этот массив а синхронно то у нас всё встанет Ну ну допустим смотри а да Нам нужно это запихнуть в главный поток большой Ну тут на наоборот вообще как бы ну тяжёлое зачем это в главное Но это её имидж он требует он говорит нет Давай меня в главной Да App требует работа с Поэтому да Давай Мы это фигачит была не картинка просто стрин губ какой-то получали м Ну просто Ринго можно было бы без
01:04:19 - 01:06:05
перехода на асинхронный обойтись думаю но возможно по приоритетом поместить это в бэкграунд поток Угу А могли ли у нас а вот допустим приходит строка тебе говорят слушай тут что-то краш на этой стройке на этой строчке Угу то надо вть краш на строчка то есть некорректная пришла или Ну вот ээ у тебя ну короче какой-то ну ты пока что не видишь ещё трейс то просто тебе говорят что вот тут что-то кши вот допустим вот Ну вот мы сейчас засунули в н поток нуно вот до этого у нас не было Прошу прощения мо
01:05:34 - 01:07:09
потока и у нас какой-то краш возникает так безопасна или у нас запись в imes ST imes безопасно даже сейчас да синхронный Нет ну давай до этого была безопасна а до этого была небезопасно Угу а сейчас ну сейчас мы проверили что дата есть картинка есть то в принципе если бы у нас и даты и картинки не было мы бы тоже не писали Мы у нас у нас для этого есть горд Ну да ты говорил про readers writers что это такое проблема читателя писателя то есть отсюда мы записывали нам данный этот массив То есть если бы мы откуда-то их
01:06:27 - 01:08:06
же считывать В чём она заключается эта проблема читатели писатели А когда одновременно обращаются к этому объекту пытаются его использовать и переписывать Ну както объяснить Смотри может бы ли у нас одновременно там несколько источников читать объект Мот писать в объект тоже могут нет смотри если мы будем писать У нас могут быть конфликтные ситуации потому что например два объекта пытаются одновременно писать в одну ячейку или писать там туда куда мы как бы там как-то не валидно писать поэтому мы должны
01:07:30 - 01:09:03
блокировать объект на период чтения нам Это обеспечит Почему Потому что это последовательная очередь как бы да у нас асинхронная задача но как бы в один момент времени точно Только один у нас источник чтения мы в этом плане себя обезопасить угу вот М А если вот да вот если бы неме какие у нас ещё были бы варианты обезопасить работу со стори imes если бы не йн мы могли бы либо это выкидывать через Escape замыкание картинки либо же можно было бы какой-нибудь йм засунуть и дождаться выполнения Да это в один из
01:08:16 - 01:09:59
вариантов Ну в принципе ещё Давай подскажу У нас есть ещё есть Локи Ну лучше не на луше использ м предлагает Что лучше использовать его потому что дважды вызваны Лок вызовет если у лока два раза подряд вызвать на одном потоке Лок мы залом поток поэтому мы понятно мы там делаем локом но как бы раз Apple нам предлагает Что лучше так мурим Поэтому да Давай Мы на этом нашу техническую часть завершим А давай не знаю наверное да можешь не шарить Давай Я наверно сразу небольшой фидбек дам в целом смотри у тебя есть
01:09:43 - 01:11:21
понимание В общих сферах То есть ты там можеш сказать про память и про U и про ты более плаваешь А многопоток - это очень важная тема То есть если UI ещё плюс-минус прокатит то многопоток там надо понимать как работать с Вот вот этими вот потока безопасностью Да там синхронизации Как мы можем блокировать не блокировать ресурсы и если у нас Ну опять же вот включим на по точки тоже мы сейчас не дошли но в принципе мы на предыдущей там задачи разобрали То есть если у нас нет у на клов соответственно вот такие вот
01:10:41 - 01:12:04
моменты это важно понять плюс наверное писать чуть больше уверенности в ответах То есть как бы да ты можешь размышлять но вряд ли будет интервьюер допытываться типа А что ты имел в виду уточни Ну просто какой-то момент может сказать наверное не знает поэтому надо просто как бы примерно понимать в каждой теме Вот это на основные моменты Поэтому пока что я бы сказала наверное так довольно средненько для уровня Джуна и может быть у тебя какие-то есть моменты впечатлений мы сейчас перейдём к резюме но может быть какие-то что-то
01:11:28 - 01:12:51
есть ещ уточнить Я сейчас понял что на многопоток поплыл А я поплыл при обсуждение надо углубиться м ну а в общем-то всё довольно приятно для меня прошло меня страшно чем хорошо Так сейчас я сейчас будем шарить резюме Вот и соответственно Почему хотелось бы резюме мне бы хотелось да ты мне разрешил показать миру поэтому я воспользуюсь такой воз с можете Почему мне твоё резюме очень понравилось сейчас будут ребятам показывать но мне ээ очень захотелось показать твоё резюме потому что оно действительно довольно хорошее и очень
01:12:08 - 01:13:49
лаконичное во-первых я по этому резюме сразу понимаю с какими-то технологиями вообще работаешь что ты знаешь это приятно э и я вижу какую-то информацию которая меня цепляет наверное что посоветую первое у меня что-то а се стали кликать ссылки что-то не всегда кликают но хорошо вот у тебя есть портфолио плюс github Ну я бы наверно отсюда убрала просто потому что как бы есть всё в портфолио Угу а вот наверное очень много про стек это с одной стороны приятно с другой стороны у тебя о тебе и о твоих проектах как-то
01:13:05 - 01:14:37
очень мало написано и вот да ты написал за полтора года обучения и я такая А а что ты делал то есть когда я смотрю как Технический специалист Я хочу понимать что ты делал то есть какие приложения а какие ну как вот технологически в том плане что вот ты говорил Я работал с курда У меня например сразу вопрос А это просто было локальное хранение или у тебя был какой-то сервер рда и ты умел синхронизировать данные Да там обновлять с сервером вот там анимация там что за анимация Что за ло Насколько сложно
01:13:50 - 01:14:58
может какие-то я не знаю вот сейчас там не видела но может быть в гитхабе какие-нибудь там превью в репозитории показать какие-нибудь анимашки Окей ну для резюме это не обязательно но тут просто понимание то есть [музыка] Вот то есть да Вот там то есть ты поучаствовал в приложении для приюта но при этом у тебя есть там ещё пицца я видела Да там бунг то есть вот Ну можно чуть подробнее рассказать тут про проект типа что что участвовал вот какие-то может быть свои достижение да Угу Вот ну просто скажем так я бы
01:14:24 - 01:15:46
наверное вот хотела бы чтобы какой-то твой профессиональные было размером со стек а стек вот было с этого размера Угу А вот то есть лучше убрать стек выписать какие-то проекты Ну конкретно проект и что я там как делал что использовал скорее я бы Наверно я не знаю я бы вот описания они мне не очень помогают Наверно это просто занимает лишнее место опять же у тебя есть Ну я знаю что такое мы сечас рассматриваем резюме как будто е смотрит Технический специалист поэтому я знаю что такое знаю что такое знаю что такое поэтому
01:15:06 - 01:16:24
принципе понятность э как-то Вот то есть наставил кодом на констрейнт Да там ты мог написать я делал проект там не знаю рецептами пиццы где я там Я использовал а Я использовал автолейаут и там допустим там 50 экранов у меня были сложные анимации там я там добавила подписки Ну то есть вот есть У тебя кстати приложени в сторе нету нету это тоже важный кэш момент Хотелось бы вот место гитхаба возможно ссылку на приложение в стори и выложить в стор Ну потому что это тоже некоторый опыт что ты э выложишь приложение в ST что ты хотя
01:15:48 - 01:17:28
бы это прошёл А ещё конечно Ну поскольку есть Ну много людей пишет свои приложение Да конечно можно выделиться какими-то то есть не только приложениями по то есть чтоб у тебя вёрстка там работа сеть так далее можно сделать там работа с мап китом нотификации то есть пуши гинка и так далее То есть какие Вот вот вещи можно Ну то есть это во-первых тебе будет интересно и плюс тоже мне как ревью интересно сколько ты хорошо Можешь подключить библиотеке ты можешь сделать один проект с а с использованием там с PM другой С
01:16:41 - 01:18:17
какого С какого пос всё всё всё спутала вот вот какие-то такие Угу сть Ну ну мне очень нравится визуально То есть я Мне нравится когда красивые резюме И когда я понимаю куда мне смотреть а вот э прикольно что ты пишешь Что ты какие-то курсы это в принципе на бывает вопрос популярные то есть какие ты э используешь материалы для того чтобы расти развивать себя то есть там какие-то туториалы какие-то курсы какие-то видео это тоже очень полезно может быть у тебя какие-то есть ещё есть вопросы по резюме по
01:17:28 - 01:19:01
собеседования А да на самом деле по резюме полезно будет Я тоже думал переписать потому что мне допустим Нуне особо нравится часть описания Има что-то делать QR код не уверен что надо во-первых с компа вряд ли кто-то его будет на телефоне смотреть возможно сделать не знаю какую-нибудь Q код там Визитку токод и там ссылка на резюме там приходиш Вот мо рез держите а а в самом резюме не знаю просто у тебя видишь много места можно попробовать меньше Shift Можно попробовать там а сайты с шаблонами резюме они обычно очень хорошо заточены
01:18:18 - 01:19:49
под Там просто CV телей вбиваешь в Гугле и вперёд и они хорошо заточены под это и можно довольно хорошо у компоновать информацию как-то так угу ну про понял спасибо угу ну как-то вот Может быть у нас есть вопросы ещё от ребят в нашем чате Угу я пока вопросов из чатик не вижу но пока есть ещё времечко их докинути А у нас получается сегодня было Моко вое собеседование то есть нет какой-то реальной вакансии реальной компании по которой можно было бы с Я просто сказала что ты прерывается видимо только у меня так Я надеюсь что
01:19:07 - 01:20:42
всё всё хорошо всё хорошо а так как у нас сегодня нет какой-то реальной компании по которой можно было бы задать вопросы на собеседование Можешь ли ты подсказать ребятам кто вот только сейчас начинает проходить ссы что стоит спросить у потенциального работодателя Угу во-первых Вы должны определиться Какая у вас цель на этом рынке То есть вы хотите в стартап вот вам вы хотите просто или вы хотите в Корпорацию вообще очень классный способ Если особенно вы знаете компанию в которую вы идёте что это за продукт или там просто знаете
01:19:54 - 01:21:11
какие технологии эта компания использует то сидеть смотреть допустим вы хотите в компанию Одноклассники У нас есть вакансии там написано Какие технологии мы используем в наших продуктах вы смотрите такие А вот вот это это это это я не очень знаю это я повторю или вот это я знаю но я лучше углуб То есть вы будете работать на это второй момент что вы когда Приходите вы должны формировать что для вас важно месте работы Ну скорее всего если у вас не очень много лет опыта то для вас именно возможность
01:20:33 - 01:21:41
обучиться работать с хорошими профессионалами компетентными какие-то челлендже вые задачи это будет наивысшим приоритетом поэтому вы как бы ну вопрос а Ели у вас интересные задачи он звучит никак потому что интересные задачи для каждого свои Допустим можно спросить а Какие задачи вы делаете там на ежедневной основе какие у вас там задачи считаются допустим сложными вы там можете понять будете вы этим заниматься или не будете вот также обязательно спросить а что от вас ожидает работодатель то есть какие у
01:21:06 - 01:22:19
него на вас есть виды планы там допустим вот на Ближайшие полгода год каких он вас ждт результатов то есть там не знаю может быть он ждт что вы сейчас прид всех вытащить А вы понимаете что ну ну как бы нет это не то что вы сможете сделать да То есть вы не сможете там осилить то что на вас или там ну какие-то то есть вы идёте и вы понимаете что ваша цель ваши возможности Они совпадают с ожиданиями Ну и там тоже такой Я бы сказала попсовый Но вопрос который всегда задаю он может многое рассказать спросить какого кандидата вы
01:21:43 - 01:23:01
хотите Вить как он выглядит ваш идеальный кандидат и вы поймёте насколько у вас может быть ч то есть там допустим вы с одной стороны хотите более какого-то структурированного подхода а компания допустим у них более стартап инициативный подход и вы понимаете что Ну вам возможно будет некомфортно или наоборот вы такие О классно Вот это прям то что я хочу вот это я готов попробовать как-то так мне ещ кстати кажется что это такой хороший зелёный флаг когда самой вакансии считывается какого примерно
01:22:22 - 01:23:27
человека хочет видеть компания Это хорошо бы но это обычно редко потому что всё-таки мы когда Составляем вакансии Ну кто это составляет Это составляет специалисты по кадрам это составляют руководители они обычно стараются описать именно конкретно технологии задачи которые им важны про личные качество чуть меньше упоминаю Угу но опять же бывает компания что она выставляет одну вакансию а при этом вакансии у неё может быть вы понимаете там у каждого руководителя будет свой подход свой отношения и к одному подходите к другому не
01:22:54 - 01:24:07
подходите и наоборот вам подходит или не подходит кто-то пока в чатике новых вопросов не вижу если что можете их в Telegram канал закидывать я передам Кате вижу только благодарности что было сегодня полезно можете если что поддержать ребят поставить лайк вот мы тогда потихоньку будем завершать я чу сказать оно СБО сегодняшнее интервью Мы правда надеемся что было интересно и полезно для ребят кто нас смотрел и кто ещё посмотрит в записи Вот И тогда вам желаем классного вечера и будем потихоньку заканчивать Да видео будет
01:23:30 - 01:24:39
наверняка на ютубер будет комментировать там мы зайдём посмотрим ответим Так что тоже не стесняйтесь всё всем
01:24:05 - 01:24:22