• Хочу создать текстовую игру!Расскажите с чего начать?

    Vapaamies
    @Vapaamies
    Разработчик будущей ОС для ПК размером 250 МБ
    Начать нужно со сценария и листа бумаги, где будут разрисованы все развилки сюжета. Со сценарием на руках любая книжка по программированию будет читаться намного проще, поскольку написанное в ней автоматом будешь применять к своему проекту.

    Разработка игр -- в первую очередь проектная работа, и только во вторую -- программирование.
    Ответ написан
    3 комментария
  • Как сделать так, чтобы панель задач была в другом месте на втором мониторе?

    Spetros
    @Spetros
    IT-шник
    Как сделать так, чтобы на подключенном мониторе панель задач находилась в месте, отличном от экрана ноутбука? Например на ноутбуке слева, на втором мониторе внизу.

    Отключить закрепление и передвинуть куда требуется.

    И можно как-нибудь сделать так, чтобы на втором мониторе она автоматически скрывалась, и появлялась при наведении?

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

    nalomenko
    @nalomenko
    Руководитель отдела разработок в студии «Lava»
    Без привязки к языку — учебник по математике, изучение базовых алгоритмов (например, тут) и практика в рисовании простых блок-схем.
    Ответ написан
    Комментировать
  • На каком уровне нужно уже уметь программировать, поступая на "программную инженерию" в ВУЗе?

    Taraflex
    @Taraflex
    Ищу работу. Контакты в профиле.
    В школе проходим Паскаль на жалком уровне..

    хватит и этого.
    Лучше матан задрачивайте.
    Ответ написан
    1 комментарий
  • Как проверить скорость выполнения кода на C++?

    cjey
    @cjey
    #include <iostream>
    #include <cstdio>
    #include <ctime>
    
    int main() {
        std::clock_t start;
        double duration;
    
        start = std::clock();
    
        /* Сюда вставить тестируемый код */
    
        duration = ( std::clock() - start ) / (double) CLOCKS_PER_SEC;
    
        std::cout<<"printf: "<< duration <<'\n';
    }


    Если значение будет чересчур мало, то можно повторить тестируемый код 1000 раз и итоговое время разделить на 1000.

    А вообще нужно увеличить значение N хотя бы до 10000, и заполнять массив случайными значениями в цикле.
    Ответ написан
    Комментировать
  • Почему bool весит целый байт?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Предыдущие ораторы ( @batChar @gleb_kudr ) говорили про адресацию памяти. Я думаю, что они неправы: у нас, например, есть битовые поля, которые, по определению, могут быть отдельными битами, не смотря на то, что "байт - минимальная единица адресации в памяти". Невозможность адресовать отдельные биты памяти -- не основная причина.

    Проблема не в адресации, а скорее в стандарте: если посмотреть определение оператора sizeof (ISO/IEC 14882:1998, п.5.3.3), то стандарт запрещает применять его к битовым полям, но разрешает к типу bool (говоря, что результат, кстати, не обязан быть равен 1). А поскольку sizeof возвращает размер объекта в байтах, а конеченые объекты должны иметь ненулевой размер, то и размер bool должен быть не меньше байта.

    Я думаю, что стандарт вполне мог бы запретить применять sizeof к bool и разрешить паковать значения bool, но не сделал этого, т.к. это, скорее всего, неэффективно.

    С другой стороны, у std::vector есть специализация std::vector<bool>, "булевский вектор", которая обычно требует меньше памяти, чем массив значений типа bool.
    Ответ написан
    4 комментария
  • Почему bool весит целый байт?

    @gleb_kudr
    Потому что байт - минимальная единица адресации в памяти.
    Ответ написан
    Комментировать
  • Почему bool весит целый байт?

    batChar
    @batChar
    Потому, что архитектура вычислительной системы не способна адресовать БИТ памяти, минимальная единица - байт.
    Ответ написан
    2 комментария
  • Quick sort работает в c# почему-то быстрее, чем в с++. Разве не должно быть наоборот?

    Trrrrr
    @Trrrrr
    Во первых убедитесь, что вы скомпилировали в с++ в релизе.
    Во вторых покажите ваш код на с++, я уверен, что смогу очень быстро показать вам что у вас тормозит и как минимум получить одинаковую скорость.
    Ответ написан
  • Как подтянуть английский до уровня просмотра/чтения технических статей/видео?

    NCNecros
    @NCNecros
    Самому хотелось бы найти быстрый способ, но, как показывает жизнь, на вопрос "Как научиться someskill?" есть только один правильный ответ "Заниматься someskill". Хочешь научится читать - читай. Хочешь научиться говорить - говори. Хочешь научиться понимать на слух - слушай. Смотреть без перевода - смотри. Хочешь научиться писать код - пиши код. И так далее. 90% практики.

    UPD Можете посмотреть видео этой девушки(мне понравилось, и замечаю положительные изменения):
    Часть 1
    Часть 2
    Часть 3
    Часть 4
    Часть 5
    Ответ написан
    1 комментарий
  • Взаимодействие программы с системой. Как такое сделать?

    Реализуемо, можно и без WinAPI.
    Необходимо определить обработчик нажатия клавиш, а что бы знать какой текст выделен используйте поле SelectedText.
    //Собственно сам обработчик 
            private void keydown(object sender, KeyEventArgs e)
            {
                var type = sender.GetType();
                if (e.Control && e.KeyCode == Keys.C)
                {
                    if (type == typeof(TextBox))
                    {
                        textBox2.Text = (sender as TextBox).SelectedText;
                    }
                    if (type == typeof(RichTextBox))
                    {
                        textBox2.Text = (sender as RichTextBox).SelectedText;
                    }
                }
            }
    Ответ написан
    5 комментариев
  • Взаимодействие программы с системой. Как такое сделать?

    aush
    @aush
    Реализуемо. Для этого конкретного примера вам нужно будет поставить глобальный хук через WinAPI (blogs.msdn.com/b/toub/archive/2006/05/03/589423.aspx, https://gist.github.com/Stasonix/3181083)

    Хук нужно использовать, если вы хотите, чтобы этот функционал работал и в ситуации, когда пользователь копирует из любой другой программы, не только вашей (ваша в это время работает в фоне).
    Ответ написан
    5 комментариев
  • Есть ли у Acronis disk director аналоги?

    @386DX
    простые операции типа изменения названия тома и его буквы делаю MiniTool Partition Wizard Home Edition
    Ответ написан
    1 комментарий
  • В чем преимущество OSX перед Windows для программиста?

    Для C++, насколько мне известно, в OS X нет достаточно полного аналога Visual Studio. Для Java, конечно, есть Eclipse и IntelliJ IDEA.

    Преимущества OS X лично для меня (уже около 3-х лет в качестве основной системы дома):
    — Более-менее нормальная консоль, т.к. Unix.
    — Из верхнего пункта все вытекающие последствия — консольные утилиты из коробки, Homebrew и т.п.
    — Софт выглядит очень приятно, в плане дизайна и UX операционная система от Apple вне конкуренции, имхо.
    — Есть очень полезный и качественный софт, повышающий скорость работы (Alfred, Dash, 1password, например).
    — Ни разу не было серьезных проблем с системой

    Недостатки:
    — Отсутствует нормальный MS Office (для меня это проблема)
    — Мало игр

    Ну и ноуты от Apple выглядит классно.
    Ответ написан
    5 комментариев
  • В чем преимущество OSX перед Windows для программиста?

    В возможности разработки под iOS. Если хотите кодить под iOS - без сомнений MacBook, если же С-подобные, Явы, Питоны - то Windows, но под Python я бы выбрал Linux.
    Ответ написан
    4 комментария
  • Что изучать, на что тратить свободное время, чтобы в будущем стать востребованным программистом с нормальным заработком?

    lexxpavlov
    @lexxpavlov
    Программист, преподаватель
    Ответ на вопрос будет сильно зависеть от того, в каком направлении вы думаете развиваться.
    Будет ли это сетевое программирование? Тогда это си, в основном.
    Может быть, веб-программирование? Тогда тут могут быть php, javascript, python, ruby.
    Захотите разрабатывать программы на десктоп? Вам нужны c# или java.
    На мобильные платформы? тогда java и objective c (плюс swift).
    Или податься в разработку игр? Тогда либо c++, либо с# (для Юнити - наверное, самой популярной платформе).
    Хотите экзотики? Приглядитесь к функциональным языкам - Erlang и Haskell.
    Разработка железа и драйверов для железа? тогда си (без плюсов) и ассемблер.
    Определитесь, что вы хотите, потому что всё объять не получится. Выберите один (или два) направления и добейтесь хорошего уровня в нём. А потом вам будет уже легче двигаться дальше.

    Мой совет - попробуйте изучать C# или Java (они во многом похожи) для софта, или Javascript и php/python для веб-приложений и сайтов.

    Добавлю, что очень правильный совет дал @tsarevfs - помимо языка программирования, хороший программист должен знать несколько инструментов - и в первую очередь, это система контроля версий, например, git. Плюс юнит-тестирование (хотя это можно начать изучать позже, через годик-два). Плюс - нужно хорошо знать свою IDE, в которой работаете; не вздумайте работать в блокнотиках!

    Ещё помимо практики нужно знать теорию - читайте Макконнелла, Фаулера, Мартина, Бека.
    Подпишитесь на хабре на пару десятков хабов и регулярно читайте всё подряд. Через годик ваш уровень понимания статей сильно вырастет.

    Я сам преподаватель программирования в колледже, и, к сожалению, таких желающих изучать там очень мало. Пишите мне в личку, если будут вопросы.

    UPD. Важное дополнение из обсуждения в комментариях (спасибо @Argentum88 @Deerenaros )
    Чтобы стать профессионалом и "востребованным программистом с нормальным заработком", нужно очень хорошо понимать внутреннее устройство тех систем (платформ, фреймворков), на которых идёт работа.
    Для этого нужно заглядывать вглубь. Изучив различные мейнстрим-инструменты, посмотреть на аналогичные менее популярные системы. Изучать исходный код используемых open-source библиотек. Написать свою подобную систему. Для web - написать свою CMS (хотя бы базовую). Для десктоп-программ - попробовать программировать без навороченных библиотек, которые делают рутинную работу за программиста. Для разработчика игр - сделать простую игру на базовом инструментарии платформы, где всё придётся делать своими руками.
    Всё это даст возможность проникнуться, почему всё делается именно так, даст понимание взаимосвязей разных частей программы.
    А потом, осознав это, выбрать один из уже готовых инструментов, и продолжать писать на нём, уже обладая более глубоким его пониманием.
    Ответ написан
    21 комментарий