Собеседование C++

Подготовка к собеседованию на C/C++ Developer

Транскрипция видео:

  • Итак а Всем привет Вы на канале ambushdragon сегодня с нами на связи Станислав и мы будем проходить тренировочные собеседование на позицию си плюс плюс разработчика Станислав поздоровайся Всем привет Вот ну что ж с первого вопроса все как обычно Расскажи пожалуйста о себе на какими проектами работал ничего прямо особо секретного не надо выдавать и какие технологии с чем сталкивался В общем про свой опыт Ну Начнем с того что у меня нет специального образования то есть которого я не получал как-то так сам с

    00:00:00 - 00:01:15

  • детства занимался начинал свое время потом перешел сейчас пишем из проектов которые были сделаны это сеть платежных терминалов в своё время была модная популярная тема была реализована там платёжный сервис и всё вот это вот Крипто защиты вся эта фигня в настоящее время работаю ни и разрабатываем интерфейс для аппаратуры кнопочки нажимаете мы это все взаимодействие по железам в двух словах так особых технологий каких-то немцев хорошо оно для интерфейсом работать то есть чем работал самописных полностью интерфейс пишем

    00:00:38 - 00:02:06

  • сами кнопочки описывают там ничего такого сложного нет там задача сонных Нет ну а из общеизвестного кают например Ты работал да Ты работал то сделал там как раз был курс платформенный конфигуратор устройства девайса нужно было скинелем не работал Нет но это же какие-то более просто более модные вот а хорошо а с пазами данных работал не работал с базами данных работал то есть особенно когда нужно было Ну использовать простую майскую То есть то что было бесплатно а сейчас в стойках в аппаратуре мы

    00:01:30 - 00:02:48

  • используем sqlite Да я слышал сам не работал слышал про skylight Окей смотри получается вот скажи как вообще так получилось что именно си плюс плюс вот когда сам занимался как к этому пришел с чего вообще начинал заниматься сразу все плюс или как Ну да получается тогда я говорю начинал с Паскаля делся Билдер стал более как-то модно популярно речь Проси плюс Билдер который формочки Ну а потом пришли сказали Ребят давайте по максимуму [музыка] получается операционная система с которыми работает в основном

    00:02:08 - 00:03:42

  • хорошо В общем такой вот как раз вопрос вот Смотри вот если речь про Linux Ну или например про Windows Что ты знаешь про ограничение на размер стыка вызовов размер стека вызовов честно даже не сталкивались с такой проблемой то есть чтобы переполнение ну даже не скажу то есть наверное какой-то ограниченное то есть и под Windows будет меньше про разницу между ними не знаешь Ну в общем да Если что это параметр конфигурируемый но в целом по умолчанию Windows это 1 мегабайт Linux это 10 мегабайт Вот но смотри Ну вот знаем Как

    00:03:09 - 00:04:43

  • работаем со стеком все такое локальная переменной Вот смотри как Ты вот думаешь почему вообще вообще этот стек ограничен его размер Почему просто его не сделать не знаю гигабайт условно и все все условно не делать теоретически быстрее будет теоретически Да но у нас же адресация все равно конечен и нам после стыков еще нужно место просунуть Так ну или например еще можно к тому что на компьютере не только наша программа это само собой То есть просто что когда много все будут занимать туда это понятно

    00:03:57 - 00:05:18

  • другой стороны сейчас что творится все используют эти объемы стеков огромные и всем все равно хорошо вот смотри как вообще как бы ты описал почему Ну у нас так куча до сделаем такое грубое разделение Почему ты считаешь вообще почему со стеком как бы работать быстрее потому что обращение сразу по адресу идет операции посмотреть на самом деле то получается Там две операции будет здесь одна операция будет про заменование Хорошо смотри Ну вот предположим если бы операции было например одна предположим

    00:04:40 - 00:06:06

  • стеком обратились за одну операцию и куча нет дополнительной операции все именно скорость обращения тоже одна Какой еще может быть подвох с работы с кучей работы со стеком Ну если мы про размеры ничего не говорим не про размеры все про размер Мы забыли про дополнительные операции забыли на бумаге операция одинаковая по времени Ну Куча у нас может кончится банально это если мы выделяем выделяем выделяем А я имею возможность у каждого потока свой стек Да вот синхронизации тоже нет мы работаем в одном потоке

    00:05:33 - 00:06:54

  • сейчас попробую направить вот мы хотим обратиться какой-то памяти Да куда В первую очередь мы посмотрим если мы хотим обратиться к какой-то памяти какому-то адресу начало программы сначала программы будет ближе ну или в общем я в сторону кэширования подталкиваю а что будет закоширован Ну да что с кучей как минимум мы будем выше вероятность кэш Миса и соответственно подтягивание новых новых данных как бы в кэш вот или поспоришь тут такая прям тонкая все одинаковые Ну да наверное Может запутался тем что время одинаковые

    00:06:57 - 00:08:33

  • скорее имел ввиду что нету дополнительной операции количество операций условно одинаковое Вот ладно хорошо вот смотри такое такой вопрос работаешь Ты исключениями предположу что возможно что нет работает хорошо вот что ты знаешь про Exception исключение должно быть безопасно они должны в идеале как в Классике они должны менять состояние объекта и он должен оставаться валиным после исключения хорошо А какие ты знаешь например уровни Exception Вот это Exception гарантии блин в терминологии какой-то Что значит

    00:07:48 - 00:09:19

  • гарантия Ну то есть например вот вы Обращаемся к стандарту идем Например в какой директор у него смотрим там читаем документацию пушбек какой-нибудь функцию вот и она как бы нам предоставляет какие-то гарантии исключения Что произойдёт с вектором если мы вызовем функцию Push Back и например эта функция бросит исключение э и вот как бы вот это так называемая я сам Возможно немного путаюсь в определении их но в общем гарантирование как бы поведение при исключении ты вот что-то про это знаешь куда то есть мы должны гарантировать то

    00:08:33 - 00:09:43

  • что как минимум объект Вектор останется валиным Это самая минимальная гарантия должна которая быть в экшенах если оно даёт исключение то он должен быть остаться валидным соответственно его размеры не должен измениться и если элемент добавляли то мы его должны удалить и почистить за ним все эти остатки Ну вот именно если брать терминологию со стандарта то Ты тут Наверное не скажешь да конкретно какие есть разные уровни этих терминологии практически могу а Ну в целом Да чувствуется что Осознание есть

    00:09:09 - 00:10:20

  • всё как бы я сейчас вел к просто сам один раз столкнулся ничего не ответил и соответственно пришлось изучать к уровням это ну срок ой точнее но except то есть мы не бросаем исключение в принципе да соответственно Strong Exception гарантии это как ты почти как ты описал про Вектор То есть это означает что все наши действия должны быть откачены да то есть ревернуты потом basics Exception гарантии это то что программа остаётся в валидном состоянии у нас как минимум не создается утечки ресурсов и вообще отсутствие гарантии то

    00:09:43 - 00:10:57

  • есть всё что угодно может произойти после того как брошено исключение какие есть моменты Вот смотри что можешь рассказать про тоже исключение в конструкторе Ну исключением конструкторе это классический вопрос который на самом деле там очень сложная Exception соответственно в какой момент мы его бросили и что мы делаем формально потом не будет вызвать инструктор потому что объект вроде бы как не созданный конструктор не было поэтому эти моменты Они будут как реализовывать будешь уже в целом Да вот и как-то деструктор я

    00:10:22 - 00:11:42

  • последнее что-то звук запал Я до деструктор слова пропустил несколько слов будет инструктор потому что и память хорошо но вот такой вот момент Ну например деструкторы у нас по умолчанию не могут бросать исключения Да вот и почему Например такой стилистической точки зрения Почему исключение в конструкторе все же нужны по идее возможности бросать можно в сторону но если мы не выделили Память то почему вы не бросите там исключения Ну то есть формально мы можем это сделать И тем более если мы добавляем какой-то объект

    00:11:04 - 00:12:24

  • там память не выделилась или еще чего-то поэтому исключением в конструкторе хотелось бы но смотри например ситуация с невыделенной памятью не произошла память выделилась но вот в рамках в теле Вот уже конструктора что-то пошло не так что снаружи Вот именно синтаксические с точки зрения c++ мы Почему нам это может быть нужно потому что после вызова конструктора объекта он считается что мы с ним делаем снаружи непонятно или мы добавляем стек в какой-то или еще там какой не в тот же Вектор добавляем

    00:11:50 - 00:13:04

  • это может привести к неадекватном поведении поэтому хотелось бы именно обработать эти ситуации Ну то есть в принципе можно свести к тому что исключение это как бы вообще единственный по сути вариант понять что в конструкторе что-то пошло не так ну то есть если добавлять какие-то флаги такие вот вещи хорошо все хорошо Так теперь смотри Давайте пожалуйста экран немного по программированию Да все все Мне все хорошо видно так Ну тут сейчас больше будет не с точки зрения решения задачи точки зрения проектирования короче вот вот смотри

    00:12:28 - 00:13:56

  • предположим я такой значит как заказчик пришел такой и говорю В общем я хочу чтобы у меня был какой-то класс Да он умеет присоединяться к какому-то файлу отсоединяется от какого-то файла и имеет возможность писать файл и читать Ну так высокоуровневая абстрактно уже Прямо сильные глубины Вот и потенциально Возможно мы как-то этот класс будем расширять что-то с ним еще делать Вот как бы потом я еще добавлю Да ну вот начнем с первой скажем такой итерации как мы можем начать проектировать данный класс

    00:13:26 - 00:14:58

  • так еще раз мы можем присоединиться к файлу то есть Connect соответственно read Pride Ну диска тут сложно сказать надо немножко больше контекста опять же если нам нужно очень быстро и просто мы это все сделаем в одном файле если мы потом будем его со временем там Непонятно когда расширяет в идеале бы сделать какую-то абстракцию мы будем его со временем и непонятно когда расширять какой-то интерфейс интерфейс для этого класса который будет эти функции вынесена реализуем их отдельно на следующий классе допустим Хорошо

    00:14:12 - 00:15:35

  • давай к этому приступим но только параметров Connect с путем хотя бы какими цена Подожди нам нужно нужно нужно же имя файл какой-нибудь Да там типа зачем это конкретно Мы работаем с одним файлом к нему присоединились и мы от него пока оставим пока будет что она будет там возвращать нам придуман потом Ну пусть не знаю Вектор стрингов это может быть например что-нибудь такое Пусть будет так это будет интерфейс соответственно наш будет я тебя немного прерву Смотри какой очень важный важное упущение есть в интерфейсе

    00:15:07 - 00:16:36

  • сейчас знаешь я даже не про то более важное Ну то есть виртуальный деструктор Ну да конструктор пока оставим по умолчанию хорошо Ну и знаешь тут уже сэкономим время предположим их реализуем скопируем да и все короче мы их переопределили и там например реализовали и абстрактные вот опечаточка еще небольшая дисконнект но тоже такое жить можно вот Хорошо теперь смотри но предположим значит первоначальной задачей мы справились Да как бы вот из того что здесь можно обратить внимание с точки зрения того

    00:17:55 - 00:19:23

  • что это будет расширяться как тебе кажется например Не многовато ли ответственности на один интерфейс возлагается так подсоединиться и работать но все зависит того непосредственно открываем Да нет пока вроде нормально но просто смотри что если например мы дальше у нас какая-то ситуация с тем пришел тот же заказчик говорить такой Блин надо в общем добавить еще какой-то класс который тоже как этот они например лягут в одну какую-то коллекцию где они там что-то будут писать Вот смотри и например он говорит что

    00:19:32 - 00:20:54

  • функции Коннект дисконнект нам не нужны может быть в таком случае уже передавать именно открытый файл Да это имеет смысл делать Ну или например Это вообще может быть какой-то какой-то статический объект то есть но retride например std in std Out то есть возможно что вообще не понадобится ничего передавать Да ну то есть тут я Да тут я как бы веду к интерфейсе gregation то что тут не помешало бы сразу но если предполагается расширение Да только куда-то выкинуть Ага хорошо кот получается таким образом вот если по

    00:20:23 - 00:21:48

  • солю туда то расскажи Вот какие по сути два принципа в данной ситуации чему Мы пытаемся следовать моему первым соли thinkle респонденсибилити и Open Close от единственной ответственность отдельно отдельно пишем открытый к расширению закрыты к изменениям Пласт Ну то есть изначально как бы мы нарушили по сути Open Close но потом уже адаптировали А еще один так а ну а второй который подставляем и забыл как он называется как он правильно называется то что базовый класс как не я понял ты про подстановки

    00:22:18 - 00:23:49

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

    00:23:11 - 00:24:33

  • тут как бы во-первых тесты Вот ты упомянул правильно что если Прямо хорошо так обмазывать тестирование то стреляет плюс еще такой момент Например я периодически сталкиваюсь когда прям сильно нарушается принципы и Ну то есть проект например был маленький потом резко набрали людей и этот принцип стал нарушаться объекты стали божественными становиться и проблема параллерить вот когда у нас все хорошо так подделено много человек гораздо лучше работают и друг другу меньше мешают меньше Элементарные мерч конфликтов

    00:23:53 - 00:25:02

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

    00:24:28 - 00:25:51

  • просто мы например будем добавлять новые классы И бах мы еще хотим какой-то Search или еще что-то мы сразу какой-то новый интерфейс подкинули это дело заработало вот сейчас подумаю что же еще нужно спросить так давай вот немного про наверное демонстрацию пока можешь убирать Ага отлично смотри немного про Вот про 11 стандарт вообще какие бы ты выделил фичи Какие бы ты выделил моменты из 11 стандарта которые Ну очень так хорошо поменялись и плюс скажем так в лучшую сторону Я просто не помню где это появилось в 11

    00:25:18 - 00:26:54

  • стандарте Ну да Но она конечно потом хорошо улучшалась но первое больше всего что еще там такого именно из 11 стандарта это конечно хорошо но Лента Это скорее как все-таки чуть больше синтаксический сахар по идее имея функция мы можем обойтись Ну да что давай вот как-то более в сторону фундаментальных таких изменений подумаем Что именно в 11 чего не было до этого были все было [музыка] так так так так так так не я вот так сразу не скажу что появилось то есть ну вот про многопоточность например да А

    00:26:19 - 00:27:55

  • точно не же потоки запустили да да этого они были там самописные на бусте в том числе а потом телепотоки они добавили эти вещи Давайте Если писать потоки до скажем так сильно неудобно быстрее от использовалась в линуксе конкретно то есть не было а нормально использовать А до этого ещё была библиотека интересная А как-то слипана называлась то есть получалось там она делать якобы многопоточность и она сама эмулировал получается когда используешь слип то есть слипы ставить даже слитно ли он переключал контексте

    00:27:18 - 00:28:43

  • получалось переключение как бы контекста вручную управлялось интересно я на самом деле не слышал интересно Она была актуальна когда процессоры были однопоточные и медленные сейчас это уже перестала быть актуальной библиотека интересно хорошо вот из фундаментального Ну наверное это сам а еще и фундаментального точно я же забыл что еще скажешь про 11 стандарт незначим отличался от других что там еще такого могло появиться Да все это было которое вдохнула новую жизнь они были смотреть чем вот прямо можно сказать Вот

    00:28:05 - 00:29:34

  • мы берем Вектор какой-нибудь Да и чем он прям вот таким вот болел что до 11 стандарта прям что не фреймворк то свой свои какие-то реализации массивов в пьюти например опять-таки практически полное экранирование все все есть реализовано все коллекции свои какие-то реализованы Так что удобно перебор элементов я вот так не скажу опять-таки ввиду к математике Все я понял да это в одиннадцатом появилось просто я то есть я думаю что на 14 появилась семантика она в 11 до максиматик появилась которая позволила

    00:29:04 - 00:30:25

  • оптимизировать работу с памятью то есть лишний раз ее не использовать да да Хорошо такой вот еще вопрос смотри Ну вот по поводу коллекции Да у нас есть из интересных получается а норда рецепт Чем отличаются Ну ладно сортированная другая Не сортирована ну хорошо что у нас как бы по сути конечно это стандарт не регламентирует Но что у нас можно считать лежит в основе отсортированных и нет сортированных деревья лежат в одном сортированного а в этом что у нас лежит а в этом там будет у нас лист там наверное будет лежать

    00:29:54 - 00:31:33

  • какой-нибудь Но вообще хэш таблица конечно да вот смотри вот про хэш таблицу Ну что как бы у нас стандарт говорит про время доступа к элементу хэш таблицы Ну Он утверждает что оно констатам он немножко обманывает нас но да если вот как бы разобраться мы можем сказать что но средний константные Ну да Знаешь ли ты как это работает за счет чего достигается то что в среднем [музыка] за счет того что получается таблица и мы к элементу доступ получаем то есть вот эта хэш является индексом массива который там хранится поэтому хорошо

    00:31:04 - 00:32:46

  • у нас например есть коллизии Ну то есть у нас вот а когда возникают коллизии они там по-разному могут решаться и там получается как раз таки они в эту же таблицу записывают по сути листы там нужно будет уже внутри этого вот Ну вот смотри мы когда предположим взяли какой-то написали такой синтетический тест это миллиард элементов добавляем таблицу да получается Ну Чтобы избежать коллизии вряд ли у нас конечно таблица будет сразу миллиардного миллиард-элементов да вот вообще там восемь сразу вот скажи

    00:31:58 - 00:33:27

  • что будет происходить периодически Когда мы будем добавлять элементы То есть когда она будет наполняться что у нас будет перестраиваться будет теоретически постоянно будет перестраиваться А вот в какой момент принимается решение что ей пора перестраиваться что для этого является условием что ей нужно перестраиваться Ну это наверное когда колизе становится очень много какой там критерии определяется не знаешь в общем да именно как какой критерий вот один раз мне с этим вопросом воткнули Поэтому я решил как бы привнести тут

    00:32:44 - 00:34:04

  • такой момент именно с такой тоже теоретической точки зрения подтянуть В общем у нас забыл забыл имя функции которые нам даст это значение имя метода вот сейчас я чтобы ну чтобы не соврать В общем шпаргалку буквально пару секунд в общем Суть в том что у нас как бы у нас есть такие две такие два таких важных свойства это багет каунт и Макс лот фактор для хэш таблицы соответственно это количество наших бакетов вот этих вот листов Да по которым куда мы будем раскидывать элементы и вот этот Макс фактор он показывает

    00:33:27 - 00:34:59

  • насколько Мы в среднем в среднем считаем у нас может быть одно количество коллизий на один пакет Вот соответственно Когда у нас количество элементов превышает количество бакетов умноженное на Макс мы считаем средним что у нас слишком много колисей и пора делать rehash Вот И в этот момент происходит перестроение и соответственно благодаря этому то что у нас вот этот Макс Слот фактор это Константа достигается усредненная от 1 То есть если именно смотреть с точки зрения того как у нас считается о т да и у нас как

    00:34:14 - 00:35:37

  • бы константы вниз сводятся к единице то мы считаем что теоретически вот одного но как бы да естественно практике все бывает по-другому в общем Но это такой типа почитать стандарт такой моментик что бывают спрашивают Вот скажи пожалуйста что ты знаешь про Ну вот куча Да и про фрагментацию как бы куча что это такое Откуда оно берется и так далее собственно Почему многие часто переписывают все эти локаторы пишут свои Потому что если очень часто используют получается мы можем выделять память а потом ее освобождать

    00:34:56 - 00:36:22

  • элементы у нас останутся тогда возникают теоретически такое Конечно когда уже нужно вот смотри а у нас например ну как бы ты описал фрагментированную кучу что она из себя будет представлять фрагментирована кучи это будет когда ссылка данный потом мусор какой-то Ну который не используется никакой адреса а потом опять данные и так идут дырками то есть ну куча адресов разных Ну то есть в целом наверное можно было бы сказать что это много разных кусочков памяти которые разбросаны эти кусочки маленькие поэтому

    00:35:42 - 00:37:08

  • мы как бы не можем взять и выделить какой-то большой кусок потому что куча также свободные куски хранит Вот и соответственно ей нужно обращаться при каждом новом выделении нужно идти там операционную систему запрашивать еще памяти и так далее хорошо а вот смотри такое тоже вопрос на порассуждать Да как ты считаешь Ну вот у нас Ну ты вообще сталкивался с просто на досуге просто в качестве изучения там с языками программированием которых есть сборка мусора вообще ну питон не работал ну например для меня это

    00:36:28 - 00:37:50

  • Sharp там вот скажи Какие бы ты назвал причины почему все плюс плюс нельзя реализовать сборку мусора Почему нельзя Можно но она будет сложно и нудно по сути это потеряет все это Но прежде всего Это скорее всего мы не всегда знаем если в этой памяти что-то или нет то есть указатели у нас с другой стороны если перебрать все указатели можно узнать есть у нас Ну и по идее например можете за массивов каких-нибудь данных потому что они выделяются мы имеем указатель только на первый элемент Но с другой стороны количество массивов

    00:37:08 - 00:38:39

  • количество элементов массива соответственно можем посчитать на и куча в принципе хранит все все данные То есть если мы например условно бы имели доступ ко всем функциям кучи то куча же тоже она все по сути знает это утечка только для нас утечка она это все хранит скажем так Почему нельзя Почему почему нельзя Давай попробуем с другой стороны подумать Да чтобы навести на мысль Вот смотри происходит сборка мусора Да у тебя там Бах там происходит какой-то Стоп Все останавливается собирается мусор программа продолжает свое выполнение так

    00:38:01 - 00:39:19

  • Ну наверное спать не так устроено идеально должно быть Вот смотри что помимо вот вызова деструкторов что еще очень важное происходит что в целом позволяет вот этим языкам таким со сборкой мусора оставаться довольно таки быстрыми тоже а перемещение что ли Нет ну почистить Я не пойму пока К чему ты коем что произойдет Ну вот я кланю к тому что у нас произойдет как бы само сжатие кучи произойдет какое-то перемещение объектов и куча тех фрагментация куча мусора использовать да да Вот я имею ввиду вот сборщик мусора это как бы

    00:38:40 - 00:40:05

  • важные тоже важная часть его работы начал с того А почему все то нельзя это сделать Да это вот я понять не могу почему по большому счету мы можем сделать если мы пишем свой локатор какой-нибудь можно этим следить если свой локатор поэтому говорю да а чисто теоретически не понятно почему до сих пор опять-таки мои чистые мысли ну как мне кажется тут именно проблема в том что в том же шарпе предположить что в питоне Мы работаем с ссылками все-таки какими-то абстракциями надо указателями А все плюс плюс Мы например сделали

    00:39:47 - 00:41:03

  • сборку мусора сделали какие-то там перемещения и так далее Проблема в том что наша переменные в коде потеряют свои адреса и будут указывать Но с другой стороны почему бы их нам не момент сборки не как-то тоже математика не переин индексовать или перемещать когда это Ну то есть наверное Это в итоге просто получится шахте с тем чтобы это оставался c++ я думаю это никогда не сделается Вот хорошо так [музыка] все тут интересно пообщались давай про чуть-чуть вернемся к солиду Да вот скажи например о чем он тебе говорит

    00:40:28 - 00:42:06

  • [музыка] сейчас сейчас сформулирую правильно это так объекты объекты должны зависеть В общем условно говоря от интерфейсов а не от самой реализации Ну как бы мы должны использовать интерфейсы для того чтобы пользователь использовал интерфейсы они функции которые в объекте реализованы как-то Так ну то есть еще можно Потому что объекты верхнего уровня они должны зависеть от реализации как бы их каких-то там дочерних объектов должны на абстракции ориентироваться что же сделает Код гипша да то есть например Мы

    00:41:27 - 00:42:43

  • подменяем какой-то один класс подменяем один интерфейс нам другой Уже не надо менять Да какой-то например класс от него зависит Но в идеальном мире Да есть у нас интерфейсы все сразу идеальные написаны только все у нас хорошо будет работать вот так так Слушай ну наверное у меня все перейдем как бы к фидбэку озвучу свои мысли то есть вообще по собеседованию мне Мне понравилось Мне понравилось как справился с проектной частью и в целом по ответам на вопросы То есть если где-то нет прям вот условно и книжных каких-то

    00:42:26 - 00:43:51

  • знаний назовем это так додумываешь доходишь все как бы в этом плане Хорошо Да Единственное что вот я могу сказать по солиду Да например если спрашивать принципе солида то иногда как будто чувствуется что надо прямо конкретно вот там Вспоминать Вспоминать определение вообще [музыка] тут моя рекомендация часто спрашивают и что тут подучить и на практике в общем по реализовывать чтобы оно как-то больше именно как Ну более более легко да на кончиках пальцев в общем чтобы оно было чтобы это сразу все

    00:43:16 - 00:44:44

  • легко сразу говорилось вот по поводу смотри один момент Ну то есть Например я для себя для интервью условно То есть то что там например про многопоточность не сказал про математику Да когда про 11 стандарт не сразу что-то и про искал для меня бы это было бы неважно но есть много интерьеров которые почему-то это вот обращает внимание именно как вот фундаментальность каких-то фичей фундаментальность каких-то изменений в общем тоже вот такие моменты Ну просто спрашивают нужно не то что это важно для меня не то что это важно для

    00:44:00 - 00:45:10

  • практики сказать что многопоточность это важно понятно что это важно просто именно что интервьюер частенько обращают на это внимание Как ни странно Вот и в целом ну с моей стороны все Хорошая работа может у тебя есть что сказать нет Все я говорю это для меня первый опыт Поэтому собственно говоря было интересно как как вообще это происходит что нашел время для этого Хорошо давай прощаться зрителями останавливать запись в общем все Всем пока Подписывайтесь все такое И спасибо Всё спасибо еще важный момент то что забыл упомянуть

    00:44:36 - 00:45:59

  • на записи и мы договорились со станиславом что еще как бы доза пишу добавлю что было важно что я считаю важно упомянуть и что было на собеседовании как такая Такой промах В общем тот момент когда я расспрашивал про С каким языками программирования работал с какими технологиями ну этот момент когда снежском собеседование очень важно себя хорошо продать то есть условно вы приходите кому-то на проект вас на проект собеседует в принципе чем как бы больше технологии попадет уже как бы в то что используется на проекте и это по

    00:45:23 - 00:46:30

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

    00:45:57 - 00:47:11

  • расписать широко свой технологический стек вот в остальном я считаю Собеседование прошло отлично в общем зрители подписчики берите себе на заметку что ж надеюсь вам понравилось ставьте лайки пишите Комментарии пишите свои мнения критику Подписывайтесь и до встречи

    00:46:33 - 00:47:25