Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр
В Битве Героев вы будете уничтожать монстров, отправляться на приключения со своим кланом. Вас множество локаций, монстров, снаряжения. Приведи своего героя к победе!

Битва Героев

Приключения, Ролевые, Кликер

Играть

Топ прошлой недели

  • AlexKud AlexKud 38 постов
  • SergeyKorsun SergeyKorsun 12 постов
  • SupportHuaport SupportHuaport 5 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня

C++

С этим тегом используют

Программирование IT IT юмор Программист Python Помощь Картинка с текстом Все
806 постов сначала свежее
98
rogerfire
rogerfire
6 месяцев назад
Аниме

Это сообщество про аниме?⁠⁠

Это сообщество про аниме? Аниме, Аниме мемы, Anya Forger, Spy X Family, Mai Sakurajima, Rascal Does Not Dream of Bunny Girl Senpai, IT юмор, C++, Github

Я вам принёс гайд для KDE2 под FreeBSD лучший репозиторий гитхаба: Anime-Girls-Holding-Programming-Books

Это сообщество про аниме? Аниме, Аниме мемы, Anya Forger, Spy X Family, Mai Sakurajima, Rascal Does Not Dream of Bunny Girl Senpai, IT юмор, C++, Github
Показать полностью 2
Аниме Аниме мемы Anya Forger Spy X Family Mai Sakurajima Rascal Does Not Dream of Bunny Girl Senpai IT юмор C++ Github
8
neverending.cpp
neverending.cpp
6 месяцев назад

Почему твоё резюме никто не смотрит?⁠⁠

А на твои отклики не приходит ответ? Или, что ещё хуже, тебе сразу отказывают?
Давай разберёмся.

Знаешь, как выглядит большинство резюме C++ разработчиков? Примерно так:
Январь 2024 — по настоящее время
ИТЦ "СамаяЛучшаяКампания" — Ведущий программист
- Разработка приложений для нужд производства
- Написание тестов

Май 2023 — Декабрь 2024
ОАО "ОтличнаяКомпания" — Старший инженер-программист
- Создание виджетов на Qt
- Написание документации
- Ведение переговоров с заказчиком

и так далее...

Выглядит знакомо? Увы, такие резюме обречены на провал.

Почему?

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

Ручной отбор. Даже если компания проверяет резюме вручную, оно, скорее всего, окажется в самом конце списка кандидатов. А то и сразу получит отказ.

Конечно, и с таким резюме можно найти работу. Например, его может заметить начинающий HR, которому нужно срочно закрыть вакансию. Но факт остаётся фактом: шансы получить работу с таким резюме гораздо ниже.

В чём проблема?

Как думаешь, что именно не так с этим резюме? Или во всём виноват рынок с его странными требованиями?

Показать полностью
[моё] Кросспостинг Pikabu Publish Bot Текст Программирование IT C++ Резюме Карьер
7
0
neverending.cpp
neverending.cpp
6 месяцев назад

Зачем используется ключевое слово explicit⁠⁠

Пример первый. Давайте посмотрим на код ниже (да, он собирается и запускается):
class A
{};

class B
{
public:
B(const A &)
{}
};

void foo(const B &)
{}

int main()
{
A a;
foo(a);
}

Я специально убрал все лишние строчки из кода, чтобы вы смогли сосредоточиться на всей абсурдности происходящего: при вызове функции foo тип A преобразовывается в тип В, при этом мой компилятор даже с выкрученными флагами ворнингов не выдал мне никакого предупреждения. Что-то мне подсказывает, что это не то поведение, которое можно завещать потомкам (т.е. разрабам, которые будут работать с вашим кодом).
Если воспользоваться услугами сайта https://cppinsights.io/, можно увидеть, что компилятор преобразует код функции main в следующий:
int main()
{
A a;
foo(B(a));
return 0;
}
Т.е. в момент вызова функции foo из объекта класса A создается временный объект класса B.
Фиксится эта проблема с помощью использования спецификатора explicit перед конструктором класса B.

Продолжение следует.

Показать полностью
[моё] Кросспостинг Pikabu Publish Bot Текст IT Программирование C++
5
neverending.cpp
neverending.cpp
6 месяцев назад
Лига программистов

Кто есть кто в мире онлайн IT образования⁠⁠

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

Учитель. Учит детей в школе. Поэтому, если вы хотите учить детишек писать код, вам туда🙃 Я не работал в школе и включил этот пункт исключительно, чтобы обозначить "потенциальную возможность".

Репетитор. Проводит индивидуальное обучение. Подразумевается, что репетитор будет нянчиться со студентом и изучать тему до тех пор, пока студент "не останется доволен". Спокойно относитесь к тому, чтобы на протяжении месяца разбирать тему циклов? Вам сюда. Потенциальные клиенты - это в основном новички без опыта в программировании, которые хотят выучить C++ быстро и желательно с минимальными затратами, или школьники-студенты с низкой мотивацией, которых привела мама. Как результат, стартовая ставка в час критически ниже, чем у преподавателя и ментора. Стоит рассмотреть, если у вас нет опыта разработки, но вы студент профильного it-вуза, либо как один из способов развития личного бренда.

Преподаватель. Проводит занятие с группой студентов по заранее подготовленному материалу. Занятия повторяются из потока в поток, меняются лишь студенты (да и то не всегда). Сейчас я преподаю в OTUS и для меня это один из комфортных вариантов делиться знаниями. Есть возможность глубоко покопать тему, подобрать примеры из коммерческой практики, скорректировать материал для нового потока в зависимости от текущих потребностей рынка или реакции студентов предыдущего потока. Честно говоря, коммерческий опыт разработки не обязателен, но его наличие повышает презентабельность преподавателя в глазах студентов. Практически всегда преподавание ведется в какой-либо онлайн-школе, а это обеспечивает стабильный поток студентов из года в год и ставку в час на уровне синьёра.

Ментор. Через свой опыт помогает менти в достижении его целей. Цель запроса к ментору может быть абсолютно разной: от "разобрать арифметику указателей" до "подготовить резюме" и "пробить потолок 300к". Ментор в отличие от преподавателей и репетиторов не разжевывает тему, а указывает на пробелы в знаниях студента и прорабатывает со студентом путь к преодолению проблем. Опыт разработки обязателен. Я занимаюсь менторство уже более двух лет и мне нравится эта деятельность по двум причинам:
- нестандартные запросы, с которыми действительно интересно работать. А не вот это вот в 100 раз "помогите мне решить задание с шифром Цезаря" (пасхалочка для моих бывших коллег из Skillfactory)
- возможность помогать менти в достижении их целей. Особенно, если цель - это офер, а менти без опыта в IT=) Работу в онлайн школах я могу сравнить со случайным прохожим, у которого студент спросил, как дойти из пункта А в пункт Б. "У красного здания повернуть направо". Дойдет студент до цели - не понятно. Ментор - это навигатор: тут поверни направо, а вот тут сэкономим пару месяцев твой жизни и пройдем коротким путем, ты у цели, поздравляю, маршрут окончен😎

Наставник. Да, это перевод слова "ментор". Но в онлайн образовании используется несколько в ином контексте. Наставник прикрепляется к курсу, потоку или стажировке и выполняет роль человека, к которому можно обратиться за помощью в решении технического вопроса, составлению резюме или в целом за порцией мотивации. Я несколько раз занимал роль наставника. Последний раз это была на стажировке в НТР. По окончанию стажировки более 70 % моих студентов получили офер от НТР. Не исключаю, что это совпадение, но воспоминая все равно приятные🙂

Показать полностью
[моё] Кросспостинг Pikabu Publish Bot Текст IT Курсы программирования Менторство C++ Образование Самообразование
7
0
neverending.cpp
neverending.cpp
6 месяцев назад
Лига программистов

Dead lock⁠⁠

Перед тем, как разобрать, что такое live lock, вспомним, что такое dead lock.

Deadlock bug на простейшем примере
Два потока захватывают мьютексы в разном порядке. Это может привести к ситуации, что планировщик запустит на выполнение поток 1, поток 1 захватит мьютекс 1, после чего планировщик приостановит выполнение потока 1 и запустит на выполнение поток 2. Поток 2 захватит мьютекс 2. Независимо от того, какой поток будет выполняться дальше, программа зависнет, т.к. потоки будут ждать разблокировки мьютексов (поток 1 - мьютека 2, поток 2 - мьютека 1), которая никогда не произойдет.

#include <iostream>
#include <thread>
#include <mutex>

void thread1(std::mutex& mutex1, std::mutex& mutex2)
{
std::lock_guard<std::mutex> lock1(mutex1);
std::cout << "Thread 1 acquired mutex1\n";

std::lock_guard<std::mutex> lock2(mutex2);
std::cout << "Thread 1 acquired mutex2\n";
}

void thread2(std::mutex& mutex1, std::mutex& mutex2)
{
std::lock_guard<std::mutex> lock2(mutex2);
std::cout << "Thread 2 acquired mutex2\n";

std::lock_guard<std::mutex> lock1(mutex1);
std::cout << "Thread 2 acquired mutex1\n";
}

int main()
{
std::mutex mutex1;
std::mutex mutex2;

std::thread t1(thread1, std::ref(mutex1), std::ref(mutex2));
std::thread t2(thread2, std::ref(mutex1), std::ref(mutex2));

t1.join();
t2.join();
}

Fix dead lock bug
В современном C++ баг, описанный выше, исправляется с помощью использования std::scoped_lock

#include <iostream>
#include <thread>
#include <mutex>

void thread1(std::mutex& mutex1, std::mutex& mutex2)
{
const std::scoped_lock lock(mutex1, mutex2);
std::cout << "Thread 1 acquired mutex1 and mutex2\n";
}

void thread2(std::mutex& mutex1, std::mutex& mutex2)
{
const std::scoped_lock lock(mutex1, mutex2);
std::cout << "Thread 2 acquired mutex1 and mutex2\n";
}

int main()
{
std::mutex mutex1;
std::mutex mutex2;

std::thread t1(thread1, std::ref(mutex1), std::ref(mutex2));
std::thread t2(thread2, std::ref(mutex1), std::ref(mutex2));

t1.join();
t2.join();
}

Больше технических постов тут t.me/neverending_cpp

Показать полностью
[моё] Кросспостинг Pikabu Publish Bot Текст C++ IT Многопоточность Deadlock
9
6
2154242153085
2154242153085
6 месяцев назад

Безопасный C++⁠⁠

Сначала придумали rust. Безопасный c++

Потом придумали trapc

Доколе?

Сделаем C++ ещё опаснее.

Что за инфантилизм. Бизнес-шлюхи должны визжать от сложности и опасности.

Безопасный C++ C++, Идеал, Rust
[моё] C++ Идеал Rust
8
3
neverending.cpp
neverending.cpp
7 месяцев назад
Лига программистов

ООП. Вспомнить всё⁠⁠

Мэтт Вайсфельд "Объектно-ориентированный подход". Автору удалось осветить в этой книге практически все темы, касающиеся ООП, и сделать это всего лишь на 250 страницах (!): разбор принципов ООП на примерах, рекомендации по проектированию классов, извечный вопрос применимости множественного наследования, разбор принципов SOLID с внятными примерами и даже паттерны! Притом качество и глубина изложения материала не пострадала. Книгу можно читать как новичку, так и разработчику с опытом. Новичок получит в ней ценные ориентиры для дальнейшего углубленного изучения ООП, разработчику с опытом книга поможет упорядочить свои знания или подготовиться к ООП-нагруженному собеседованию.

Технические посты тут t.me/neverending_cpp

ООП. Вспомнить всё Программирование, IT, Книги, Самообразование, Разработка, C++
Показать полностью 1
[моё] Программирование IT Книги Самообразование Разработка C++
2
Партнёрский материал Реклама
specials
specials

Считаете себя киноманом 80 LVL?⁠⁠

Залетайте проверить память и сообразительность → Будет интересно

Киногерои Тест Текст
Terentyeff
Terentyeff
7 месяцев назад

Ответ на пост «Подключаюсь к челленджу»⁠⁠6

Поддержу пикабушников. Каждый лайк будет равняться одному часу изучения Linux API/Win API. Набор лайков закончится 04/12/2024 в 21:00 по МСК.

Для Win API, изучение будет проходить под Windows 10. Для Linux API под Gentoo(Скорее всего).

Как будет всё происходить:
1)Сделаем голосование отдельным постом(Либо можем создать общий чат в телеге и там уже все выбирать). Какой ответ наберёт больше лайков, то и буду изучать.
2)Будет проводиться по часу-два стрим на youtube/twitch/boosty/etc... Платформу тоже выберем.
3)Так же, результаты будут выходить отдельным постом на Пикабу в виде: Номер Стрима, ссылка на сохранённый стрим, краткое описание чего изучал.

В самом конце, если обучение будет под Linux API, попробуем написать какой-нибудь модуль, закинуть его в исходники Android и собрать с ним GSI образ(Либо попробуем немного переделать стандартный recovery), который сможет запустить у себя каждый, у кого устройство поддерживает Project Treble(Все устройства, которые вышли начиная с Android 8).
Если победит Win API, то попробуем поработать в конце с VK API. Попробуем сделать небольшой клиент для работы с группой, сделаем авторизацию, и т.д.

Будет круто, если кто-то тоже захочет присоединиться.

P.S. Буду рад, если кто-то посоветует литературу по Win API/Linux API.

P.P.S. С Win API/Linux API ещё не работал, но хотелось бы для общего развития. Пока только изучаю Qt и оно мне нравится. =)

Показать полностью
Челлендж Волна постов Короткопост Без рейтинга C++ Linux Windows Ответ на пост Текст
1
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии