Forwarded from Библиотека Go-разработчика | Golang
💸 Рост или падение? Изменение зарплат в IT за 2023 год
Чтобы разобраться в этом вопросе, «Библиотека программиста» решила провести опрос среди читателей издания. Мы хотим понять, выросли ли ваши зарплаты в 2023 году и если да, то на сколько процентов. Или может быть наоборот — ваши доходы снизились на фоне кризисных явлений в экономике?
Примите участие в нашем коротком опросе и поделитесь своим мнением! Вместе мы проанализируем текущую ситуацию на рынке труда в IT-сфере и поймем, что ждёт эту отрасль дальше. Ждём ваших ответов!
Опрос займёт у вас примерно 4 минуты.
👉 Ссылка на опрос
Чтобы разобраться в этом вопросе, «Библиотека программиста» решила провести опрос среди читателей издания. Мы хотим понять, выросли ли ваши зарплаты в 2023 году и если да, то на сколько процентов. Или может быть наоборот — ваши доходы снизились на фоне кризисных явлений в экономике?
Примите участие в нашем коротком опросе и поделитесь своим мнением! Вместе мы проанализируем текущую ситуацию на рынке труда в IT-сфере и поймем, что ждёт эту отрасль дальше. Ждём ваших ответов!
Опрос займёт у вас примерно 4 минуты.
👉 Ссылка на опрос
Что почитать игровому программисту?
На хабре вышло пару статей на тему литературы литературы полезной для геймдев разработчика. Там достаточно много тематических книг для C++ разработчиков. Полезно это будет в первую очередь уже опытным разработчикам, или тем кто уже работает в геймдеве чтобы структурировать знания
Что почитать игровому программисту?
Что ещё почитать игровому программисту?
На хабре вышло пару статей на тему литературы литературы полезной для геймдев разработчика. Там достаточно много тематических книг для C++ разработчиков. Полезно это будет в первую очередь уже опытным разработчикам, или тем кто уже работает в геймдеве чтобы структурировать знания
Что почитать игровому программисту?
Что ещё почитать игровому программисту?
⛩️ 6 способов нестандартно войти в Айти
Стандартный способ вхождения в профессию программиста — через универ. Все, что отличается от него, уже считается нестандартным способом. Разбираем несколько необычных способов входа в ИТ-сферу и то, какие преимущества они дают:
🛤 Роадмапы
👨💻 Знакомые айтишники
💬 Комментарии
🙌 Менторинг
🕹 Игры
⌨️ Стажировки
Стандартный способ вхождения в профессию программиста — через универ. Все, что отличается от него, уже считается нестандартным способом. Разбираем несколько необычных способов входа в ИТ-сферу и то, какие преимущества они дают:
🛤 Роадмапы
👨💻 Знакомые айтишники
💬 Комментарии
🙌 Менторинг
🕹 Игры
⌨️ Стажировки
Forwarded from Библиотека задач по C++ | тесты, код, задания
💡 Вышла четвёртая часть перевода туториала по Xv6
xv6 — это учебная реализация шестой версии Unix. В ней рассмотрены разные аспекты работы операционных систем. Но, самое полезное здесь заключается в том, что к ней есть список лабораторных работ, которые и дают сильный буст в понимании систем в общем и Linux (Unix) в частности
📚 Сами статьи
• Xv6: учебная Unix-подобная ОС. Глава 1: Интерфейсы операционной системы
• Xv6: учебная Unix-подобная ОС. Глава 2. Устройство операционной системы
• Xv6: учебная Unix-подобная ОС. Глава 3. Таблицы страниц
• Xv6: учебная Unix-подобная ОС. Глава 4: Прерывания и системные вызовы
xv6 — это учебная реализация шестой версии Unix. В ней рассмотрены разные аспекты работы операционных систем. Но, самое полезное здесь заключается в том, что к ней есть список лабораторных работ, которые и дают сильный буст в понимании систем в общем и Linux (Unix) в частности
📚 Сами статьи
• Xv6: учебная Unix-подобная ОС. Глава 1: Интерфейсы операционной системы
• Xv6: учебная Unix-подобная ОС. Глава 2. Устройство операционной системы
• Xv6: учебная Unix-подобная ОС. Глава 3. Таблицы страниц
• Xv6: учебная Unix-подобная ОС. Глава 4: Прерывания и системные вызовы
🔮 Разница между push_* и emplace_*
В STL для многих структур данных определены методы push_* и emplace_*. Между ними есть существенное различие
• push_*(...) — принимает готовый элемент
• emplace_*(...) — можно передавать только аргументы, а объект будет создан уже внутри. Если передать готовый объект, то компилятор подставит кастомный конструктор у которого единственный экземпляр это приём по ссылке того же типа, фактически создаст копирующий конструктор
Если не думать о читаемости кода, то сейчас можно использовать везде emplace_* без существенных, не опасаясь неожиданного поведения
В STL для многих структур данных определены методы push_* и emplace_*. Между ними есть существенное различие
• push_*(...) — принимает готовый элемент
• emplace_*(...) — можно передавать только аргументы, а объект будет создан уже внутри. Если передать готовый объект, то компилятор подставит кастомный конструктор у которого единственный экземпляр это приём по ссылке того же типа, фактически создаст копирующий конструктор
Если не думать о читаемости кода, то сейчас можно использовать везде emplace_* без существенных, не опасаясь неожиданного поведения
Forwarded from Библиотека задач по C++ | тесты, код, задания
🖥 Курс Эффективное использование С++
📚 Лекция 1. Начнем с основ: библиотеки, утилиты, средства разработки и сборка проектов в С++. Присоединяйтесь, чтобы узнать, как максимально эффективно использовать ресурсы вашего проекта!
🔍 Лекция 2. Глубже в тему работы с памятью: избегаем утечек ресурсов с помощью RAII и умных указателей. Узнаем, как управлять памятью без лишних хлопот
➡️ Лекция 3. Переходим к Move semantics, rvalue reference и perfect forwarding. Открываем новые возможности и улучшаем производительность нашего кода
🔄 Лекция 4. Обсудим callbacks: лямбда-выражения, bind и function. Узнаем, как делать наш код более гибким и модульным
🧵 Лекция 5. Многопоточность в C++. Разбираемся с потоками, блокировками, задачами, атомарными операциями и очередями сообщений
💡 Лекция 6. Обзор возможностей современных стандартов C++. Узнаем, какие новшества есть в мире С++ и как они могут улучшить наш код
👉 Ссылка на курс
📚 Лекция 1. Начнем с основ: библиотеки, утилиты, средства разработки и сборка проектов в С++. Присоединяйтесь, чтобы узнать, как максимально эффективно использовать ресурсы вашего проекта!
🔍 Лекция 2. Глубже в тему работы с памятью: избегаем утечек ресурсов с помощью RAII и умных указателей. Узнаем, как управлять памятью без лишних хлопот
➡️ Лекция 3. Переходим к Move semantics, rvalue reference и perfect forwarding. Открываем новые возможности и улучшаем производительность нашего кода
🔄 Лекция 4. Обсудим callbacks: лямбда-выражения, bind и function. Узнаем, как делать наш код более гибким и модульным
🧵 Лекция 5. Многопоточность в C++. Разбираемся с потоками, блокировками, задачами, атомарными операциями и очередями сообщений
💡 Лекция 6. Обзор возможностей современных стандартов C++. Узнаем, какие новшества есть в мире С++ и как они могут улучшить наш код
👉 Ссылка на курс
⚙️ Обучение программированию на примерах реализации приложений
Список учебников по программированию для различных языков. Множество различных категорий. В основном это туториалы, где поэтапно пишутся приложения
👉 Ссылка (Github)
Список учебников по программированию для различных языков. Множество различных категорий. В основном это туториалы, где поэтапно пишутся приложения
👉 Ссылка (Github)
🧙♂️ С++ магистерский курс, МФТИ
Хороший курс для начинающих или тех кто хочет структурировать знания по C++
1. Строки
2. Шаблоны функций
3. Шаблоны классов и частичная специализация
4. Разрешение имён в шаблонах и One Definition Rule
5. Модули в C++
6. SFINAE
7. Классическое метапрограммирование
8. Константные выражения
9. Волшебство времени компиляции
10. Концепты
👉 Ссылка (Youtube)
Хороший курс для начинающих или тех кто хочет структурировать знания по C++
1. Строки
2. Шаблоны функций
3. Шаблоны классов и частичная специализация
4. Разрешение имён в шаблонах и One Definition Rule
5. Модули в C++
6. SFINAE
7. Классическое метапрограммирование
8. Константные выражения
9. Волшебство времени компиляции
10. Концепты
👉 Ссылка (Youtube)
🪬 Алгоритмы копирования
std::copy и std::copy_if — функция из стандартной библиотеки. Помогают копировать элементы стандартных структур данных. Основное преимущество — это лучшая читаемость
std::copy — можно использовать с различными видами std::inserter'ов (по сути это просто итератор), которые позволяют по разному вставлять элементы, например std::back_inserter (для вставки элементов в конец)
std::copy_if — аналогичен std::copy, за исключением того, что можно использовать предикат для фильтрации элементов
std::copy и std::copy_if — функция из стандартной библиотеки. Помогают копировать элементы стандартных структур данных. Основное преимущество — это лучшая читаемость
std::copy — можно использовать с различными видами std::inserter'ов (по сути это просто итератор), которые позволяют по разному вставлять элементы, например std::back_inserter (для вставки элементов в конец)
std::copy_if — аналогичен std::copy, за исключением того, что можно использовать предикат для фильтрации элементов
Недавно проводился опрос об интересных тематиках для канала. Тут собрал краткий ответ
Подходящие темы
• ООП
• STL (в том числе и корутины)
• Сети
• Инфраструктура
Неподходящие темы
• Обработка изображений
• Компьютерное зрение
• Базы данных
• Поисковые движки
Основные причины почему не подходят, то что это темы для отдельных каналов или плохо коррелируют с основной тематикой
Если есть вопросы и предложения, можем обсудить в комментариях 😁
Подходящие темы
• ООП
• STL (в том числе и корутины)
• Сети
• Инфраструктура
Неподходящие темы
• Обработка изображений
• Компьютерное зрение
• Базы данных
• Поисковые движки
Основные причины почему не подходят, то что это темы для отдельных каналов или плохо коррелируют с основной тематикой
Если есть вопросы и предложения, можем обсудить в комментариях 😁
Регулярные выражении (Regular Expressions)
Регулярные выражения в C++ представлены в стандартной библиотеке с помощью класса std::regex. С помощью регулярных выражений удобно осуществлять поиск и замену подстрок при работе с текстовыми данными
Ссылочки
• Регулярные выражения (урок 1) regex_match (Youtube)
• Регулярные выражения (урок 2) regex_search (Youtube)
• Введение в регулярные выражения в современном C++
• Regular expressions library
Регулярные выражения в C++ представлены в стандартной библиотеке с помощью класса std::regex. С помощью регулярных выражений удобно осуществлять поиск и замену подстрок при работе с текстовыми данными
Ссылочки
• Регулярные выражения (урок 1) regex_match (Youtube)
• Регулярные выражения (урок 2) regex_search (Youtube)
• Введение в регулярные выражения в современном C++
• Regular expressions library
Forwarded from Библиотека собеса по C++ | вопросы с собеседований
🔮 Perfect Forwarding
Perfect Forwarding или Идеальная передача — необходима для реализации перемещения. Основная задача именно передать само значение (а не ссылку или указатель на него). В отличие от std::move не превращает lvalue в rvalue
Ссылочки
• Идеальная передача и универсальные ссылки в C++
• Move semantics && perfect forwarding (Youtube)
• Функция std::forward
Perfect Forwarding или Идеальная передача — необходима для реализации перемещения. Основная задача именно передать само значение (а не ссылку или указатель на него). В отличие от std::move не превращает lvalue в rvalue
Ссылочки
• Идеальная передача и универсальные ссылки в C++
• Move semantics && perfect forwarding (Youtube)
• Функция std::forward
Вперед в прошлое, или Разрабатываем фреймворк под Windows 95 в 2023 году
Автор рассказывает про свой опыт разработки и портирования своего игрового фреймворка под старые платформы
👉Ссылка (Youtube)
#gamedev
Автор рассказывает про свой опыт разработки и портирования своего игрового фреймворка под старые платформы
👉Ссылка (Youtube)
#gamedev
⚙️ Modern-CPP-Programming
Курс современного C++, распространяется в виде презентаций (в pdf документах). Полезен тем, кому удобней поглощать информацию маленькими кусочками, а не читать толстенные книги
👉Ссылочка (Github)
Курс современного C++, распространяется в виде презентаций (в pdf документах). Полезен тем, кому удобней поглощать информацию маленькими кусочками, а не читать толстенные книги
👉Ссылочка (Github)
Forwarded from Библиотека собеса по C++ | вопросы с собеседований
🔍 Что такое empty base optimization?
В C++ любой класс, даже пустой, будет размером не меньше одного байта. Это необходимо, чтобы не было проблем с арифметикой указателей. Однако наследование от пустого класса будет приводить увеличению размера наследника. Но, в C++ предусмотрена empty base optimization, которая позволяет компилятору оптимизировать занимаемую память, так что объект, наследующий пустой базовый класс, не будет занимать дополнительной памяти за счет этого пустого базового класса. Таким образом, размер объекта будет таким же, как если бы он не наследовал пустой класс
В C++ любой класс, даже пустой, будет размером не меньше одного байта. Это необходимо, чтобы не было проблем с арифметикой указателей. Однако наследование от пустого класса будет приводить увеличению размера наследника. Но, в C++ предусмотрена empty base optimization, которая позволяет компилятору оптимизировать занимаемую память, так что объект, наследующий пустой базовый класс, не будет занимать дополнительной памяти за счет этого пустого базового класса. Таким образом, размер объекта будет таким же, как если бы он не наследовал пустой класс
Forwarded from Библиотека собеса по C++ | вопросы с собеседований
🔮 Сетевое программирование в C++
Для C++ пока, к сожалению, не написали стандартную библиотеку для работы с сетью. Но, зато есть множество хороших библиотек (Boost.Asio, Qt Network и др.). Так же стоит понимать, что многие компании пишут свои библиотеки и поэтому стоит лучше познакомиться с основами сетевого программирования, чтобы легко вникать в любую из реализаций
Что касается Boost.Asio, то для него есть перевод книги Boost.Asio C++ Network Programming
🔗 Ссылочки со спискоми библиотек
• Awesome C++
• C++ Networking libraries
• Stackoverflow (старый пост)
Для C++ пока, к сожалению, не написали стандартную библиотеку для работы с сетью. Но, зато есть множество хороших библиотек (Boost.Asio, Qt Network и др.). Так же стоит понимать, что многие компании пишут свои библиотеки и поэтому стоит лучше познакомиться с основами сетевого программирования, чтобы легко вникать в любую из реализаций
Что касается Boost.Asio, то для него есть перевод книги Boost.Asio C++ Network Programming
🔗 Ссылочки со спискоми библиотек
• Awesome C++
• C++ Networking libraries
• Stackoverflow (старый пост)
🐱🎨🙏🤖 10 самых странных языков программирования, о которых вы никогда не слышали
Эзотерические языки разрабатывают в концептуальных, экспериментальных и развлекательных целях. Их общая черта — максимально запутанный и странный синтаксис, понятный только посвященным. В этой подборке — языки, которые выбрали бы Ходор, доктор Лектер, Малевич, Джеймс Бонд, Терминатор и Луи Армстронг, если бы решили войти в айти.
👉 Читать статью
👉 Зеркало
Эзотерические языки разрабатывают в концептуальных, экспериментальных и развлекательных целях. Их общая черта — максимально запутанный и странный синтаксис, понятный только посвященным. В этой подборке — языки, которые выбрали бы Ходор, доктор Лектер, Малевич, Джеймс Бонд, Терминатор и Луи Армстронг, если бы решили войти в айти.
👉 Читать статью
👉 Зеркало