Библиотека C/C++ разработчика | cpp, boost, qt
21K subscribers
1.57K photos
40 videos
16 files
3.74K links
Все самое полезное для плюсовика и сишника в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/d6cd2932

Наши каналы: https://yangx.top/proglibrary/9197

РКН: https://gosuslugi.ru/snet/67a5bac324c8ba6dcaa1ad17
加入频道
Проблема «Most vexing parse»

Most vexing parse — это ситуация в языке программирования C++, когда компилятор интерпретирует объявление функции вместо объявления объекта, когда это может быть неочевидным для программиста

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

Чтобы избежать проблемы most vexing parse, можно использовать универсальную инициализацию (uniform initialization) с помощью фигурных скобок {}
🏔 Эпикфейл: карьера катится к чертям

🤦‍♂️ У всех нас случались провалы в карьере, о которых не хочется распространяться. Неловкий момент на собеседовании, провал проекта из-за глупой ошибки, конфликт с начальством — такие ситуации хочется поскорее забыть. Однако часто именно они дают нам самые ценные уроки и закаляют как профессионалов.

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

👉 Поделиться историей
Uniform initialization

В С++ — это способ инициализации объектов с помощью фигурных скобок {}. Появившийся ещё в C++11. Позволяет инициализировать объекты без необходимости использования разных синтаксических конструкций в зависимости от типа данных

💡Плюсы
• Позволяет использовать один и тот же синтаксис для всех типов данных
• Более ясный и единообразный синтаксис
• Более строгая проверка типов во время компиляции
• Поддержка инициализации списками
• Позволяет передавать произвольное количество значений для инициализации объекта
Остаться или уйти? Оптимальный срок работы на одном месте

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

Многие опытные айтишники сталкиваются с такой дилеммой. С одной стороны, текущее место работы устраивает. С другой — хочется разнообразия, новых задач и знаний

Должен ли современный IT-специалист менять работу чаще, чем раз в 5 лет? Или лучше наращивать экспертизу в рамках одной компании? А может дело совсем не в сроках, а в качестве задач и развитии карьеры

👉 Опрос по ссылке
std::initializer_list

std::initializer_list — это стандартный контейнер в C++, который представляет собой список значений одного типа. Он используется для передачи произвольного количества значений в функции и конструкторы классов

📋 Зачем это нужно?

std::initializer_list позволяет удобно инициализировать контейнеры и другие объекты с произвольным количеством значений без явного указания размера или создания временных массивов
🛠️ Inline assembly

Inline assembly — инструмент, который позволяет встраивать непосредственно ассемблерные инструкции в код. Это полезно, когда требуется оптимизировать производительность или реализовать операции, которые не могут быть выполнены с помощью стандартных средств языка

🌐 Ссылки

Inline assembly
Using Inline Assembly in C/C++
🛠️ Что такое C++ Streams?

В контексте C++, потоки (streams) представляют собой механизм для работы с вводом и выводом данных. Они обеспечивают абстракцию над различными источниками и приемниками данных, такими как консоль, файлы и строки, позволяя программистам работать с ними с помощью общего интерфейса

Основные реализации потоков в C++
std::cin и std::cout: Это стандартные потоки ввода и вывода, которые обычно используются для взаимодействия с консолью
std::ifstream и std::ofstream: Это классы потоков для работы с файлами
std::stringstream: Этот класс потока позволяет работать с данными как с потоком, хранящимся в строке. Он может использоваться для выполнения операций ввода-вывода с помощью строкового представления данных

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

Сохраняйте себе, чтобы не потерять 💾

🔥Для всех

Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
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 запрещена на территории РФ
🎮👨‍💻 15 игр, которые научат программированию

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

👉 Читать статью
😈 Даркнет: как устроен теневой рынок труда

Рассказываем, как устроен теневой рынок даркнета, каких ИТ-специалистов там ищут и какую зарплату предлагают.

🔗 Читать статью
🔗 Зеркало
🧑‍💻 std::async и std::future

std::async и std::future — классы, которые необходимы для асинхронного вызова функций

📚 std::async — позволяет запускать функции асинхронно

📚 std::future — способ получения результата, после выполнения асинхронной функции

🛠 Плюсы
• Можно не использовать сторонние библиотеки (например Boost.Asio или Qt)
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.

Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.

Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
🤔 Как нестандартно войти в АйТи

Многие IT-специалисты приходят в эту сферу нестандартным путем — кто-то начинал как самоучка, а кто-то стал программистом случайно. Был ли у вас необычный старт карьеры в IT?

Расскажите нам свою историю! Ваш опыт может вдохновить тех, кто мечтает о переменах, но пока не решается начать.

❤️ С нетерпением ждем ваших комментариев!
🔵 Всё, что вы хотели знать о Serverless

Serverless — это подход, позволяющий не задумываться об эксплуатации инфраструктуры и оплачивать только потреблённые ресурсы. О преимуществах и особенностях бессерверного подхода, типовых сценариях для serverless-архитектуры и как писать код по-новому читайте в статьях Yandex Cloud:

Всё, что вы хотели знать о бессерверных технологиях
Запускаем контейнерные приложения в Yandex Serverless Containers
Разграничение доступа к API с помощью Yandex API Gateway
Функциональное программирование

Тема функционального программирования не новая для C++, но крайне полезная. Лямбда-функции и функторы часто встречаются в коде и хорошо бы с ними уметь работать без обращения к гуглу и лишней головной боли. Да и на собеседования не редко попадаются вопросы на эту тему

На youtube канале C++ User Group как раз вышло новое видео посвящённое данной теме

Элементы функционального программирования в языке C++
🧑‍💻 dlib C++ library

Dlib — это набор инструментов на C++, содержащий алгоритмы машинного обучения и инструменты для создания сложного программного обеспечения решающего широкий спектр задач, связанных с компьютерным зрением, обработкой изображений, обнаружением объектов, распознаванием лиц и многим другим

👉 Github
Для чего нужен extern ''C''?

extern ''C'' — это спецификатор языка C++, который указывает компилятору, что определения функций или переменных должны использовать соглашение о вызове и механизм именования, который характерен для языка C. Это означает, что имя функции или переменной не будет изменено (не будет подвергнуто name mangling) компилятором C++, и оно будет доступно для использования в коде на языке C

Основное применение
• extern ''C'' используется при написании кода, который должен быть совместимым с C и C++. В основном для написания внешнего API к библеотеки, чтобы можно было пользоваться ей из разных языков программирования (всех, которые поддерживают вызов функций языка C)

Ограничения

• extern ''C'' может быть только на уровне пространства имён. Внутри классов использовать не получится
💸 Рост или падение? Изменение зарплат в IT за 2023 год

Чтобы разобраться в этом вопросе, «Библиотека программиста» решила провести опрос среди читателей издания. Мы хотим понять, выросли ли ваши зарплаты в 2023 году и если да, то на сколько процентов. Или может быть наоборот — ваши доходы снизились на фоне кризисных явлений в экономике?

Примите участие в нашем коротком опросе и поделитесь своим мнением! Вместе мы проанализируем текущую ситуацию на рынке труда в IT-сфере и поймем, что ждёт эту отрасль дальше. Ждём ваших ответов!

Опрос займёт у вас примерно 4 минуты.

👉 Ссылка на опрос
Что почитать игровому программисту?

На хабре вышло пару статей на тему литературы литературы полезной для геймдев разработчика. Там достаточно много тематических книг для C++ разработчиков. Полезно это будет в первую очередь уже опытным разработчикам, или тем кто уже работает в геймдеве чтобы структурировать знания

Что почитать игровому программисту?
Что ещё почитать игровому программисту?