Задать вопрос
  • Как принято понимать параметр size в функциях C/C++?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Размер в байтах используется чаще тогда, когда обмен идёт неструктурированными данными, или данными с элементами переменной длины. Обычно указатель на данные при этом типа void *.
    При обмене массивами с элементами фиксированного размера обычно удобнее использовать количество элементов.
    Ответ написан
    2 комментария
  • Почему static и namespace не ограничивают область видимости?

    @lookid
    препроцессор компилятора с++ заменяет #include на содержимое файла, который написан в <...> или "...". Если хотите ограничить область видимости, то пишите реализацию в срр, а не в h.
    Ответ написан
    3 комментария
  • Нужна ли статья от нуба по программированию в kernel space?

    Wendor
    @Wendor
    nodejs developer / *nix admin
    Пишите конечно.
    Ответ написан
    Комментировать
  • Нужна ли статья от нуба по программированию в kernel space?

    Kolyagrozamorey
    @Kolyagrozamorey
    инженер-электроник службы ИТ ХАЕС
    Да, мне бы интересно было бы почитать
    Ответ написан
    Комментировать
  • Как мне правильно унаследовать класс?

    tsarevfs
    @tsarevfs Куратор тега C++
    C++ developer
    конструкторы не наследуются.
    class one
    {
    public:
       Q_OBJECT
       one(int a)
       {
       }
    };
    
    class two : one
    {
    public:
       Q_OBJECT
       two(int a)
          :one(a)
       {
       }
    };
    int main()
    {
       one * s = new two(1);
       return 0;
    }
    Ответ написан
    7 комментариев
  • Как мне правильно унаследовать класс?

    @AlexP11223
    В two тоже Q_OBJECT надо.
    Ответ написан
    Комментировать
  • Какую игру написать на Qt (для курсача, нужен совет)?

    Csklassami
    @Csklassami
    Текстовая, пошаговая RPG - наверно самая популярная игра среди начинающих программистов. К примеру есть класс Warrior со своими свойствами, от него наследуется класс Player. Ну и по мейнстриму, добавляете таверну, где продаются всякие штучки-дрючки(зелье, меч и т.д.), казарму с выбором типа солдат. Осталось найти место для Qt и полиморфизма. Ок, что если сделать это в небольшом окне - где при атаки соперника на передний план выходит картинка врага, потом ваша и т.д. Ну и тут можно задействовать пару Qt-шных классов. Теперь про полиморфизм - вы пишите виртуальную функцию attack( ), которая будет одной для всех типов войск, как противников, так и союзников. Можно придумать, что-то еще. имхо, 2нед. будет достаточно, чтобы реализовать это. Удачи! Отпишитесь, что придумаете в конце))
    Ответ написан
    Комментировать
  • В какой ВУЗ Питера лучше поступать с желанием стать веб-программистом?

    becks
    @becks
    Рассмотрите Политех (ФТК). Я заканчивал кафедру КСПТ, на кафедре трудится много молодых преподавателей (30-35 лет), большинство из которых работают в Яндексе, JetBrains и прочих Intel'aх. Т.е. ребята "в теме".
    Посмотрите еще на СПБАУ habrahabr.ru/company/spbau

    В университет обязательно идите. Просто занимайтесь там делом, а не бейте баклуши. На 2-3-4 курсе уже начинайте работать. Учеба в университете не ограничивается получением лишь одних знаний в предметной области. Это много больше. В конце концов, это и друзья, которых вы приобретете на всю жизнь.

    Читайте книги, интересуйтесь, ходите на конференции. Обучение должно быть комплексным и тогда все у Вас получится.
    Ответ написан
    1 комментарий
  • Архаично ли обучать школьников программированию в консольном режиме?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Не согласен.

    GUI это хорошо, но и обезьяна справится с простенькой формочкой а понимания работы с IO у человека не будет. Да и консолью нужно учить пользоваться. Не все вертится вокруг GUI, в этом я согласен с вами.

    GUI имеет смысл преподавать уже после консольки, при чем объясняя такие вещи как отзывчивость интерфейсов, как не допускать подвисаний интерфейсов. асинхронная работа с IO и т.д. Тогда толк есть.

    Что до робототехники, контроллеры типа arduino, можно, но когда человек разберется что такое микроконтроллер, научится эффективно их использовать и все такое прочее. Все же разрабатывать коммерческие проекты на базе ардуино не очень то выгодно, обычно это просто хобби, побаловаться. Есть кучи более дешевых аналогов, от тех же Texas Instruments которые позволяют и разобраться, и не иметь дела со скучным ассемблером а писать уже на Си и делать прикольные штуки. Так же есть DSP процессоры и кучи других прикольных вещей.
    Ответ написан
    2 комментария
  • Архаично ли обучать школьников программированию в консольном режиме?

    Я тоже за консоль! С консоли в ГУИ перейти не проблема а вот обратно нужно ещё подумать:(
    Ответ написан
    Комментировать
  • Архаично ли обучать школьников программированию в консольном режиме?

    @vdem
    Лично у меня клавиатурой получается совершать необходимые действия намного быстрее, чем мышкой (которую использую практически только при работе в браузере). Окошки-менюшки просто выглядят проще и нагляднее, но запомнив пару десятков команд и сочетаний клавиш можно вполне (и быстрее) справляться с задачами используя клавиатуру. Конечно, все это актуально только для программеров :)

    P.S. Само собой, я о консоли говорю. Пока работал в Windows, использовал Far Manager, сейчас - Midnight Commander, сборка проектов - командами в консоли.
    Ответ написан
    1 комментарий
  • Завтра собеседование на сисадмина, а я программист. Что делать?

    begemot_sun
    @begemot_sun
    Программист в душе.
    Для начала выспаться. :)
    Ответ написан
    Комментировать
  • Что нужно знать, чтобы стать хакером?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Ей, хе хей!

    Ну народ, давайте называть вещи своими вещами. Конечно, есть толковый словарик, но нередко он ошибается, так как пытается охватить неохватываемое.

    Хакер - это не тот, кто взламывает, ломает. Ближе всего, конечно, определение, как хулиган. Но тоже не совсем верное. Это скорее безбашенный человек, который не знает слова "невозможно" и пытается докопаться до порой недокапываемого. Но к тому же, он весьма просвещён в области Computer Science (понимает, когда есть смысл, а когда нет смысла вскрывать RSA и подобное). К тому же он далеко не профан в схемотехнике: паяльник держит ровно, мозг может выдать схемку, а руки всё ровно сотворить.

    В общем хакер - это тот парень, кто без ума от компьютерной техники. Конечно, в современном мире это слово искажено, не без успеха небезызвестного Кевина Митника (можете почитать "Искусство обмана" с комментариями Митника).

    Теперь о том, что собственно хакеры делают. Они исследуют. Исследуют новое и, возможно, не очень важное. Но весьма и весьма интересное. Если Вам не интересно, почему виртуалиция кода очень крута и зачем в Windows до сих пор литеральное монтирование дисков, то возможно стезя хакера не Ваша. Научиться этому всему можно, но вряд ли Вам это будет интересно.

    Многие мои знакомые узнавали об устройстве компьютера едва ли не сами, методом проб и ошибок. Запомните это: на границе исследованного этот метод, пожалуй, единственный. Больше ничего нет просто потому что никто ничего не продумал.

    Но. Хакеры ничего не защищают. Они исследуют. Настоящий хакер делает лишь то, что ему нравится, иначе будет мучать депрессия. Хакер не обязательно должен ломать сети. Он вообще не обязательно должен ломать. Но у хакера очень узкая специализация: базовые навыки в IT в общем и невероятные в своей специализации. Это потому, что невозможно достич успеха не концетрируясь на чём-то одном.

    Кевин Митник - хакер информационной безопасности
    Джон Кармак - хакер трёхмерной графики
    Джулиан Ассанж - хакер информационной безопасности
    Линус Торвальдс - хакер just for fun'а

    Есть ещё много реально крутых хакеров. Если Ваш путь - информационная безопасность, то вот небольшой roadway: в первую очередь следует изучить теорию чисел, разобраться в криптографии, потом разобраться в сетевых технологиях (здесь очень много всего: от iptables до сетевых интерфейсов как в софте, так и в железе), наконец потом немного драйверов, userland'а и kerneland'а: как работает ОС, где слабые места. В перерывах кормим себя web'ом: apache, ngix и прочая сетевая утварь; также изучаем багрепорты и те дыры, которые уже были найдены когда-то, пытаемся найти и то, как они были найдены, в каких обстоятельствах.

    Проникаемся всей этой атмосферой. Порой вытворяем безумное. Нет, не пытаясь получить премию Дарвина, скорее пытаемся решить задачу тысячелетия и/или взломать пентагон.
    Ответ написан
    3 комментария
  • Что нужно знать, чтобы стать хакером?

    BelBES
    @BelBES
    Самая главная книга для будущего Хакера - это Уголовный Кодекс, имхо.
    Ответ написан
    7 комментариев
  • Как собрать проект open source в Qt?

    EXL
    @EXL
    Энтузиаст
    Если в этом проекте есть файл "Makefile.am", то активируйте в "Help -> About Plugins..." плагин AutotoolsProjectManager, а затем перезапустите Qt Creator и откройте этот файл в программе;

    Если ничего подобного нету, то сделайте проектный файл ручками с помощью "File -> New File or Project... -> Import Project". Ттаким образом на основе созданных файлов можно будет сделать полноценный и привычный "*.pro"-файл.
    Ответ написан
    Комментировать
  • Как организовать оптимальное хранение ошибок в иерархической структуре?

    mrstrictly
    @mrstrictly
    Как-то так: pastebin.com/K6Z8JqVT
    То есть, идея в том, чтобы подписать узел на событие изменения состояния "маркера" при его добавлении в узел. При этом, узел распространяет события своему родителю (если он есть) вплоть до корневого. Каждый узел хранит компактный набор счетчиков состояний, связанных с его "маркерами" и "маркерами" дочерних узлов. Что-то еще более оптимизировать, на мой взгляд, смысла нет, т.к. TreeMap (O(nlog(n)) с ключом по состоянию -- это и так очень быстро.
    Код, разумеется, не thread-safe.
    Ответ написан
    1 комментарий
  • Какой велосипед написать на с++ для закрепления изученного?

    lexxpavlov
    @lexxpavlov
    Программист, преподаватель
    Сделайте какую-нибудь простую игру, с минимумом действий, но с задействованием всего вашего арсенала с c++, особенно ООП.
    Например, напишите rogue-like игру, типа того, что описана в этом топике.
    Тут у вас будет и работа с графикой, и хранение данных в файлах с конфигами (предметы, монстры, уровни), и игровая механика (перемещение, удары), и искусственный интеллект (поиск пути).
    Графику можно сделать как консольной (в текстовом режиме), так и освоить какую-нибудь графическую библиотеку (Qt, например). А можно написать два разных интерфейса и выбирать - запустить в консоли или в окне.
    Позже можно будет добавить работу с сетью и режим игры вдвоём.
    Этот проект (относительно) не сложный, но даст вам очень много практического опыта. Ведь одно дело писать классы в учебных целях, когда заранее известна конечная иерархия, а другое дело - полностью разработать иерархию, реализовать её, увидеть, что вышло не очень (так часто бывает, нужен опыт), найти способ как провести рефакторинг, обнаружить ценность интерфейсов, переписать классы на использование интерфейсов (или общие абстрактные предки), увидеть, что это гораздо лучше, порадоваться за себя, дать поиграть друзьям, получить багрепорты, исправить все баги, и так далее.
    Ответ написан
    Комментировать
  • Что изучать, на что тратить свободное время, чтобы в будущем стать востребованным программистом с нормальным заработком?

    @asd111
    Раз уж ты решил стать программистом, то советую изучить после С++ алгоритмы и структуры данных по книге Роберта Сэджвика . Если знаешь английский то вот видео курс Сэджвика с coursera
    rutracker.org/forum/viewtopic.php?t=4294269
    Сэджвик крутой препод - он учился у Кнута и первым опубликовал концепцию структуры данных red-black binary search tree, хотя придумал такие деревья кто то другой вроде бы.
    Там правда Java, но разница между Java и С++11 вплане возможностей синтаксиса очень мала.
    Главное понять как это работает и как этим пользоваться.
    Если английский не знаешь, то есть русские видео курсы(в русских курсах не разбирался, поэтому не подскажу какие выбрать).
    Ещё советую заняться спортивным программированием. Хотя бы на время. Для первоначальной прокачки алгоритмического мышления отлично подойдёт.
    Это для базы.
    А чтобы найти работу нужно определиться со сферой деятельности и языком программирования. Тогда сразу узнаешь что учить. Посмотри какие программисты востребованы, выбери что больше нравиться и учи, обычно в требованиях к вакансии указано все что должен знать соискатель. За год-два вполне возможно доучиться до junior в какой то сфере.
    С++
    С#
    PHP
    Java
    iOS(программирование под iphone)
    Android
    Ответ написан
    Комментировать
  • Что изучать, на что тратить свободное время, чтобы в будущем стать востребованным программистом с нормальным заработком?

    @Yuriy2014
    программист - это в первую очередь математика, алгоритмы и структуры данных. по сути - вышка в ВУЗе.
    а языки, среды разработки, модули и библиотеки - это кодер.
    программисту достаточно листа а4 и карандаша в общем случае, дальше работа кодеров.

    поэтому определяйтесь)
    Ответ написан
    Комментировать
  • Что изучать, на что тратить свободное время, чтобы в будущем стать востребованным программистом с нормальным заработком?

    thatskriptkid
    @thatskriptkid
    1) Поставь Gentoo GNU/Linux. Постарайся сделать ее "дружелюбной" для себя.
    2) Выучи подмножество английского, необходимого для понимания технических текстов.
    3) Начни с изучения основ языка программирования С. Синтаксис, основные функции.
    4) Реализуй простые алгоритмы. Напиши несколько видов сортировок. Осознай их плюсы и минусы. Это даст начало развитию алгоритмического мышления. Ознакомься с таким понятием как рекурсия.
    5) Поставь себе простенькую задачу. Не ищи их в гугле, постарайся сам придумать. Придумав, реализуй ее без всяких книжек и туториалов, используя только www.gnu.org/software/libc/manual/pdf/libc.pdf и мозг. (например я делал сниффер и клиент-серверное приложение, использующее в роли протокола - TLS 1.2)

    Такой путь я проходил сам. Раньше я сидел постоянно на винде и не видел даже в глаза GNU/Linux. И я сразу начал знакомство с Gentoo. Не бойся. Пол года помучаешься, зато знать будешь больше чем Убунтушник за 2-3 года пользования Ubuntu. Сможешь уже нормально мыслить. К тому же программировать на С под GNU/Linux одно удовольствие. На все мои пункты у тебя уйдет около 8 месяцев - 1 год, но это того стоит. И главное всегда помни, что любой язык программирования это не сама цель, а лишь средство, инструмент. Это чисто мое имхо)
    Ответ написан
    2 комментария