Присоединяйтесь к нашему каналу и погрузитесь в мир для C/C++-разработчика Связь: @devmangx
«Учебник по Malloc»
Пошаговое руководство по созданию собственного выделителя памяти, чтобы по-настоящему понять, как работает управление памятью в C.
Охватывает управление кучей, разбиение блоков и выравнивание памяти.
Необходимо для понимания того, как работают malloc, free и realloc на низком уровне. 😐
⏩Ознакомиться:
https://wiki-prog.infoprepa.epita.fr/images/0/04/Malloc_tutorial.pdf
👉 @Cpportal | #ресурсы
Линус Торвальд о C++ 😂
В письме выше он отвечает на вопрос о том, почему исходный код Git написан на C, а не на C++.
Его слова: 👇
"C++ — это ужасный язык. Он стал еще хуже из-за того, что его используют множество посредственных программистов, из-за чего намного проще генерировать полный и абсолютный хлам."
"Единственный разумный выбор — это C. Если программист предпочитает C++ для такого проекта, как Git, то я, честно говоря, предпочел бы его оттолкнуть, чтобы он не пришел и не испортил проект."
"Если вам нужен VCS на C++, идите и используйте Monotone. Они используют „настоящую базу данных“, „приятные объектно-ориентированные библиотеки“ и „милые C++-абстракции“. И, честно говоря, из-за всего этого их код — это ужасная и непригодная для поддержки каша." 🧔♂️
А еще есть javascript, но не будем об этом.
👉 @Cpportal | #memes
Всё полезное здесь 🔥
Создайте своё собственное ... на C:
🟢База данных
🟢Docker (контейнер)
🟢Виртуальная машина
🟢Сетевой стек
🟢Операционная система
🟢Компилятор
🟢Игровой движок
🟢Физический движок
🟢Движок регулярных выражений
🟢Оболочка
⏩Ознакомиться:
https://github.com/codecrafters-io/build-your-own-x
👉 @Cpportal | #ресурсы
Кто хочет стать низкоуровневым программистом?😃
Лови ссылку, которая предоставляет руководство по обучению программированию на уровне аппаратного обеспечения, системному программированию и разработке для ядра Linux, с примерами на языках C, Assembly и Rust.
⏩Ознакомиться:
https://github.com/gurugio/lowlevelprogramming-university
👉 @Cpportal | #ресурсы
Факториал произвольных больших чисел на языке C
Этот код дает возможность вычислять факториалы очень больших чисел, выходящих за пределы стандартных типов данных в C.
👉 @Cpportal | #ресурсы
Курс ECE 4760/5730 в Корнельском университете посвящен встроенным системам реального времени с использованием микроконтроллеров.
📝В рамках курса ты будешь работать с RP2040, создавая различные проекты — от синтезаторов птичьего пения до одномерного контроллера вертолета. Обучение практическое, так что если тебе интересны аппаратное программирование и язык C, этот курс идеально подойдет.
➖ https://youtube.com/playlist?list=PLDqMkB5cbBA5oDg8VXM110GKc-CmvUqEZ
➖ https://ocw.ece.cornell.edu/courses/ece-4760-designing-with-microcontrollers/
➖https://ece4760.github.io
👉 @Cpportal | дать буст #видео
C в Linux и C в windows 😒
👉 @Cpportal | #memes
Быстрое освоение кодовой базы
Если ты новичок в проекте, то расширение CodeViz для VS Code помогает визуализировать структуру кода в виде интерактивных диаграмм. 🔥
➖Оно позволяет создавать графические представления кодовой базы, которые можно исследовать и взаимодействовать с ними.
Эти диаграммы связаны непосредственно с кодом, так что можно быстро переходить к соответствующим частям кода, что облегчает понимание структуры проекта и навигацию по нему.
⏩Ознакомиться:
https://marketplace.visualstudio.com/items?itemName=CodeViz.codeviz
👉 @Cpportal | #ресурсы
Изучите все низкоуровневые детали работы графических процессоров 🔥
➖Он фокусируется на базовых аспектах архитектуры, параллелизма и работы с памятью, исключая сложные детали, присущие коммерческим графическим картам. Проект включает полностью документированный код, описание архитектуры и набора команд, а также примеры реализации операций сложения и умножения матриц.
Это делает его полезным ресурсом для тех, кто хочет понять фундаментальные принципы работы современных аппаратных ускорителей, таких как GPGPU и ML-акселераторы.
⏩ Ознакомиться:
https://github.com/adam-maj/tiny-gpu
👉 @Cpportal | #ресурсы
Структуры данных и алгоритмы в C++
📝В книге улучшена согласованность с C++ STL, добавлены главы о массивах, списках, итераторах, управлении памятью и B-деревьях, расширены примеры анализа алгоритмов и рассмотрены техники динамического программирования и жадных алгоритмов. Также переработаны кодовые примеры, добавлены STL-итераторы для контейнерных классов и обновлен интерфейс приоритетной очереди.
Книга содержит множество упражнений и ориентирована на студентов, изучающих программирование и алгоритмы.
⏩Получите свой экземпляр:
https://eduarmandov.wordpress.com/wp-content/uploads/2017/05/c_c-data-structures-and-algorithms-in-c.pdf
👉 @Cpportal | #книги #en
Первый бесплатный интерактивный учебник по линейной алгебре:
🟢Векторы и матрицы
🟢Скалярное и векторное произведение
🟢Определители
🟢Ранги матриц
🟢Собственные значения и собственные векторы
Линейная алгебра полезна в C++, особенно если ты работаешь с графикой, физикой, машинным обучением или численными вычислениями 🤷♂️
⛓ Ссылка: тык
👉 @Cpportal | дать буст
Нашел интересную маленькую презентацию о самых эзотерических частях C.
🟢Темный угол С
🟢Shadowy escape
🟢странное повторное использование ключевых слов
и тд.
Довольно интересно и смешно!
Читать 🔜 https://docs.google.com/presentation/d/1h49gY3TSiayLMXYmRMaAEMl05FaJ-Z6jDOWOz3EsqqQ/edit#slide=id.gec7eb408_3500
👉 @Cpportal | дать буст
Perforator узнает, где тормозит ваш код 🤤
На GitHub выложили код системы непрерывного профилирования, которую Яндекс использует для анализа производительности большинства своих сервисов.
Perforator поддерживает нативные (C++, C, Go, Rust) и экспериментально Python и Java. Ещё его можно развёртывать на Kubernetes и локально. Он обеспечивает высокую точность профилей с минимальным оверхедом, рисует быстрые флеймграфы и умеет оптимизировать программы на основе прошлых версий.
Уже сейчас Perforator можно скачать и протестировать самому. Исходный код доступен под лицензией MIT (и GPL-для eBPF-программ) и запускается под x86-64 Linux.
⛓ Статья: тык
⛓ Визуализация: тык
👉 @Cpportal | #cтатья
Гид от Mohit Mishra про различные аспекты управления памятью в языках C и C++ 🫵
🟢Почему важно освобождать память вручную.
🟢Как операционная система очищает память после завершения программы.
🟢Какие проблемы могут возникнуть из-за утечек памяти.
🟢Почему в C и C++ нет автоматического сборщика мусора.
🟢Как правильно работать с памятью: вручную, с умными указателями, аллокаторами.
C и C++ дают полный контроль над памятью, но программист должен уметь правильно её управлять.
⏩Ознакомиться: клик
👉 @Cpportal | #cтатья
Один из лучших ресурсов по языку Си, который я видел. "Essential C" Ника Парланте.
Ее так недооценивают. Попробуйте.👍
Она бесплатная и занимает ~45 страниц.
🟢объяснение базовых концепций, таких как переменные, типы данных, операторы и управляющие структуры.
🟢как создавать и использовать функции в C.
🟢Указатели и массивы: одна из ключевых тем в C, которая часто вызывает сложности у начинающих.
🟢объяснение динамического выделения памяти и управления ею.
🟢как работать с пользовательскими типами данных.
🟢основы работы с файлами в C.
⏩Ознакомиться:
http://cslibrary.stanford.edu/101/EssentialC.pdf
👉 @Cpportal | #ресурсы
Как работает кэш внутри процессора?
⏩ Источник: клик
*️⃣переведено при помощи нейросети
👉 @Cpportal | #ресурсы
Руководство "Tiny Interpreters for Microcontrollers" от Криса Велти
Рассматриваются способы создания и использования небольших интерпретаторов для микроконтроллеров. 🧔♂️
🟢Почему интерпретаторы полезны на микроконтроллерах
🟢Какие существуют компактные интерпретируемые языки
🟢Примеры крошечных интерпретаторов (например, Forth, Lisp, BASIC)
🟢Оптимизация использования памяти и вычислений
Если тебе интересно программирование микроконтроллеров или разработка встраиваемых систем, статья может быть полезной
⏩Ознакомиться:
https://dercuano.github.io/notes/tiny-interpreters-for-microcontrollers.html
👉 @Cpportal | #cтатья
Эта ассамблея 😄
👉 @Cpportal | #memes
Создание реальных локаций в Minecraft с помощью данных OpenStreetMap
➖Arnis позволяет генерировать любые реальные локации в Minecraft Java Edition с высокой детализацией, используя геопространственные данные из OpenStreetMap.
Он позволяет создавать точные и масштабные миры Minecraft, отражающие географию и архитектуру реальных мест, таких как города и природные объекты
⏩Ознакомиться:
https://github.com/louis-e/arnis
👉 @Cpportal | #ресурсы
Бывший ученый-физик CERN и математик Тсочке, создавший квантовую тензорную библиотеку с значительно превосходящей производительностью по сравнению с популярной AI-библиотекой TensorFlow (от Google), только что выложил на GitHub репозиторий с прекрасным C-кодом. 😮
📝Это высокопроизводительный гибридный классический-квантовый вычислительный фреймворк, написанный на языке C.
Также представлена документация, включая файл QUANTUM_ML.md, который описывает математическую основу и текущий статус разработки.
⏩Ознакомиться:
https://github.com/tsotchke/quantum_geometric_tensor
👉 @Cpportal | #ресурсы
Пошаговое руководство по созданию HTML-шаблона на языке C
📝Научитесь создавать простой HTML-шаблонизатор на C с нуля! В этом проекте рассматриваются настройка TCP-сервера, генерация динамического контента и обработка шаблонов с заполнителями, условиями и циклами. Подходит для начинающих и разработчиков, интересующихся низкоуровневыми механиками веб-серверов.
⏩Ссылка:
trish07/step-by-step-guide-to-creating-an-html-template-engine-in-c-91a8aa0fcdce" rel="nofollow">https://medium.com/@trish07/step-by-step-guide-to-creating-an-html-template-engine-in-c-91a8aa0fcdce
👉 @Cpportal | #ресурсы
Подборка курсов по C 😮
❯ Программирование на языке Си
https://youtube.com/playlist?list=PL9IEJIKnBJjG5H0ylFAzpzs9gSmW_eICB
❯ Отладка программ на языке C
https://youtube.com/playlist?list=PL9IEJIKnBJjHGWPN_S9NS_Ky1-tC8ZrUI
❯ Сетевое программирование
https://youtube.com/playlist?list=PL9IEJIKnBJjH_zM5LnovnoaKlXML5qh17
❯ Встраиваемые системы
https://youtube.com/playlist?list=PL9IEJIKnBJjEcPAz6fss-Hx0TLytCOMVC
❯ Проблема с памятью в C
https://youtube.com/playlist?list=PL9IEJIKnBJjGAINguks7wyq7TAnHOZGRl
❯ Программирование потоков в C
https://youtube.com/playlist?list=PL9IEJIKnBJjFZxuqyJ9JqVYmuFZHr7CFM
❯ DSA с использованием C
https://youtube.com/playlist?list=PL9IEJIKnBJjFiudyP6wSXmykrn67Ykqib
👉 @Cpportal | дать буст #видео
Brokenthorn OS Development Series — это практический цикл статей, предназначенный для начинающих разработчиков операционных систем.
Отличный ресурс для тех, кто хочет заняться разработкой ОС.
📝Ознакомиться:
http://www.brokenthorn.com/Resources/OSDevIndex.html
👉 @Cpportal | #ресурсы
Quandoom — это порт DOOM для квантовых компьютеров, использующий 70 000 кубитов и 80 миллионов логических вентилей.
Работает со скоростью 10–20 FPS на классическом оборудовании с использованием легковесного C++ QASM-симулятора.
➖Обратите внимание, что запуск симулятора требует около 5–6 ГБ оперативной памяти и может занять некоторое время при загрузке из-за большого размера схемы.
⏩ Ознакомиться
https://github.com/Lumorti/Quandoom/
👉 @Cpportal | #ресурсы
4 репозитория GitHub для подготовки к 4 различным типам собеседований по программной инженерии:💀
1. Собеседования по проектированию систем: https://github.com/ashishps1/awesome-system-design-resources
2. Собеседования по низкоуровневому проектированию: https://github.com/ashishps1/awesome-low-level-design
3. Интервью по кодированию: https://github.com/ashishps1/awesome-leetcode-resources
4. Behavioral Interviews https://github.com/ashishps1/awesome-behavioral-interviews
👉 @Cpportal | #ресурсы
Essential C++
Это бесплатная книга о языке программирования C++.
Она является частью серии Essential Programming Books.
Книга написана, чтобы предоставить четкое и лаконичное объяснение тем как для начинающих, так и для опытных программистов.
Большинство примеров связаны с онлайн-песочницей, где можно изменять код и запускать его заново.
Содержание основано на теперь уже заброшенном проекте StackOverflow Documentation, но было значительно переработано и улучшено.
📖 Читать: ссылка
👉 @Cpportal | #книги #en
Архитектура компьютера: Усовершенствованная конструкция процессора
Эти видео объясняют развитие технологий от скалярных RISC-конвейеров до современных динамических сверхскалярных процессоров, включая концепции зависимостей данных, VLIW, статических и динамических сверхскалярных процессоров с регистрацией состояния и алгоритмом Томасуло. ❤️
📱 Источник: ТЫК
👉 @Cpportal | дать буст
Готовишься к собеседованию на позицию разработчика? Этот список для тебя! В нем собраны самые часто задаваемые вопросы по каждой теме. ❤️
Массивы
🟢Как отсортировать массив с помощью быстрой сортировки (quicksort)?
🟢Как развернуть массив?
🟢Как удалить дубликаты из массива?
🟢Как найти второе по величине число в неотсортированном массиве целых чисел?
Связанные списки
🟢Как найти длину связанного списка?
🟢Как развернуть связанный список?
🟢Как найти третий узел с конца списка?
🟢Как удалить дубликаты в неотсортированном связанном списке?
Строки
🟢Как проверить, содержит ли строка только цифры?
🟢Как перевернуть строку?
🟢Как найти первый неповторяющийся символ в строке?
🟢Как найти повторяющиеся символы в строке?
Бинарные деревья
🟢Как вывести все листья бинарного дерева?
🟢Как проверить, является ли дерево бинарным деревом поиска?
🟢Как реализовать бинарное дерево поиска?
🟢Как найти наименьшего общего предка (LCA) в бинарном дереве?
Графы
🟢Как обнаружить цикл в ориентированном графе?
🟢Как обнаружить цикл в неориентированном графе?
🟢Как найти общее количество сильно связных компонент?
🟢Как определить, существует ли путь между двумя вершинами графа?
🟢Как найти минимальное количество перестановок, необходимых для сортировки массива?
Динамическое программирование
🟢Как найти наибольшую общую подпоследовательность?
🟢Как найти наибольшую общую подстроку?
🟢Как решить задачу о размене монет?
🟢Как решить задачу о штабелировании ящиков?
🟢Как посчитать количество способов покрыть расстояние?
👉 @Cpportal | дать буст