Контакты
Местоположение
Россия, Самарская обл., Самара

Достижения

Все достижения (3)

Наибольший вклад в теги

Все теги (26)

Лучшие ответы пользователя

Все ответы (23)
  • Чем Классы отличаются от обычных функций?

    RabraBabr
    @RabraBabr
    ООП это не управление сложностью как многие тут напишут. Это сущность другого уровня абстракции. Вы смешали в одну кучу сущности из разных уровней.
    Вот смотрите - в физическом мире есть микромир с электронами, протонами, фотонами и не знаю там чем еще. Он работает по своим законам квантовой механики. Есть макромир уровня вещей самолетов, яблок, деревьев. Он работает по законам Ньютоновской механики. Есть мир космогонии уровня звезд галактик черных дыр. Он работает по Теориям Эйнштейна. Видите как просто. Мы прошлись по трем уровням абстракции материального мира самого низкого до самого высокого.
    Так же и в мире информации есть самые низкие уровни машинных кодов, регистров и отдельных битов. А есть более высокие уровни функций, еще более высокие уровни классов и даже еще более высокие уровни абстракций. Так вот ваша задача рассортировать все те сущности, что вы привели правильно по разным уровням. А у вас все в одной куче: операторы, переменные, классы. И не надо высшему миру знать о низшем ничего. Тогда все будет правильно.
    Беда программирования в том, что очень мощные инструменты доступны всем. Вот представь мед лабораторию с микроскопами, скальпелями пробирками и другим оборудованием. Туда не каждого пустят. В программировании же каждый может нажать кнопку скачать и начать творить всякую фигню. Пришить пятую ногу собаке, вырастить ей ухо на спине и рога на лбу. Была такая книга - "Многоярусный мир". Там один товарищ специализировался на таких уродцах. Вот потом эти уродцы начинают мстить их создателю.
    Так вот нормальный программист попав в этот мир уродцев, зачастую впадает в ступор. Зачем так делать? Ну то есть делать можно все, что угодно. Но не нужно. Его задача уменьшать энтропию вселенной, а не увеличивать.
    Ответ написан
  • Как понять что перед вами Senior Developer?

    RabraBabr
    @RabraBabr
    Конечно нужно дать ему написать пузырек на бумажке. И вот если он молча встанет и уйдет или там начнет в удивлении разводить руками -"Ребят ну вы че?". То это нам не надо.

    А вот если он напишет его, то перед нами студент второго (или какого?) курса. Потому, что он прекрасно помнит его, так как делал лабу по нему пару недель назад. Тогда хватайте быка за рога. Переходите дальше, что там? Двоичные деревья? Потом пусть про очереди LIFO и FIFO. Потом про матричные вычисления (заодно уровень математики проверить). Потом кривые Безье, далее заливка Фонгом (ведь есть же у них компьютерная графика). Потом пройдитесь по ООП, наследование там полиформизм, поговорите про абстракции. Потом по паттернам - фабрики, медиатор, синглтон (вот антипаттернам). Далее можно про операционки, кольца безопасности. Потом пройтись по криптографии. Обязательно по базам данных, интернет протоколам TCP/IP. Узнать может ли он в OpenGL. В программирование шейдеров. Что там еще я забыл? А как же? Вот! Малое и большое О, графы, html 5 (по высоконагруженным системам на ангуляре не надо), asm, холиварные безусловные переходы, git, юнит тесты. Ну по железу там можно по основам, автоматы Мура/Миля, регистры. Можно даже еще круче на самом низком уровне про то как работает транзистор - p-n-p переходы. А и самое главное пусть напишет нейросеть, ну и конечно же в блокчейн.

    Вот если после 6-ти часового собеседования он не сломается и не сбежит. То надо добить его тестовыми заданиями. Ну там по пол часа на каждое. Пусть напишет, игру, поднимет клиент серверное приложение ну и там не знаю, векторный редактор напишет.

    Да из такого студента наверное через несколько лет вполне себе неплохой сеньор помидор может выйти.
    Ответ написан
  • Простой векторный графический редактор?

    RabraBabr
    @RabraBabr
    Вот вам политеховская методичка по которой студенты делают лабы (и я когда то делал)
    vt.samgtu.ru/%2Fattachments%2Farticle%2F233%2F%D0%...
    Ее вполне вам хватит. Рисование прямых, кривых Безье, раскраска многоугольников, тмо, матрицы вращения, масштабирования и сдвига там есть.
    Ответ написан
  • Что лучше: constexpr vs define?

    RabraBabr
    @RabraBabr
    ES.31: Don’t use macros for constants or “functions”
    Reason Macros are a major source of bugs. Macros don’t obey the usual scope and type rules. Macros don’t obey the usual rules for argument passing. Macros ensure that the human reader sees something different from what the compiler sees. Macros complicate tool building. Example, bad
    #define PI 3.14
    #define SQUARE(a, b) (a * b)
    Even if we hadn’t left a well-known bug in SQUARE there are much better behaved alternatives; for example:

    constexpr double pi = 3.14;
    template T square(T a, T b) { return a * b; }
    Ответ написан
  • Как связать QML(QtQuick) вместе с C++ и Canvas?

    RabraBabr
    @RabraBabr
    Использовать макросы Q_PROPERTY для свойств и Q_INVOKABLE для функций. Класс должен быть наследником QObject. В main регистрируем в QML с помощью qmlRegisterType. Все.
    Ответ написан

Лучшие вопросы пользователя

Все вопросы (3)