Не знал, что Оксимирон ещё проводит пробные собеседования. Спасибо за контент
@Lopster22811 ай бұрын
Хаха, в точку, зашёл в комментарии с надеждой на твой коммент!
@Malans-zz6cn7 ай бұрын
он просто из репа в программирование ушел Посмотрел на зарплату и офигел
@kuksarnlav2 ай бұрын
2:20 5:36 - порядок вызова конструкторов 7:40 - explicit 8:30 - этапы сборки 11:03 11:58 - почему аргументы макроса нужно брать в скобки 11:35 - как устроен макрос 13:48 - защита хедеров от повторного включения 14:50 - лайфкодинг, 2 класса, у каждого указатель на второй класс 18:05 - что будет если вызвать оператор delete на nullptr 18:28 - а delete на 0 19:29 - виртуальные деструкторы 20:25 - существуют ли виртуальные конструкторы (нет) 20:44 - move-семантика 25:51 - как запретить наследоваться от класса (final) 27:28 - что будет если в конструкторе exception, но мы его в нём же не обрабатываем 28:53 - как работать в прошлом пункте, если было выделение через new, а потом exception, произошла утечка памяти (умные указатели) 30:01 - умные указатели, виды 33:34 - иллюстрированная задача про однонаправленный список 35:21- пустой vector, вставляем в него 100 элементов в конец, что хорошо или плохо 37:06 - отличие set и unordered_set 37:58 - как называются set, unordered_set, unordered_map, map вместе (ассоциативные контейнеры) 38:16 - какие атрибуты должны быть у класса, если он используется как ключ (оператор меньше выводится ==)
@daniilivanik502110 күн бұрын
Под оператором сравнения действительно не редко подразумевают
@deleted762 жыл бұрын
Рекомендую при правильных/неправильных ответах объяснять почему так и как это работает Обычно люди смотрят такие видео в образовательных целях)
@Deletedeletedelete Жыл бұрын
Обычно на реальных собесах поясняют ответы
@maratmkhitaryan9723 Жыл бұрын
Тогда видео длилось бы 3 часа, вместо 45 минут
@buginsystem892511 ай бұрын
@@maratmkhitaryan9723 и хорошо
@MATERYK9 ай бұрын
@@maratmkhitaryan9723не вижу ничего плохого в этом
@Tyrpirator9 ай бұрын
и в чем проблема?
@bartonby-39762 жыл бұрын
Это видео скрасило мою ночную смену на заводе
@AnatoliyMokhov2 жыл бұрын
😂😂😂😂😂😂😂😂
@UZBECKGAMER Жыл бұрын
Жижа?
@arseny.a Жыл бұрын
Аналогично 😁😁
@qnide9636 Жыл бұрын
Вот вроде шутка, а мне грустно стало😥
@bartonby-3976 Жыл бұрын
@@qnide9636 я не шутил
@MelissaTeaCup Жыл бұрын
Спасибо за видео, переживаю перед своими первыми собеседованиями, вы мне немного помогли справиться с тревогой и проверить свои знания
@ambushedraccoon6408 Жыл бұрын
Удачи!)
@uondo1160 Жыл бұрын
Как прошло собеседование?
@любительоливера3 Жыл бұрын
@@uondo1160как прошли собеседования?
@panic0819 Жыл бұрын
Как прошло собеседование?
@ДобрыйДядя-г8р Жыл бұрын
Плохо походу😂
@ds_doc2 жыл бұрын
NB: Когда размер вектора становится равен его ёмкости, компиляторы GCC и Clang расширяют вектор в 2 раза, тогда как компилятор VS в 1.5 раза
@romk2246 ай бұрын
Программист не обязан знать детали реализации в каждом компиляторе.
@ridd_205Ай бұрын
@@romk224 если ты работаешь с векторами ты будешь это знать
@alexla_grange8957Ай бұрын
@@ridd_205 а если не работаешь ,то хрен ты все это помнишь
@fisyamaloy17542 жыл бұрын
Спасибо за видео! Понравилась задача с односвязным списком, а вопрос про аргументы макросов застал врасплох) Про то, какие файлы именно мы компилируем на 10:00: после препроцессинга на выходе создаются .ii файлы, которые после компилируются
@vasiliypupkin63112 жыл бұрын
Такой формат очень полезен, спасибо!
@alexcpp68142 жыл бұрын
Здорово!! Надеюсь продолжишь записывать такие видео а я продолжу ставить лайки))
@ambushedraccoon64082 жыл бұрын
Спасибо) На очереди еще несколько кандидатов, так что будем записывать.
@alexplaytop9 ай бұрын
Для Джуна вопросы Огонек! Очень сильный Джун будет, почти Джин.
@klp50115 ай бұрын
То есть гений?)
@MathPTU5 ай бұрын
блин, я вроде все это знаб
@alexla_grange8957Ай бұрын
че ? это ж вопросы из детсада
@nikitafamily53412 жыл бұрын
Очень полезное видео, спасибо вам двоим большое!
@ДмитрийБондаренко-к6ж Жыл бұрын
У меня одного код не видно из-за качества?
@broken_beyond_belief2 жыл бұрын
в принципе, спать я не особо и планировал
@КириллИванов-м8м Жыл бұрын
Спасибо, очень познавательно.
@addressmodel2121 Жыл бұрын
5:54 - вопрос: у какого поля конструктор вызовется раньше, у поля b или поля a? - Ответ: компилятор в Release режиме выстроит поля в алфавитном порядке в сторону возрастания адресов в памяти. Из этого следует, что в Release режиме компиляции конструктор поля a вызовется раньше.
@addressmodel2121 Жыл бұрын
@@drm365 , отношение к языку C++ сформируйте исходя из следующих позиций: 1) относитесь к C++ как к основному средству разработки быстро работающей графики; 2) правил в C++ много и, поэтому, вам нужно выработать собственный стиль программирования, использующих часть этих правил, а на остальные правила не обращайте внимания; 3) в некоторых фирмах язык C++ используется как язык написания быстро работающих алгоритмов; сами алгоритмы пишутся обычно в некотором корпоративном стиле и не затрагивают все правила языка. Исходя из этих пунктов, делайте так: а) определитесь где вы хотите работать: в графике или в алгоритмах; б) освойте основные правила языка без всяких мелочей; в) изучайте соответствующие библиотеки: графические или алгоритмические; г) не концентрируйтесь очень глубоко на тысячах хитрых правил синтаксиса C++.
@addressmodel2121 Жыл бұрын
@@drm365 , кроме этого, в C++ некоторые DLL библиотеки присоединяются к проектам с некоторыми приключениями. Следовательно, сразу поcле освоения основ C++, займитесь подключением к проекту разных библиотек. Например, попробуйте подключить какую то графическую библиотеку, или простой игровой движок, примерно пятнадцатилетней давности разработки. Потом попробуйте эти библиотеки использовать в проекте каким то примитивным способом. Среды разработки на C++: 1) Dev-C++; 2) MS Visual Studio; 3) CodeBlocks. В общем под резюмирую: если основы языка изучили, то дальше возитесь с библиотеками (для начала научитесь просто эти библиотеки подключать и немного использовать).
@zakharka3938 Жыл бұрын
Не надо нести ерунду про какой-то там алфавитный порядок и разные режимы. В С++ поля инициализируются в порядке их объявления.
@addressmodel2121 Жыл бұрын
@@zakharka3938 , ага .. .
@rafk53419 ай бұрын
не, это бред, язык гарантирует, что поля будут располагаться в памяти в порядке их объявления, в этом легко можно убедиться. struct A { float f = 1; float e = 2; float d = 3; float c = 4; float b = 5; float a = 6; }; void main() { A a; for (size_t i = 0; i < (sizeof(A) / sizeof(float)); i++) { std::cout
@oleg_kishinskii2 жыл бұрын
что то я с первых минут сразу расстроился, пойду читать книги.
@pavel_trpn Жыл бұрын
там только первый вопрос немного tricky, потом элементарные вещи идут
@bsspike_yt533 Жыл бұрын
На каких фреймворка пишут игровые движки? Весь интернет обшарил и ничего не нашёл. Спасибо за ответ.
@ambushedraccoon6408 Жыл бұрын
Привет! Формулировка вопроса немного неправильная. Движок - это инструмент, объединяющий некоторое количество фреймворков, которые используются для создания игр (например, работа с сетью, звуком, графикой, файлами и т.д.). Если вы хотите написать свой собственный движок, вы можете использовать SFML как более высокоуровневый инструмент для С++. Однако, если вы начинаете с нуля, вам придется изучить API для работы с видеокартой, такие как DirectX, OpenGL и т.д. Вот некоторые материалы по DirectX, которые могут вам помочь: www.3dgep.com/learning-directx-12-1/ www.directxtutorial.com/Lesson.aspx?lessonid=9-4-1
@bsspike_yt533 Жыл бұрын
@@ambushedraccoon6408 Привет, огромное спасибо за ответ. Не, свой движок я не хочу писать, просто изучаю программирование и интересно, какие фреймворки изучать для создания ПО типо такого.
@ИванИванов-ь5з6е Жыл бұрын
На XNA сделана Террария, к примеру
@v1dzhet7 ай бұрын
@@ИванИванов-ь5з6е xna вообще для дотнета
@AlexeyAvramchik2 жыл бұрын
Посмотрел это видео и видео собеседования на Middle C++. Мне показалось, что вопросы для Junior собеседования были сложнее, чем вопросы для Middle... Ну либо это какая-то моя личная спицифика знаний))
@Deletedeletedelete Жыл бұрын
Всегда же так. Чем выше грейд тем собесы проще так как меньше про теорию вопросов :)
@kolyashinkarev73665 ай бұрын
Просто собесы предполагают что теорию middle знает и проверять ее нет смысла. Там же ещё на опыт работы смотрят
@AndreySedov Жыл бұрын
Дай бох сил тебе ,добрый человек. Про список ересь он сказал
@zavi8695 Жыл бұрын
Пишется бог
@AndreySedov Жыл бұрын
пишется Бог@@zavi8695 . Не нужно строить из себя умного. Поучить вздумал
@KhusnutdinovRoman5 ай бұрын
насколько влияет наличие вышки когда идешь на позицию с++ разраба? Я просто в колледже учусь, нравится с++, но не знаю надо ли двигаться к плюсам пока вышки нет
@stanleyconnor6898Ай бұрын
Наличие корочки выпускника никак не влияет, а вот наличие знаний и навыков полученных в ВУЗе влияют сильно.
@ivananonimmu893716 күн бұрын
@@stanleyconnor6898 человеку можешь жизнь сломать, дизинформировав, джунов огромное кол-во и очень сложно сейчас попасть на джуна, с корочкой коледжа это вообще невозможно, вообще никак, каким бы ты гением не был, с корочкой вуза открывается хотя бы возможность устроиться в гос/не гос компанию, знания коечно тоже пригодятся, но никто с корочкой колледжа брать не будет.
@gs_tradegs_trade1348 Жыл бұрын
очень добрый интервьюе́р
@allaksusallaksus24022 жыл бұрын
Как сделать так что аргумент inline функции обязательно была литера, а не переменная. Если в качестве аргумента подставлять переменную то функция компилируется крайне неудачно и такой вариант надо обязательно запретить к использованию
@romk2246 ай бұрын
Сделать её шаблонной и наложить ограничение с помощью enable_if или концептов, чтобы принимала rvalue.
@ДаниилПавлович-ж6о2 жыл бұрын
Очень крутое видео, еще сам себя проверил)
@MathPTU5 ай бұрын
здравствуйте, можете записать какие знания нужно иметь для джуна, если я, например, неплохо разбираюсь с ООП, что еще по языку надо знать? алгоритмы и структуры данных знаю, их не берем в расчет
@vasily2dndn5 ай бұрын
Как ООП учил? Есть ли какие полезные материалы у тебя, которыми поделишься?
@wakezupАй бұрын
@@vasily2dndn как минимум книга Страуструпа по С++ в специальном издании
@SerGaming-up3ir3 ай бұрын
Пж скажи как исправить invalid use of incomplete type 'class название класса'
@ambushedraccoon64083 ай бұрын
@@SerGaming-up3ir include этого типа наверное не хватает.
@SerGaming-up3ir3 ай бұрын
@@ambushedraccoon6408Спс, сейчас подробнее расскажу если этот класс стоит после того в котором я использую объект этого класса, он выдаёт такую ошибку, хоть я и делаю его предварительную декларацию
@ambushedraccoon64083 ай бұрын
@@SerGaming-up3ir понял. Если использовать предварительную декларацию то можно использовать только как ссылку или указатель.
@SerGaming-up3ir3 ай бұрын
@@ambushedraccoon6408Спасибо!
@BloganProgramming2 жыл бұрын
Я являюсь преподавателем C++ в ютубе и работаю игровым разработчиком, поэтому добавлю свои 5 копеек. 1. Первый вопрос. Ну хотя-бы раз вам попадалась ситуация, где вам НУЖНО было знать порядок следования конструкторов базовых классов вперемешку с полями?) Это смешно. Я понимаю, для чего создан этот вопрос, но вы могли к нему прийти после того, как сначала бы спросили за порядок ЛИШЬ полей, а потом лишь базовых классов. Не нужно задавать непрактичные вопросы. 2. 6:20. "Конструкторы базовых классов можна считать полями". Ну наверно все таки не надо) 3. explicit применяется еще к перезагруженном операторе приведения типа. 4. "Насколько уверенным ты себя чествуешь с макросами?" - как отвечать на такой вопрос? "На 7/10"? "Мне приятно в их компании?". Задавайте поконкретнее вопросы. 5. "Почему аргументы в самом макросе нужно брать в скобки?" - в самом макросе - это где? define(ВотСкобки) (ВотОпятьСкобки). Я понимаю, что вы имели ввиду скобки, в которые берутся аргументы в ВЫРАЖЕНИИ макроса. Хотелось бы, чтобы такое уточняли. Но в таком случае аргументы НЕ ДОЛЖНЫ браться в скобки. Просто в некоторых макросах аргументы желательно окружать скобками. 6. Умные указатели не относятся к стандартной библиотеке шаблонов (STL), если что. Это поправочка интервьюеру. 8. Почему weak_ptr идет "в паре" с shared_ptr?) Странно звучит, поскольку в большинстве случаев люди используют shared_ptr без weak_ptr. 9. Кандидат говорит "Нам нужен оператор сравнения для хранения объектов собственных классов". Интервьюер говорит "нет, нам минимум нужны операторы меньше/больше". Вообще-то операторы меньше/больше и есть операторами сравнения. И для хранения собственных классов нужен оператор сравнения "меньше". Из-за вашего ответа вы заплутали кандидата, хотя он был прав и эта часть собеседования затянулась на несколько минут. 10. Зачем вообще нужен вопрос "Чем тебя привлекает С++"? Какой в нем практический смысл? А так видео было интересно смотреть, ставлю лайк.
@billjohnes93802 жыл бұрын
По поводу "в большинстве случаев люди используют shared_ptr без weak_ptr". Какие люди? Это junior'ы, которые не в курсе вызываемых бездумным использованием shared_ptr проблем? Обычно преподаватели показывают низкий уровень и демонстрируют ужасные практики, вы -- не исключение. Чтобы не быть голословным, приведу пример. У вас есть "Урок 100", где есть такой код, представляющий собой некий аналог operator = класса std::string: void String::SetString(const char* str) { if (str != nullptr && std::strlen(str) != 0) { size_t length = std::strlen(str); delete[] this->str; this->length = length; this->str = new char[length + 1]; strcpy_s(this->str, length + 1, str); } } То, что вы дважды std::strlen вызываете, буквально, в соседних строках, это ещё не самое страшное, хотя, конечно, это -- уровень junior'а. И проверку, не пустая ли C-строка, закрытая символом'\0', только junior будет выполнять с помощью std::strlen. Хуже другое: вы сначала удаляете старую строку, которая до этого хранилась, а потом выделяете память под новую с помощью new-выражения. При этом, предварительно, полю длины строки в объекте присваиваете значение длины новой строки. Дело в том, что operator new[], вызываемый из new-выражения, может выбросить исключение. Если это случится, то 'this->str' продолжит указывать на старую освобождённую область памяти, а 'this->length' будет отражать длину новой строки. В вызывающем коде исключение можно поймать, но при попытке вновь вызвать SetsString, для этого объекта, или даже просто при уничтожении этого объекта, когда деструктор будет освобождать память по адресу 'this->str', произойдёт повторное удаление старой строки, и программа "упадёт" из-за double-free. То, что, уже зная длину строки, вы вместо std::memcpy используете относительно тяжеловесную strcpy_s -- это тоже показатель качества практик. Кстати, эта функция есть в C11, но её нет в стандартном C++, если без расширений. В добавок, она требует установки handler'а через set_constraint_handler_s, потому что тот handler, который установлен по умолчанию, может вызвать функцию abort. Очевидно, "случайный" вызов abort() при работе с объектом типа String абсолютно недопустим. Если переписать ваш код со strong exception guarantee, максимально придерживаясь вашего стиля, получится, примерно, следующее: void String::SetString(const char* const str) { if (str != nullptr) { const std::size_t length = std::strlen(str); if (length) { char *const new_str = new char[length + 1]; std::memcpy(new_str, str, length + 1); delete[] this->str; this->str = new_str; this->length = length; } } } Слегка альтернативный вариант, на этот раз -- с эффективной проверкой, не пустая ли C-строка: void String::SetString(const char* const str) { if (str != nullptr && *str != '\0') { const std::size_t length = std::strlen(str); char *const new_str = new char[length + 1]; std::memcpy(new_str, str, length + 1); delete[] this->str; this->str = new_str; this->length = length; } } Кстати, operator = класса std::string, естественно, обеспечивает strong exception guarantee, то есть, если при попытке заменить содержимое строки содержимым другой строки это не получилось по причине выброса исключения при попытке выполнить new, то объект останется в неизменённом валидном состоянии, и с ним можно будет безопасно как продолжить работу, так и уничтожить. Если вы проаргументируете тем, что в большинстве случаев new не выбрасывает исключений, то это ещё больше продемонстрирует, насколько невысок ваш уровень. Поскольку ваш уровень владения языком весьма невелик, ваши ссылки на свой опыт не годятся в качестве аргументов, потому что они зачастую просто ошибочны.
@BloganProgramming2 жыл бұрын
@@billjohnes9380 слишком много текста, не буду читать.
@billjohnes93802 жыл бұрын
@@BloganProgramming В этом случае уместен мем: "ниасилил, многа букав". Поздравляю, вы продолжите плодить своими уроками троечников-говнокодеров. Ну, и сам таким останетесь.
@BloganProgramming2 жыл бұрын
@@billjohnes9380 хаха, пусть будет по вашему)
@georgebillon2 жыл бұрын
@@billjohnes9380 Критика стосовно коду з уроку 100, про те, що new може викинути виключення - не має сенсу, бо цей урок йде ДО теми виключень ) Ви придумали алгоритм краще, виявили випливаючу проблему поточного - напишіть про це у коментарях під тим відео, щоб це комусь дійсно допомогло. Спробуйте зробити свої 100 уроків з вільним доступом :)
@favoriteforyou2438 Жыл бұрын
Когда только закончил базовый курс по видосикам и понял что грубо говоря умеешь считать до 5 а тут высшая математика 😂😂😂😂😂😂
@Andrew_Petrovich_Zykov Жыл бұрын
это быстро учится, я за полтора месяца почти все из этого знаю, некоторые вещи еще пока не учил, но скоро буду, учитывая, что я вышмат параллельно учу, поэтому можно быстрее
@shoggot282 Жыл бұрын
ты очень крутой @@Andrew_Petrovich_Zykov
@AlexanderSamoilenko Жыл бұрын
Ты крутой! Продолжай пилить такой контент! Хочу подкинуть идею: Про собеседуй Джуна по стандартам США вакансий, но сразу нам это не говори! Выдай в конце видео) Будет круто)
@StatistikaInfo10 ай бұрын
какой С++ в 2024 году? я обожаю этот язык программирования, но он все меньше востребован...
@ambushedraccoon640810 ай бұрын
Это сложный вопрос. Надо смотреть индустрии, где он все еще востребован и решать интересно или нет. В целом популярность языка снизилась за последние 10 лет и он стал более узко специализированным. Я сам изучаю дополнительно другие языки на всякий случай. Сейчас вот не знаю, что попробовать python, go или rust....
@5классвиленкин-ъ4п8 ай бұрын
хз где он меньше востребован. До сих пор куча вакансий на С++. Но да, согласен. Тебе не предложат 100500 вакансий питониста, которых расплодилось, как тараканов. Да и какая адекватная замена ++? По-моему ее тупа нет. Питон вообще кринж, раст может, GO вряд ли. А один из самых популярных на с++ QT жив и умирать не думает.
@stanislavstanislavius76185 ай бұрын
@@ambushedraccoon6408, си надо попробовать
@stanislavstanislavius76185 ай бұрын
@@5классвиленкин-ъ4п, QT размытая бибиотека - разработана и под python и под c++. Не знаю как под python, но под c++ рекомендуют еще прокачиваться в qml, чтобы более вширь осваивать QT
@vladkray61543 ай бұрын
@@ambushedraccoon6408 привет подскажи, я хочу изучать python и в будущем уйти в нейронки или datascience, брат программист посоветовал сначала учить с++ а потом перейти на python, что скажешь ?
@nZver90 Жыл бұрын
А разве удаление элемента из списка не представляет из себя задание предыдущему элементу от удаляемого в качестве указателя на сл. элемент, указатель на элемент, следующий за удаляемым? Ну и далее уже "занулять" указатель удаляемому элементу. Не самым лучшим способом объяснил, но надеюсь что кто-нибудь меня понял.)
@llllNEOllllchannel Жыл бұрын
Так ты не имеешь доступ к предыдущиму элементу. Ты его не сможешь трогать, читать его данные. Этa задача на логику и в реальности ты её не встретишь. В итоге ты удаляешь следующий элемент, значение следующего элемента встанет на место значения текущего элемента (а адрес тот же ), предыдущий не трогаем, указатель next текущего элемента ставим в null.
@НикИванов-ф2к Жыл бұрын
Есть такой Григорин - у него свой канал на Ютубе. Он утверждает, что в С++ нет понятия "джун" и т.п. Там изначально уровень выше, чем у Питонистов и ВЕБ-разработчиков. Ну так как - прав ли Григорин?
@MathPTU5 ай бұрын
наверноое, да
@nZver90 Жыл бұрын
Виртуальный конструктор не существует? Ну, как бы сказать. Как конструкция языка C++ нет, но как паттерн Фабричный метод - ещё как существует (это его второе название). Хорошо хоть джуна по паттернам не стали гонять (как и по реализациям с нуля алгоритмов, структур данных, про многопоточность, шаблоны, фишки из стандартов C++17 и C++20, тут простор для мучений собеседуемого просто бескрайний), но боюсь что на реальных собеседованиях уже и не такое спрашивают. Повторюсь, джунов.
@ontetsu107111 ай бұрын
Тут от проекта зависит, на самом деле, мало кому интересно на собеседовании охватывать все аспекты плюсов. Особенно реализации каких то структур данных, тривиальные алгоритмы ещё можно попросить (зачем?) написать. А так, спрашивают как раз то, что вы перечислили - stl, многопоточность, архитектуру процессора, немного ос, алгосы, а дальше предметная область уже. На мидла меня ещё по паттернам спрашивали и солид, но только теорию Шаблоны - это вообще дичь, только разговором о них можно собес на 5 часов растянуть, условно
@Вася-ф1ч11 ай бұрын
@@ontetsu1071 А что про ос, например, спрашивают?
@driver_bmng2 ай бұрын
@Вася-ф1ч скорее всего про память
@0xsadcat922 жыл бұрын
Интересно, но, если не ошибаюсь, если из конструктора вылетает исключение при вызове new, то автоматически вызывается operator delete без деструктора
@МорковьЕнота5 ай бұрын
34:00 интервьювер спрашивает как мы можем из связного списка удалить единицу. Человек отвечает, что удаляем тройку. Что? Почему? Идея связного списка в том, что вставка/удаление в середину менее затратна. Поэтому мы можем спокойно удалить 1, взяв указатель на тройку и отдав его четверке. Удалять 3, если нужно удалять 1 звучит бредово. Может я что-то не так понял, подскажите, заранее спасибо!
@lamero742 жыл бұрын
c move семантикой все запутались :) она ниче не копирует, данные где были там и остаются. просто пренадлежат теперь другому объекту.
@goczt2 жыл бұрын
При move конструировании конструируется именно НОВЫЙ объект. Поэтому все интегральные типы вроде int float скопируются, данные в куче останутся на старом месте, но сами указатели на эти данные копируется.
@Jg.Pz._E100_xexexexe7 ай бұрын
Привет! Мне 13 лет и я изучаю c++, посоветуй, что мне на нем писать? И у меня вопрос - зачем передовать агрументы в main? Тоесть например: int argc, char *argv[]. Что от этого меняется?
@v1dzhet7 ай бұрын
это передача параметров при запуске твоей программы, полученные параметры ты уже можешь использовать для дополнительной обработки в своем коде.
@theflameflare7 ай бұрын
Привет! Аргументы в мэйне это параметры запуска приложения, не могу сказать насколько это прям распространённая тема, но с помощью этого ты можешь запускать приложение в различных "режимах", которые сам и пропишешь. Например, параметр для включения или наоборот отключения ведения логов или любого другого функционала. В общем, можешь сейчас особо не заморачиваться насчёт этого и просто не указывать их. По поводу того, что писать: гугли Programming challenge v4.0, удобно будет в виде картинки сохранить. Там свыше ста идей для различных проектов от rpn калькулятора и tcp/ip сервера до графических движков. Всё это отсортировано по уровням сложности. Дальше выбирай что нравится и вперёд изучать статьи, гайды и документацию. Удачи!)
@ambushedraccoon64086 ай бұрын
Отличный ответ от @theflameflare. Успехов)
@animesandman44162 жыл бұрын
очень полезное видео!
@TheFame31rec2 жыл бұрын
Можно вопрос? Чем тогда отличаются собеседования trainee от Джуна? Или оно всё джуном называется? Или неужели можно попасть в Джуны без опыта?
@libertariancom2 жыл бұрын
Особо ничем, только джун будет уже работать, а трейни будут скорее обучать. На джуна вполне можно залезть без опыта (коммерческого).
@torcher502311 ай бұрын
@@drm365 соевичок)
@НикитаСолоненко-р5ы11 ай бұрын
Вопрос касаемо placement new, точнее не про него, а про другую область, спрашивают ли про аллокаторы? allocator_traits и тп
@ambushedraccoon640811 ай бұрын
Такие вопросы были только, чтобы понять есть ли у меня общие знания, что куда и зачем. Предположу, что если проект требует каких-то специфичных знаний, то такой вопрос могут задать. Но я практически не сталкивался.
@НикитаСолоненко-р5ы11 ай бұрын
@@ambushedraccoon6408 а как попробовать пройти такого плана собеседование?
@my_learning_spaceship8 ай бұрын
Понимаю, что ещё учиться и учиться...
@alexkos25932 жыл бұрын
окси проводит собес ?)
@gfhitdxaahn2 жыл бұрын
Real
@Temna9Loshadka6 ай бұрын
22:40 интервьюер говорит что перемещения как бы не существует и это тоже копирование, что имеется ввиду, ведь мы ничего не копируем, мы по сути заменяем владельца, указатель, но вся информация остаётся все так же на том же месте... Скажите пожалуйста что произходит, а то я в замешательстве.
@ambushedraccoon64086 ай бұрын
Не могу сказать, что произойдет на разных операционных системах с разными компиляторами, возможно, существуют какие-то процессорные оптимизации, которые сделают перемещение быстрее. Но с точки зрения синтаксиса языка операция перемещения - это скорее особое копирование, более экономное. Объясню на примере. Возьмем тип данных std::string. Очень грубо говоря, это обертка над C-строкой типа char*. Если мы сделаем присваивание: std::string a{"qwerty"}; std::string b = a; то для объекта будет выделена память вызовом функции malloc, затем данные будут побайтово скопированы из первой строки во вторую. Или же мы можем сделать следующим образом: std::string a{"qwerty"}; std::string b = std::move(a); std::move создаст из переменной rvalue-ссылку на , которая сообщит компилятору, что объект a может быть перемещен. И далее, без выделения памяти и побайтового копирования, мы просто возьмем указатель из и присвоим его указателю внутри строки . Указатель же в первой строке мы занулим. В результате строка будет использовать те же самые данные, то есть объект как бы переместится в .
@user_a1b79s29 ай бұрын
Программист - это современные инженер.
@aster545010 ай бұрын
Норм, только для unordered_set и unordered_map нужен std:hash. Оператор "меньше" только для обычных map и set
@ОлександрСтельмах-р3й Жыл бұрын
Как попасть на твое тренировочное собеседывание?
@ambushedraccoon6408 Жыл бұрын
Пока никак, на данный момент уже большая очередь из желающих. А вообще объявление о наборе я даю в сообществе или в телеграме. t.me/AmbushedRaccoon
@dark_angel25988 ай бұрын
Всем привет, а где находить вакансии на должность junior C++?(
@stupnum87647 ай бұрын
Москва, Новосиб, СПБ, Казань и прочие крупнейшие города. Например у меня в Ростове на Дону их нет. Много it вакансий, но плюсовики без опыта не нужны
@neopalmiscus572 ай бұрын
@@stupnum8764 а что тогда делать? Чтобы устроиться на работу нужен опыт, чтобы был опыт нужна работа, как быть
@Эрдан-з5ч2 жыл бұрын
И это во всех собеседованиях будут такие вопросы?
@ambushedraccoon64082 жыл бұрын
Вопросы в большинстве своем универсальные. Однако в зависимости от уровня кандидата, ожидается разная степень погружения. Я стараюсь задавать вопросы на часто попадающиеся на собеседованиях темы.
@Эрдан-з5ч2 жыл бұрын
Как участвовать на таких собеседованиях у вас?
@ambushedraccoon64082 жыл бұрын
Я проводил набор желающих, на данный момент он приостановлен. Когда будет новый набор - дам объявление в телеграм-канале и сообществе.
@Dofor Жыл бұрын
Зачем спрашивать про макросы если в С++ добавили Inline функции чтобы избавиться от макросов?
@pavel_trpn Жыл бұрын
это перпендикулярные вещи. К тому же инлайн не обязывает компилятор делать подстановку
@Dofor Жыл бұрын
@@pavel_trpn для принудительного встраивания есть forceinline
@pavel_trpn Жыл бұрын
@@Dofor стандарт в курсе?
@Dofor Жыл бұрын
@@pavel_trpn а это правильный вопрос как так вышло что многие компиляторы предоставляют специальный атрибут или директиву для принудительного встраивания функции, а в стандарте ее нету? Ответ на этот вопрос заодно отвечает почему следует забыть про макросы работая на С++
@evgenyrozhnowsky65722 жыл бұрын
Крутые вопросы, маловато только лайв кодинга как для собеседования джуна)
@ambushedraccoon64082 жыл бұрын
Спасибо за фидбек, возьму на заметку.
@addressmodel2121 Жыл бұрын
@@ambushedraccoon6408 , 5:54 - вопрос из видео: "у какого поля класса конструктор вызовется раньше, у поля b или поля a?" - Ответ: компилятор в Release режиме выстроит поля в алфавитном порядке в сторону возрастания адресов в памяти. Из этого следует, что в Release режиме компиляции конструктор поля "a" вызовется раньше. Кстати, при инициализации объектов базовых классов, инициализация тоже идёт в алфавитном порядке. Инициализация мнимого подобъекта BASE_1 будет раньше инициализации мнимого подобъекта BASE_2 (инициализация идёт после размещения в памяти, а размещение в памяти идёт по алфавиту названий).
@haykgev3132 Жыл бұрын
Ну, в принципе, даже немного уверенность повысилась
@techN0Cigan2 жыл бұрын
Я бы такого кандидата сразу взял бы работать без раздумий! Вы видели его??? Это же лютый прогер с многолетним опытом разработки, его тупа нужно мидлом брать сразу, и всё тут!
@cheat_zone57992 жыл бұрын
Как попасть на такое собеседование?)
@ambushedraccoon64082 жыл бұрын
Был набор желающих, на данный момент он приостановлен. Когда будет новый набор - дам объявление в телеграм-канале и сообществе.
@Deathme876 ай бұрын
15:23 0_o я вообще не вкуриваю как этот парень отвечал на предыдущие вопросы с таким кодом
@kolyashinkarev73665 ай бұрын
Для того чтобы пройти собеседование на c++ тебе не надо знать как писать нормальный код, надо прочитать триллион книжек и знать специфику каждой функции из стандартной библиотеки, вместе со спецификой каждого отдельного компилятора
@СергейИконников-ц9и9 ай бұрын
лет 15 не писал, но все помню)
@kirinmomo2 жыл бұрын
Привет из Сибгути
@user_a1b79s29 ай бұрын
Безопасное зануление) а чем зануление отличается от заземления))
@ЧеловекСвободный-е4н2 жыл бұрын
Привет, можно попробовать? =)
@wqwwsqwsqess2 жыл бұрын
Мне кажется вопросы слишком лёгкие для джуна
@kolyashinkarev73665 ай бұрын
А какие надо? У человеа никакого реального опыта в айти нет, чего вы от него хотите? Или теперь каждое собеседование в любую контору должно быть как в гугл?
@Мояшарага-ъ2ж Жыл бұрын
Честно говоря странно было в конце услышать что какие-то вопросы могли быть и в мидл собесе, потому что все содержание видео это базовый курс С++ в любом нормальном университете
@sense5879 Жыл бұрын
Серьёзно? Это такой банальной чуши учат в УНИВЕРСИТЕТЕ? Дак это же всё знания из открытых источников... Я это ещё знал в 8 классе, все видео на Ютубе есть. Дак в универе ещё и платить за обучение надо, я то думал там будет что то более стоящее...
@shoggot282 Жыл бұрын
парень с кафедры далекой от си. я на информационной безопасности 1 семестр щупал стандартные "массивы" си/си++, вот и кончилось обучение. я честно признаюсь что не хочу называть свой вуз нормальным, не люблю эту систему (мирэа) пусть он и один из ведущих в стране. поэтому парень знает больше чем дают в вузах! (основываюсь не только на своем опыте, но и на опыте знакомых из других вузов)
@Мояшарага-ъ2ж Жыл бұрын
@@shoggot282 я учусь в чешском техвузе и тут все что было в видео является базой
@shoggot282 Жыл бұрын
@@Мояшарага-ъ2ж это правда круто, рад за тебя, но я не иронизирую, тут все посложнее
@Пппгг5Нагш2 жыл бұрын
Ну, я даже не знаю как можно дать ему хоршую оценку по собеседованию, если он даже высказать свои мысли не может, даже те которые он понимает, не говоря уже о тех вопросах, на которых он плавал. Причем плавал на многих вопросах из базового курса с++
@alienhazzard72012 жыл бұрын
У него умненькое лицо в очках и он похож на программиста. 🤣
@charles126 Жыл бұрын
посмотрев видео я понял что нихрена не знаю боже жесть
@yakobssaghatelyan18122 жыл бұрын
Позавите на собес по плюсам пожалуйста, готов в любое время в любой день)
@Anshegar Жыл бұрын
Собес 45 минут, собеседлование на джуна? Вы ему 200к в месяц что ли обещали?
@SM1i10 Жыл бұрын
А сколько должно быть? Меня и на трейни столько собеседовали
@Anshegar Жыл бұрын
@@SM1i10 Это была шутка :)
@ufi9540 Жыл бұрын
Так это на джуна. На остальное мало будет. Но от x2 минимум. Кто интереснее того дольше.
@ontetsu107111 ай бұрын
Меня как то на джуна 2,5 часа собеседовали)
@Anshegar11 ай бұрын
@@ontetsu1071 фига себе ты долго решал задачу на реверс строки )))))))))))))) (это шутка, не обижайся)
@vadimromansky82352 жыл бұрын
Так неправда же, это больше выводится из меньше и равно
@alienhazzard72012 жыл бұрын
Равно тоже выводится из меньше.
@zryndin Жыл бұрын
Профанация, тестировать должен AI
@nami_gamedev2 жыл бұрын
Зачем я это смотрю?.. Я же мобилками занимаюсь..
@vip510002 жыл бұрын
Ждем Carbon
@PuCyHOK10 ай бұрын
Экзамен прям
@JeNaVa2281337 Жыл бұрын
oxxxymiron начал проводить собесы
@DungeonAdmin2 жыл бұрын
Жаль код тестовый шакальный
@diaba40322 ай бұрын
постанова, чувак первый раз видит код и уже смотрит вниз кода за 2 секунды начинает делат ьвыводы и отвечать))))
@verne.1489Ай бұрын
Это называется опыт
@БайэлТитанов2 жыл бұрын
Какая зарплата у с++ джунов?
@aidanhouk2 жыл бұрын
Зависит от уровня кандидата и компании. Мне предлагали и 25к и 80к и 140к на руки на первой работе.
@ambushedraccoon64082 жыл бұрын
Сейчас сложно сказать. Раньше по Минску был стандарт от Епама. 600$
@nullptr_or_null83012 жыл бұрын
@@aidanhouk Я бы сказал в большей мере зависит от компании, если у компании нет особо денег, то она просто не сможет платить высокую зп, каким бы уровнем не обладал кандидат, а если есть то соответственно и джун в такой компании, может получать, без смеха, больше, чем сеньор в компании, в которой нет денег.
@xvostiki972 жыл бұрын
Всмысле зарплата? А как де работа за еду?
@libertariancom2 жыл бұрын
@APG Прогеру зато не надо физически отделкой заниматься и через 1-2 года он будет уже зарабатывать 150-200к при желании
@jakespb Жыл бұрын
Мне кажется, на Junior ту мач. Семантика перемещения, на мой взгляд, не обязательно на джуниора. "placement new" не каждый сеньор знает )
@ambushedraccoon6408 Жыл бұрын
Это практически первый раз, когда кто-то сказал, что вопросы сложноваты на собеседовании)
@nZver90 Жыл бұрын
Забавно, но я у Скотта Майерса (порекомендовали его книжки сразу после изучения синтаксиса языка для разбора его тонкостей) как раз недавно вычитал про placement new, но я не знал, что он именно так и называется. Как бы знаю ответ на вопрос, но одновременно и не знаю.)
@llllNEOllllchannel Жыл бұрын
@@ambushedraccoon6408 наверное потому что когда ты говоришь, что что-то сложно, то ставишь себя в слабое положение, там стыдно итд. Это как в школе, когда учитель задаёт вопрос "Всё поняли?" - 70% аудитории ничего не понимает, но утвердительно кивают.
@ontetsu107111 ай бұрын
Ну ладно placement new, ну фиг с ним, ну не вдавался человек в подробности, как тот же вектор написать, но семантика перемещения - это сейчас даже на стажёра обязательно
@TheMacsander10 күн бұрын
Ведущий не похож на человека который много зарабатывает
@736939 Жыл бұрын
Можете меня ненавидеть, но Rust намного круче плюсов. Баю-баюшки баю, Бьерн Страуструп проспал AI и смартфоновую революцию, Google выбрал Java только из-за "Garbage collector"-а, только в 11 году, появились смарт пойнтеры, что касается Aİ, то всю нишу взял Python под капотом библиотек которых Rust.
@daiske28675 ай бұрын
На раст ( на си/с++ ) Тензор флёо 57 на Схх Па1торч 37 с×× Нам пай 36 с Пандас сурНон 5, с 2 Мат плот с++ 5 Jax 6 cpp Кто использует раст? Может частные случаи аля ClickHouse(и тут соврал там тоже с++), но это о другом. Бинлинги в расте может и имеются, но ориги( узкие горышлка ) в основном на с/с++
@cheefoxcheefox23722 жыл бұрын
про delete nullptr есть тонкий момент. Для стандартнрй функции деаллокации известно, что эффекта нет. Но если она перегружена? Тогда хуже... Ибо стандарт не устанавливает должна ли она быть ввзвана в этом случае. Только лишь то, что поставщик должен это делать одинаково для всех вызовов.
@billjohnes93802 жыл бұрын
А если перегруженный operator delete, вместо освобождения памяти, начнёт печатать переданный адрес вместо того, что должен делать? Перегруженный operator delete должен соблюдать контракт встроенного operator delete, это -- ответственность программиста, перегружающего его. В реальности, из широко используемых компиляторов, только MSVC вызывает operator delete с указателем null, если в delete expression передан null. Кстати, Сам по себе nullptr указателем не является, поэтому код 'delete nullptr;' даже не компилируется.
@cheefoxcheefox23722 жыл бұрын
@@billjohnes9380 Вот что должен делать кастомный делитор написано не в стандарте, а в доке. И должен он именно это. И если он там делает, что-то иное, побочку, например, какую-то, нужно быть готовым.
@billjohnes93802 жыл бұрын
@@cheefoxcheefox2372 В какой ещё доке? Для C++ существует только стандарт, никаких док. Глянул стандарт C++17 для уточнения, там написано: The value of the first argument supplied to a deallocation function may be a null pointer value; if so, and if the deallocation function is one supplied in the standard library, the call has no effect. Это значит, что стандарт для вызова со значением null pointer value не делает различий с позиций того, переопределена deallocation function или нет. Вызвана она может быть со значением null pointer value вне зависимости от этого. Стандарт даёт лишь гарантию, что в случае, если deallocation function не переопределена, то "the call has no effect".
@нагрустнычах3 ай бұрын
я не уверен но помоему factory pattern это и есть виртуальный конструктор
@Anton_Zh Жыл бұрын
Oxxymiron ты ли это?
@MegaDanil972 жыл бұрын
Что то парень очень бледный, выходи хоть иногда погулять и сном ради работы не стоит жертвовать)
@s.g.72132 жыл бұрын
Интересный пример. Может не на джуна. ////a.h #ifndef A_H #define A_H class A { public: int m_value = 1000; A(); }; #endif // A_H ////b.h #ifndef B_H #define B_H class B { public: int m_value = 2000; B(); }; #endif // B_H /// a.cpp #include "a.h" #include "b.h" #include extern B b; A::A() { std::cout
@romk2246 ай бұрын
main вернёт 0. Это вся программа у вас. Даже хедеры не подключены.
@idodoqdo57832 жыл бұрын
Слабовато для джуна
@vdrmkr Жыл бұрын
Оч слабо, без обид (про собеседуемого)
@v1dzhet7 ай бұрын
ощущение будто он первый месяц плюсы только учит
@paulfunigga2 жыл бұрын
Раньше писал на С++, рад, что ушел с него. Java, Scala, Python, и так далее гораздо лучше...
@ЕвгенийГригорьев-ш9ц2 жыл бұрын
полностью поддерживаю такое решение. Засевшие в плюсовом комитете стандартизаторы - давно уже выжили из ума и, от новой версии к более новой язык и равно как и его стандартная библиотека только усложняются, что не добавляет никому радости а только головняков
@Anna_Porosenok2 жыл бұрын
Какова скорость обработки графики в сравнение с с++ или с? Сравнивали?
@ЕвгенийГригорьев-ш9ц2 жыл бұрын
@@Anna_Porosenok В данном случае не понятен вопрос - что значит обработка графики? Есть како-то определенный алгоритм есть его реализация? - все дело в реализвции алгоритма - в умелых руках - скорость будет одинакова, но и код будет одинаков.
@Anna_Porosenok2 жыл бұрын
@@ЕвгенийГригорьев-ш9ц если на питоне написать реализацию графики и на с++
@ЕвгенийГригорьев-ш9ц2 жыл бұрын
@@Anna_Porosenok Так, Анна - если Вы ведете к тому что изобретаете собственный алгоритм и нужно использовать адресную арифметику, обращаться напрямую к устройствам, к памяти к регистрам процессора - да Вам Си ближе. Если Вы используете готовые решения - то думаю есть биндинги этих библиотек в питону. Извините ответ общий - так как в вопросе нет деталей
@alexla_grange8957Ай бұрын
"Линковка", а правильное слово на русском не может подобрать 🤣 связывание
@porohmega7 ай бұрын
Какой слабый ментор и какой толковый заинтересованный джун, здорово
@kOoSyak2 жыл бұрын
Канал из разработчика превратился в очередной: как добиться успеха.
@tupanji134210 күн бұрын
Писдееес, нифига не понял, может не следует на программиста учиться
@igorshirkalin40542 жыл бұрын
Когда будут девушки или женщины на собеседовании? Или я пропустил?
@zxcghoul883710 ай бұрын
когда посуду домоют
@oleggubanov92794 ай бұрын
Что общего эти безумные вопросы по теории C++ имеют с реальностью? Человек учится программированию не изучая теорию, а создавая новые проекты и программы? Система Microsoft Visual Studio имеет огромное количество средств и инструментов для оптимизации работы программ. Соответственно зачем нужно зубрить всю эту теорию C++ для реальной жизни? Я, разработчик игр на C++ с девятилетним опытом работы. Знания библиотеки stl, знание Windows API, Direct3D11, DirectCompute и языка программирования шейдеров HLSL и навык создания проектов C++ в Visual Studio для меня достаточно для разработки программных продуктов без всякой этой зубодробительной теории. Система проведения интервью полное говно.
@ambushedraccoon64084 ай бұрын
Ну вот, что за беда. Девять лет работаете, а свою критику адекватно высказывать не научились. Часть вопросов демонстрирует то, с чем люди сталкиваются на собеседованиях в крупных компаниях. Другая часть вопросов призвана подсветить интервьюируемому его пробелы, на которых он может посыпаться на реальном собеседовании. Как это соотносится с реальной жизнью? До чего же странный вопрос, реальная жизнь не ограничивается вашей работой. Своим вбросом вы только вводите людей в заблуждение.
@oleggubanov92794 ай бұрын
@@ambushedraccoon6408 А разве собеседование это не этап трудоустройства?
@vtjesus59102 ай бұрын
@@ambushedraccoon6408 поход ты воспринимать критику не умеешь , а не он ее высказывать хд)))))