Библиотека С# С++
10.1K subscribers
215 photos
14 videos
179 files
207 links
https://t.iss.one/+WgGTjeH0p1NjMDFi - ссылка на канал
По всем вопросам- @workakkk

@ai_machinelearning_big_data - Machine learning

@itchannels_telegram - 🔥лучшие ит-каналы

@csharp_ci- C# академия

@pythonlbooks- python книги📚

РКН: clck.ru/3Fmvsw
Download Telegram
🔥 Хочешь быстрее расти в IT? Хватит учиться в одиночку

Окружение решает больше, чем кажется.

Собрал папки и каналы, где можно быстрее влиться в нужное направление, следить за трендами и не вариться в своём пузыре.

AI: t.iss.one/ai_machinelearning_big_data
Python: t.iss.one/pythonl
Linux: t.iss.one/linuxacademiya
Хакинг: t.iss.one/linuxkalii
DevOps: t.iss.one/DevOPSitsec
Docker: https://t.iss.one/+90Z5TAyfuNU5YmRi
Golang: t.iss.one/Golang_google
Rust: t.iss.one/rust_code
C++: t.iss.one/cpluspluc
C#: t.iss.one/csharp_1001_notes
Java: t.iss.one/javatg
JavaScript: t.iss.one/javascriptv
React: t.iss.one/react_tg
Frontend: t.iss.one/front
PHP: t.iss.one/phpshka
Android: t.iss.one/android_its
Мобильная разработка: t.iss.one/mobdevelop
Базы данных: t.iss.one/sqlhub
Data Science: t.iss.one/data_analysis_ml
Big Data: t.iss.one/bigdatai
Математика: t.iss.one/data_math
Физика: https://t.iss.one/+S4hinvO3QI43ZjNi
Kubernetes: t.iss.one/kubernetc
GameDev: https://t.iss.one/gamedev
Haskell: t.iss.one/haskell_tg

Собеседования и карьера:

DS собеседования: t.iss.one/machinelearning_interview
Python собеседования: t.iss.one/python_job_interview

Папка с вакансиями: t.iss.one/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.iss.one/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.iss.one/addlist/eEPya-HF6mkxMGIy
Папка ML: https://t.iss.one/addlist/2Ls-snqEeytkMDgy
Папка Frontend: https://t.iss.one/addlist/mzMMG3RPZhY2M2Iy

Полезное сверху:

ИТ-мемы: t.iss.one/memes_prog
Английский для программистов: t.iss.one/english_forprogrammers
ИИ и технологии: t.iss.one/vistehno
954 ГБ open-source курсов: https://t.iss.one/+rKBQEMccAA01MTcy
ИТ-книги бесплатно: https://t.iss.one/addlist/BkskQciUW_FhNjEy

Max Ai: https://max.ru/ai_machinelearning_big_data
Max python: https://max.ru/pythonl
ТЕХНО: https://max.ru/vistehno
Max Go: https://max.ru/Golang_google
Max Linux: https://max.ru/linuxkalii
Devops: https://max.ru/DevOPSitsec
C#: https://max.ru/csharp_ci
C++: https://max.ru/cpluspluc
SQL: https://max.ru/sqlhub
Java: https://max.ru/javatg

Подписывайся на нужные направления и собирай себе ленту, которая реально двигает вперёд.
❤1👍1
Бесплатная книга, после которой компиляторы перестают казаться магией

По ходу книги вы собираете собственный компилятор с нуля: от исходного кода до ARM-ассемблера. В качестве языка используется небольшой поднабор TypeScript, поэтому примеры читаются почти как псевдокод.

Разбираются AST, parser combinators, парсинг, генерация кода, типизация, вывод типов, heap allocation и даже garbage collection. Есть исходники компилятора, а также порты на Python и OCaml.

Читать бесплатно:
https://keleshev.com/compiling-to-assembly-from-scratch/
❤2👍2
C++26 получил новый контейнер `std::hive` - что-то между `std::vector` и `std::list`.

Главная фишка: элементы после вставки практически не двигаются в памяти. Поэтому указатели и итераторы на существующие объекты остаются валидными даже после вставок и удаления других элементов.
Как это работает:

- данные хранятся не в одном массиве, а в нескольких блоках
- удалённые элементы не сдвигают остальные
- свободные места потом переиспользуются
- специальный skipfield позволяет быстро пропускать удалённые слоты

В результате:

- вставка и удаление - амортизированно O(1)
- указатели остаются стабильными
- локальность памяти заметно лучше, чем у std::list
- но случайного доступа через [] нет
- порядок вставки не гарантируется
-
Особенно полезно для игровых движков, пулов соединений, систем частиц и других случаев, где объекты постоянно создаются и удаляются, а другие части программы хранят указатели на них.

Коротко: std::hive - не более быстрый vector, а скорее гораздо более cache-friendly альтернатива list.

https://sandordargo.com/blog/2026/09/02/cpp26-hive
❤4🔥2
🖥 C++: объект уничтожен, а 16 МиБ всё ещё заняты

std::weak_ptr может удерживать память даже при expired() == true.

Причина в std::make_shared: обычно он размещает объект и управляющий блок в одной аллокации.

В примере на скриншоте массив на 16 МиБ находится прямо внутри Blob. После удаления последнего shared_ptr:

* деструктор объекта вызывается;
* expired() возвращает true;
* общий блок памяти остаётся выделенным, пока существует хотя бы один weak_ptr.

После сброса последней слабой ссылки блок можно освободить.

Что делать: удалять протухшие ссылки из долгоживущих кешей. Для крупных объектов также можно рассмотреть отдельную аллокацию через std::shared_ptr<Blob>(new Blob()).

Нюанс касается размера самого объекта. Если данные хранятся в обычном std::vector, его отдельный буфер освобождается при вызове деструктора.

[Разбор от Microsoft](https://devblogs.microsoft.com/oldnewthing/20230815-00/?p=108602)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤1
🔥 Хочешь расти в IT быстрее остальных? Перестань учиться в одиночку

Можно годами смотреть курсы, читать документацию и всё равно топтаться на месте.

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

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

AI: t.iss.one/ai_machinelearning_big_data
Python: t.iss.one/pythonl
Linux: t.iss.one/linuxacademiya
Хакинг: t.iss.one/linuxkalii
DevOps: t.iss.one/DevOPSitsec
Docker: https://t.iss.one/+90Z5TAyfuNU5YmRi
Golang: t.iss.one/Golang_google
Rust: t.iss.one/rust_code
C++: t.iss.one/cpluspluc
C#: t.iss.one/csharp_ci
Java: t.iss.one/javatg
JavaScript: t.iss.one/javascriptv
React: t.iss.one/react_tg
Frontend: t.iss.one/front
PHP: t.iss.one/phpshka
Android: t.iss.one/android_its
Мобильная разработка: t.iss.one/mobdevelop
Базы данных: t.iss.one/sqlhub
Data Science: t.iss.one/data_analysis_ml
Big Data: t.iss.one/bigdatai
Математика: t.iss.one/data_math
Физика: t.iss.one/fizmat
Kubernetes: t.iss.one/kubernetc
GameDev: https://t.iss.one/gamedev
Haskell: t.iss.one/haskell_tg

Собеседования и карьера:

DS собеседования: t.iss.one/machinelearning_interview
Python собеседования: t.iss.one/python_job_interview

Папка с вакансиями: t.iss.one/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.iss.one/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.iss.one/addlist/eEPya-HF6mkxMGIy
Папка ML: https://t.iss.one/addlist/2Ls-snqEeytkMDgy
Папка Frontend: https://t.iss.one/addlist/mzMMG3RPZhY2M2Iy

Полезное сверху:

ИТ-мемы: t.iss.one/memes_prog
Английский для программистов: t.iss.one/english_forprogrammers
ИИ и технологии: t.iss.one/vistehno
954 ГБ open-source курсов: https://t.iss.one/+rKBQEMccAA01MTcy
ИТ-книги бесплатно: https://t.iss.one/addlist/BkskQciUW_FhNjEy

Max Ai: https://max.ru/ai_machinelearning_big_data
Max python: https://max.ru/pythonl
ТЕХНО: https://max.ru/vistehno
Max Go: https://max.ru/Golang_google
Max Linux: https://max.ru/linuxkalii
Devops: https://max.ru/DevOPSitsec
C#: https://max.ru/csharp_ci
C++: https://max.ru/cpluspluc
SQL: https://max.ru/sqlhub
Java: https://max.ru/javatg

Подпишись и сохрани, здесь регулярно появляются новые подборки, инструменты и материалы, которые реально помогают расти быстрее.
❤2🔥1
💡 C++: std::map<std::string, ...> не обязан создавать временный std::string при каждом поиске

Если ключ уже приходит как std::string_view, можно использовать transparent comparator:


std::map<std::string, int, std::less<>> status_codes{
{"not_found", 404},
{"timeout", 504}
};

std::string_view key = "timeout";

auto match = status_codes.find(key);
❤3👍1
Участвуй во всероссийском ИТ-чемпионате МТС True Tech Champ 2026 c призовой фондом 10 250 000 рублей.

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

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

В финале лучшие 120 участников алгоритмического трека сразятся в лайв-кодинге за шесть призовых мест и 2 750 000 рублей. Всех финалистов ждут:
— Лимитированный мерч;
— Сертификаты об участии;
— Масштабное мероприятие с выступлениями хэдлайнеров и фестивальными активностями.

Успей зарегистрироваться и пройти отборочный этап до 27 сентября
❤1
UTF-8-декодер на C: таблица и несколько строк кода

Бьёрн Хёрманн реализовал декодирование UTF-8 через конечный автомат (DFA). Он обрабатывает байты по одному, собирает кодовую точку Unicode и проверяет корректность последовательности.

Таблица utf8d выполняет две задачи:

* определяет класс очередного байта;
* выбирает следующее состояние автомата.

`ACCEPT` означает, что кодовая точка полностью прочитана. `REJECT` - обнаружена ошибка. Остальные состояния означают, что нужны дополнительные байты.

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

Нюанс: после последнего байта тоже нужно проверить состояние. Если оно не ACCEPT, строка некорректна - например, оборвалась посреди символа.
❤4🔥3
🦈 Открытое собеседование на Middle C# | 6 октября, 19:00 МСК

Приглашаем на открытое собеседование: Senior C# разработчик проведёт его в прямом эфире. Можно посмотреть, как всё устроено изнутри, и понять, насколько ты готов к такому интервью.

Как это будет:
📂 Собеседует Александр Моргунов — Senior C# разработчик, 7+ лет в европейских высоконагруженных сервисах. Отвечает разработчик-доброволец;

📂 Всё как на настоящем собесе: Александр задаёт те вопросы и задачи, которые даёт кандидатам на своих интервью. Заранее их никто не знает;

📂 После каждого ответа Александр даст обратную связь: что прозвучало сильно, а что стоило раскрыть иначе. Так станет понятнее, на что обращают внимание на собесе;

📂 В конце можно задать любой вопрос.

Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для C# разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.

Переходи в нашего бота, чтобы получить ссылку на эфир -> @shortcut_csharp_bot

Реклама.
О рекламодателе.
❤2
Наследование в чистом C: одно правило, и всё работает

В C нет классов, но наследование можно собрать вручную. Правило одно: родительская структура должна стоять первым полем дочерней.


struct Animal { int age; char name[32]; };

struct Dog {
struct Animal base; // обязательно первым
char breed[32];
};

struct Dog d = { {3, "Rex"}, "Labrador" };
print_animal((struct Animal *)&d); // работает


Почему это законно: стандарт C гарантирует, что в начале структуры нет паддинга, а указатель на структуру, приведённый к нужному типу, указывает на её первое поле. Поэтому &d и &d.base это один и тот же адрес, и функция, которая ждёт Animal*, спокойно работает с Dog.

Это не трюк из головоломок, а основа реальных систем. Так устроены объекты в CPython, где каждая структура начинается с PyObject_HEAD, так же работают GObject в GTK и многие структуры ядра Linux. Если родитель лежит не первым полем, ядро достаёт его через макрос container_of.

Есть важная оговорка: обратное приведение Animal* в Dog* корректно, только если объект действительно Dog. Компилятор этого не проверит, и ошибка здесь превращается в тихое повреждение памяти.
❤4👍4🔥1
Rust vs Go vs C# в 2026: почему наивный Rust проиграл Go

Сравнение производительности Rust, Go и C# в 2026 году: наш тест на аллокациях, где наивный Rust уступил Go, а Rust с ареной оказался в 7 раз быстрее, плюс разбор GC, памяти, холодного старта, Green Tea и .NET 10

Спор «что быстрее: Rust, Go или C#» обычно заканчивается ссылкой на чей-то бенчмарк, где один язык обгоняет другой в полтора раза. Мы решили проверить простую вещь и сразу получили результат, который ломает привычную картину: наивный код на Rust проиграл Go по времени выполнения. Ниже разбираем, почему так вышло, что на самом деле означает «производительность» в 2026 году и как выбирать язык под конкретную нагрузку.

https://uproger.com/rust-vs-go-vs-csharp-proizvoditelnost-2026/
❤4😁2👍1
Альфа-Банк ищет скиллового коллегу QA Fullstack на C#

Предлагаем полную удалёнку или гибридный график – у нас классные ИТ-офисы в Москве, Питере и Екатеринбурге.

Что нужно делать

– Разрабатывать автотесты на C#.
– Запускать функциональные, регрессионные и интеграционные тесты, включая API.
– Снижать количество дефектов в диалоге с разработкой и бизнесом.

Какие навыки важны

– Опыт автоматизации на C# и ручного тестирования от года.
– Знание API (SOAP, REST), SQL, основ клиент-серверной архитектуры и тест-дизайна.

Условия и развитие

– Сильное сообщество QA и C#-разработчиков: можно получить совет и поделиться опытом на митапе и в блоге на Хабре.
– Реальная перспектива роста: технический трек развития, в том числе до C#-лида

Оставляйте отклик по ссылке.
❤1
💡 В C можно заполнить три элемента массива, а остальные обнулятся автоматически

Для этого есть designated initializers — инициализация с указанием индексов:


int flags[256] = {
['A'] = 1,
['Z'] = 1,
[42] = 99
};


Получаем:

• flags['A'] и flags['Z'] равны 1.
• flags[42] равен 99.
• Все остальные элементы равны 0, даже если массив локальный.

'A' здесь — символьная константа: её числовое значение используется как индекс.

Удобно для таблиц флагов, классификации символов и индексов из enum. Не нужно вручную перечислять сотни нулей.

Возможность входит в стандарт C начиная с C99.
❤2
20 готовых программ на C++ с кодом: практика для новичков и не только (2026)

20 готовых программ на C++ с исходным кодом: от калькулятора до LRU-кэша и алгоритма Дейкстры. Копируйте, запускайте и прокачивайте навыки в 2026 году.

https://uproger.com/20-programm-na-cpp-s-kodom-2026/
❤3🔥1🥰1
👨🏻‍💻 AI в бэкенд-задачах — на Podlodka Backend Crew

Код теперь может написать агент, но за результат всё ещё отвечаете вы. Организаторы Podlodka Backend Crew собрали конференцию о том, как работать с бэкендом после того, как AI написал код.

Причём в программе нет докладов в жанре «у нас все получилось» — только реальная практика. Конференция пройдёт с 26 по 30 октября.

🧠️️️️ Участники сезона:

• Разберут пулл‑реквесты от агента и попробуют предотвратить возможные инциденты на рулетке кейсов

• Выяснят, какие неожиданные ловушки скрываются в OpenAPI и на что обращать внимание при разработке контрактов

• Разберут антипаттерны в AI-юнит-тестах, узнают, как их избежать с помощью современных инструментов, и заберут себе новый агентский скилл

• Спроектируют бэкенд дейтинг-приложения на архитектурной кате и решат, где в нём действительно нужен AI.

Формат Podlodka Backend Crew
— комфортный онлайн: 5 дней, утренние и вечерние сессии в Zoom.

Отдельный плюс — цена: заметно ниже привычных конференций, при этом вы не просто слушаете о чужом опыте, а разбираете PR и отвечаете за релиз, проектируете систему в команде и расследуете чужие провалы.

Такого вовлечения не получить на обычной конференции.

🔗 Изучайте программу и присоединяйтесь: https://podlodka.io/becrew

Промокод на скидку для подписчиков backendcrew
This media is not supported in your browser
VIEW IN TELEGRAM
«what the fu**?»: самый странный комментарий в игровом коде

Одна строка из Quake III заменяет деление и корень сдвигом битов и магическим числом 0x5f3759df. Покажу на примере, как это работает, и посчитаю погрешность: 3.44% до уточнения и 0.175% после одного шага Ньютона. А кто на самом деле придумал трюк, вы вряд ли угадаете.

https://youtube.com/shorts/oIpqqzNNCHo