cpp_lib | Unsorted

Telegram-канал cpp_lib - Библиотека C/C++ разработчика

2630

Полезные материалы по всему, что может быть полезно плюсовику/сишнику.

Subscribe to a channel

Библиотека C/C++ разработчика

Яндекс запускает новый сезон Тренировок по алгоритмам!

Для участников доступно новое направление: машинное обучение. Тренировки проходят формате онлайн-интенсивов с лекциями, разбором домашек и наградами для лучших участников.

По окончании тренировок, участников ждет сертификат о прохождении: решенные задачи после курса можно добавить к себе в портфолио.

А лучших учеников ждет:

— Пробное техническое собеседование в Яндекс
Успешное интервью могут засчитать при отборе на стажировку

— Промокод 3000 ₽ на Яндекс Маркет

Не упускай возможность прокачать харды и скилл прохождения собеседований в IT. Зарегистрироваться можно тут.

Читать полностью…

Библиотека C/C++ разработчика

🔥 Weekend Offer Backend в Яндекс 26–27 октября

Устройтесь backend-разработчиком в Яндекс онлайн за одни выходные.

↔️ К участию приглашаем разработчиков на C++, Python, Go, Java или Kotlin, с опытом коммерческой разработки от трёх лет, которые готовы работать в офисном или гибридном режиме на территории России или Республики Беларусь.

🛐План простой: зарегистрируйтесь и до 23 октября решите пару задачек в Контесте, 26 октября пройдите два технических собеседования, а 27 октября получите офер.

🔛В Weekend Offer Backend участвуют разные сервисы: Финтех, HR-Tech, Образование, МВА, Биллинг, Геосервисы, Реклама, Поисковые сценарии. Чтобы заранее подумать, с кем вам хочется пообщаться 17 октября мы проведем онлайн-встречу в зуме, где команды расскажут о себе и задачах.

🆖 Узнать подробности и принять участие можно здесь.

Читать полностью…

Библиотека C/C++ разработчика

🌐 Научитесь создавать сетевые сервисы на C++ с помощью фреймворка userver!

Приглашаем вас на открытый вебинар 17 октября в 20:00 МСК, где мы подробно разберем:

- Как подключить userver в проект;
- Как собрать userver с нужной конфигурацией;
- Как написать сетевой сервис, работающий с REST и WebSocket API;
- Как реализовать аутентификацию для нового сервиса.

🎓 Встречаемся в преддверии старта курса «C++ Developer. Professional». Все участники вебинара получат специальную цену на обучение!

🔗 Регистрируйтесь прямо сейчас, чтобы не пропустить это важное мероприятие: https://otus.pw/Dtoo/?erid=2VtzqxPykF5

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Читать полностью…

Библиотека C/C++ разработчика

Туториал - Пишем оболочку на C

Легко считать себя "не настоящим программистом". Существуют программы, которые используют все, и легко возвести их разработчиков на пьедестал. Хотя разработка крупных программных проектов непроста, зачастую основная идея такого ПО довольно проста. Реализовать ее самому — это увлекательный способ доказать, что у тебя есть всё необходимое, чтобы быть настоящим программистом. Поэтому это руководство о том, как я написал свою упрощенную Unix-оболочку на C, в надежде, что это заставит других почувствовать то же самое.

Код описанной здесь, получившей название lsh, доступен на GitHub.



#define LSH_RL_BUFSIZE 1024
char *lsh_read_line(void)
{
int bufsize = LSH_RL_BUFSIZE;
int position = 0;
char *buffer = malloc(sizeof(char) * bufsize);
int c;

if (!buffer) {
fprintf(stderr, "lsh: allocation error\n");
exit(EXIT_FAILURE);
}

while (1) {
// Read a character
c = getchar();

// If we hit EOF, replace it with a null character and return.
if (c == EOF || c == '\n') {
buffer[position] = '\0';
return buffer;
} else {
buffer[position] = c;
}
position++;

// If we have exceeded the buffer, reallocate.
if (position >= bufsize) {
bufsize += LSH_RL_BUFSIZE;
buffer = realloc(buffer, bufsize);
if (!buffer) {
fprintf(stderr, "lsh: allocation error\n");
exit(EXIT_FAILURE);
}
}
}
}


https://brennan.io/2015/01/16/write-a-shell-in-c/

#cpp #programming

👉 @cpp_lib

Читать полностью…

Библиотека C/C++ разработчика

Шеф, всё пропало

Ошибки программистов C++ — это отдельный вид искусства, вроде бы простой язык, но стоит отвлечься на чашечку кофе, как компилятор начинает вываливать простыню ворнингов пополам с ошибками, и иногда это больше похоже на древнеегипетские письмена, чем на нормальный выхлоп. Вы наверное и сами не раз сталкивались с разыменованием nullptr или перепутали (= и ==) по недосмотру. Часто причиной ошибкой является лень или невнимательность, или усталость - не зря появились суеверия "не комитить в пятницу вечером", "не кодить в состоянии изменного сознания" или "избегать кода под кофейным угаром", ну это когда три-четыре кружечки кофе навернул и пошел нести добрый код направо и налево.

https://habr.com/ru/articles/848662/

#cpp #programming

👉 @cpp_lib

Читать полностью…

Библиотека C/C++ разработчика

Написание минимального JIT-компилятора для x86-64 на C++. Часть 2

В моей предыдущей статье я показал, как сгенерировать машинный код для функции во время выполнения, скопировать этот код в часть памяти, помеченную как исполняемую, и вызвать её из C++. Теперь мы пойдём в обратную сторону — вызовем функцию на C++ из функции, сгенерированной во время выполнения. Как и раньше, я предполагаю, что вы пробуете код на Linux или macOS.

Если помните из первой части, мы начали с добавления инструкций машинного кода в std::vector и копирования этого кода на страницу исполняемой памяти. Хотя этот подход был хорош с дидактической точки зрения, на практике, вероятно, вы захотите записывать код напрямую в исполняемую память. Вот пример, как я предлагаю это сделать:


1 MemoryPages mp;
2 mp.push(0x48); mp.push(0xb8);


https://solarianprogrammer.com/2018/01/12/writing-minimal-x86-64-jit-compiler-cpp-part-2/

#cpp #programming

👉 @cpp_lib

Читать полностью…

Библиотека C/C++ разработчика

☕️ Дмитрий Мезенцев, руководитель службы разработки Поиска рассказывает, как в Яндексе сочетаются атмосфера стартапа и бигтеха и за что он любит продуктовую разработку.

А если после прочтения вам захочется работать с нами — откликайтесь на вакансию!

➡️ Бэкенд-разработчик в команду поисковых сценариев

Читать полностью…

Библиотека C/C++ разработчика

Шпаргалка по библиотеке fmt

https://hackingcpp.com/cpp/libs/fmt.html

#cpp #programming

👉 @cpp_lib

Читать полностью…

Библиотека C/C++ разработчика

C++ с точки зрения Rust-разработчика: достоинства и недостатки

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

https://habr.com/ru/articles/844988/

#cpp #programming

👉 @cpp_lib

Читать полностью…

Библиотека C/C++ разработчика

Просто не копируй это

То, о чем я собираюсь рассказать в статье настолько тривиально, что любой, даже начинающий, разработчик уже это знает - я правда очень на это надеюсь. Тем не менее, приходящий на ревью код, показывает, что люди как делали, так и продолжают делать что-то подобное:


bool LoadAnimation(str::string filename);
void DrawLines(std::vector<Points> path);
Matrix RotateObject(Matrix m, Angle angle);
int DrawSprite(Sprite sprite);


https://habr.com/ru/articles/847178/

#cpp #programming

👉 @cpp_lib

Читать полностью…

Библиотека C/C++ разработчика

Генерация пароля с помощью C++

#cpp #programming

👉 @cpp_lib

Читать полностью…

Библиотека C/C++ разработчика

Как вывести форматированный текст на экран в C++

Рано или поздно у каждого программиста появляется желание вывести форматированный текст на экран. Немудрено, у пляшущих на экране буковок есть свой неповторимый шарм, а факт форматированности добавляет им еще и загадочности — мы можем даже не догадываться, что в точности будет напечатано.

Но как сделать это оптимально и кроссплатформенно?

https://habr.com/ru/articles/748336/

#cpp #programming

👉 @cpp_lib

Читать полностью…

Библиотека C/C++ разработчика

Реализация подписчиков в c++ — пляшем от печки, но уже совсем далеко

В прошлой статье мы написали вполне себе разумный оповещатель (notifier) для рассылки уведомлений подписчикам (subscribers). Он достаточно удобен, там нет ничего лишнего - всего 130 строчек кода. Моменты, важные для клиентов этого кода, продуманы. Как например, многопоточный вызов доставки оповещений с минимальными взаимными блокировками и возможность отписывать прямо из обработчика подписчика.

На этом бы и остановиться, но мы шагнём дальше, добавив немного шаблонной магии и сделав код "академичнее".

https://habr.com/ru/articles/843530/

#cpp #programming

👉 @cpp_lib

Читать полностью…

Библиотека C/C++ разработчика

Где можно использовать префиксные деревья?
При реализации множеств и ассоциативных массивов.


А где можно посмотреть, как выполняется алгоритм ассоциативного массива на основе префиксного дерева?
🚀 На нашем открытом онлайн-уроке!

💯 Мы выполним визуальное тестирование загрузкой 2000 слов в массив англо-русского словаря.

Вебинар «Префиксное дерево» проведёт Евгений Волосатов, программист БД с 25-летним опытом.

👨‍💻🛠👨🏻‍💻 Будет интересно: junior-разработчикам на любых языках программирования.

📅 7 октября, 20:00 МСК
🆓 Бесплатно в рамках старта курса «Алгоритмы и структуры данных».

🔴 Записаться на открытый урок: https://vk.cc/cBhgUB

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Читать полностью…

Библиотека C/C++ разработчика

Пишем на С++ вектор, умеющий расширяться без копирования элементов

В языке С есть функции malloc, free и realloc. При использовании последней вы можете написать этакий расширяющийся массив из примитивных типов или структур (классов-то нет), который, можно надеяться, не будет копировать все данные при каждом расширении. В С++ есть встроенный класс vector, который представляет из себя расширяющийся массив, но он так не умеет: при каждом расширении вектора выделяется новый участок памяти и все элементы перемещаются на него (по возможности, с использованием move-семантики). Но ведь, если можно каждый раз не копировать все старые элементы на новое место, вектор должен работать быстрее? В этой статье я попробую написать вектор, который умеет расширяться без копирования элементов.

Сначала я покажу, что стандартный вектор не умеет расширяться без копирования/перемещения, потом обсужу придуманное решение, потом собственно приведу реализацию вектора, а в конце сравню производительность со стандартным вектором.

https://habr.com/ru/post/701784/

#cpp #programming

👉 @cpp_lib

Читать полностью…

Библиотека C/C++ разработчика

Контейнеры Linux в 500 строках кода

Я уже много лет прямо или косвенно использую контейнеры Linux, но мне хотелось познакомиться с ними поближе. Поэтому я написал немного кода. Раньше это было 500 строк кода, клянусь, но я немного изменил его с момента публикации; в итоге получилось примерно на 70 строк больше.

Статья объясняет, как работают Linux-контейнеры, показывая минимальную реализацию на 500 строках кода. Она рассматривает ключевые концепции, такие как namespaces, cgroups и монтирование файловых систем, и даёт простое, но функциональное представление о механике, которая лежит в основе контейнеров, например, Docker. Основная цель — дать читателю ясное и практическое введение в то, как работают контейнеры на базовом уровне.

https://blog.lizzie.io/linux-containers-in-500-loc.html

#cpp #programming

👉 @cpp_lib

Читать полностью…

Библиотека C/C++ разработчика

Создаём эмулятор CHIP-8 [C++]

Я всегда любил эмуляторы, потому что они позволяют мне играть в старые игры, которые нравились мне в детстве, поэтому я подумал, что было бы интересно узнать, как они работают, и как собрать такой эмулятор. Моя настоящая цель - создать эмулятор NES, но после некоторых исследований я решил прислушаться к советам интернета и начать с создания эмулятора для гораздо менее сложной CHIP-8. Это хорошая ступенька для перехода к NES.

https://austinmorlan.com/posts/chip8_emulator/

#cpp #programming

👉 @cpp_lib

Читать полностью…

Библиотека C/C++ разработчика

Самые быстрые мьютексы

Cosmopolitan Libc хорошо известна своим «полиглотным жирным бинарным» хаком, который позволяем исполняемым файлам запускаться на шести операционных системах для AMD64/ARM64. Вас может удивить, что при этом она может быть лучшей С‑библиотекой для вашего продакшена. Чтобы продемонстрировать это, давайте сравним библиотеку мьютексов Cosmo с другими платформами.

Мы напишем простой тест, который создает 30 потоков, увеличивающих одно и то же число 100 000 раз. Это поможет проверить, насколько хорошо реализация мьютексов справляется с задачей при интенсивном использовании. По сути он будет следующим (см. сегмент внизу статьи для полного исходного кода).


int g_chores;
pthread_mutex_t g_locker = PTHREAD_MUTEX_INITIALIZER;

void *worker(void *arg) {
for (int i = 0; i < ITERATIONS; ++i) {
pthread_mutex_lock(&g_locker);
++g_chores;
pthread_mutex_unlock(&g_locker);
}
return 0;
}


https://habr.com/ru/companies/beget/articles/848318/

#cpp #programming

👉 @cpp_lib

Читать полностью…

Библиотека C/C++ разработчика

Подборка Telegram каналов для программистов

Системное администрирование 📌
/channel/sysadmin_girl Девочка Сисадмин
/channel/srv_admin_linux Админские угодья
/channel/linux_srv Типичный Сисадмин

/channel/devops_star DevOps Star (Звезда Девопса)
/channel/i_linux Системный администратор
/channel/linuxchmod Linux
/channel/sys_adminos Системный Администратор
/channel/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
/channel/sysadminof Книги для админов, полезные материалы
/channel/i_odmin Все для системного администратора
/channel/i_odmin_book Библиотека Системного Администратора
/channel/i_odmin_chat Чат системных администраторов
/channel/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.
/channel/sysadminoff Новости Линукс Linux

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/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 Полезные советы по программированию
/channel/rust_lib Полезный контент по программированию на Rust
/channel/golang_lib Библиотека Go (Golang) разработчика
/channel/itmozg Программисты, дизайнеры, новости из мира IT
/channel/php_lib Библиотека PHP программиста 👨🏼‍💻👩‍💻
/channel/nodejs_lib Подборки по Node js и все что с ним связано
/channel/ruby_lib Библиотека Ruby программиста

QA, тестирование 📌
/channel/testlab_qa Библиотека тестировщика

Шутки программистов 📌
/channel/itumor Шутки программистов

Защита, взлом, безопасность 📌
/channel/thehaking Канал о кибербезопасности
/channel/xakep_1 Статьи из "Хакера"

Книги, статьи для дизайнеров 📌
/channel/ux_web Статьи, книги для дизайнеров

Английский 📌
/channel/UchuEnglish Английский с нуля

Математика 📌
/channel/Pomatematike Канал по математике
/channel/phis_mat Обучающие видео, книги по Физике и Математике

Excel лайфхак📌
/channel/Excel_lifehack

/channel/tikon_1 Новости высоких технологий, науки и техники💡
/channel/mir_teh Мир технологий (Technology World)

Вакансии 📌
/channel/sysadmin_rabota Системный Администратор
/channel/progjob Вакансии в IT

Читать полностью…

Библиотека C/C++ разработчика

Хотите узнать, как превратить массив в пирамиду и ускорить сортировку данных?

Ждем вас на бесплатном вебинаре 14 октября в 20:00 мск, где мы разберем:

- как реализовать алгоритм сортировки выбором с линейной сложностью;
- как превратить массив в пирамиду (кучу) для быстрого доступа к максимальному элементу;
- как создать алгоритм пирамидальной сортировки с квазилинейной сложностью — О(N log N);
- визуальные примеры работы алгоритма на конкретных числах.

🚀 Спикер Евгений Волосатов — программист баз данных и преподаватель с огромным и разнообразным опытом, автор статей и учебных программ по C#, Java, PHP.

Встречаемся в преддверии старта курса «Алгоритмы и структуры данных». Все участники вебинара получат специальную цену на обучение!

🔴 Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://vk.cc/cChlzg

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Читать полностью…

Библиотека C/C++ разработчика

Написание минимального JIT-компилятора для x86-64 на C++

В этой статье я покажу, как написать минимальный, базовый JIT-компилятор для x86-64 на C++, который работает на macOS, Linux и потенциально может работать на Windows через WSL.

Для наших целей JIT-компиляция — это техника, с помощью которой программа генерирует машинный код во время выполнения, основываясь на вводе пользователя. Программа на C++ компилируется заранее (AOT, ahead of time), что обычно означает, что после того, как исходный код был скомпилирован для конкретной машины, его нельзя изменить во время выполнения (и с точки зрения безопасности это желаемая функция). Простое и полезное применение JIT-компилятора на C++ — это компиляция новой функции на лету, основанной на других функциях, уже определенных в исходном коде.


1 // hello_0.cpp
2 #include <iostream>
3 #include <string>
4
5 int main() {
6 // Get the user name
7 std::string name;
8 std::cout << "What is your name?\n";
9 std::getline(std::cin, name);
10 std::string hello_name = "Hello, " + name + "!\n";
11
12 // Greet the user
13 std::cout << hello_name;
14 }


https://solarianprogrammer.com/2018/01/10/writing-minimal-x86-64-jit-compiler-cpp/

#cpp #programming

👉 @cpp_lib

Читать полностью…

Библиотека C/C++ разработчика

Memory Allocators 101 - пишем простой аллокатор памяти

Эта статья посвящена написанию простого аллокатора памяти на языке C.
Мы реализуем malloc(), calloc(), realloc() и free().

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

https://arjunsreedharan.org/post/148675821737/memory-allocators-101-write-a-simple-memory

#cpp #programming

👉 @cpp_lib

Читать полностью…

Библиотека C/C++ разработчика

Захват переменных без ошибок — это возможно!

Как? Расскажем на бесплатном вебинаре Слёрма «Ля какие! Лямбды в С++».

Поговорим про:

📍 Захваты переменных, параметры, возвращаемые значения, типы замыканий.
📍 Лямбды в C++20 и C++23.
📍 Применение в реальных задачах: передача функций в алгоритмы STL, написание компактных колбэков

Спикер: Юрий Вашинко, Tech Lead/Lead Developer

📆 Когда: 15 октября в 14:00 мск
🔗 Занять место на вебинаре — через бота

Приходите!

#реклама
О рекламодателе
erid: LjN8KDTvY

Читать полностью…

Библиотека C/C++ разработчика

Обнаружен короткий путь к офферу Сбера! 🕵️‍♀️

12 октября приглашаем на One Day Offer Центра квантовых технологий для С++ разработчиков.

Команда создаёт квантовый компьютер и фотонные сопроцессоры для решения задач Сбера: от AI до оптимизации логистических процессов. Разработки Центра позволят оптимизировать логистические цепочки, обучать нейросети большего размера и увеличивать доходность инвестирования.

Чем предстоит заниматься:

✔️ Проектировать архитектуру ПО для обработки и передачи данных.
✔️ Писать код на C++ для управления и контроля квантового компьютера.
✔️ Разрабатывать первичную инфраструктуру CI/CD и автоматическое тестирование для своего кода.
✔️ Участвовать в разработке общей архитектуры квантовых и аналоговых процессоров.
✔️ Участвовать в переносе задач потребителей на квантовые или аналоговые процессоры.

Регистрируйся и создавай решения на стыке науки и технологий вместе со Сбером! 😏

Читать полностью…

Библиотека C/C++ разработчика

22 общие задачи работы с файловыми системами на C++20

Работа с файловой системой может показаться сложной задачей, но это не обязательно так. В этом посте я проведу вас через некоторые из самых распространенных операций с файловой системой, используя мощные функции, введенные в C++17, а также некоторые новые улучшения в C++20/23. Независимо от того, создаете ли вы каталоги, копируете файлы или управляете разрешениями, эти примеры помогут вам понять и эффективно использовать библиотеку std::filesystem.

https://www.cppstories.com/2024/common-filesystem-cpp20/

#cpp #programming

👉 @cpp_lib

Читать полностью…

Библиотека C/C++ разработчика

Прокачай свои скилы с Алексеем Рыбаком! 🚀

Надоели скучные задачи по программированию? 💻
Время перейти на новый уровень!

🎖Приглашаем бекендеров и инженеров инфраструктуры на уникальный трехмесячный курс по системному дизайну и архитектуре высоконагруженных систем от Алексея Рыбака, главы разработки Bumble/Badoo с 20-летним опытом в highload проектировании.

В чем ценность этого курса?

Огненная практика с первых дней обучения на реальных кейсах и собственной инфраструктуре
Погружение «под капот» хайлоад систем, изучение паттернов и приемов масштабирования
Топовые фишки и знания по архитектуре проектов и системному дизайну больших проектов (1-100M DAU)
Живые сессии, брейнштормы, проектирование “у доски”

На выходе у вас появится опыт:

Проектирования сложных систем
Нагрузочного тестирования своей инфраструктуры (выжмете 100К запросов)
Планирования ресурсов для проектов с большим количеством пользователей
Масштабирования IT-проектов
Практический опыт работы с кластерами Redis, CockroachDB и шардированными PostgreSQL/MySQL
И многое другое!

➡️ Регистрируйся и погружайся в нескучный хайлоад

Реклама ИП Рыбак А. А. ИНН 771407709607

Читать полностью…

Библиотека C/C++ разработчика

📣Асинхронное программирование с помощью boost.asio: освойте мощные инструменты! 🚀

Приглашаем вас на открытый вебинар 3 октября в 20:00 мск, где мы разберем:

- как работать с iocontext, корутинами, strand, executor и threadpool;
- применение boost.asio для создания асинхронных приложений;
- ответы на все возникающие вопросы.

Встречаемся в преддверии старта курса «C++ Developer. Professional». Все участники вебинара получат специальную цену на обучение!

➡Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://otus.pw/MTQC/?erid=2Vtzqw3z7qz

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Читать полностью…

Библиотека C/C++ разработчика

Шутер «Проект Кощей», разработка игр на SFML C++

Шутеры — это один из самых популярных жанров видеоигр, который появился в начале 90-х годов. Первые шутеры были созданы для персональных компьютеров и имели простейшую графику и управление. Однако, они были невероятно популярны, и в скором времени стали самыми продаваемыми играми.

Первая игра, которую можно отнести к жанру шутеров, была Wolfenstein 3D, созданная компанией id Software в 1992 году. Она является первой игрой, в которой игрок управляет персонажем от первого лица, противостоящим врагам на экране. Wolfenstein 3D также стала первой игрой, которая использовала 3D‑графику в реальном времени. Она была невероятно популярна и стала основой для многих последующих шутеров.

В 1993 году id Software выпустила игру Doom, которая стала еще более популярной, чем Wolfenstein 3D. Doom была первой игрой, которая использовала сетевой мультиплеер, что позволило игрокам из разных частей мира сражаться друг с другом через интернет.

В 1996 году компания Valve выпустила игру Half‑Life, которая стала новой эволюцией жанра. Она представила новые элементы, такие как непрерывный геймплей, сюжет и персонажи, а также новую графику и физический движок.

https://habr.com/ru/articles/739584/

#cpp #programming

👉 @cpp_lib

Читать полностью…

Библиотека C/C++ разработчика

(Жизненный) cовет от создателя C++

Создатель C++, Бьёрн Страуструп, делится ценными жизненными советами, которыми, скажем прямо, могли бы воспользоваться все разработчики, независимо от их многолетнего опыта. По словам Бьерна, «вы не можете просто писать код», вам нужно развивать больше навыков, если вы хотите стать всесторонним успешным разработчиком. Посмотрите это неизданное интервью, если вы хотите получить вдохновение и рекомендации на своем пути разработчика от одного из OG.

источник

#cpp #programming

👉 @cpp_lib

Читать полностью…

Библиотека C/C++ разработчика

Подборка Telegram каналов для программистов

Системное администрирование 📌

/channel/devops_star DevOps Star (Звезда Девопса)
/channel/i_linux Системный администратор
/channel/linuxchmod Linux
/channel/sys_adminos Системный Администратор
/channel/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
/channel/sysadminof Книги для админов, полезные материалы
/channel/i_odmin Все для системного администратора
/channel/i_odmin_book Библиотека Системного Администратора
/channel/i_odmin_chat Чат системных администраторов
/channel/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.
/channel/sysadminoff Новости Линукс Linux

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/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 Полезные советы по программированию
/channel/rust_lib Полезный контент по программированию на Rust
/channel/golang_lib Библиотека Go (Golang) разработчика
/channel/itmozg Программисты, дизайнеры, новости из мира IT
/channel/php_lib Библиотека PHP программиста 👨🏼‍💻👩‍💻
/channel/nodejs_lib Подборки по Node js и все что с ним связано
/channel/ruby_lib Библиотека Ruby программиста

QA, тестирование 📌
/channel/testlab_qa Библиотека тестировщика

Шутки программистов 📌
/channel/itumor Шутки программистов

Защита, взлом, безопасность 📌
/channel/thehaking Канал о кибербезопасности
/channel/xakep_1 Статьи из "Хакера"

Книги, статьи для дизайнеров 📌
/channel/ux_web Статьи, книги для дизайнеров

Английский 📌
/channel/UchuEnglish Английский с нуля

Математика 📌
/channel/Pomatematike Канал по математике
/channel/phis_mat Обучающие видео, книги по Физике и Математике

Excel лайфхак📌
/channel/Excel_lifehack

/channel/tikon_1 Новости высоких технологий, науки и техники💡
/channel/mir_teh Мир технологий (Technology World)

Вакансии 📌
/channel/sysadmin_rabota Системный Администратор
/channel/progjob Вакансии в IT

Читать полностью…
Subscribe to a channel