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

แชร์
ฝัง
  • เผยแพร่เมื่อ 30 มิ.ย. 2024
  • Всем привет!
    Провели тренировочное собеседование с Александром на позицию Middle C++ Developer.
    Приятного просмотра!
    Не забудьте поддержать видео :)
    Таймкоды:
    00:00 Вступление
    00:18 Расскажи о себе
    02:48 Задача: экранирование символов
    14:28 Заголовочные файлы. Код в них
    20:24 extern
    22:45 Взвести/Сбросить бит
    34:33 Сериализация/Десериализация
    40:33 Сериализация двусвязного списка
    45:42 union
    47:36 1. Про 11-й стандарт. Move-семантика
    49:28 Copy on write
    47:36 2. Про 11-й стандарт. Move-семантика
    51:35 Функтор. Лямбды
    53:12 Наследование от stl контейнеров
    56:12 Фидбэк

ความคิดเห็น • 347

  • @ambushedraccoon6408
    @ambushedraccoon6408  ปีที่แล้ว +5

    Всем привет! Объявляю набор кандидатов на собеседование Middle С++.
    Требуются разработчики с опытом 1-3 года. Собеседование проводится только с видео.
    Если вы хотите проверить свои знания и попасть в новое видео, то пишите мне на почту ambushed.raccoon.tube.mail@gmail.com с темой “Middle собеседование кандидат”. В письме пишите свои контактные данные(желательно telegram), описание ваших знаний или резюме.
    Со своей стороны гарантирую, что видео будет выложено только с вашего согласия. Так что не бойтесь.
    Будьте внимательнее с темой письма, потому что они очень легко попадают в спам.

  • @MrBratkenSolov
    @MrBratkenSolov ปีที่แล้ว +41

    Собеседование: разверни дерево, найди оптимальный путь
    Реальность на работе: фикс ошибки из-за отсутствующей запятой, катить самому в прод без техлида в пятницу

    • @ChannelCheesecake
      @ChannelCheesecake 10 วันที่ผ่านมา

      Ну собеседование гораздо интереснее и прикольнее работы, что еще сказать тут

  • @relaxationchanne9130
    @relaxationchanne9130 7 หลายเดือนก่อน +14

    Странно, что в названии написано "Собеседование Middle C++",а первые слова собеседование на позицию junior.

  • @onegamer6596
    @onegamer6596 ปีที่แล้ว +4

    Спасибо за контент. Очень интересно.

  • @user-pz2vr8ur1b
    @user-pz2vr8ur1b ปีที่แล้ว +14

    Видео клевое, но хочется тайминги еще :) Ждем материала от вас, вы очень приятно объясняете материал

  • @n.r.x62
    @n.r.x62 ปีที่แล้ว +16

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

    • @user-po6ex2is6e
      @user-po6ex2is6e ปีที่แล้ว +2

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

  • @arturhisamutdinov9285
    @arturhisamutdinov9285 ปีที่แล้ว +20

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

    • @Pavel.Zhigulin
      @Pavel.Zhigulin 11 หลายเดือนก่อน +4

      Можно ещё проще: сериализуем как массив и кладём хер на тип. Кому надо - десереализуют в двунаправленный список. Кому не надо - десереализуют массив.

  • @vasiliypupkin6311
    @vasiliypupkin6311 ปีที่แล้ว +49

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

    • @alienhazzard7201
      @alienhazzard7201 ปีที่แล้ว

      @ Vasiliy Pupkin
      Бойтесь своих желаний - они исполняются.

    • @vasiliypupkin6311
      @vasiliypupkin6311 ปีที่แล้ว +1

      @@alienhazzard7201 уже 7 месяцев как не исполняется(

    • @george.8888
      @george.8888 ปีที่แล้ว

      @@vasiliypupkin6311 Ты был джуном 7 месяцев назад. Почему не получилось? Ответь развернуто, пожалуйста, мне очень интересно как начинающему.

    • @vasiliypupkin6311
      @vasiliypupkin6311 ปีที่แล้ว +1

      @@george.8888 После 24 февраля, много компаний ушло, которые нанимали джунов. Компании которые остались, очень сильно вырос порог входа, а так как я занимался именно unreal engine 4 и все мои проекты были под гейм дев, а гейм дев умер в СНГ, и на вакансию gameplay dev начали откликаться 200+ чел. При том, что я 25 февраля должен был переезжать в Киев, я делал тестовое 3 месяца и прошел на проект сталкер 2.
      Через месяц, я понял, что остались только продуктовые компании, такие как Яндекс, сбер, Тинькофф, но туда берут в первую очередь олимпиадников и с таких, как МФТИ и т п.
      Итог: знать надо гораздо больше, конкуренция в 3-4 раза выросла, это я все рассказываю в рамках С++. Нужно хорошо знать алгоритмы и структуры данных, уметь решать с закрытыми глазами, знать тонкости языка, как работает под капотом, этим сможете привлечь внимание, работа долгая и упорная, я с полного нуля занимаюсь 2 года. Я так по приколу за 2 недели начал на js писать))))
      Я бы на вашем месте смотрел бы на другой ЯП, у айти бороды есть интервью с лидом по физике геймплея war gaming он там и говорит, что с хорошим наставником, вы станете джуном по С++ за 1,5-2 года, работая про этом.
      У Сергея немчинского, есть очень много материала, как выбрать ЯП, какой лучше, как правильно учиться.
      Своему сыну я бы не советовала, в качестве первого языка брать ++ очень сложно и долго.
      Удачи!

    • @george.8888
      @george.8888 ปีที่แล้ว

      @@vasiliypupkin6311 Спасибо что потратили свое время! Я пришел к выводу что стоит начать с вэб разработки, стандартный пакет с хтмл, цсс, джава скрипт. Всегда будет спрос, всегда можно брать фриланс пока ищешь. работу. Уже после можно изучить языки под узкие направления, которые интересуют, вроде гейм дизайна и тд. Как вы считаете, это правильное решение?
      Многие говорят про Питон, что он самый лёгкий для начинающих, но мне почему то кажеться самым разумным решением начинать с вэб..

  • @shaman888y
    @shaman888y ปีที่แล้ว +5

    Этот парень помогает поверить в свои силы.

  • @KostopravHD
    @KostopravHD ปีที่แล้ว

    хорошее видео, хороший канал, всем спасибо!

  • @idodoqdo5783
    @idodoqdo5783 ปีที่แล้ว +5

    Очень интересно. Ты располагаешь к тому, чтобы любить c++

  • @valtz2002
    @valtz2002 ปีที่แล้ว +3

    Охуительно, посмотрел за ужином, о чем они говорят - х.з. но очень интересно. Спасибо ютюбу за рекомндацию ахахахахахаха... Комменты тоже доставляют. Удачи вам парни!

  • @antonkulikov6726
    @antonkulikov6726 ปีที่แล้ว +4

    Впринципе ничего страшного не будет,если мы унаследуемся с модификатором protected от вектора. Так,что на мой взгляд ,собеседуемый сказал правильно: он сказал про private наследование от вектора. Потому,что в таком случае механизм полиморфизма работать не будет. Но есть и достоинства: при таком подходе можно получить доступ к protected членам вектора. При композиции так нельзя сделать. Ещё Здесь есть один риск,если пользователь будет делать reinterpret_cast к вектору(к указателю на вектор) и явно вызывать деструктор. Но по мне это такое себе. Как завещал Скотт Майерс: предпочитайте композицию наследованию.

    • @billjohnes9380
      @billjohnes9380 ปีที่แล้ว +1

      Только почему никто не озаботился вопросом, насколько часто сам объект вектора создаётся динамически так, чтобы пользоваться им потом через указатель на базовый класс?

  • @kookaburru
    @kookaburru ปีที่แล้ว +5

    Норм собес, сам вспомнил плюсы :)

  • @user-cq9ze8rk8s
    @user-cq9ze8rk8s ปีที่แล้ว +5

    Здравствуйте. А будет сборка Quake из исходников ?

  • @tribacckk
    @tribacckk ปีที่แล้ว +2

    Прикольно, посмотрел пока только 1ую задачу.
    И какое-то двоякое мнение:
    1)были такие задачи на собесах и сразу бросался решать. Но вот это видео мне попалось вечерком под ужин. И прям 1ое что в голову пришло - написать сначала тесты. И чтобы в них были конер кейсы. Однако когда такие задачи на собесах встречаются, как-то эта мысль не приходит в голову почему-то, видимо нервы)
    2)обычно при решении таких задач надо
    - накидать дубовое решение в лоб.
    - потом его проговорить его и оценить сложность.
    - поток уже реализация
    - потом уже обсудить что получилось. Подсветить плюсы и минусы.
    - и вот теперь уже попытаться обработать конер-кейсы
    Пишу это для того чтобы узнать мнение других людей, тех кто ходил на собесы, или может тех кто эти собесы проводит.
    P.S. на работе обычно вначале прикидывается решение (возможно обсуждается архитектура). Потом прикидываются юзер-кейсы. Потом уже реализация. А на тех.интервью вроде все также, только в обратной последовательности.

    • @dangername6996
      @dangername6996 ปีที่แล้ว

      Сам я на собесы не ходил (работу как-то плавно получил со стажерства)). Но многие знакомые/друзья говорят, что мол, лучше всего начать писать самое просто решение в лоб, невзирая на особенности и крайности (на примере первой задачи, забить на первый символ, последовательность символов и т.д.) и просто решить общую задачу. А потом уже готовое решение доработать и доделать для решения "тонких" задач.

  • @igorkl5167
    @igorkl5167 ปีที่แล้ว +15

    Сам я не программист, но всегда восхищаюсь этими ребятами.

    • @mrbibis7229
      @mrbibis7229 ปีที่แล้ว +6

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

    • @addressmodel2121
      @addressmodel2121 10 หลายเดือนก่อน

      @@mrbibis7229 , на одном чистом языке много не напрограммируешь - нужны ещё знания библиотек. А библиотек разных много:
      - игровые движки;
      - базы данных;
      - редакторы изображений;
      - распознаватели речи;
      - работа с протоколами интернета;
      - ну и библиотеки работы с математикой.
      На каждую библиотеку её внутренние алгоритмы знать не будешь, а библиотек сотни штук!
      Вывод: для программиста главное уметь пользоваться софтверными библиотеками. А дискретной математике его за пару месяцев обучит куратор проекта.

    • @shiftingsandsgames
      @shiftingsandsgames 10 หลายเดือนก่อน

      ​@@mrbibis7229ну попробуй аллокатор памяти написать под вулкан, или драйвер, или движок, математика не нужна, но мышление на вес золота.

  • @stanislavzemlyakov5442
    @stanislavzemlyakov5442 ปีที่แล้ว

    Слава Богу, я скипнул вот эту всю часть computer science про частичные функции в целом, и си в частности.

  • @user-ji5vu2ln1j
    @user-ji5vu2ln1j ปีที่แล้ว +9

    Классный контент.
    Спасибо большое)
    Было бы круто вывести тайм-коды для более быстрого просмотра и самого интересного, для себя
    Спасибо))

    • @ambushedraccoon6408
      @ambushedraccoon6408  ปีที่แล้ว +3

      Спасибо)
      Таймкоды будут. Сейчас в приоритете провести собеседования и выложить их.
      После этого займусь таймкодами.

    • @ilyazakharou468
      @ilyazakharou468 ปีที่แล้ว +1

      @@ambushedraccoon6408 таймкоды сделать это меньш часа лентяй.

    • @ambushedraccoon6408
      @ambushedraccoon6408  ปีที่แล้ว +1

      Таймкоды сделал.

    • @user-ji5vu2ln1j
      @user-ji5vu2ln1j ปีที่แล้ว

      @@ambushedraccoon6408 спасибо ты лучший!)

  • @HighlanderMcLeod
    @HighlanderMcLeod ปีที่แล้ว +15

    Работаю вместе с джамшутами на стройке. Возле Рублёвки, чистыми выходит ~120. Почему это оказалось у меня в рекомендуемых??

    • @simvoli
      @simvoli 3 หลายเดือนก่อน +1

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

  • @pyreorion
    @pyreorion ปีที่แล้ว +2

    Я не критикую, но просто интересно, в каком месте кандидат ближе к мидлу?

  • @andreygurenkoff2721
    @andreygurenkoff2721 ปีที่แล้ว +1

    не понял. у вас написано мидл, а в видео говориться , что собес для уровня джуна ? опечатка или оговорка в видео ? можете объяснить, "что значит учитывая коммерческий опыт" ? вы имеете ввиду, что сейчас на джуна необходима подготовка уровня мидла ?

  • @user-dk5rx1be6v
    @user-dk5rx1be6v ปีที่แล้ว

    ❤️

  • @BloganProgramming
    @BloganProgramming ปีที่แล้ว +56

    Я являюсь преподавателем C++ в ютубе и работаю игровым разработчиком, поэтому добавлю свои 5 копеек.
    Не понимаю, почему автор видео решил, что кандидат подходит ближе к middle-уровню, если он на большое количество "junior"-вопросов не смог ответить. Какая разница, какой у него коммерческий опыт? Я могу за 10 лет поменять 10 компаний, везде быть джуном и рассказывать, что в одной компании я делал одно, в другой другое, и так далее. А на собеседовании не могу ответить на вопросы. Считаю, что кандидат подходит на позицию Trainee/Intern.
    Переходим к вопросам.
    1. Не понимаю, зачем у кандидатов на позицию junior спрашивать их опыт. Что от этого меняется? Вы будете задавать другие вопросы? Вы вообще их не будете задавать? Я считаю, что на собеседованиях на intern/trainee/junior позиции нужно оценивать только навык программирования. Ну да ладно, это не критично.
    2. Не понимаю, почему интервьюер решил сразу начать с сложной (по сравнению с большинством вопросов) задачи, а потом задавать простые вопросы. Кандидат в теории может слиться уже на простых вопросах и тогда незачем будет решать задачу. В теории вы можете так затянуть время собеседования, если кандидат будет нулевым.
    3. Не "хИдэр" а "хЭдэр", потому что header читается как "хэдэр". Хоча я не вижу причин в разговоре не говорить "заголовочный файл".
    4. Почему кандидату надо знать об extern "C"? Я работал в нескольких компаниях, и ни разу не было причины использовать это. Что мешает junior-разработчику при первом требовании использовать С-функцию, загуглить эту информацию и получить быстрый ответ? Это лишний вопрос.
    5. "Битовые задачки - часто возникающая вещь" - вы откуда пришли к такому выводу, можно поинтересоваться?) Надеюсь, вывод не был сделан только с ЛИЧНОГО опыта?)
    6. "На какие виды можно разделить сериализацию с точки зрения С++" - максимально непонятный вопрос. Я уверен, что автор его придумал на лету. Готовьте вопросы заранее и убедитесь в их ясности.
    7. На счет вопроса по сериализации списка в файле. Я здесь вообще поплыл в ваших (обоих) рассуждениях. "Как понять, какой элемент будет следовать за каким?" Та элементарно - пройтись по списку и просто записывать значение каждого элемента в файл. В файле значения будут хранится как простой набор чисел. А при считывании будет ясно, что первое значение - первый элемент. Второе - второй. Либо я не вообще не понял вашей темы, либо вы оба заблудились в трех соснах.
    8. Функтор - это класс/структура, которые должны иметь перезагруженный оператор вызова функции. Все. Функторы могут не иметь "состояния" (полей). На видео была дана неточная формулировка.
    9. Предикат - функция, которая анализирует объект/объекты и возвращает ответ анализа в формате "Да/Нет" (то-есть тип bool). Соответственно на 52:46 кандитат ответил точнее, чем интервьюер, потому что предикат должен являться функцией. Функтор - это не функция, хотя функтор может себя вести как функция. Точно так же указатель на функцию также может вести себя как функция, но от не является функтором.
    10. Стандартные контейнеры можно засунуть в ваши собственные классы, как поля. Тогда не будет проблем з деструкторами. Хорошо было бы сказать об этом кандидату.
    Считаю, что вопросов мало было задано. Но смотрел все ровно с интересом, поэтому спасибо за видео.

    • @he1vann-42
      @he1vann-42 ปีที่แล้ว +10

      ладно

    • @grigoriikushnir4927
      @grigoriikushnir4927 ปีที่แล้ว +4

      Сначала ты пишешь:
      "Какая разница, какой у него коммерческий опыт? Я могу за 10 лет поменять 10 компаний, везде быть джуном и рассказывать, что в одной компании я делал одно, в другой другое, и так далее."
      А потом:
      "Почему кандидату надо знать об extern "C"? Я работал в нескольких компаниях, и ни разу не было причины использовать это."
      Не делай так.

    • @BloganProgramming
      @BloganProgramming ปีที่แล้ว +5

      @@grigoriikushnir4927 А как эти 2 утверждения взаимосвязаны?) Второе утверждение объясняет то, что вопрос лишний для джунов.

    • @grigoriikushnir4927
      @grigoriikushnir4927 ปีที่แล้ว +4

      @@BloganProgramming Тем, что твое первое утверждение обесценивает твое второе утверждение как аргумент. Твой коммерческий опыт не является доказательством того, что кандидату не надо что-то знать. Это если по твоей логике.
      Из моего опыта, в среднем, чем больше коммерческий опыт, тем больше у человека знаний потому что он решал больше бизнес задач. Как это проверить - другой вопрос. Но закономерность подтверждается жизнью.

    • @BloganProgramming
      @BloganProgramming ปีที่แล้ว +7

      @@grigoriikushnir4927 Ты все еще не понимаешь, что между моими утверждениями нет никакой связи. Первое касается того, что незачем спрашивать за коммерческий опыт. Второе касается того, что вопрос является слишком узконаправленным и довольно простым, чтобы его спрашивать. На этом я заканчиваю эту беседу, так как если ты после этого ничего не поймешь - смысла объяснять тебе далее нету.

  • @alexnedelin7646
    @alexnedelin7646 ปีที่แล้ว

    если не "прятать" от компилятора тип переменных унасленованного от vector класса, то невиртуальность деструктора ~vector проблем вызвать не должно. в смысле если не делать такое: std::vector * pVec = new TMyInheritedIntVector(); ...; delete pVec;

  • @gellolenok
    @gellolenok ปีที่แล้ว +1

    Почему бы не экранировать с 2-ух сторон последовательность нужных символов? Это явно сократит количество новых/служебных символов в новой строке (при условии, что не будет чередования по типу 1 нужный символ - 1 любой и т.д.). Например, str = “acdbbbbadbb”, тогда res = “acd\\bbbb//ad\\bb//“. Тогда res.size() = str.size() + 2 * кол-во последовательностей, состоящих из b (нужного символа). Если str.size() = n => res.size() = n + 2 * (n+1)/2 (worst case, like: “babfbhbsbubdb….b”), то есть также понадобится в 2 раза больше памяти, но в среднем затраты будут меньше.

    • @kingofbattleonline
      @kingofbattleonline ปีที่แล้ว +4

      Вы приняты в Valve, поздравляем! :D

  • @dainispolis3550
    @dainispolis3550 ปีที่แล้ว +1

    Ambushed Raccoon - Парень ретурн std::string(); по моему указал правильно , ведь резултат - обект типа std::str а не функция

  • @iforand
    @iforand ปีที่แล้ว +2

    8:00 Почему std::string() ошибка? Это же просто вызов стандартного конструктора. Пустые фигурные скобки ведь тоже приведет к вызову того же стандартного конструктора.

  • @StasonST19
    @StasonST19 ปีที่แล้ว

    найс

  • @cyrilanisimov
    @cyrilanisimov ปีที่แล้ว

    26:38 "...мы будем сдвигать вправо..." - "Почему не влево?" - "Потому, что это Мак)))"

  • @Anti-Z
    @Anti-Z ปีที่แล้ว +1

    Я не знаю с++, поетому может мой вопрос примитивньій. Но, как я понял из первого задания слеш нужно ставить перед символом которьій передаеться в с. А судя по коду он будет ставить етот слеш в начало строки: answer = += "\\" а не в позицию перед етим символом в строке (тип і -1, где і - позиция символа с).

    • @nikolay1405
      @nikolay1405 ปีที่แล้ว

      по конечному коду, он идет в цикле и прибавляет к результирующей строке либо просто символ из заданной строки, либо слеш+символ, если он совпадает с условием.

  • @d3i0
    @d3i0 ปีที่แล้ว +4

    Зря подсказал что цикл не понадобится в задаче с set_bit, было бы прикольно посмотреть как он с циклом решит :D

  • @IgorAlov
    @IgorAlov ปีที่แล้ว

    Почему то сразу пришло в голову, что для подсчета символов итерировался бы бОльшим объектом, чем символ (размером командного слова на архитектуре например), ну и битовой максой по указателю проверял бы истину. так за меньшее число тактов можно почитать необходимы размер (но на самом деле размер не нужен). /или может быть сразу inline на asm воткнуть/. Попутно "битового пробега" составил бы карту (массив сдвигов) вхождений элементов, который после пробега использовал бы для копирования участков памяти, и между нужными элементами вставляли бы экран.
    По поводу битовых операторов, не плохо бы сначала определиться с big-endian и liitle-big-endian. Можно просто нечаянно уехать не в ту память. Код написанный для изменения битов содержит else, он там лишний и портит читабельность код (по рукам за такое, мидл так не пишет).

    • @alexeypavlyutkin886
      @alexeypavlyutkin886 2 หลายเดือนก่อน

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

  • @dianapai6565
    @dianapai6565 ปีที่แล้ว

    А есть ли какая то возможность попасть к вам на пробное собеседование?)

    • @ambushedraccoon6408
      @ambushedraccoon6408  ปีที่แล้ว

      На данный момент я не веду набор кандидатов. Планирую делать новый набор ориентировочно через 2 недели.
      Уведомление будет в сообществе и телеграм-канале.

  • @DooDleZTv1
    @DooDleZTv1 ปีที่แล้ว

    смотрю с огромным интересом хоть ни черта не понимаю

  • @rocketsay
    @rocketsay ปีที่แล้ว +14

    "на позицию Middle C++ Developer" - в видео студент на позицию джуна)))))))))))

    • @KostopravHD
      @KostopravHD ปีที่แล้ว +1

      так одно другому не противоречит, может парень пришел рановато

    • @lightinguniverse4952
      @lightinguniverse4952 ปีที่แล้ว +3

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

    • @user-ln2ft2mo3c
      @user-ln2ft2mo3c ปีที่แล้ว

      @@lightinguniverse4952 Ты прав - тут есть над чем работать. Автор весьма косноязычен, речь не выразительна, много мусора. В одном видео он говорит "прийти НА ОФИС" - несколько раз - стыдно однако

  • @LikeOnFilm
    @LikeOnFilm ปีที่แล้ว +1

    блииииин обыкновенное экранирование! мать моя дельфи...))))

  • @ic6406
    @ic6406 ปีที่แล้ว +2

    Не понял, какой вызов функции? Там простой вызов дефолтного конструктора, не важно какие скобки

    • @ic6406
      @ic6406 ปีที่แล้ว

      а вот дальше std::string answer(); уже ошибка most vexing parse

  • @waagnermann
    @waagnermann ปีที่แล้ว

    парень студент - хорош

  • @vp_arth
    @vp_arth 4 หลายเดือนก่อน

    В первой задаче не возникло вопроса, что делать с уже существующими в строке слешами

  • @user-pg8ry1tm3t
    @user-pg8ry1tm3t ปีที่แล้ว +4

    Ну имхо строку следует считывать прямо на ходу в какой нить вектор посимвольно и просто вставлять экран перед символом…

  • @shredVFZ
    @shredVFZ ปีที่แล้ว +5

    48:12 - на этот вопрос ответить без мата в сторону стандартизаторов очень сложно

  • @grenadier4702
    @grenadier4702 ปีที่แล้ว

    Есть ли смысл выносить "\\" в переменную, чтобы не создавать каждый раз указатель? 14:10. Или компиляторы оптимизируют этот процесс?

    • @old_cd_rom9518
      @old_cd_rom9518 ปีที่แล้ว +1

      Компиляторы оптимизируют твой код иногда до такой степени, что ты даже представить себе не можешь))

    • @grenadier1653
      @grenadier1653 ปีที่แล้ว

      @@old_cd_rom9518 здорово тогда

  • @kokosiki40
    @kokosiki40 ปีที่แล้ว +1

    объясните, зачем при сериализации двусвязного списка с чем-то мудрить? Просто по порядку как массив записал значения и все

    • @it_cpp54
      @it_cpp54 ปีที่แล้ว

      вот-вот. сериализация необходима для передачи данных. А уж на месте десериализуй и клади данные куда необходимо.

  • @it_cpp54
    @it_cpp54 ปีที่แล้ว

    Зачем битовые маски, если есть bitset ?

  • @it_cpp54
    @it_cpp54 ปีที่แล้ว

    55:55 можно обьяснить при чем здесь виртуальный деструктор, если человек вроде хотел приватно наследоваться?

  • @normanmaddyson8408
    @normanmaddyson8408 ปีที่แล้ว

    55:45
    Виртуальный деструктор в подобном кейсе выглядит избыточно. У вектора и методы не виртуальные, поэтому нет смысла кастить указатель на наш произвольный класс к указателю на вектор, потому что при вызове методов всегда будут вызваны методы вектора. Если пользователь такое делает, то пусть возьмет просто вектор, а не производный класс.
    А если использует "правильно", то и утечки нет

  • @dangername6996
    @dangername6996 ปีที่แล้ว

    Давно я на ++ не писал, а что за конструкция for ( var : var)?
    Это типа foreach в #? Никогда раньше не видел, даже вон глянул документацию майков, там тоже не нашел такого.

    • @ambushedraccoon6408
      @ambushedraccoon6408  ปีที่แล้ว

      Привет. Да, можно провести аналогию с foreach.
      Называется range-based for loop.
      Вот ссылочка на док:
      en.cppreference.com/w/cpp/language/range-for

    • @dangername6996
      @dangername6996 ปีที่แล้ว

      @@ambushedraccoon6408 Спасибо, удобная конструкция

  • @user-rj4hq2vb2n
    @user-rj4hq2vb2n ปีที่แล้ว +1

    Оксимирон теперь интервьюирует по С++???

  • @user-ss9vo7fq3z
    @user-ss9vo7fq3z ปีที่แล้ว +4

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

    • @user-yk7li6ni4o
      @user-yk7li6ni4o ปีที่แล้ว

      Ну у каждого свои предпочтения. Мне лично тоже java не заходит. JS я не пробовал, поэтому ничего сказать не могу.

    • @danilsergeev3339
      @danilsergeev3339 ปีที่แล้ว

      Привет, я, например, front-end разработчик, но получаю огромное удовольствие от написание кода на golang, нежели на js(typescript), не знаю, как-то так уж получилось)

    • @phat80
      @phat80 ปีที่แล้ว

      Причины, по которым может не нравится язык, есть у каждого языка. Если бы существовал идеальный, универсальный язык, на нем бы все и писали. Выбор языка - это всегда компромисс. И всегда есть языки, в которых человек не может найти этот компромисс для себя. Например, лично мне в Java не нравится ее многословность. В JS мне не нравиться подход, построенный на прототипном наследовании, динамическая типизация и то, что null по какой-то неведомой причине является в JS объектом. Тем не менее я не против пописать, как на Java, так и на JS.

  • @minma123
    @minma123 2 หลายเดือนก่อน

    человек паук вернулся домой и начал кодить

  • @s.g.7213
    @s.g.7213 ปีที่แล้ว

    По сериализации с двунаправленым списком я не понял....
    Каждый элемент имеет указатель на следующий и предыдущий, это есть его определение. Следовательно a->prev->next == a и a->next->prev == a , это правило двунапраленного списка. Если иначе, это уже другая структура данных , граф может быть.
    В таком случае , непонятно зачем хранить индексы вообще. Сохраняем последовательно элементы от head по next . А при десериализации каждого последующего элемента восстанавливаем связи согласно правилу списка. last->next = cur; cur->prev = last; last = cur;

    • @Matissed
      @Matissed ปีที่แล้ว

      да, по сути это будет последовательность данных, а при десериализации будет уже создание двунапр. списка

  • @uniers
    @uniers 5 หลายเดือนก่อน +1

    Вставка в середину массива, по моему надо использовать linked list

  • @tagireminov8858
    @tagireminov8858 ปีที่แล้ว

    а как можно с Вами связаться?

    • @ambushedraccoon6408
      @ambushedraccoon6408  ปีที่แล้ว

      Здравствуйте.
      пишите сюда:
      ambushed.raccoon.tube.mail@gmail.com

  • @greego4623
    @greego4623 ปีที่แล้ว +21

    Я думаю это собеседование больше похоже на позицию джуна?

    • @ambushedraccoon6408
      @ambushedraccoon6408  ปีที่แล้ว +2

      Такие вопросы могут встречаться на собеседованиях на любой уровень.
      В зависимости от уровня кандидата, ожидается разное погружение и процент отвеченных вопросов.
      У Александра около одного года коммерческого опыта, что ближе к уровню миддл.

    • @z140140
      @z140140 ปีที่แล้ว +2

      @@ambushedraccoon6408 у меня уровень senior+1, если меня спрашивают про особенности языка - я уже понимаю, что это не моя вакансия

    • @thegate8985
      @thegate8985 ปีที่แล้ว

      @@z140140 можете, пожалуйста, рассказать, почему? То есть вы ожидаете вопросов, связанных больше с какими-то более прикладными задачами?

    • @nightriver7544
      @nightriver7544 ปีที่แล้ว +6

      @@thegate8985 позволю себе ответить со своей стороны, так как придерживаюсь такой же позиции. Сеньор это не тот кто знает каждую заковырку с++. Сеньор это тот кто придёт писать код на джаве и, видя ее впервые в жизни, легко поймёт что там и зачем написано с использованием гугла. Ценность не в знании конкретных прикладных технологий, а в понимании общей логики в целом. Глупо платить человеку в 3 раза больше денег просто потому что он знает кучу справочной информации, которую можно за 30 сек найти в гугле при первой необходимости, если при этом этот человек не понимает зачем нужна хэш-таблица или какие подводные камни есть у многопоточности.

    • @medvital
      @medvital ปีที่แล้ว

      @@thegate8985 чем выше позиция, тем меньше человек пишет кода и больше занимается бизнес/архитектурными/тимлидовскими задачами(зависит от позиции, на которую нанимают). Выше уровень абстракции, так скажем, для кода есть джуны и мидлы. Если вы синьор и все ещё пишете код, то вы аппер мидл, имхо.

  • @stanislavzhukov9234
    @stanislavzhukov9234 ปีที่แล้ว +5

    Блин, интересный видос. Помоему вопросы даже до уровня Джуна не доходят. Либо просто я о себе слишком плохого мнения (Middle C# dev, OpenSource C++ dev)

    • @lipaboy_official
      @lipaboy_official ปีที่แล้ว

      Скорее из-за высоких требований к себе у тебя завышенные требования к другим)

    • @alexeypavlyutkin886
      @alexeypavlyutkin886 2 หลายเดือนก่อน

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

  • @homie2417
    @homie2417 ปีที่แล้ว

    Это мидл?)

  • @vadimromansky8235
    @vadimromansky8235 ปีที่แล้ว

    а компилятор правда не ругнется на множество реализаций одной функции? ничоси...

  • @nikitross7466
    @nikitross7466 ปีที่แล้ว +1

    Это собеседование middle?? Напиши что это собеседование для junior.

  • @sshwey
    @sshwey ปีที่แล้ว +11

    Я программист на питоне и на js. Решил посмотреть в 4 часа утра как писать аимбот, наткнулся на старое видео, из него прыгнул на канал и на новое видео.
    Зачем мне собес на мидла плюсов….ну ладно, берем попкорн, слушаем)))

    • @vitalyarbuzov5375
      @vitalyarbuzov5375 ปีที่แล้ว +3

      в чём вообще смысл твоего комментария ? "хихи посмотрите на меня какой я дурачок завтра егэ, а я хаваю дешевый дофамин)))) Я такой особенный ))))))))))))))))".

    • @aquahaze
      @aquahaze ปีที่แล้ว

      ​@@vitalyarbuzov5375 🤨

    • @chaplin4335
      @chaplin4335 ปีที่แล้ว +1

      @@vitalyarbuzov5375 иди поспи, чел. тебе отдохнуть нужно

  • @Denys_Lapshyn_1
    @Denys_Lapshyn_1 ปีที่แล้ว

    так а в чём прикол? не бывает же чистого C++, это либо C++ десктоп либо C++ геймдев. Или я что то не понял ?

  • @user-ln2ft2mo3c
    @user-ln2ft2mo3c ปีที่แล้ว +1

    задача с экранированием символа решена с ошибкой

  • @Hamsters_Rage
    @Hamsters_Rage ปีที่แล้ว +2

    серьезно, сейчас для Middle уровня не нужны и шаблоны и битовая арифметика?

  • @antonschoolboy2304
    @antonschoolboy2304 ปีที่แล้ว

    Это мидл из аспирантуры? Весело.🤣

  • @aapes-yx6ql
    @aapes-yx6ql ปีที่แล้ว

    Думаю, это собеседование на джуна, я не на мидла, и стоит все-таки поменять название видео.

  • @user-kv3eo9br8m
    @user-kv3eo9br8m ปีที่แล้ว +7

    Впечатляет что C++ еще кому-то интересен из молодежи

    • @alexla_grange8957
      @alexla_grange8957 ปีที่แล้ว +1

      да это же совершенный язык ! ))

    • @bravo2625
      @bravo2625 ปีที่แล้ว

      Сейчас все уники только его и дают(естественно есть факультативы например по питону, но то отдельно)

    • @alexla_grange8957
      @alexla_grange8957 ปีที่แล้ว

      @@bravo2625 А что там дают - семестр на Си и Плюсы вместе взятые - это даже не смешно.

  • @MariaEsenina
    @MariaEsenina ปีที่แล้ว

    Да нормальный парень. А по поводу extern и тем более union я бы не парилась, это вроде бы и надо знать, но во-первых, молодые всё реже с этим сталкиваются, а во-вторых, если столкнутся - неужели вы думаете, что разработчик такого уровня за пол часика не поймёт как это работает? Гораздо важнее то, как человек мыслит, а не то какой он заучка. Вряд-ли на рабочем месте кому-либо запретят иметь пару томиков на всякий случай. Здесь даже вместо объяснения лучше попросить угадать на опыте дав лёгкий намёк что это может быть, опять же посмотреть как человек мыслит, даже если даст неверный ответ.

  • @jacemon
    @jacemon ปีที่แล้ว +1

    Господа, может кто сможет мне ответить: Автор канала сказал, что есть какой-то обходной путь по разграничению .h .cpp при создании шаблонов. Так вот что это за способ? Было бы неплохо, если сможете скинуть статью.

    • @user-re6xz2xc7s
      @user-re6xz2xc7s ปีที่แล้ว

      Можно явно частично инстанциировать шаблон:
      .hpp:
      template void foo(T t);
      .cpp:
      template void foo(int t);
      template void foo(string t);
      template void foo(T t) {
      // some works
      }
      Для не инстанцированых типов будет ошибка что нету реализации для символа

    • @jacemon
      @jacemon ปีที่แล้ว

      Спасибо за ответ

  • @jabzz5569
    @jabzz5569 ปีที่แล้ว +1

    Это оксимирон проводит собеседование?

    • @marie_baranova
      @marie_baranova 11 หลายเดือนก่อน

      да, а что?

  • @xvostbobra
    @xvostbobra 7 หลายเดือนก่อน

    А у вас по высшему образованию берут?

    • @ambushedraccoon6408
      @ambushedraccoon6408  6 หลายเดือนก่อน +1

      Смотря где. В Европе и США очень тяжело без диплома, на постсоветском пространстве проще, но тоже иногда могут спросить. В любом случае диплом лучше иметь, но его отсутствие, конечно же, не причина не строить карьеру программиста.

  • @RushFuture
    @RushFuture ปีที่แล้ว

    Смог досмотреть до extern "C"... "Будут компилироваться как C", чё правда? :) Может лучше не спрашивать того, чего сам не знаешь? И уж тем более стоит не рассказывать свои выдумки поучительным тоном :) Впрочем всё понятно было ещё по "хИдерам" и "сипипи файлам" вместо заголовков и модулей.

  • @aissp
    @aissp ปีที่แล้ว

    У меня чего-то возникли вопросы к тому кто проводит интервью ;) из претензий наверное: много говорит, не улыбается, не старается расслабить собеседника, соотвественно не ясно как человек будет работать в команде, как-то так

  • @RUMACTEP
    @RUMACTEP ปีที่แล้ว +1

    Все-таки это уровень Junior'а, а не Middle'а

  • @user-cb8nc5to4z
    @user-cb8nc5to4z ปีที่แล้ว +1

    39:40 Ждал от собеседующего упоминания о LE и BE. Че там мудрить: двоичная история - это всегда индивидуальная снежинка.

  • @justman7656
    @justman7656 ปีที่แล้ว +1

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

    • @iforand
      @iforand ปีที่แล้ว

      А что ты понимаешь под "экранированием"?

    • @justman7656
      @justman7656 ปีที่แล้ว

      @@iforand так называют спецсимволы в строках, по крайней мере в С и С++, если ты просто вставшь, скажем, двойную кавычку в строку, то компилятор распознает её как конец строки и выдаст тебе ошибку, именно поэтому создали экранирование, когда ты перед подобными неудобными символами вставляешь косую черту, чтобы они точно трактовались компилятором именно как символы, а не как часть синтаксиса

    • @iforand
      @iforand ปีที่แล้ว

      @@justman7656 так и чем это отличается от "просто добавить перед экранируемым символом по слешу"? :)

    • @justman7656
      @justman7656 ปีที่แล้ว

      @@iforand просто я полагал, что задача в том чтобы вставить неэкранированный слэш и экранировать тем самым заданный символ

    • @iforand
      @iforand ปีที่แล้ว

      @@justman7656 Э-э, что? :D Экранирование - это и есть "просто вставить обратный слешь перед символом". Что вообще означает "вставить неэкраниррванный слешь"? :) Экранирование просто указывает компилятору или другому текстовому процессору, что следующий символ не является управляющим и его нужно воспринимать как обычный символ. Ничего более.

  • @leonidpospelov2437
    @leonidpospelov2437 ปีที่แล้ว

    нормальный чувак, всё знает. сделает прекрасную карьеру. а в комментах душнилы

  • @processdemidnet
    @processdemidnet ปีที่แล้ว

    Middle C++, не знающий что такое Extern, установка бита числа циклом? Круто... Азов нет, зато OpenCV якобы есть. Веселые вы ребята :)

    • @processdemidnet
      @processdemidnet ปีที่แล้ว

      Ой, еще и минус Union... мы вам перезвоним...

  • @user-wo6df9by4e
    @user-wo6df9by4e ปีที่แล้ว +1

    да это почти senior судя потому что он умеет. я вообще не понимаю что он делает и для чего, и о чём они говорят. целый час пытали и отлично себя проявил

    • @rallyguard2437
      @rallyguard2437 ปีที่แล้ว

      учу С 2 месяца и понимаю о чем идет речь в видео, вопросы точно не уровня мидла

    • @mihax56
      @mihax56 ปีที่แล้ว

      в каком месте сеньер? собеседование уровня джуна чутка продвинутого.

  • @sergeyvlasov207
    @sergeyvlasov207 ปีที่แล้ว

    50:00 а для std string разве нет подсчета ссылок??? хм

    • @iforand
      @iforand ปีที่แล้ว

      Нет. Но если хочется подсчёта ссылок, есть умные указатели для этого: std::shared_ptr
      А так std::string по сути тот же std::vector, но со встроенным буфером фиксированного размера, чтобы не выделять динамическую память под мелкие строки.

  • @_.rizhiy._674
    @_.rizhiy._674 ปีที่แล้ว +2

    Как на счет разобра резюме для C++ разраба? Что на счет пет проектов и на что обращают внимание при просмотрах резюме?

    • @ambushedraccoon6408
      @ambushedraccoon6408  ปีที่แล้ว +2

      Было уже такое. 4 стрима. Разбирали резюме, которые зрители присылали.
      Вот плэйлист:
      th-cam.com/play/PLDWyp7QYaNaI1yKWaolh0jS0KNB8rQ_pT.html

    • @z140140
      @z140140 ปีที่แล้ว

      @@fuunnyvideospeedrun в с++ мало вакансий и мало кандидатов, а средний уровень кандидатов выше. мне например даже в 21-м году рекрутеры писали раз в месяц. думаю ты с таким числом приглашений просто бы повесился

    • @user-or1hy4xz8u
      @user-or1hy4xz8u ปีที่แล้ว

      @@z140140 а сколько лет опыта на С++ у тебя?

  • @DamirKamenev
    @DamirKamenev ปีที่แล้ว

    Нормализацию ролика по громкости хорошо бы сделать. У интервьюера невыразительная дикция и довольно тихий голос (или низкий уровень записи микрофона). У кандидата ровно наоборот. Один шепчет, другой бьёт по мозгам. Большое спасибо, что голос не повышает!

  • @threedking
    @threedking ปีที่แล้ว +1

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

  • @user-me7nx7ss2r
    @user-me7nx7ss2r ปีที่แล้ว +1

    *Создай пожалуста больше видео обучений по ООП про как роботать с указателем this как роботает move_constructor как роботать с класами внутри класов. Буду очень благодарен*

  • @cyrilanisimov
    @cyrilanisimov ปีที่แล้ว

    Вопросов про плюсы я тут не увидел - задачка на алгоритм, вопрос про сишный extern, битовою маску (серьёзно, битовые задачки часто приходится решать?), какая двоичная сериализация, что это за вопрос? Сохранение куска памяти - это не сериализация) Зачем Union в плюсах? Есть же Variant. В Qt стандартная библиотека нифига не отзеркаливается, подходы абсолютно другие. В общем, тут вопросы интервьюеру.

    • @alienhazzard7201
      @alienhazzard7201 ปีที่แล้ว

      @ Cyril Anisimov
      Битовые задачи приходится решать часто. Сохранение куска памяти - это не сериализация.

    • @cyrilanisimov
      @cyrilanisimov ปีที่แล้ว

      @@alienhazzard7201 битовые операции - это не плюсы, они есть во многих языках.
      И я про это говорю)

  • @soulspirit8687
    @soulspirit8687 ปีที่แล้ว +1

    Qt, OpenCV и всё такое..... Если это собеседование на джуна, где решение алгоритма экранирование сомволов в строке занимает у собеседуемого так много времени, то я я сеньёр

  • @imsomewhere1734
    @imsomewhere1734 10 หลายเดือนก่อน

    Ребята, return std::string(); или return ""; как раз только и было до С++11. :)
    Привыкли вы к питонщине безтиповой вроде {}.

  • @dmitryyudin4990
    @dmitryyudin4990 ปีที่แล้ว +2

    Мидл собеседует джуна, так вижу)

  • @0xsadcat92
    @0xsadcat92 ปีที่แล้ว

    К первой задаче return std::regex_replace(...) подошел бы?)

    • @decltruft2882
      @decltruft2882 ปีที่แล้ว +1

      Такие выкрутасы из CodeWars не прокатят: вся фишка в алгоритмической составляющей вопроса, а не в использовании готовой тулзы

    • @letmeregisterbitch
      @letmeregisterbitch ปีที่แล้ว

      Регексп тяжелая штука и здесь оверкилл

    • @alienhazzard7201
      @alienhazzard7201 ปีที่แล้ว

      @ 0xSADCAT
      смысл задачи не в использовании готового инструмента без понимания, как он устроен.

    • @iforand
      @iforand ปีที่แล้ว

      Хренасе! Я ещё понимаю вопрос про "почему бы не использовать replace?", но подумать здесь об regex_replace - это новый уровень! Даже не знаю как ещё можно сделать здесь код более тормознутее :)

  • @mihanapushka3896
    @mihanapushka3896 8 วันที่ผ่านมา

    Если сейчас все джуны такие, то залететь на рынок it супер легко

  • @wuzahns5302
    @wuzahns5302 ปีที่แล้ว +1

    хидэр

  • @eliasshalnev8466
    @eliasshalnev8466 ปีที่แล้ว +4

    А зачем спрашивать про extern в интервью по С++? Это сишная штука, добавленная исключительно для обратной совместимости. + сам интервьюер не совсем правильно ответил на свой же вопрос. extern нужен как раз для объявление (declare) переменной, а ее определение (definition) может находиться в другом месте. Использование данного трюка в С++ проектах является не очень хорошим стилем.

    • @ambushedraccoon6408
      @ambushedraccoon6408  ปีที่แล้ว +1

      Неоднократно сталкивался с таким вопросом на собеседованиях. А конструкция extern в плюсовых проектах встречается, каким бы стилем это не являлось. Так же обычно за этим вопросом следует вопрос про extern "C".
      А то, что сказал что-то неправильно. Ну собеседование не постановочное, могу и оговориться, всякое бывает.

    • @z140140
      @z140140 ปีที่แล้ว +1

      это как это?? если у тебя есть переменная используемая в нескольких модулях - без extern ты не обойдёшься

    • @pchelnick
      @pchelnick ปีที่แล้ว

      @@ambushedraccoon6408 Именно оговориться? :) Ошибиться Вы никак не сможете? ;)

    • @billjohnes9380
      @billjohnes9380 ปีที่แล้ว

      @@z140140 По поводу "если у тебя есть переменная используемая в нескольких модулях - без extern ты не обойдёшься".
      И это говорит senior+1?
      Никакой это не senior+1, и даже -- не senior, максимум -- middle.
      Начиная с C++17, такой способ есть, и настоящий Senior его знает.

    • @alienhazzard7201
      @alienhazzard7201 ปีที่แล้ว

      @ Elias Shalnev
      Это не трюк, а необходимость.

  • @BeginBye
    @BeginBye ปีที่แล้ว +3

    Да "ХЭДЭР" (header), блин! А не хидэр

  • @user-ro3yp4sz4h
    @user-ro3yp4sz4h ปีที่แล้ว +5

    Когда интервьюер на собеседовании говорит: не готов сейчас к разговору о деревьях. То становится неловко за интервьюера. Я думаю пояснять тут ничего не нужно.
    В остальном понравилось. Продолжай!

    • @ambushedraccoon6408
      @ambushedraccoon6408  ปีที่แล้ว +5

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

    • @user-ro3yp4sz4h
      @user-ro3yp4sz4h ปีที่แล้ว

      ​@@ambushedraccoon6408 с ответом согласен. Просто на мой взгляд на видео это выглядело по-другому. Главное, что продолжаешь снимать и чем дальше тем интересней) респект

  • @MotivationRUS37
    @MotivationRUS37 ปีที่แล้ว

    Здравствуйте, подскажите пожалуйста мне 14 и на данный момент изучаю С++, где искать информацию для теории и как мне практиковать задачи? ибо я плохо искал и не знал как решать задачи.

    • @user-yu5yz7pf4u
      @user-yu5yz7pf4u ปีที่แล้ว

      Никак иди картошку копать

    • @ambushedraccoon6408
      @ambushedraccoon6408  11 หลายเดือนก่อน

      Здравствуйте!
      Рекомендую тут начать изучение:
      ravesli.com/uroki-cpp/
      задачки можно брать на литкод(сложность Easy)
      leetcode.com/
      Для более общей подготовки по информатике рекомендую обратить внимание на книгу
      "Информатика, Методы алгоритмизации, 8-9 класс, Котов В.М., Волков И.А., Лапо А.И."
      и потом 10-11-й класс.

  • @hmixa
    @hmixa ปีที่แล้ว +7

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

    • @fedoresko
      @fedoresko ปีที่แล้ว

      Да, тут интетесны градации между джуном и мидом. Понятно, что всё на усмотрение собеседующего. По этому кандидату видно, что он высокоуровневый программист, хорошо понимает лямбды, но битики-байтики не особо его интересуют, странно что выбрал именно C++ после джавы, не ясно что именно в C++ подкупило. )

    • @bookbrain9863
      @bookbrain9863 ปีที่แล้ว

      @@fedoresko объясни пж как происходит смещение строки если они добавляют символ перед char c, я знаю как это можно на си сделать, но как реализовано в стринг хз

    • @fedoresko
      @fedoresko ปีที่แล้ว

      @@bookbrain9863 если не знаешь, то посмотри. ) Вот например:
      template
      basic_string
      operator+(_CharT __lhs, const basic_string& __rhs)
      {
      typedef basic_string __string_type;
      typedef typename __string_type::size_type __size_type;
      __string_type __str;
      const __size_type __len = __rhs.size();
      __str.reserve(__len + 1);
      __str.append(__size_type(1), __lhs);
      __str.append(__rhs);
      return __str;
      }
      Делаешь новую строку - добавил символ, добавил старую: всё готово. )

    • @bookbrain9863
      @bookbrain9863 ปีที่แล้ว

      @@fedoresko понятно, то есть всё равно смещать надо право всю строку, я бы сделал без использования кучи, ну да ладно

    • @fedoresko
      @fedoresko ปีที่แล้ว

      @@bookbrain9863 тут нет указания, используется ли куча. На практике небольшие строки аллоцируются на стеке.

  • @KurlesHS
    @KurlesHS ปีที่แล้ว +1

    получить на вход константную ссылку и пытаться ее изменить - ну такое себе. И даже если на вход не константная переменная подавалась бы - то совсем инвалидацию указателей не учитывал.

  • @user-zl8tq5qv1o
    @user-zl8tq5qv1o ปีที่แล้ว +1

    очень интересное интервью. Уровень претендента вероятно, даже ниже моего - а я на с++ не написал ничего кроме "hello world". Однако в битовых операциях понимаю гораздо больше малыша, и с небольшой подсказкой написал бы требуемое.

  • @yaroslaveremenko4900
    @yaroslaveremenko4900 10 หลายเดือนก่อน

    И это мидл?)

  • @konstantinvasik9624
    @konstantinvasik9624 ปีที่แล้ว

    алё, чуваки, я ждал, что будут задачи (а-ля Роберт Седжвик), т.е. воплощение смыслов, а не синтаксическая грамотность - за неё уже работодатель платит деньги?*??

  • @goczt
    @goczt ปีที่แล้ว

    Не очень понравилась подача copy-on-write строк под соусом того, что они "как будто-бы лучше" (да, я понимаю, что напрямую автор не говорит, что они лучше) std::string'а, потому-что ты их передаешь по значению и они не копируются. Если есть такой страх копирования строки при передаче в функцию, лучше уж её передать по константной ссылке и всё, проблема решена простым механизмом языка, и об этом должен знать как мидл, так и джуниор.
    У CoW-строк есть самый существенный недостаток - вместо копирования при передаче, они "недетерминированно" копируются при совершенно нормальных операциях, типа замене символа, конкатенации и т.д. За всеми этими случаями ненамеренного копирования следить гораздо сложнее, чем всегда передавать const std::string&.