Полезные материалы по всему, что может быть полезно плюсовику/сишнику.
Что советуют разработчики на С++
Курс Introductions To Algorithms
Курс Algorithms от Стэнфордского Университета
Сборник из 145 алгоритмов для самостоятельной практики
Книга «Диалекты Basic для ZX Spectrum» под редакцией Родионова Н. Ю., Ларченко А. А.
Выступление Джонатана Боккара на CppCon 2018 "105 STL algorithms in less than an hour"
#cpp #programming
👉 @cpp_lib
👉 Хотите научиться эффективно обрабатывать ошибки в C++ и повысить надежность своих программ?
⏰ Ждем вас на открытом вебинаре 20 августа в 20:00 мск, где мы разберем:
- концепции генерации и обработки ошибок в C++;
- классические способы возвращения ошибок и инструменты стандартной библиотеки;
- механизмы работы с исключениями в C++.
🏆 Спикер Евгений Пальчуковский — много лет занимается автоматизацией брокерской деятельности в России и мире в качестве программиста на С++.
Встречаемся в преддверии старта курса «Специализация C++ Developer». Все участники вебинара получат специальную цену на обучение!
👉 Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://vk.cc/czrkos
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Тысяча и одна библиотека С++
В жизни каждого программиста С++ рано или поздно возникает задача, которую кто-либо уже решил. Однако найти это решение бывает очень непросто в силу разных причин: оно недостаточно разрекламировано, либо имеет нечеткую документацию, или возникает проблема языкового барьера, ну, или поисковики просто плохо ищут).
Столкнувшись много раз подряд с тем, что найти что-то толковое довольно непросто, я решил попробовать распутать это узел и предложить для русскоязычных читателей свой справочник классных библиотек на С++. Я исходил из этого источника. Это очень многогранный и объемный список библиотек языка С++, но, скажем так, у меня были к нему вопросы. Потому я сделал перевод, затем значительно улучшил его в плане содержания (далее объясню, как, почему и зачем). На выходе получилось около 1000 библиотек. Как в сказке). Они, конечно, не покрывают все возможные задачи и предметные области, но поверьте, они затрагивают действительно многое.
https://habr.com/ru/articles/831754/
#cpp #programming
👉 @cpp_lib
DPP
D++ — это легковесная и эффективная библиотека для Discord, написанная на современном C++. Она охватывает максимально возможную часть спецификации API и обладает невероятно малым объемом памяти даже при кэшировании больших объемов данных.
https://github.com/brainboxdotcc/DPP
#cpp #programming
👉 @cpp_lib
💪 Пройди тест по C++ и проверь свои знания!
Ответишь — пройдешь на продвинутый курс "C++ Developer. Professional" от OTUS по специальной цене + получишь 64 записи открытых уроков от преподавателей курса бесплатно!🎁.
➡️ ПРОЙТИ ТЕСТ: https://clck.ru/3CToaW/?erid=2VtzqwdicQk
✅ Получи бонусы и успей присоединится к августовской группе!
Курс по ООП в С++
введение
инкапсуляция
наследование
полиморфизм
шаблоны и метапрограммирование
источник
#cpp #programming
👉 @cpp_lib
Курс «Введение в Реверс инжиниринг»! Запись до 17 августа
Курс подойдёт всем интересующимся темой реверс-инжиниринга. По окончанию курса, вы будете уметь проводить исследования исполняемых файлов и вносить изменения в логику программ.
Курс включает в себя:
- Работу с отладчиком IDA
- Практические навыки анализа исполняемых файлов без исходного кода
- Изучение ассемблера, языка Си и EXE / ELF
- Восстановление исходного кода из скомпилированных программ
🏆 Сертификат / удостоверение о повышении квалификации
Пишите нам @Codeby_Academy или узнайте подробнее о курсе здесь
Memory Safety in C++ vs Rust vs Zig
shyamsundarb/memory-safety-in-c-vs-rust-vs-zig-f78fa903f41e" rel="nofollow">https://medium.com/@shyamsundarb/memory-safety-in-c-vs-rust-vs-zig-f78fa903f41e
#cpp #programming
👉 @cpp_lib
Раскатили фан на полную
17 августа в Москве в музее-заповеднике «Коломенское» пройдет ИТ-пикник — фестиваль для опытных ИТ-специалистов, их близких и друзей. Будет больше 17-ти ИТ-партнеров фестиваля. В программе воркшопы, лекции от спикеров известных компаний, нетворкинг, выступления топовых музыкантов и детская зона.
Придут Леонид Агутин, TRITIA, Дайте танк (!), Драгни, Найк Борзов и Нееет, ты что. А вы придете?
Успейте зарегистрироваться
erid:2VtzqxH1gXD
Реклама. АО "ТБанк", ИНН 7710140679, лицензия ЦБ РФ № 2673
Нативная рефлексия в C++ уже близко
Почему в 2024 году нам приходится писать каст енума к строке вручную, для каждого кастомного типа нужна своя функция логирования, а биндинги к C++ библиотеке требуют кучу повторяющегося кода?
Если Вы задавались этими, или подобными вопросами, то у меня для вас хорошая новость - скоро эти проблемы будут решены. И что самое приятное - на уровне языка, а не нестандартным фреймворком.
Сегодня рассматриваем пропозалы рефлексии, которые с большОй вероятностью попадут в следующий стандарт - C++26.
https://habr.com/ru/articles/824840/
#cpp #programming
👉 @cpp_lib
📕Sams Teach Yourself C++ in One Hour a Day
Siddhartha Rao (2021)
In just one hour a day, you will have all the skills you need to begin programming in C++. With this complete tutorial, you will quickly master the basics, and then move on to more advanced features and concepts. Completely updated for the latest C++ standard, this book presents the language from a practical point of view, helping you learn how to use C++ to create faster, simpler, and more efficient C++ applications.
#cpp #programming
👉 @cpp_lib
У вендора и производителя IT-инфраструктуры YADRO активны вакансии в разных направлениях для тех, кто кодит на С/С++ 🔍
1️⃣ Software Engineer C/C++
2️⃣ Разработчик ПО для цифровых систем связи
3️⃣ Senior C++ developer/Старший инженер-программист С++
4️⃣ Инженер по разработке ПО (C/C++ Embedded Linux)
5️⃣ Старший разработчик C++ (Linux/ OpenBMC)
6️⃣ Инженер по разработке встраиваемого ПО (Embedded Linux BSP)
Ты сможешь раскрыть свой творческий и инженерный потенциал в команде профессионалов, которые создают высокотехнологичные решения мирового уровня.
Какие бенефиты предлагаются:
– достойная зарплата (размер обсуждается на собеседовании) и прозрачная система премий;
– обучение за счёт компании: учебный портал с курсами и лекциями от экспертов, дополнительное профессиональное обучение, изучение английского, участие в конференциях;
– возможность учиться у лучших специалистов индустрии, расти в рамках своей роли, а также участвовать во множестве различных проектов;
– личное участие в становлении процессов и продуктов, возможность увидеть результат своей работы;
– большое инженерное сообщество, которое постоянно развивается;
– гибридный или удалённый формат работы;
– ДМС со стоматологией с первого дня, консультации юристов, психологов, экспертов по ЗОЖ и управлению финансами;
– скидки для сотрудников, дополнительные day-off;
– комфортные офисы в Москве, Санкт-Петербурге, Нижнем Новгороде и Минске.
Скорее переходи по ссылкам и оставляй отклики!
4 типовые ловушки в работе со строками в С и С++ и как их избежать
Некорректное использование строк может стать настоящей ахиллесовой пятой защиты программы. Поэтому так важно применять актуальные подходы к их обработке. Под катом разберём несколько паттернов ошибок при работе со строками, поговорим о знаменитой уязвимости Heartbleed и узнаем, как сделать код безопаснее.
https://habr.com/ru/companies/ncloudtech/articles/830918/
#cpp #programming
👉 @cpp_lib
Опыт создания UI библиотеки на C++
Началось все почти два года назад в декабрe, наш основной проект (видео мессенджер) использовал WTL для Windows и GTKmm для Linux. Поддержки мака не было. Огромной неприятностью было тащить два идентичных клиента, которые, по идее, должны делать все строго одно и тоже. Разумеется, это никогда не получалось. От мысли что надо бы сделать ещё один нативный клиент для мака начинался нервный тик...
На резонный вопрос - почему сразу делалось не на Qt могу лишь ответить, что это связано с, так скажем, гурманскими предпочтениями и, отчасти, с любовью к монолитным exe. Да и не требовалось на старте ничего кроме винды.
В течение шести лет жизни с двумя кодовыми базами одного и того же, неспешно подбирались легковесные UI библиотеки написанные хотя бы в стиле C++11.
Надо сказать, что мы активно используем boost и всей душой, как можем, его любим...
В 2021 году видимо Гугл работал плохо или звёзды так сошлись, но не нашлось ничего стоящего. Все что попадалось - основанные на рендеринге html проекты и обертка над wxWidgets. Сейчас то мы знаем про lvgl, да... А вообще, тысячи их.
wxWidgets не плох, но хотелось своего рисования, без окошек под кнопки, поля ввода и списки, boost/bsd подобной лицензией, максимально лаконичной, и в идеале работающей от Windows XP / CentOS 6 на стандартном GDI / X11 до Vulkan на современных машинах.
В итоге, все же было принято волевое решение сделать минимальный UI фреймворк для этого проекта, и сразу выпускать его в Open Source под лицензией boost.
https://habr.com/ru/articles/768336/
#cpp #programming
👉 @cpp_lib
CppCoreGuidelines
Основные принципы C++ - это набор проверенных рекомендаций, правил и лучших практик по программированию на C++.
https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines
#cpp #programming
👉 @cpp_lib
Подборка Telegram каналов для программистов
Системное администрирование 📌
/channel/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
/channel/sysadminof Книги для админов, полезные материалы
/channel/i_odmin Все для системного администратора
/channel/i_odmin_book Библиотека Системного Администратора
/channel/i_odmin_chat Чат системных администраторов
/channel/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.
/channel/sysadminoff Новости Линукс Linux
/channel/tikon_1 Новости высоких технологий, науки и техники💡
/channel/mir_teh Мир технологий (Technology World)
/channel/rust_lib Полезный контент по программированию на Rust
/channel/golang_lib Библиотека Go (Golang) разработчика
/channel/itmozg Программисты, дизайнеры, новости из мира IT.
/channel/phis_mat Обучающие видео, книги по Физике и Математике
/channel/php_lib Библиотека PHP программиста 👨🏼💻👩💻
/channel/nodejs_lib Подборки по Node js и все что с ним связано
/channel/ruby_lib Библиотека Ruby программиста
1C разработка 📌
/channel/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С
Программирование C++📌
/channel/cpp_lib Библиотека C/C++ разработчика
/channel/cpp_knigi Книги для программистов C/C++
/channel/cpp_geek Учим C/C++ на примерах
Программирование Python 📌
/channel/pythonofff Python академия. Учи Python быстро и легко🐍
/channel/BookPython Библиотека Python разработчика
/channel/python_real Python подборки на русском и английском
/channel/python_360 Книги по Python Rus
Java разработка 📌
/channel/BookJava Библиотека Java разработчика
/channel/java_360 Книги по Java Rus
/channel/java_geek Учим Java на примерах
GitHub Сообщество 📌
/channel/Githublib Интересное из GitHub
Базы данных (Data Base) 📌
/channel/database_info Все про базы данных
Мобильная разработка: iOS, Android 📌
/channel/developer_mobila Мобильная разработка
/channel/kotlin_lib Подборки полезного материала по Kotlin
Фронтенд разработка 📌
/channel/frontend_1 Подборки для frontend разработчиков
/channel/frontend_sovet Frontend советы, примеры и практика!
/channel/React_lib Подборки по React js и все что с ним связано
Разработка игр 📌
/channel/game_devv Все о разработке игр
Вакансии 📌
/channel/sysadmin_rabota Системный Администратор
/channel/progjob Вакансии в IT
Чат программистов📌
/channel/developers_ru
Библиотеки 📌
/channel/book_for_dev Книги для программистов Rus
/channel/programmist_of Книги по программированию
/channel/proglb Библиотека программиста
/channel/bfbook Книги для программистов
/channel/books_reserv Книги для программистов
БигДата, машинное обучение 📌
/channel/bigdata_1 Data Science, Big Data, Machine Learning, Deep Learning
Программирование 📌
/channel/bookflow Лекции, видеоуроки, доклады с IT конференций
/channel/coddy_academy Полезные советы по программированию
QA, тестирование 📌
/channel/testlab_qa Библиотека тестировщика
Шутки программистов 📌
/channel/itumor Шутки программистов
Защита, взлом, безопасность 📌
/channel/thehaking Канал о кибербезопасности
/channel/xakep_1 Статьи из "Хакера"
Книги, статьи для дизайнеров 📌
/channel/ux_web Статьи, книги для дизайнеров
Английский 📌
/channel/UchuEnglish Английский с нуля
Математика 📌
/channel/Pomatematike Канал по математике
Excel лайфхак📌
/channel/Excel_lifehack
Сложность C++ - Что делает C++ сложным для вас?
Вопрос о том, является ли C++ сложным языком, конечно, субъективен, но мало кто будет спорить с этим утверждением.
Вопрос о том, что делает C++ сложным для вас, конечно, также субъективен, но это интересный вопрос с потенциальными последствиями. Мы можем сделать вывод:
Есть функции, которые нам нужно учить лучше.
Есть области, которые нуждаются в улучшении через процесс ISO
Есть области, которые могут выиграть от улучшения инструментов
https://www.incredibuild.com/blog/c-complexity-what-makes-c-complex-for-you
#cpp #programming
👉 @cpp_lib
👌 Хотите стать тимлидом в международном проекте?
Ждем вас на открытом вебинаре «Кросс-культурные взаимодействия и менеджмент в международных условиях» 15 августа в 20:00 мск, где мы разберём:
- культурные измерения и различия в командах и как с ними справляться;
- концепции Cultural Dimensions от Хоффстеда и Cultural Map от Эрин Майер;
- ответы на все возникающие вопросы.
Спикер Руслан Казанцев — Senior Game Designer в ААА-студии, работал со сценарной командой сериала «Ходячие мертвецы», опытный лид и преподаватель.
Встречаемся в рамках курса «Team Lead». Все участники вебинара получат специальную цену на обучение!
➡️Регистрация открыта: https://vk.cc/czlPJ8Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Как найти работу для фиксиков: анализируем Godot Engine
Разработка игр и их прохождение могут быть невероятно увлекательными и затягивающими занятиями, приносящими огромное удовольствие. Но ничто так не портит впечатление от игрового процесса, как коварно спрятавшийся баг. Поэтому сегодня под нашим пристальным вниманием окажется Open Source движок Godot Engine. Давайте проверим, насколько он хорош, и готов ли он подарить нам незабываемые эмоции от создания и прохождения игр.
https://habr.com/ru/companies/pvs-studio/articles/834420/
#cpp #programming
👉 @cpp_lib
Реализуем эффективный тупль с помощью C++26
Свет видел много любительских реализаций std::tuple, и реализация своих велосипедов — наверное, это действительно действенный способ обучения: вряд-ли можно сказать, что ты что-то по-настоящему понимаешь, если не можешь объяснить, как это что-то устроено.
Многие пытливые умы на протяжении десятилетий задавались вопросом: как же реализован std::tuple, как мне реализовать свой тупль (кортеж)? [1]
И немало было дано ответов на такие вопросы и написано статей ([2]). Однако я берусь утверждать, что все они имеют один фатальный недостаток! Конкретнее, они все рассматривают в основном лишь один (и при этом неэффективный) способ реализации: с помощью множественного наследования или рекурсивного инстанцирования, имеющий в свой очередь множество своих недостатков, главный из которых — неэффективное использование памяти.
В то время как современный C++ позволяет реализовать тупль гораздо проще (без обилия шаблоноты) и эффективнее.
https://habr.com/ru/articles/835176/
#cpp #programming
👉 @cpp_lib
Коллекция ресурсов по современному C++
https://github.com/rigtorp/awesome-modern-cpp
#cpp #programming
👉 @cpp_lib
📕Navigating the Worlds of C and C++: Masters of Code
Автор: Frahaan Hussain (2024)
Начиная с основ, книга знакомит читателей с фундаментальными концепциями программирования на Си, включая переменные, типы данных и управляющие структуры, а затем переходит к более сложным темам, таким как управление памятью и системное программирование. При переходе к C++ в тексте рассматриваются объектно-ориентированное программирование, инкапсуляция, наследование и полиморфизм, а также инструменты, необходимые для создания надежного и эффективного программного обеспечения.
#cpp #programming
👉 @cpp_lib
Как поделить не деля или оптимизация деления компиляторам(и)
Если вы никогда не пробовали смотреть как код на C++ разворачивается компилятором в код Assembly – вас ждёт много сюрпризов, причём, не нужно смотреть какой-то замудренный исходный код полный templates или других сложных конструкций: рассмотрите следующий snippet:uint8_t div10(uint8_t x)
{
return x/10;
}
https://habr.com/ru/articles/833470/
#cpp #programming
👉 @cpp_lib
С++ фреймворк для описания пайплайнов распределенных вычислений
Огромное количество С++ кода в Яндексе можно описать словами «распределенные вычисления». Доклад посвящен активно разрабатываемому сейчас С++ фреймворку, вдохновленному библиотеками std::ranges и Apache Beam. Этот фреймворк позволяет достаточно компактно и просто описывать такие процессы и запускать их в MapReduce-режиме для обработки таблиц данных или в real-time режиме для обработки бесконечных потоков (очередей) данных.
Доклад не предполагает знакомства с какими-либо специфичными технологиями. Он будет полезен разработчикам и пользователям различных распределенных систем обработки данных и тем, кто интересуется этой темой.
источник
#cpp #programming
👉 @cpp_lib
Не знаете, как правильно реализовать аварийное восстановление (DR) и высокую доступность (HA)?
А теперь представьте, что вы освоили основы DR и HA, понимаете их взаимосвязь и умеете применять архитектурные паттерны для обеспечения надежности и доступности.
Присоединяйтесь к открытому вебинару «Связь DR и HA в современных архитектурных решениях» 14 августа в 20:00 мск и сделайте этот прыжок в будущее! Там мы обсудим все эти проблемы и даже больше, а также разберем возникающие вопросы.
💻 Урок будет полезен Backend- и Fullstack-разработчикам, DevOps-инженерам, архитекторам ПО, IT-менеджерам и руководителям проектов.
🔴 Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://vk.cc/cyRreFРеклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Сборка C++ проектов. Оптимизации компилятора. Inline, constexpr, alignment. Game Engine серии
0:00:00 - Введение
0:02:26 - Дизассемблер
0:09:31 - Общие оптимизации
0:20:46 - Inline
0:35:24 - Constexpr
0:45:28 - Compile-time raytracer
0:52:40 - Internal vs. external linkage
0:55:18 - Выравнивание структур
1:06:46 - Pragma optimize
источник
#cpp #programming
👉 @cpp_lib
Mastering Memory: Allocation Techniques in C, C++, and ARM Assembly
В этом видео мы рассмотрим эквивалентные методы выделения памяти в C++, C и raw ARM assembly. Мы обсудим методы и системные вызовы, связанные с каждым языком, для выделения и освобождения памяти после того, как динамическая переменная больше не нужна.
00:00 Intro
01:46 C++ Memory Allocation
05:41 C Memory Allocation
09:50 ARMv7 Assembly Memory Allocation
16:18 Conclusion
источник
#cpp #programming
👉 @cpp_lib
Открытый урок. Аллокаторы в C++: Что делать, если менеджер памяти вас разочаровывает? 🤔
C++ известен тем, что позволяет работать с памятью напрямую. Здесь вы точно знаете, где и как расположен каждый из ваших объектов, сколько памяти он занимает.
Но можете ли вы принимать решение, где и как будет размещен ваш объект? Часто стандартные методы выделения памяти не удовлетворяют узким требованиям конкретной логики.
⚡️Присоединяйтесь к открытому вебинару 8 августа в 20:00 мск! Поговорим, зачем в C++ существуют аллокаторы.
✅Обсудим, что C++ приобрел при введении полиморфных аллокаторов. И рассмотрим конкретный пример увеличения производительности программы с их помощью.
Регистрируйтесь по ссылке: https://clck.ru/3CCLBT/?erid=2VtzqwmRJ5h
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
📕Beginning C++ Game Programming, 3rd Edition: Learn C++ from scratch by building fun games
John Horton (2024)
Вы изучите ключевые темы C++, такие как ООП и указатели C++, познакомитесь со стандартной библиотекой шаблонов (STL). Книга поможет вам узнать о методах обнаружения столкновений и игровой физике, создав игру Pong. В процессе создания игр вы также узнаете такие интересные концепции игрового программирования, как вершинные массивы, направленный звук (пространственность), программируемые шейдеры OpenGL, порождение объектов и многое другое. Вы глубоко погрузитесь в игровую механику и реализуете обработку ввода, повышение уровня персонажа и простой вражеский ИИ. Наконец, вы изучите паттерны проектирования игр, чтобы усовершенствовать свои навыки программирования игр на C++.
#cpp #programming
👉 @cpp_lib
🏆 Пройди тест на знание алгоритмов и структур данных и получи доступ к записям всех открытых (бонусных) уроков (41 видео) из курса «Алгоритмы и структуры данных» от OTUS.
Некоторые темы — просто 🔥 огонь! Например:
- Трилогия «Создание словаря: 7 способов»
- Дилогия «Визуальное сравнение пяти алгоритмов сортировок: Пузырьком, Вставкой, Шелла, Выбором и Пирамидальной»
и многое другое
➡️ НАЧАТЬ ТЕСТИРОВАНИЕ: https://vk.cc/cyKfnm
Прямо сейчас переходи на сайт, чтобы посмотреть два последних открытых урока‼️без регистрации и оценить формат обучения.
📊 «Алгоритмы и структуры данных» — это большой курс для разработчиков, которые хотят улучшить качество своего кода и развивать карьеру.
📚 Для кого этот курс?
- Для бэкенд- и фронтенд-разработчиков.
- Для junior-программистов.
📅 Старт группы уже 31 июля 2024г. Доступна рассрочка на обучение. ⏰ Успейте записаться в группу по скидке 🎁15% до 28.07 включительно.
➡️ https://vk.cc/cyKfnmРеклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru