Тёмный

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

Ambushed Raccoon
Подписаться 11 тыс.
Просмотров 138 тыс.
50% 1

Всем привет!
Провели тренировочное собеседование с Александром на позицию 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 Фидбэк

Опубликовано:

 

28 июн 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 369   
@ambushedraccoon6408
@ambushedraccoon6408 Год назад
Всем привет! Объявляю набор кандидатов на собеседование Middle С++. Требуются разработчики с опытом 1-3 года. Собеседование проводится только с видео. Если вы хотите проверить свои знания и попасть в новое видео, то пишите мне на почту ambushed.raccoon.tube.mail@gmail.com с темой “Middle собеседование кандидат”. В письме пишите свои контактные данные(желательно telegram), описание ваших знаний или резюме. Со своей стороны гарантирую, что видео будет выложено только с вашего согласия. Так что не бойтесь. Будьте внимательнее с темой письма, потому что они очень легко попадают в спам.
@relaxationchanne9130
@relaxationchanne9130 7 месяцев назад
Странно, что в названии написано "Собеседование Middle C++",а первые слова собеседование на позицию junior.
@MrBratkenSolov
@MrBratkenSolov Год назад
Собеседование: разверни дерево, найди оптимальный путь Реальность на работе: фикс ошибки из-за отсутствующей запятой, катить самому в прод без техлида в пятницу
@ChannelCheesecake
@ChannelCheesecake 9 дней назад
Ну собеседование гораздо интереснее и прикольнее работы, что еще сказать тут
@onegamer6596
@onegamer6596 Год назад
Спасибо за контент. Очень интересно.
@user-pz2vr8ur1b
@user-pz2vr8ur1b Год назад
Видео клевое, но хочется тайминги еще :) Ждем материала от вас, вы очень приятно объясняете материал
@ambushedraccoon6408
@ambushedraccoon6408 Год назад
Спасибо) Тайминги сделал.
@n.r.x62
@n.r.x62 Год назад
Интервью было интересное, как для студента второго курса очень даже познавательно проверить какие то свои навыки, на большую часть вопросов смог ответить)) Про тхт и бинарники правда как то косвенно отошли от ответа, все таки главный недостаток и преимущество это читабельность данного файла, ведь просто тхт можно спокойно открыть, прочитать/переписать, а в бинарном будут каракули и его не разобрать)) Но в тоже время некая защита/конфиденциальность информации, спасибо за видео, было очень интересно, хочу еще.
@user-po6ex2is6e
@user-po6ex2is6e Год назад
сериализация предназначается для программы, человеку незачем её читать, он конечно может, но это не для этого. Если нужна конфиденциальность, то для этого существует шифрование и неважно текст это или бинарное представление. Основная проблема бинарного формата порядок бит на разных платформах, он может отличаться.
@shaman888y
@shaman888y Год назад
Этот парень помогает поверить в свои силы.
@KostopravHD
@KostopravHD Год назад
хорошее видео, хороший канал, всем спасибо!
@arturhisamutdinov9285
@arturhisamutdinov9285 Год назад
Для вопроса про сериализацию двунаправленного списка можно сделать намного проще: Обозначаем тип и указываем цикличный этот список или нет, дальше данные кладем в виде массива. На выходе получаем минимальный объём сериализованных данных + обработку за один проход как для записи, так и для чтения.
@Pavel.Zhigulin
@Pavel.Zhigulin 11 месяцев назад
Можно ещё проще: сериализуем как массив и кладём хер на тип. Кому надо - десереализуют в двунаправленный список. Кому не надо - десереализуют массив.
@vasiliypupkin6311
@vasiliypupkin6311 Год назад
Очень классный контент, для Джуна, много вещей, что надо подтянуть, хочется уже быстрее на работу и задонатить, ты делаешь очень многое для начинающих, спасибо!
@alienhazzard7201
@alienhazzard7201 Год назад
@ Vasiliy Pupkin Бойтесь своих желаний - они исполняются.
@vasiliypupkin6311
@vasiliypupkin6311 Год назад
@@alienhazzard7201 уже 7 месяцев как не исполняется(
@george.8888
@george.8888 Год назад
@@vasiliypupkin6311 Ты был джуном 7 месяцев назад. Почему не получилось? Ответь развернуто, пожалуйста, мне очень интересно как начинающему.
@vasiliypupkin6311
@vasiliypupkin6311 Год назад
@@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 Спасибо что потратили свое время! Я пришел к выводу что стоит начать с вэб разработки, стандартный пакет с хтмл, цсс, джава скрипт. Всегда будет спрос, всегда можно брать фриланс пока ищешь. работу. Уже после можно изучить языки под узкие направления, которые интересуют, вроде гейм дизайна и тд. Как вы считаете, это правильное решение? Многие говорят про Питон, что он самый лёгкий для начинающих, но мне почему то кажеться самым разумным решением начинать с вэб..
@Nandarion
@Nandarion Год назад
Пару советов для собеседуемого: 1. Сначала придумываем алгоритм, и оцениваем его сложность О(), только потом начинаем писать код. 2. Помним, что изменять коллекцию, от которой уже взят итератор, куда-то передан указатель или ссылка нельзя. 3. Сложный код ведет к неделям отладки, поэтому пишем максимально просто. 4. Когда говорят "забей на проверки", вместо проверок вначаеле вставляем коммент //TODO, чтобы не забыть, иначе есть вероятность, что все так и останеся. Для собеседующего: 1. Не следует слишком "проталкивать" свое решение, возможно, что кандидат немножко поколдовав над кодом вполне сможет найти более элегантное или более простое решение. В реальной работе у него на это 5 минут то будут. Прочее 1. про бинарную сериализацию в 2022 году можно сказать - сериализация при помощи memcpy - говнокод прошлого века. Хорошо если джун знает почему, но если не знает это не проблема.
@ambushedraccoon6408
@ambushedraccoon6408 Год назад
Все по делу, Спасибо.
@maxch3
@maxch3 Год назад
//TODO слишком часто тоже так и остается :)
@Nandarion
@Nandarion Год назад
@@maxch3 Ну если есть код-ревью или при рефакторинге TODO практически наверняка будет замечено, и если есть возможность то исправлено. Отсутствующий код же если и будет замечен то это будет "ага, баг", или "опять он наговнокодил". Ну а что еще можно сделать кроме коммента, если говорят забить на проверки, так как нету времени.
@user-cb8nc5to4z
@user-cb8nc5to4z Год назад
С вами лучше не спорить.
@myriaxont
@myriaxont Год назад
Касаемо первого пункта, стоит учитывать локальность памяти и инструкций возможных реализаций алгоритма. Так же стоит учитывать возможность распараллеливания алгоритма, явного или же возможного к выполнению компилятором - как и по средствам многопоточности, так и по средствам векторизации вычислений. А вообще, параметров оценки оптимизации куда больше, но это основные.
@idodoqdo5783
@idodoqdo5783 Год назад
Очень интересно. Ты располагаешь к тому, чтобы любить c++
@kookaburru
@kookaburru Год назад
Норм собес, сам вспомнил плюсы :)
@antonkulikov6726
@antonkulikov6726 Год назад
Впринципе ничего страшного не будет,если мы унаследуемся с модификатором protected от вектора. Так,что на мой взгляд ,собеседуемый сказал правильно: он сказал про private наследование от вектора. Потому,что в таком случае механизм полиморфизма работать не будет. Но есть и достоинства: при таком подходе можно получить доступ к protected членам вектора. При композиции так нельзя сделать. Ещё Здесь есть один риск,если пользователь будет делать reinterpret_cast к вектору(к указателю на вектор) и явно вызывать деструктор. Но по мне это такое себе. Как завещал Скотт Майерс: предпочитайте композицию наследованию.
@billjohnes9380
@billjohnes9380 Год назад
Только почему никто не озаботился вопросом, насколько часто сам объект вектора создаётся динамически так, чтобы пользоваться им потом через указатель на базовый класс?
@valtz2002
@valtz2002 Год назад
Охуительно, посмотрел за ужином, о чем они говорят - х.з. но очень интересно. Спасибо ютюбу за рекомндацию ахахахахахаха... Комменты тоже доставляют. Удачи вам парни!
@stanislavzemlyakov5442
@stanislavzemlyakov5442 Год назад
Слава Богу, я скипнул вот эту всю часть computer science про частичные функции в целом, и си в частности.
@igorkl5167
@igorkl5167 Год назад
Сам я не программист, но всегда восхищаюсь этими ребятами.
@mrbibis7229
@mrbibis7229 Год назад
ну не знаю, какой-нибудь инженер в разы круче, чем программисты. Сейчас программист - это в основном знаток языка, даже без знания математики или дискретки, а раньше нужны были именно инженерные знания
@addressmodel2121
@addressmodel2121 10 месяцев назад
@@mrbibis7229 , на одном чистом языке много не напрограммируешь - нужны ещё знания библиотек. А библиотек разных много: - игровые движки; - базы данных; - редакторы изображений; - распознаватели речи; - работа с протоколами интернета; - ну и библиотеки работы с математикой. На каждую библиотеку её внутренние алгоритмы знать не будешь, а библиотек сотни штук! Вывод: для программиста главное уметь пользоваться софтверными библиотеками. А дискретной математике его за пару месяцев обучит куратор проекта.
@shiftingsandsgames
@shiftingsandsgames 10 месяцев назад
​@@mrbibis7229ну попробуй аллокатор памяти написать под вулкан, или драйвер, или движок, математика не нужна, но мышление на вес золота.
@HighlanderMcLeod
@HighlanderMcLeod Год назад
Работаю вместе с джамшутами на стройке. Возле Рублёвки, чистыми выходит ~120. Почему это оказалось у меня в рекомендуемых??
@simvoli
@simvoli 3 месяца назад
Алгоритмы ки вычислили с кем ты работаешь. Джамшуты программисты и угорают с тебя на стройке. Ки подслушала их разговоры и решила тебе подсобить.
@tribacckk
@tribacckk Год назад
Прикольно, посмотрел пока только 1ую задачу. И какое-то двоякое мнение: 1)были такие задачи на собесах и сразу бросался решать. Но вот это видео мне попалось вечерком под ужин. И прям 1ое что в голову пришло - написать сначала тесты. И чтобы в них были конер кейсы. Однако когда такие задачи на собесах встречаются, как-то эта мысль не приходит в голову почему-то, видимо нервы) 2)обычно при решении таких задач надо - накидать дубовое решение в лоб. - потом его проговорить его и оценить сложность. - поток уже реализация - потом уже обсудить что получилось. Подсветить плюсы и минусы. - и вот теперь уже попытаться обработать конер-кейсы Пишу это для того чтобы узнать мнение других людей, тех кто ходил на собесы, или может тех кто эти собесы проводит. P.S. на работе обычно вначале прикидывается решение (возможно обсуждается архитектура). Потом прикидываются юзер-кейсы. Потом уже реализация. А на тех.интервью вроде все также, только в обратной последовательности.
@dangername6996
@dangername6996 Год назад
Сам я на собесы не ходил (работу как-то плавно получил со стажерства)). Но многие знакомые/друзья говорят, что мол, лучше всего начать писать самое просто решение в лоб, невзирая на особенности и крайности (на примере первой задачи, забить на первый символ, последовательность символов и т.д.) и просто решить общую задачу. А потом уже готовое решение доработать и доделать для решения "тонких" задач.
@alexnedelin7646
@alexnedelin7646 Год назад
если не "прятать" от компилятора тип переменных унасленованного от vector класса, то невиртуальность деструктора ~vector проблем вызвать не должно. в смысле если не делать такое: std::vector * pVec = new TMyInheritedIntVector(); ...; delete pVec;
@gellolenok
@gellolenok Год назад
Почему бы не экранировать с 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 Год назад
Вы приняты в Valve, поздравляем! :D
@user-cq9ze8rk8s
@user-cq9ze8rk8s Год назад
Здравствуйте. А будет сборка Quake из исходников ?
@iforand
@iforand Год назад
8:00 Почему std::string() ошибка? Это же просто вызов стандартного конструктора. Пустые фигурные скобки ведь тоже приведет к вызову того же стандартного конструктора.
@BloganProgramming
@BloganProgramming Год назад
Я являюсь преподавателем 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 Год назад
ладно
@grigoriikushnir4927
@grigoriikushnir4927 Год назад
Сначала ты пишешь: "Какая разница, какой у него коммерческий опыт? Я могу за 10 лет поменять 10 компаний, везде быть джуном и рассказывать, что в одной компании я делал одно, в другой другое, и так далее." А потом: "Почему кандидату надо знать об extern "C"? Я работал в нескольких компаниях, и ни разу не было причины использовать это." Не делай так.
@BloganProgramming
@BloganProgramming Год назад
@@grigoriikushnir4927 А как эти 2 утверждения взаимосвязаны?) Второе утверждение объясняет то, что вопрос лишний для джунов.
@grigoriikushnir4927
@grigoriikushnir4927 Год назад
@@BloganProgramming Тем, что твое первое утверждение обесценивает твое второе утверждение как аргумент. Твой коммерческий опыт не является доказательством того, что кандидату не надо что-то знать. Это если по твоей логике. Из моего опыта, в среднем, чем больше коммерческий опыт, тем больше у человека знаний потому что он решал больше бизнес задач. Как это проверить - другой вопрос. Но закономерность подтверждается жизнью.
@BloganProgramming
@BloganProgramming Год назад
@@grigoriikushnir4927 Ты все еще не понимаешь, что между моими утверждениями нет никакой связи. Первое касается того, что незачем спрашивать за коммерческий опыт. Второе касается того, что вопрос является слишком узконаправленным и довольно простым, чтобы его спрашивать. На этом я заканчиваю эту беседу, так как если ты после этого ничего не поймешь - смысла объяснять тебе далее нету.
@user-ji5vu2ln1j
@user-ji5vu2ln1j Год назад
Классный контент. Спасибо большое) Было бы круто вывести тайм-коды для более быстрого просмотра и самого интересного, для себя Спасибо))
@ambushedraccoon6408
@ambushedraccoon6408 Год назад
Спасибо) Таймкоды будут. Сейчас в приоритете провести собеседования и выложить их. После этого займусь таймкодами.
@ilyazakharou468
@ilyazakharou468 Год назад
@@ambushedraccoon6408 таймкоды сделать это меньш часа лентяй.
@ambushedraccoon6408
@ambushedraccoon6408 Год назад
Таймкоды сделал.
@user-ji5vu2ln1j
@user-ji5vu2ln1j Год назад
@@ambushedraccoon6408 спасибо ты лучший!)
@user-pg8ry1tm3t
@user-pg8ry1tm3t Год назад
Ну имхо строку следует считывать прямо на ходу в какой нить вектор посимвольно и просто вставлять экран перед символом…
@IgorAlov
@IgorAlov Год назад
Почему то сразу пришло в голову, что для подсчета символов итерировался бы бОльшим объектом, чем символ (размером командного слова на архитектуре например), ну и битовой максой по указателю проверял бы истину. так за меньшее число тактов можно почитать необходимы размер (но на самом деле размер не нужен). /или может быть сразу inline на asm воткнуть/. Попутно "битового пробега" составил бы карту (массив сдвигов) вхождений элементов, который после пробега использовал бы для копирования участков памяти, и между нужными элементами вставляли бы экран. По поводу битовых операторов, не плохо бы сначала определиться с big-endian и liitle-big-endian. Можно просто нечаянно уехать не в ту память. Код написанный для изменения битов содержит else, он там лишний и портит читабельность код (по рукам за такое, мидл так не пишет).
@alexeypavlyutkin886
@alexeypavlyutkin886 2 месяца назад
насчет битовых операторов... еще раз подумайте хорошенько, и ответьте, почему эндиан не имеет значения
@user-dk5rx1be6v
@user-dk5rx1be6v Год назад
❤️
@dainispolis3550
@dainispolis3550 Год назад
Ambushed Raccoon - Парень ретурн std::string(); по моему указал правильно , ведь резултат - обект типа std::str а не функция
@andreygurenkoff2721
@andreygurenkoff2721 Год назад
не понял. у вас написано мидл, а в видео говориться , что собес для уровня джуна ? опечатка или оговорка в видео ? можете объяснить, "что значит учитывая коммерческий опыт" ? вы имеете ввиду, что сейчас на джуна необходима подготовка уровня мидла ?
@rocketsay
@rocketsay Год назад
"на позицию Middle C++ Developer" - в видео студент на позицию джуна)))))))))))
@KostopravHD
@KostopravHD Год назад
так одно другому не противоречит, может парень пришел рановато
@lightinguniverse4952
@lightinguniverse4952 Год назад
Они оба джуны, опрашивающий сам ни в чём не уверен, спросить нормально ничего не может, речь у обоих убогая, два слова связать не могут, вопросы тупые, решения ещё тупее.
@user-ln2ft2mo3c
@user-ln2ft2mo3c Год назад
@@lightinguniverse4952 Ты прав - тут есть над чем работать. Автор весьма косноязычен, речь не выразительна, много мусора. В одном видео он говорит "прийти НА ОФИС" - несколько раз - стыдно однако
@cyrilanisimov
@cyrilanisimov Год назад
26:38 "...мы будем сдвигать вправо..." - "Почему не влево?" - "Потому, что это Мак)))"
@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 Год назад
да, по сути это будет последовательность данных, а при десериализации будет уже создание двунапр. списка
@d3i0
@d3i0 Год назад
Зря подсказал что цикл не понадобится в задаче с set_bit, было бы прикольно посмотреть как он с циклом решит :D
@uniers
@uniers 5 месяцев назад
Вставка в середину массива, по моему надо использовать linked list
@pyreorion
@pyreorion Год назад
Я не критикую, но просто интересно, в каком месте кандидат ближе к мидлу?
@Anti-Z
@Anti-Z Год назад
Я не знаю с++, поетому может мой вопрос примитивньій. Но, как я понял из первого задания слеш нужно ставить перед символом которьій передаеться в с. А судя по коду он будет ставить етот слеш в начало строки: answer = += "\\" а не в позицию перед етим символом в строке (тип і -1, где і - позиция символа с).
@nikolay1405
@nikolay1405 Год назад
по конечному коду, он идет в цикле и прибавляет к результирующей строке либо просто символ из заданной строки, либо слеш+символ, если он совпадает с условием.
@DooDleZTv1
@DooDleZTv1 Год назад
смотрю с огромным интересом хоть ни черта не понимаю
@user-ss9vo7fq3z
@user-ss9vo7fq3z Год назад
Что прошлый ролик, что это - уж очень хочется узнать, чем одному не понравился JavaScript, а другому Java.
@user-yk7li6ni4o
@user-yk7li6ni4o Год назад
Ну у каждого свои предпочтения. Мне лично тоже java не заходит. JS я не пробовал, поэтому ничего сказать не могу.
@danilsergeev3339
@danilsergeev3339 Год назад
Привет, я, например, front-end разработчик, но получаю огромное удовольствие от написание кода на golang, нежели на js(typescript), не знаю, как-то так уж получилось)
@phat80
@phat80 Год назад
Причины, по которым может не нравится язык, есть у каждого языка. Если бы существовал идеальный, универсальный язык, на нем бы все и писали. Выбор языка - это всегда компромисс. И всегда есть языки, в которых человек не может найти этот компромисс для себя. Например, лично мне в Java не нравится ее многословность. В JS мне не нравиться подход, построенный на прототипном наследовании, динамическая типизация и то, что null по какой-то неведомой причине является в JS объектом. Тем не менее я не против пописать, как на Java, так и на JS.
@LikeOnFilm
@LikeOnFilm Год назад
блииииин обыкновенное экранирование! мать моя дельфи...))))
@shredVFZ
@shredVFZ Год назад
48:12 - на этот вопрос ответить без мата в сторону стандартизаторов очень сложно
@StasonST19
@StasonST19 Год назад
найс
@vp_arth
@vp_arth 4 месяца назад
В первой задаче не возникло вопроса, что делать с уже существующими в строке слешами
@grenadier4702
@grenadier4702 Год назад
Есть ли смысл выносить "\\" в переменную, чтобы не создавать каждый раз указатель? 14:10. Или компиляторы оптимизируют этот процесс?
@old_cd_rom9518
@old_cd_rom9518 Год назад
Компиляторы оптимизируют твой код иногда до такой степени, что ты даже представить себе не можешь))
@grenadier1653
@grenadier1653 Год назад
@@old_cd_rom9518 здорово тогда
@waagnermann
@waagnermann Год назад
парень студент - хорош
@dianapai6565
@dianapai6565 Год назад
А есть ли какая то возможность попасть к вам на пробное собеседование?)
@ambushedraccoon6408
@ambushedraccoon6408 Год назад
На данный момент я не веду набор кандидатов. Планирую делать новый набор ориентировочно через 2 недели. Уведомление будет в сообществе и телеграм-канале.
@it_cpp54
@it_cpp54 Год назад
55:55 можно обьяснить при чем здесь виртуальный деструктор, если человек вроде хотел приватно наследоваться?
@dangername6996
@dangername6996 Год назад
Давно я на ++ не писал, а что за конструкция for ( var : var)? Это типа foreach в #? Никогда раньше не видел, даже вон глянул документацию майков, там тоже не нашел такого.
@ambushedraccoon6408
@ambushedraccoon6408 Год назад
Привет. Да, можно провести аналогию с foreach. Называется range-based for loop. Вот ссылочка на док: en.cppreference.com/w/cpp/language/range-for
@dangername6996
@dangername6996 Год назад
@@ambushedraccoon6408 Спасибо, удобная конструкция
@kokosiki40
@kokosiki40 Год назад
объясните, зачем при сериализации двусвязного списка с чем-то мудрить? Просто по порядку как массив записал значения и все
@it_cpp54
@it_cpp54 Год назад
вот-вот. сериализация необходима для передачи данных. А уж на месте десериализуй и клади данные куда необходимо.
@vadimromansky8235
@vadimromansky8235 Год назад
а компилятор правда не ругнется на множество реализаций одной функции? ничоси...
@stanislavzhukov9234
@stanislavzhukov9234 Год назад
Блин, интересный видос. Помоему вопросы даже до уровня Джуна не доходят. Либо просто я о себе слишком плохого мнения (Middle C# dev, OpenSource C++ dev)
@lipaboy_official
@lipaboy_official Год назад
Скорее из-за высоких требований к себе у тебя завышенные требования к другим)
@alexeypavlyutkin886
@alexeypavlyutkin886 2 месяца назад
хм... скажем так, зачастую вопрос кажется простым лишь потому, что таков твой уровень... вот, скажем, задача про установку бита -- все ведь очень просто. ведь правда просто? вот только не советую предлагать такое решение задачи в проекты калибра JDK или V8. выебут
@user-ln2ft2mo3c
@user-ln2ft2mo3c Год назад
задача с экранированием символа решена с ошибкой
@aapes-yx6ql
@aapes-yx6ql Год назад
Думаю, это собеседование на джуна, я не на мидла, и стоит все-таки поменять название видео.
@normanmaddyson8408
@normanmaddyson8408 Год назад
55:45 Виртуальный деструктор в подобном кейсе выглядит избыточно. У вектора и методы не виртуальные, поэтому нет смысла кастить указатель на наш произвольный класс к указателю на вектор, потому что при вызове методов всегда будут вызваны методы вектора. Если пользователь такое делает, то пусть возьмет просто вектор, а не производный класс. А если использует "правильно", то и утечки нет
@user-we1mf4sw5z
@user-we1mf4sw5z Год назад
Для шаблонов есть inl файлы
@ic6406
@ic6406 Год назад
Не понял, какой вызов функции? Там простой вызов дефолтного конструктора, не важно какие скобки
@ic6406
@ic6406 Год назад
а вот дальше std::string answer(); уже ошибка most vexing parse
@threedking
@threedking Год назад
Ну такое..мидл не знает, что шаблоны только в хедере пишутся, какую-то билеберду сначала писал на задаче со строкой. Входные тесты на джуна, которые есть доступом на собес, сложней.
@it_cpp54
@it_cpp54 Год назад
Зачем битовые маски, если есть bitset ?
@jacemon
@jacemon Год назад
Господа, может кто сможет мне ответить: Автор канала сказал, что есть какой-то обходной путь по разграничению .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 Год назад
Спасибо за ответ
@user-rj4hq2vb2n
@user-rj4hq2vb2n Год назад
Оксимирон теперь интервьюирует по С++???
@minma123
@minma123 Месяц назад
человек паук вернулся домой и начал кодить
@sshwey
@sshwey Год назад
Я программист на питоне и на js. Решил посмотреть в 4 часа утра как писать аимбот, наткнулся на старое видео, из него прыгнул на канал и на новое видео. Зачем мне собес на мидла плюсов….ну ладно, берем попкорн, слушаем)))
@vitalyarbuzov5375
@vitalyarbuzov5375 Год назад
в чём вообще смысл твоего комментария ? "хихи посмотрите на меня какой я дурачок завтра егэ, а я хаваю дешевый дофамин)))) Я такой особенный ))))))))))))))))".
@aquahaze
@aquahaze Год назад
​@@vitalyarbuzov5375 🤨
@chaplin4335
@chaplin4335 Год назад
@@vitalyarbuzov5375 иди поспи, чел. тебе отдохнуть нужно
@user-me7nx7ss2r
@user-me7nx7ss2r Год назад
*Создай пожалуста больше видео обучений по ООП про как роботать с указателем this как роботает move_constructor как роботать с класами внутри класов. Буду очень благодарен*
@_.rizhiy._674
@_.rizhiy._674 Год назад
Как на счет разобра резюме для C++ разраба? Что на счет пет проектов и на что обращают внимание при просмотрах резюме?
@ambushedraccoon6408
@ambushedraccoon6408 Год назад
Было уже такое. 4 стрима. Разбирали резюме, которые зрители присылали. Вот плэйлист: ru-vid.com/group/PLDWyp7QYaNaI1yKWaolh0jS0KNB8rQ_pT
@z140140
@z140140 Год назад
@@fuunnyvideospeedrun в с++ мало вакансий и мало кандидатов, а средний уровень кандидатов выше. мне например даже в 21-м году рекрутеры писали раз в месяц. думаю ты с таким числом приглашений просто бы повесился
@user-or1hy4xz8u
@user-or1hy4xz8u Год назад
@@z140140 а сколько лет опыта на С++ у тебя?
@Denys_Lapshyn_1
@Denys_Lapshyn_1 Год назад
так а в чём прикол? не бывает же чистого C++, это либо C++ десктоп либо C++ геймдев. Или я что то не понял ?
@greego4623
@greego4623 Год назад
Я думаю это собеседование больше похоже на позицию джуна?
@ambushedraccoon6408
@ambushedraccoon6408 Год назад
Такие вопросы могут встречаться на собеседованиях на любой уровень. В зависимости от уровня кандидата, ожидается разное погружение и процент отвеченных вопросов. У Александра около одного года коммерческого опыта, что ближе к уровню миддл.
@z140140
@z140140 Год назад
@@ambushedraccoon6408 у меня уровень senior+1, если меня спрашивают про особенности языка - я уже понимаю, что это не моя вакансия
@thegate8985
@thegate8985 Год назад
@@z140140 можете, пожалуйста, рассказать, почему? То есть вы ожидаете вопросов, связанных больше с какими-то более прикладными задачами?
@nightriver7544
@nightriver7544 Год назад
@@thegate8985 позволю себе ответить со своей стороны, так как придерживаюсь такой же позиции. Сеньор это не тот кто знает каждую заковырку с++. Сеньор это тот кто придёт писать код на джаве и, видя ее впервые в жизни, легко поймёт что там и зачем написано с использованием гугла. Ценность не в знании конкретных прикладных технологий, а в понимании общей логики в целом. Глупо платить человеку в 3 раза больше денег просто потому что он знает кучу справочной информации, которую можно за 30 сек найти в гугле при первой необходимости, если при этом этот человек не понимает зачем нужна хэш-таблица или какие подводные камни есть у многопоточности.
@medvital
@medvital Год назад
@@thegate8985 чем выше позиция, тем меньше человек пишет кода и больше занимается бизнес/архитектурными/тимлидовскими задачами(зависит от позиции, на которую нанимают). Выше уровень абстракции, так скажем, для кода есть джуны и мидлы. Если вы синьор и все ещё пишете код, то вы аппер мидл, имхо.
@sergeyvlasov207
@sergeyvlasov207 Год назад
50:00 а для std string разве нет подсчета ссылок??? хм
@iforand
@iforand Год назад
Нет. Но если хочется подсчёта ссылок, есть умные указатели для этого: std::shared_ptr А так std::string по сути тот же std::vector, но со встроенным буфером фиксированного размера, чтобы не выделять динамическую память под мелкие строки.
@eliasshalnev8466
@eliasshalnev8466 Год назад
А зачем спрашивать про extern в интервью по С++? Это сишная штука, добавленная исключительно для обратной совместимости. + сам интервьюер не совсем правильно ответил на свой же вопрос. extern нужен как раз для объявление (declare) переменной, а ее определение (definition) может находиться в другом месте. Использование данного трюка в С++ проектах является не очень хорошим стилем.
@ambushedraccoon6408
@ambushedraccoon6408 Год назад
Неоднократно сталкивался с таким вопросом на собеседованиях. А конструкция extern в плюсовых проектах встречается, каким бы стилем это не являлось. Так же обычно за этим вопросом следует вопрос про extern "C". А то, что сказал что-то неправильно. Ну собеседование не постановочное, могу и оговориться, всякое бывает.
@z140140
@z140140 Год назад
это как это?? если у тебя есть переменная используемая в нескольких модулях - без extern ты не обойдёшься
@pchelnick
@pchelnick Год назад
@@ambushedraccoon6408 Именно оговориться? :) Ошибиться Вы никак не сможете? ;)
@billjohnes9380
@billjohnes9380 Год назад
@@z140140 По поводу "если у тебя есть переменная используемая в нескольких модулях - без extern ты не обойдёшься". И это говорит senior+1? Никакой это не senior+1, и даже -- не senior, максимум -- middle. Начиная с C++17, такой способ есть, и настоящий Senior его знает.
@alienhazzard7201
@alienhazzard7201 Год назад
@ Elias Shalnev Это не трюк, а необходимость.
@user-wo6df9by4e
@user-wo6df9by4e Год назад
да это почти senior судя потому что он умеет. я вообще не понимаю что он делает и для чего, и о чём они говорят. целый час пытали и отлично себя проявил
@rallyguard2437
@rallyguard2437 Год назад
учу С 2 месяца и понимаю о чем идет речь в видео, вопросы точно не уровня мидла
@mihax56
@mihax56 Год назад
в каком месте сеньер? собеседование уровня джуна чутка продвинутого.
@MariaEsenina
@MariaEsenina Год назад
Да нормальный парень. А по поводу extern и тем более union я бы не парилась, это вроде бы и надо знать, но во-первых, молодые всё реже с этим сталкиваются, а во-вторых, если столкнутся - неужели вы думаете, что разработчик такого уровня за пол часика не поймёт как это работает? Гораздо важнее то, как человек мыслит, а не то какой он заучка. Вряд-ли на рабочем месте кому-либо запретят иметь пару томиков на всякий случай. Здесь даже вместо объяснения лучше попросить угадать на опыте дав лёгкий намёк что это может быть, опять же посмотреть как человек мыслит, даже если даст неверный ответ.
@IvanPetrov-td6dk
@IvanPetrov-td6dk Год назад
В первой задаче не понятно, почему для финальной строки 2 длины исходной строки зарезервировали, когда у нас для экранирования каждого символа по 2 слеша прибавляется - значит, в лимите у нас строка в 3 раза длиннее будет, когда все символы равны заданному.
@pkowak
@pkowak Год назад
Прибавляется один слеш, если написать "\", то это будет как незакрытая строка, символ после бекслеша воспринимается типа как спец символ, также с , \t, \0 и собственно \\
@RushFuture
@RushFuture Год назад
Два слеша - потому что обратный слеш в языке C/C++ является экранирующим символом (помните про " ", например?), поэтому сам требует экранирования, соответственно строковый литерал "\\" превратится в строку, состоящую из *одного* символа обратного слеша и завершающего нуля.
@user-kv3eo9br8m
@user-kv3eo9br8m Год назад
Впечатляет что C++ еще кому-то интересен из молодежи
@alexla_grange8957
@alexla_grange8957 Год назад
да это же совершенный язык ! ))
@bravo2625
@bravo2625 Год назад
Сейчас все уники только его и дают(естественно есть факультативы например по питону, но то отдельно)
@alexla_grange8957
@alexla_grange8957 Год назад
@@bravo2625 А что там дают - семестр на Си и Плюсы вместе взятые - это даже не смешно.
@user-cb8nc5to4z
@user-cb8nc5to4z Год назад
39:40 Ждал от собеседующего упоминания о LE и BE. Че там мудрить: двоичная история - это всегда индивидуальная снежинка.
@nikitross7466
@nikitross7466 Год назад
Это собеседование middle?? Напиши что это собеседование для junior.
@aissp
@aissp Год назад
У меня чего-то возникли вопросы к тому кто проводит интервью ;) из претензий наверное: много говорит, не улыбается, не старается расслабить собеседника, соотвественно не ясно как человек будет работать в команде, как-то так
@tagireminov8858
@tagireminov8858 Год назад
а как можно с Вами связаться?
@ambushedraccoon6408
@ambushedraccoon6408 Год назад
Здравствуйте. пишите сюда: ambushed.raccoon.tube.mail@gmail.com
@RUMACTEP
@RUMACTEP Год назад
Все-таки это уровень Junior'а, а не Middle'а
@leonidpospelov2437
@leonidpospelov2437 Год назад
нормальный чувак, всё знает. сделает прекрасную карьеру. а в комментах душнилы
@KurlesHS
@KurlesHS Год назад
получить на вход константную ссылку и пытаться ее изменить - ну такое себе. И даже если на вход не константная переменная подавалась бы - то совсем инвалидацию указателей не учитывал.
@2b1aa1
@2b1aa1 5 месяцев назад
Я ищу работу джуном. Но всё что было в вопросах я прекрасно знаю. Что я мидл чтоли? Но у меня нет комерческого опыта…
@imsomewhere1734
@imsomewhere1734 10 месяцев назад
Ребята, return std::string(); или return ""; как раз только и было до С++11. :) Привыкли вы к питонщине безтиповой вроде {}.
@antonschoolboy2304
@antonschoolboy2304 Год назад
Это мидл из аспирантуры? Весело.🤣
@mihanapushka3896
@mihanapushka3896 6 дней назад
Если сейчас все джуны такие, то залететь на рынок it супер легко
@ambushedraccoon6408
@ambushedraccoon6408 5 дней назад
Ну так залетайте.
@soulspirit8687
@soulspirit8687 Год назад
Qt, OpenCV и всё такое..... Если это собеседование на джуна, где решение алгоритма экранирование сомволов в строке занимает у собеседуемого так много времени, то я я сеньёр
@goczt
@goczt Год назад
Не очень понравилась подача copy-on-write строк под соусом того, что они "как будто-бы лучше" (да, я понимаю, что напрямую автор не говорит, что они лучше) std::string'а, потому-что ты их передаешь по значению и они не копируются. Если есть такой страх копирования строки при передаче в функцию, лучше уж её передать по константной ссылке и всё, проблема решена простым механизмом языка, и об этом должен знать как мидл, так и джуниор. У CoW-строк есть самый существенный недостаток - вместо копирования при передаче, они "недетерминированно" копируются при совершенно нормальных операциях, типа замене символа, конкатенации и т.д. За всеми этими случаями ненамеренного копирования следить гораздо сложнее, чем всегда передавать const std::string&.
@xvostbobra
@xvostbobra 6 месяцев назад
А у вас по высшему образованию берут?
@ambushedraccoon6408
@ambushedraccoon6408 6 месяцев назад
Смотря где. В Европе и США очень тяжело без диплома, на постсоветском пространстве проще, но тоже иногда могут спросить. В любом случае диплом лучше иметь, но его отсутствие, конечно же, не причина не строить карьеру программиста.
@justman7656
@justman7656 Год назад
Это я первую задачу неправильно понимаю или задача некорретная? Символы ведь после того как его код отработает не станут экранированными, он просто добавил в перед каждым символом по экранированному слэшу.. Или я действительно некорректно понимаю задачу и в этом и суть? Да и вообще, я наверное слишком строг, но чувак на всё отвечает только с подсказок и то не слишком хорошо
@iforand
@iforand Год назад
А что ты понимаешь под "экранированием"?
@justman7656
@justman7656 Год назад
@@iforand так называют спецсимволы в строках, по крайней мере в С и С++, если ты просто вставшь, скажем, двойную кавычку в строку, то компилятор распознает её как конец строки и выдаст тебе ошибку, именно поэтому создали экранирование, когда ты перед подобными неудобными символами вставляешь косую черту, чтобы они точно трактовались компилятором именно как символы, а не как часть синтаксиса
@iforand
@iforand Год назад
@@justman7656 так и чем это отличается от "просто добавить перед экранируемым символом по слешу"? :)
@justman7656
@justman7656 Год назад
@@iforand просто я полагал, что задача в том чтобы вставить неэкранированный слэш и экранировать тем самым заданный символ
@iforand
@iforand Год назад
@@justman7656 Э-э, что? :D Экранирование - это и есть "просто вставить обратный слешь перед символом". Что вообще означает "вставить неэкраниррванный слешь"? :) Экранирование просто указывает компилятору или другому текстовому процессору, что следующий символ не является управляющим и его нужно воспринимать как обычный символ. Ничего более.
@0xsadcat92
@0xsadcat92 Год назад
К первой задаче return std::regex_replace(...) подошел бы?)
@decltruft2882
@decltruft2882 Год назад
Такие выкрутасы из CodeWars не прокатят: вся фишка в алгоритмической составляющей вопроса, а не в использовании готовой тулзы
@letmeregisterbitch
@letmeregisterbitch Год назад
Регексп тяжелая штука и здесь оверкилл
@alienhazzard7201
@alienhazzard7201 Год назад
@ 0xSADCAT смысл задачи не в использовании готового инструмента без понимания, как он устроен.
@iforand
@iforand Год назад
Хренасе! Я ещё понимаю вопрос про "почему бы не использовать replace?", но подумать здесь об regex_replace - это новый уровень! Даже не знаю как ещё можно сделать здесь код более тормознутее :)
@cyrilanisimov
@cyrilanisimov Год назад
Вопросов про плюсы я тут не увидел - задачка на алгоритм, вопрос про сишный extern, битовою маску (серьёзно, битовые задачки часто приходится решать?), какая двоичная сериализация, что это за вопрос? Сохранение куска памяти - это не сериализация) Зачем Union в плюсах? Есть же Variant. В Qt стандартная библиотека нифига не отзеркаливается, подходы абсолютно другие. В общем, тут вопросы интервьюеру.
@alienhazzard7201
@alienhazzard7201 Год назад
@ Cyril Anisimov Битовые задачи приходится решать часто. Сохранение куска памяти - это не сериализация.
@cyrilanisimov
@cyrilanisimov Год назад
@@alienhazzard7201 битовые операции - это не плюсы, они есть во многих языках. И я про это говорю)
@Hamsters_Rage
@Hamsters_Rage Год назад
серьезно, сейчас для Middle уровня не нужны и шаблоны и битовая арифметика?
@BeginBye
@BeginBye Год назад
Да "ХЭДЭР" (header), блин! А не хидэр
@RushFuture
@RushFuture Год назад
Смог досмотреть до extern "C"... "Будут компилироваться как C", чё правда? :) Может лучше не спрашивать того, чего сам не знаешь? И уж тем более стоит не рассказывать свои выдумки поучительным тоном :) Впрочем всё понятно было ещё по "хИдерам" и "сипипи файлам" вместо заголовков и модулей.
@hmixa
@hmixa Год назад
Интервьюер интервью прошёл! А претендент, что не вопрос то мимо. 🤣🤣🤣🤣 А вообще тут видна типичная ошибка всех умненьких студентиков: учат и козыряют знаниями фреймворков но у них нет простого понятия о программистком повседневном ремесле.
@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 тут нет указания, используется ли куча. На практике небольшие строки аллоцируются на стеке.
@vmgs100
@vmgs100 Год назад
Ну почему все говорят "хидер", если он, блин, "хэдер"? Бесчисленное множество раз слышал от разных людей.
@user-ft6zh8ny9i
@user-ft6zh8ny9i Год назад
Ппц, он вставляет auto даже там где этого можно и не делать. Очевидно же что на вход принимается char. Таким образом заставляет компилятор тратить время на вычисление того, что это ленивец хочет сделать.
@Matissed
@Matissed Год назад
Как будто там серьёзные вычисления происходят
@processdemidnet
@processdemidnet Год назад
Middle C++, не знающий что такое Extern, установка бита числа циклом? Круто... Азов нет, зато OpenCV якобы есть. Веселые вы ребята :)
@processdemidnet
@processdemidnet Год назад
Ой, еще и минус Union... мы вам перезвоним...
@dmitryyudin4990
@dmitryyudin4990 Год назад
Мидл собеседует джуна, так вижу)
@complicated2359
@complicated2359 Год назад
Точно ли мидл, без опыта то, а по коду так джун чистый.
@MotivationRUS37
@MotivationRUS37 Год назад
Здравствуйте, подскажите пожалуйста мне 14 и на данный момент изучаю С++, где искать информацию для теории и как мне практиковать задачи? ибо я плохо искал и не знал как решать задачи.
@user-yu5yz7pf4u
@user-yu5yz7pf4u Год назад
Никак иди картошку копать
@ambushedraccoon6408
@ambushedraccoon6408 11 месяцев назад
Здравствуйте! Рекомендую тут начать изучение: ravesli.com/uroki-cpp/ задачки можно брать на литкод(сложность Easy) leetcode.com/ Для более общей подготовки по информатике рекомендую обратить внимание на книгу "Информатика, Методы алгоритмизации, 8-9 класс, Котов В.М., Волков И.А., Лапо А.И." и потом 10-11-й класс.
@DamirKamenev
@DamirKamenev Год назад
Нормализацию ролика по громкости хорошо бы сделать. У интервьюера невыразительная дикция и довольно тихий голос (или низкий уровень записи микрофона). У кандидата ровно наоборот. Один шепчет, другой бьёт по мозгам. Большое спасибо, что голос не повышает!
Далее
Собеседование Junior C++
54:00
Просмотров 39 тыс.
Собеседование C++
47:00
Просмотров 24 тыс.
Игровой Комп с Авито за 4500р
01:00
Собеседование Middle C++
1:01:50
Просмотров 27 тыс.
Собеседование Middle C++
52:34
Просмотров 20 тыс.
Зачем нужны указатели в C++?
8:14
Просмотров 1,3 тыс.
КАК ЧИТАТЬ И ПОНИМАТЬ С/C++ КОД?
8:21
Собеседование Junior C++
50:58
Просмотров 42 тыс.
53 вопроса с собеседований по C++
1:51:20
Игровой Комп с Авито за 4500р
01:00