Библиотека собеса по C++ | вопросы с собеседований
Kanalga Telegram’da o‘tish
Вопросы с собеседований по C++ и ответы на них. Как запустить своего ии-агента: https://clc.to/tvpmDQ По рекламе: @tproger_sales_bot Учиться у нас: https://proglib.io/w/9ccf302b Для обратной связи: @proglibrary_feeedback_bot
Ko'proq ko'rsatish4 599
Obunachilar
-224 soatlar
-77 kun
-1030 kun
Postlar arxiv
⏰ Какое время жизни у переменных?
• Статическое — это глобальные (в том числе и static). Живут всё время выполнения процесса. Конструкторы вызываются до функции main и после выхода из неё вызываются деструкторы
• Потоковые — другое название thread_local. Ведут себя как глобальные, но в каждом потоке есть своя переменная. Их существует столько сколько и потоков
• Автоматические — располагаются на стеке. Это аргументы функции, локальные переменные, возвращаемые значения. За такими переменными следит компилятор
👩💻 Что нового в С++23 и как это использовать?
Расскажет Владимир Щерба — Middle Backend Developer в Soramitsu Labs. Приходите на бесплатный практический урок «Обзор С++20/23. Корутины, expected, generator, stacktrace» от OTUS.
На вебинаре разберем:
— Deducing this — наконец-то избавляемся от дублирования const- и не-const- методов;
— std::stacktrace — кроссплатформенный способ распечатать стек вызовов;
— std::expected — новый подход к обработке ошибок;
— std::generator — первая корутина в стандартной библиотеке.
🤝 Встречаемся 21 февраля в 20:00 мск в рамках курса «C++ Developer. Professional». Доступна рассрочка на обучение!
➡️ Пройдите короткий тест прямо сейчас, чтобы посетить бесплатный урок и получить запись: https://otus.pw/6Bm0/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576 Erid 2VtzqxTRy9sДля чего нужен шаблон Singleton?
Основная причина использования Singleton — обеспечение доступа к одному ресурсу из разных мест исходного кода, например взаимодействием с одним файлом или сетевым взаимодействием
В C++ для реализации можно использовать static переменные, потому что они имеют защиту от одновременного доступа к переменной
📋 Что лучше использовать const или define?
define — это директива препроцессора в языке C++, которая заменяет указанный текст в коде на заданное значение до компиляции. Однако define не учитывает типы данных или области видимости и может привести к созданию множества копий значения в объектном коде. Это усложняет отладку, так как define не имеет имени, только значение
В отличие от define, ключевое слово const в C++ предоставляет тип данных, область видимости и позволяет взять адрес переменной или создать ссылку на нее. Поэтому использование const предпочтительнее, так как обеспечивает большую четкость и безопасность кода
Самые полезные каналы для программистов в одной подборке!
Сохраняйте себе, чтобы не потерять 💾
🔥Для всех
Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы
Proglib Academy — тут мы рассказываем про обучение и курсы
#️⃣C#
Книги для шарпистов | C#, .NET, F#
Библиотека шарписта — полезные статьи, новости и обучающие материалы по C#
Библиотека задач по C# — код, квизы и тесты
Библиотека собеса по C# — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Вакансии по C#, .NET, Unity Вакансии по PHP, Symfony, Laravel
☁️DevOps
Библиотека devops’а — полезные статьи, новости и обучающие материалы по DevOps
Вакансии по DevOps & SRE
Библиотека задач по DevOps — код, квизы и тесты
Библиотека собеса по DevOps — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
🐘PHP
Библиотека пхпшника — полезные статьи, новости и обучающие материалы по PHP
Вакансии по PHP, Symfony, Laravel
Библиотека PHP для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по PHP — код, квизы и тесты
🐍Python
Библиотека питониста — полезные статьи, новости и обучающие материалы по Python
Вакансии по питону, Django, Flask
Библиотека Python для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Python — код, квизы и тесты
☕Java
Библиотека джависта — полезные статьи по Java, новости и обучающие материалы
Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Java — код, квизы и тесты
Вакансии для java-разработчиков
👾Data Science
Книги для дата сайентистов | Data Science
Библиотека Data Science — полезные статьи, новости и обучающие материалы по Data Science
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту
🦫Go
Книги для Go разработчиков
Библиотека Go разработчика — полезные статьи, новости и обучающие материалы по Go
Библиотека Go для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Go — код, квизы и тесты
Вакансии по Go
🧠C++
Книги для C/C++ разработчиков
Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++
💻Другие профильные каналы
Библиотека фронтендера
Библиотека мобильного разработчика
Библиотека хакера
Библиотека тестировщика
💼Каналы с вакансиями
Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности
📁Чтобы добавить папку с нашими каналами, нажмите 👉сюда👈
🤖Также у нас есть боты:
Бот с IT-вакансиями
Бот с мероприятиями в сфере IT
Мы в других соцсетях:
🔸VK
🔸YouTube
🔸Дзен
🔸Facebook *
🔸Instagram *
* Организация Meta запрещена на территории РФ
Функциональное программирование
Тема функционального программирования не новая для C++, но крайне полезная. Лямбда-функции и функторы часто встречаются в коде и хорошо бы с ними уметь работать без обращения к гуглу и лишней головной боли. Да и на собеседования не редко попадаются вопросы на эту тему
На youtube канале C++ User Group как раз вышло новое видео посвящённое данной теме
Элементы функционального программирования в языке C++
🧑💻 В чём проблема ромбовидного наследования?
Ромбовидное наследование (или diamond inheritance) возникает, когда один класс наследуется от двух классов, которые сами наследуются от общего предка
🔍 Проблемы
• Если базовый класс имеет общие поля или методы, то не понятно какая из реализаций будет использована в классе наследнике
• Сложность читать такой код, особенно если предков больше двух и общий предок находится глубоко в иерархии наследования
🧑💻 Статьи для IT: как объяснять и распространять значимые идеи
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Каким будет результат следующего фрагмента кода на C++?
📋 Задача Простые числа
Создайте функцию, которая находит количество простых чисел до заданного целого числа
📚 Подход к решению
• Решето Эратосфена на Си
How Many «Prime Numbers» Are There? (edabit)
🛠️ Что такое C++ Streams?
В контексте C++, потоки (streams) представляют собой механизм для работы с вводом и выводом данных. Они обеспечивают абстракцию над различными источниками и приемниками данных, такими как консоль, файлы и строки, позволяя программистам работать с ними с помощью общего интерфейса
Основные реализации потоков в C++
• std::cin и std::cout: Это стандартные потоки ввода и вывода, которые обычно используются для взаимодействия с консолью
• std::ifstream и std::ofstream: Это классы потоков для работы с файлами
• std::stringstream: Этот класс потока позволяет работать с данными как с потоком, хранящимся в строке. Он может использоваться для выполнения операций ввода-вывода с помощью строкового представления данных
Преимущества использования потоков
• Удобство в использовании
• Возможность абстрагировать ввод-вывод от конкретных источников и приемников данных
• Поддержку различных типов данных
🌟 Что такое std::jthread?
std::jthread — это новый класс потока исполнения (thread) в стандартной библиотеке C++ (начиная с C++20). Он представляет собой управляемый поток, который автоматически завершает свою работу при выходе из области видимости, если он был запущен
📘 В отличие от std::thread, std::jthread предоставляет несколько преимуществ
• Управление временем жизни: std::jthread автоматически завершает свою работу, когда объект std::jthread выходит из области видимости. Это позволяет избежать необходимости явного вызова join() или detach() для завершения потока, что упрощает управление ресурсами
• Безопасное исключение при завершении: Если поток, созданный с помощью std::jthread, был запущен и бросает исключение, прежде чем завершиться, то исключение будет перехвачено и обработано, прежде чем поток завершится. Это делает код более безопасным и предотвращает утечку ресурсов
👉 Что это такое strerror?
strerror является стандартной функцией в языке программирования C++ и предоставляет простой и эффективный способ получения описания ошибки на основе ее кода. Саму же ошибку можно чаще всего взять из errno (глобальная переменная, объявление её лежит в заголовочном файле errno.h)
🔧 Зачем это нужно?
Это очень полезно при обработке ошибок в программе. strerror помогает преобразовать код ошибки, возвращаемый функциями стандартной библиотеки или операционной системы, в человекочитаемое описание, что упрощает понимание и отладку проблем
Реально ли IT-специалисту переехать в Великобританию без предложения о работе, без высшего образования и без знания английского языка? Ответ: да! Рассказываем, как это сделать.
Виза Global Talent дала возможность более 8000 IT-специалистам переехать в Британию в 2022 году. Она выдаётся на срок до 5 лет, по ней можно работать в любой компании, фрилансить, открывать собственный бизнес и даже претендовать на паспорт!
Чтобы получить эту визу, не обязательно иметь высшее образование, не нужно знать язык на высоком уровне, а заявку можно подать из любой страны. И, пожалуй, самое главное – не нужно обладать каким-то исключительным талантом! Почти все IT-специалисты могут претендовать на эту визу.
Подписывайтесь на наш Telegram-канал, где мы даём массу полезной информации о релокации: https://t.me/movetalent
Пишите нам в WhatsApp: +44 7496 949122 или в Telegram: @relocode_dm. Мы проводим бесплатные консультации, на которых поможем разобрать ваш кейс и подобрать наиболее подходящий способ релокации.
Реклама. Шарова Елизавета Владимировна, ИНН 614008249720. Erid 2VtzqwRtP6pЧасто в C++ при исправление одной ошибки в программе количество ошибок только увеличивается. Как думаете почему это происходит?
👩💻 Что должен знать востребованный разработчик на С++?
Расскажет Александр Ключев — ведущий программист в «Новые облачные технологии». Приходите на бесплатный практический урок «C++20 динамическое выделение памяти во время компиляции» от OTUS.
На вебинаре вы узнаете:
- как работает динамическое выделение памяти на этапе компиляции в С++20;
- зачем это нужно и где можно использовать.
🤝 Встречаемся 15 февраля в 20:00 мск в рамках курса «C++ Developer. Professional». Доступна рассрочка на обучение!
➡️ Пройдите короткий тест прямо сейчас, чтобы посетить бесплатный урок и получить запись: https://otus.pw/3TFn/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576 Erid 2VtzqwZLKBW🌟 Что такое std::variant?
std::variant — это класс-шаблон в стандартной библиотеке C++, который предоставляет механизм для хранения и обработки значения из списка альтернативных типов. Это позволяет программистам создавать переменные, которые могут содержать значения разных типов, известных заранее
📘 Особенности
Безопасность типов: std::variant гарантирует безопасность типов на этапе компиляции. Это означает, что вся обработка значений будет проверена на соответствие типов на этапе компиляции, что помогает избежать ошибок времени выполнения, связанных с неправильным использованием типов данных
🌟 Что такое std::optional?
Это класс, появился начиная с C++17, который даёт удобный способ работы с «возможно отсутствующим» значением
🌐 Ссылки
• std::optional
• std::optional in C++
• Рефакторинг с использованием C++17 std::optional
• Использование std::optional в С++17
Что такое TDD?
TDD (Test-Driven Development) — это методология разработки программного обеспечения, которая основана на повторении очень коротких циклов разработки: сначала пишется тест, покрывающий желаемое изменение, затем пишется код, который позволит пройти тест, и под конец проводится рефакторинг нового кода к соответствующим стандартам.
TDD означает, что программист сначала пишет модульный тест, который проверяет ожидаемое поведение некоторой части кода. Затем программист пишет код, который заставляет тест пройти. После этого программист может провести рефакторинг кода, чтобы улучшить его читаемость, производительность или другие свойства.
