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

Достижения

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

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

Все теги (32)

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

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

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

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

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

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

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

    RabraBabr
    @RabraBabr
    Ну что же. попробуем в указатели.
    Когда то давно, когда деревья были высокими, а трава сочнее и зеленее, на одной красивой планете - да можно было и без указателей. Автоматические переменные неплохо работали в стеке (ага иди гугли про стек и какой он маленький и про знаменитый его оверфлоу). В общем ответь на вопрос, много ли этого стека? Стало все не так романтично, объемы данных росли программы усложнялись , а программист ручками в куче (ага гугли про кучу) с помощью malloc'а выделял память. А что бы он знал где он выделяет память нужны указатели (ну как адрес квартиры - где проживают переменные Ивановы?). вот указатели в общем этот адрес и хранят. Только выяснилось, что программист плохо ручками память выделяет. Например в 20 метровую однушку он может захотеть поселить табор из 300 закарпатских цыган. И согласись получится неприятность.

    Вот в c++ память выделяется new и delete - это операторы такие. Сами посчитают сколько цыган куда и адресок вернут, а когда надо всех ненужных выселят. Только лучше и веселее не стало, память всегда течет, а указатели всегда висят. А где там в какой квартире Ивановы, а где Петровы вообще не понять И куда тот табор делся? А может и не делся.

    Оппа у нас же в c++ парадигма ООП и классы (гуглим классы). А в классах всегда конструктор и деструктор (гуглим), и они вызываются автоматически когда объект (экземпляр класса) создается и когда уничтожается. Так может new положим в конструктор, а delete в деструктор? И назовем все это хозяйство std::auto_ptr. И пусть он сам за памятью следит, а программиста будем бить по рукам за ручное выделение памяти

    Беда, печаль однако. Лучше жить не стало. и виной тому конструктор копирования (вот опять гуглим). Тогда придумали семантику перемещения r-value ссылки и кучу новых умных указателей вот просвещайся https://ru.cppreference.com/w/cpp/memory
    Если пройдешь по ссылке то увидишь много новых и интересных слов например аллокаторы или неинициализированные хранилища.

    И я надеюсь мой юный друг, что ты уже понял, что до джуна тебе еще очень и очень много непонятных слов. Вот когда сможешь shared_ptr свелосипедить, тогда свелосипедь себе еще и резюме и вперед на собеседования.
    Ответ написан
  • Создаю OpenSourse проект на С++ ниже - нужны единомышленники, где мне таких искать?

    RabraBabr
    @RabraBabr
    Хочу создать программу для составления алгоритма

    Моя твоя не понимать.

    https://github.com/rustamkremcheev/AlgoIDEA

    Но там пусто. Нет там реально пусто - This repository is empty.

    мне нужна помощь.

    Вы хотите, что бы мы вам программу написали? Ну так заинтересуйте. Самый простой способ Я вам свою ставку в час назову и если все устраивает запилю вам проект.

    Хотите Бесплатно? Ну блин прежде чем носиться со своими мегапрожектами хотя бы дизайн документ на ТРИ странички составте. Не надо сочинение как я провел лето на 100 листов натягивать как наши школы и универы учат. Три несчастных страницы с сухой выжимкой хватит. Коротко четко и по делу. Авось кто то и клюнет. Потом по ходу проекта разрастется может быть в многотомник, если не помрет прежде.
    Ответ написан
  • Простой векторный графический редактор?

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

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

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