• Что изучать в первую очередь? С(СИ) или С++?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    если возьмусь за С(СИ) я смогу перепрыгнуть же на С++?

    Да.
    А смогу, допустим, уже наоборот?

    Да.
    А какая цель изучения? Просто чтоб изучить что-то? Тогда абсолютно не важно.
    Ответ написан
  • Где лучше обучаться основам руководителя ИТ проектов?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    1) начните с уверенных лекторов, например ( не помню, кажется, он и курсы предлагает какие-то) - просто добавляйтесь, читайте, по ссылкам добавляйтесь в смежные группы
    2) поставьте задачу PMI Сертификации, познакомитесь с PMBOK 100500 раз и, главное, поймете термины PMBOK в IT реалиях
    3) дальше философия, например, теория ограничений, хорошо в IT разжеванная этим товарисчем и практика, практика, практика

    и да, Agile/SCRUM, это не управление проектами, но если там где работаете корочки катят, то можете

    P.S. если хочется срочно отдать деньги - посмотрите у Стратопланов, у них постоянно есть какие-то курсы
    Ответ написан
    1 комментарий
  • Какова практика программирования максимально совместимых приложений под Windows?

    15432
    @15432
    Системный программист ^_^
    Совместимо всё, выбирайте статическую линковку (свойства проекта - C++ - Code Generation - Runtime Library - Multi-thread)

    Вот для примера моя программка для "усреднения" почти одинаковых файлов, позапускайте от XP до десятки

    rgho.st/6bfgtjnXl
    Ответ написан
    1 комментарий
  • Что с pip'ом в Python?

    sim3x
    @sim3x
    LMAO

    в консоли нужно вводить
    если не в консоли ОС, то в консоли пичарма
    Ответ написан
    Комментировать
  • С какими сложностями придется столкнуться при разработке онлайн-обменника криптовалют?

    sim3x
    @sim3x
    0. Отсутствие понимания, как все работает
    1. Отсутствие опыта разработки такого рода систем
    = неправильно комитнули транзакцию, деньги ушли не тому, возмещаете из своего кармана
    = обрушили сеть, вам ненавидит сотня тысяч человек
    ...

    2. Отсутствие експертизы в ИБ
    = много денег на бирже, есть дырка, денег на бирже больше нет
    ...

    3. Юридические проблемы при регистрации бизнеса
    Правовой статус системы «Биткойн» в РФ обсуждается[13][14][15][16][17][18].
    Правовой_статус_системы_Биткойн
    // росийский новояз - уже и в вики

    Проблема с юр стороны - неустойчивость законодательства в РФ и рандомное применение права

    Проблема в юрисдикциях со стабильным законодательство и устоявшимся правоприменением в области криптовалют - через вас течет трафик с не совсем легальными деньгами, вами интересуются спецслужбы
    Ответ написан
  • Как создать глобальный объект для всех элементов проекта?

    @BeardedBeaver
    Объявление вектора tasks должно присутствовать в соответствующем cpp файле (технически, в любой другой единице трансляции) помимо extern в h файле на скриншоте. А вообще говоря, есть паттерн "синглтон", он дя этой ситуации куда более феншуен
    Ответ написан
    Комментировать
  • Книга о том как правильно должен работать программист?

    un1t
    @un1t
    Чед Фаулер "Программист фанатик"
    Джоэл Спольски "Джоэл о программировании"
    Роберт Мартин "Идеальный программист"
    Том ДеМарко, "Вальсируя с Медведями: управление рисками в проектах по разработке программного обеспечения"
    Том ДеМарко "Человеческий фактор. Успешные проекты и команды"
    Роберт Гласс "Факты и заблуждения профессионального программирования"
    Игорь Савчук "Отъявленный программист. Лайфхакинг из первых рук"
    Питер Сейбел "Кодеры за работой. Размышления о ремесле программиста"
    Хант Эндрю, Томас Дэвид "Программист прагматик"
    Ответ написан
    1 комментарий
  • Project Properties в Чужом проекте - Как не зависать по пустякам?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    Волшебной таблетки нет, всё приходит с опытом. Но сколько бы опыта в программировании у вас ни было, говнокод читать всегда будет тяжело.
    Ответ написан
    Комментировать
  • Выбор типа переменной класса в зависимости от параметра шаблона (C++17, if constexpr)?

    Cyapa
    @Cyapa
    Лучше воспользоваться частной специализацией и сделать вот так:

    template < EC_SPI_CFG_DATA_FRAME FRAMES >
    struct spi
    {
        mutable uint16_t* p_tx = nullptr;
    };
    
    template < >
    struct spi<EC_SPI_CFG_DATA_FRAME::FRAME_8_BIT>
    {
        mutable uint8_t* p_tx = nullptr;
    };
    Ответ написан
    1 комментарий
  • Почему в C++ указатели так себя ведут?

    15432
    @15432
    Системный программист ^_^
    int *aaa; //переменная с именем aaa типа "указатель на int", расположена в некоторой ячейке памяти, выделенной на стеке
        aaa = new int(6);  //присваиваем переменной aaa новое значение, а именно, адрес выделенной ячейки памяти в куче, содержащей значение 6
        qInfo() << aaa;       // 0x6a4e50   <- узнать тот самый адрес, что мы присвоили указателю
        qInfo() << *aaa;      // 6          <- перейти по этому адресу и извлечь значение 
        qInfo() << &aaa;      // 0x28fbe8   <- адрес ячейки, где лежит значение самой переменной aaa
        qInfo() << &*aaa;     // 0x6a4e50   <- перешли по указателю, который лежит в aaa (ячейка в куче, содержащая значение 6), потом узнали адрес этой ячейки, и конечно это тот самый адрес, по которому мы перешли
        qInfo() << *&aaa;     // 0x6a4e50   <- узнали адрес ячейки стека, по которому расположена переменная aaa, потом перешли по нему и извлекли значение переменной aaa. то же самое, что и просто обратиться к aaa
        qInfo() << *&*&*aaa;  // 6 тож самое что и выше, все &* нивелируют друг друга (переход по адресу и опять получение того же самого адреса обратно), остаётся только *aaa, ну а там лежит 6
    Ответ написан
    2 комментария
  • Есть ли смысл учитывать аппаратное количество потоков в игровом движке?

    @nirvimel
    Пул потоков по умолчанию содержит число потоков, равное количеству ядер аппаратных потоков. У этого пула есть входная очередь (lock-free), куда сабмитятся поступающие таски. Когда CPU недонагружен очередь пустая. Когда все потоки заняты, очередь растет.

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

    Кстати, очередь задач на пуле потоков - это именно то, как многозадачность реализуется внутри ОС. Только тут сами потоки ОС являются тасками, которые ставятся в очередь. Разница в производительности объясняется тем, что переключение тасков в юзерспейсе легче (следовательно быстрей), чем переключение потоков ОС.
    Ответ написан
    2 комментария
  • Возможно ли вывести элементы list используя for_each?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    А почему должно? list - это вам не массив, где элементы лежат одним куском в памяти. Вообще говоря, вас не должно волновать, как они там лежат, используйте .begin() и .end() для получения итераторов на начало и конец списка. И в данном случае можно было бы применить range based for.
    Ответ написан
    Комментировать
  • Какую IDE выбрать для С++ под Linux?

    @Gytim
    QtCreator или Visual Studio Code. В первом случае парится не надо с настройкой и установкой и все готово, во втором настроить так как себе нужно.
    Ответ написан
    Комментировать
  • Как поймать ошибку в visual studio?

    TrueBers
    @TrueBers
    Гуглю за еду
    Вот к примеру
    char ch = str[5];
    длина str всего 3. Поэтому возникает ошибка, но vs не вылетает

    Оно и не должно вылетать. Выход за пределы массива это неопределённое поведение. Компилятор вправе делать что угодно при неопределённом поведении, хоть систему вам форматировать, хоть пойти закурить. Он не обязан выкидывать исключение. Контроль этого только на вашей ответственности. Либо используйте статический анализатор, он вам покажет, что вы не так делаете.

    А ещё лучше, для строк используйте специально созданный для этого контейнер std::string, для статических массивов — std::array, для динамических — std::vector. И ничего не будет вылетать.
    Ответ написан
    2 комментария
  • Что лучше использовать, что бы определить различность изображений?

    alexsandr0000
    @alexsandr0000
    Программист C#/C++/C
    Тут как я вижу два подхода использовать EMGU (openCV) или реализовывать алгоритм самостоятельно, как вариант использовать корреляционную функцию или FFT, а также можно использовать нейронные сети. Если изображений много и время на их обработку критично, то использование с++ + OpenCv более предпочтительней, хотя и сложней, но производительность тут существенно выше. Ну и в качестве экзотики использовать для этого DSP или ПЛИС
    Ответ написан
    3 комментария
  • Игровой ПК до 35000 руб? Какие комплектующие лучше подобрать?

    TrueBers
    @TrueBers
    Гуглю за еду
    Для современных игр в 4k вам нужна минимум GTX1080. Карты, уровнем ниже, тупо не потянут такое разрешение.
    Т. е. в ваш бюджет входит только видеокарта...
    Ответ написан
    2 комментария
  • Как сделать наследование класса со структурой?

    TrueBers
    @TrueBers
    Гуглю за еду
    У вас в корне неверное понимание наследования и каша в голове.

    Наследование — это выражение отношения является. Т. е., по-вашему, книга является множеством авторов. Абсурд ведь, разве нет?
    Книга — это книга, она может являться бумагой, или абстрактным объектом, или содержимым библиотеки, но никак не авторами. Она написана авторами, авторы — это её аттрибут. Поэтому здесь лучше использовать агрегирование, а не наследование. Ибо книга содержит, в какой-то мере, творчество множества авторов.

    Почитайте про различие наследования, агрегирования, композиции. Эти вещи предназначены для разных целей и представляют собой разные отношения между объектами.
    Ответ написан
    Комментировать
  • За какое время можно выучить C++ зная нативный JavaScript (ES6)?

    ThePyzhov
    @ThePyzhov
    iOS Ninja
    За какое время можно выучить C++

    За какое время можно научиться собирать самолеты "Боинг", умея собирать мотоциклы "Урал"?
    Ответ написан
    3 комментария
  • Обработка разнобитных bmp картинок, в чем конкретная разница?

    15432
    @15432
    Системный программист ^_^
    В случае 24 бит, на каждый пиксель приходится по 3 байта - значения для красного, зелёного и синего цветов.
    Для 16 бит на пиксель приходится уже 2 байта, придётся "выдёргивать" цвета уже побитно (на красный и синий отводится 5 бит данных, на зелёный 6 бит)
    8 бит - один байт на пиксель, либо оттенки серого, либо в заголовке будет таблица соответствий цветов, в которой каждому значению байта соответствует 24-битное значение цвета. Всё это придётся расшифровывать.
    2 и 4 бита аналогично 8 бит, только ещё меньше цветов.
    Помимо всего этого, может присутствовать RLE сжатие, которое придётся распаковывать и запаковывать. Сжатие примитивное, но всё же экономит место.

    P.S. Если вы используете BMP библиотеку, которая любой формат вам превращает в набор значений RGB, заморачиваться и не нужно, либа сделает всё за вас.
    Ответ написан
    3 комментария
  • Что нужно знать для разработки MMO игры?

    GavriKos
    @GavriKos Куратор тега Разработка игр
    Нужно иметь овердофига опыта в разработке более простых игр. Богатейший опыт в работе сетевых вещей. И овердофига денег.
    Ответ написан
    Комментировать