Задать вопрос
  • Какую иностранную чипованную карту помимо Payoneer можно открыть дистанционно?

    ColorPrint
    @ColorPrint
    к.т.н., HighLoad, webhosting, domains registrar...
    Primorska Banka (Хорватия) открывает дистанционно мультивалютный счет и чипованную карту Maestro к нему.
    CIM Banque (Швейцария) - собственно, Primorska является дочкой этого банка, - аналогично.
    https://www.epayments.com - компания (не банк) типа Payoneer, выпускает чипованные Mastercard, без полноценного банковского счета.
    Ответ написан
    15 комментариев
  • Code Review, как это фактически происходит?

    @Espleth
    Ну это просмотр кода человеком, не написавшим код. Нужно для того, чтобы можно было заметить какие-то ошибки и все такое в коде. Очень распостранено для проверки кода джунов, перед тем, как добавить этот код в master-ветку. Есть компании, где твой код обязательно должен пройти ревью другим программистом перед тем, как его добавят в master-ветку, даже если ты опытный senior.
    Ответ написан
    3 комментария
  • Можно ли назвать человека программистом, если он занимается геймдевом?

    k12th
    @k12th
    console.log(`You're pulling my leg, right?`);
    Покажите родителям среднестатические з/п программистов и количество вакансий, пусть перестанут жить в 19-ом веке.
    Ответ написан
    Комментировать
  • С какого языка изучать программирования (с нуля)?

    @Espleth
    Большинство современных ЯП ИМХО имеют достаточно низкий порог вхождения, чтобы можно было начинать изучение с них, а не браться за какие-то более легкие. В том числе C#, C++ и Java. Вы правильно рассматриваете именно их. Напишу немного подробнее о каждом:

    C#: лично мне очень нравится этот язык. Перспективы хорошие, особенно учитывая то, что он транслируется в байт-код (как Java), что дает хороший потенциал для мультиплатформенности, а Microsoft потихоньку начинает развивать этот потенциал, открывая некоторые исходники. Язык относительно новый, благодаря чему обладает довольно чистым и красивым синтаксисом, и всяких костылей немного.
    Инди-геймдев на C# - это Unity3D. И хоть это очень хороший движок для игр практически любого жанра, но если он загнется, то другим движкам типа WAVE/Paradox будет тяжело тягаться с таким гигантом, как UE4.

    C++: практически универсальный язык. Если остановитесь на нем, то рекомендую осваивать вместе с Qt, так как получаете прекрасный кросс-платформенный фреймворк. Лично мне не нравятся плюсы за явные указатели и некоторые довольно костыльные решения, сделанные для того, чтобы сохранить обратную совместимость со старыми версиями языка.
    Геймдев на плюсах - Unreal Engine 4, CryEngine 4 например. Вполне возможно скоро к ним Source 2 присоединится. Это из "больших" движков. Есть еще куча поменьше, типа Cocos2d.

    Java: к сожалению, мало что о ней могу сказать, так как не особо ей интересуюсь. Из плюсов - востребованность на рынке. С Java не пропадете. Из минусов - вроде каких-либо "серьезных" игровых движков, где основной ЯП - Java нету.
    Ответ написан
    3 комментария
  • Можно ли изучать одновременно два направления в программировании?

    @Espleth
    Не узнаете пока не попробуете. Лично у меня не возникает проблем с изучением C#, Unity и C++ одновременно. (не считая того, что на некоторые особенности плюсов плеваться хочется после красивого C#)
    Ответ написан
    Комментировать
  • Как правильно развиваться в программировании?

    max-kuznetsov
    @max-kuznetsov
    Главный IT-архитектор
    Даю пункты:
    1. Понять, кем надо стать лет через 5.
    2. Понять основные компетенции, которые к тому моменту нужно иметь.
    3. Расставить приоритеты освоения компетенций.
    4. Вкладывать время, силы и деньги в получение нужных компетенций.
    5. Не реже раза в год пересматривать цель и список компетенций.

    У Вас есть опыт работы с C++. Отсюда можно пойти в системное программирование, в прикладное программирование, в архитектуру ПО, в аналитику, в управление. Решите для себя, что Вам ближе.

    К сожалению, более подробно план не дам. Его детализация зависит от Вашей цели.
    Ответ написан
    Комментировать
  • Как найти программиста-энтузиаста в стартап(Start-Up)?

    bobrovskyserg
    @bobrovskyserg
    В списке того, что у вас есть, отсутствует бизнес-план.
    С этим надо что-то делать.
    Ответ написан
    3 комментария
  • С какой позиции лучше начать?

    SHVV
    @SHVV
    Лучше начните с левел-дизайна и скриптинга. По крайней мере мои знакомые геймдизайнеры так и начинали.
    Ответ написан
    Комментировать
  • Как записать логическое выражение в переменную?

    Nipheris
    @Nipheris Куратор тега C++
    Если я правильно понял проблему, то вам надо работать с вашим предикатом, как со значением. Иными словами, работать с функцией, возвращающей bool, как с first-class объектом. Для этого в С++ есть std::function. Он позволит вам обернуть ваши проверки в функтор, и их можно будет поместить в очередь/список и т.д. Еще вам наверняка поддержка лямбда-функций в С++11.
    Ответ написан
    1 комментарий
  • Кто такой кодер? и чем он отличается от программиста?

    @ivkol
    а это важно?
    Ответ написан
    Комментировать
  • Что быстрее C++ или Java (вывод строк в консоль)?

    angry_cellophane
    @angry_cellophane
    Ребята, я вам покушать принёс. Открываем специальную олимпиаду.
    :~/src/cpp_time_test$ cat /proc/cpuinfo 
    processor	: 0
    vendor_id	: GenuineIntel
    cpu family	: 6
    model		: 23
    model name	: Intel(R) Core(TM)2 Duo CPU     T6600  @ 2.20GHz
    stepping	: 10
    microcode	: 0xa07
    cpu MHz		: 1200.000
    cache size	: 2048 KB
    physical id	: 0
    siblings	: 2
    core id		: 0
    cpu cores	: 2
    apicid		: 0
    initial apicid	: 0
    fdiv_bug	: no
    hlt_bug		: no
    f00f_bug	: no
    coma_bug	: no
    fpu		: yes
    fpu_exception	: yes
    cpuid level	: 13
    wp		: yes
    flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc arch_perfmon pebs bts aperfmperf pni dtes64 monitor ds_cpl est tm2 ssse3 cx16 xtpr pdcm sse4_1 xsave lahf_lm dtherm
    bogomips	: 4389.29
    clflush size	: 64
    cache_alignment	: 64
    address sizes	: 36 bits physical, 48 bits virtual
    power management:
    
    processor	: 1
    vendor_id	: GenuineIntel
    cpu family	: 6
    model		: 23
    model name	: Intel(R) Core(TM)2 Duo CPU     T6600  @ 2.20GHz
    stepping	: 10
    microcode	: 0xa07
    cpu MHz		: 1200.000
    cache size	: 2048 KB
    physical id	: 0
    siblings	: 2
    core id		: 1
    cpu cores	: 2
    apicid		: 1
    initial apicid	: 1
    fdiv_bug	: no
    hlt_bug		: no
    f00f_bug	: no
    coma_bug	: no
    fpu		: yes
    fpu_exception	: yes
    cpuid level	: 13
    wp		: yes
    flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc arch_perfmon pebs bts aperfmperf pni dtes64 monitor ds_cpl est tm2 ssse3 cx16 xtpr pdcm sse4_1 xsave lahf_lm dtherm
    bogomips	: 4389.29
    clflush size	: 64
    cache_alignment	: 64
    address sizes	: 36 bits physical, 48 bits virtual
    power management:

    :~/src/cpp_time_test$ lsb_release -a
    No LSB modules are available.
    Distributor ID:	Ubuntu
    Description:	Ubuntu 13.04
    Release:	13.04
    Codename:	raring

    ~/src/cpp_time_test$ java -version
    java version "1.7.0_51"
    Java(TM) SE Runtime Environment (build 1.7.0_51-b13)
    Java HotSpot(TM) Server VM (build 24.51-b03, mixed mode)
    ~/src/cpp_time_test$ g++ --version
    g++ (Ubuntu/Linaro 4.7.3-1ubuntu1) 4.7.3

    Замеры проводились всего по паре раз, ибо лень, так что присутствует некоторая погрешность. Прошу простить и понять.
    Java:
    time java Main
    real   5m38.489s
    user   0m30.184s
    sys   0m56.864s

    C++
    int main() {
    
        for (int i = 0; i < 10000000; i++) {
    
            printf("Number = %i \n", i);
        }
    
        return 0;
    }

    g++ -O2 origin_main.cpp -o origin_main.o
    time ./orinig_main.o
    real   5m54.260s
    user   0m7.700s
    sys   0m36.768s

    Надеваем мокасины скорости:
    #include <iostream>
    
    using namespace std;
    
    int main()
    {
      for (int i=0; i < 10000000; i++)
        {
          cout<<"Number = "<< i << '\n';
        }
      return 0;
    }

    g++ -O2 main.cpp -o main.o
    time ./main.o
    real   5m35.629s
    user   0m8.424s
    sys   0m37.408s

    Пробуем магию:
    #include <iostream>
    
    using namespace std;
    
    int main()
    {
      static char buffer[1024*1024*4] ;
      std::cout.rdbuf()->pubsetbuf( buffer, sizeof(buffer) ) ;
      ios_base::sync_with_stdio(false);
      for (int i=0; i < 10000000; i++)
        {
          cout<<"Number = "<< i << '\n';
        }
      return 0;
    }

    g++ -O2 main.cpp -o main.o
    time ./main.o
    real   5m35.555s
    user   0m3.568s
    sys   0m22.688

    Добавим в топку Java печки дровишек:
    public class Main {
        public static void main(String[] args) throws IOException {
            try (BufferedOutputStream bos = new BufferedOutputStream(System.out, 2 << 22)) {
                try (PrintWriter pr = new PrintWriter(bos, false)) {
                    int i = 0;
                    for (int j = 0; j < 10_000; j++) {
                        for (int k = 0; k < 1000; k++) {
                            pr.write("Number = " + i++ + '\n');
                        }
                        pr.flush();
                    }
                }
            }
        }
    }

    time java -XX:LoopUnrollLimit=42000000 -XX:+AggressiveOpts -Xmx512m -Xms256m  -XX:+OptimizeStringConcat -XX:CompileThreshold=200 Main
    real   5m35.963s
    user   0m4.408s
    sys   0m23.456

    На этом и остановимся, так как это может продолжаться бесконечно.
    Вывод: искусственный тест не показатель, и все сложно.
    Самый главный вывод: не пристало воспитанному джентельмену мериться скоростью, размером и количеством.
    Ответ написан
    Комментировать
  • Почему вылетает segfault при попытке запихнуть std::string?

    @xibir
    linux c++
    array[0] = elem;
    это означает вызов
    array[0].operator=(elem);
    в функции "string::operator=()" и падает, т. к. в array[0] находится мусор, потому что для него (для array[0]) конструктор не вызывался

    Вместо
    array = (Type*) malloc(100);
    возможно имелось ввиду
    array = new Type[100];
    а место free, тогда delete[]array
    Ответ написан
    1 комментарий
  • Какие ресурсы "экономить" при алгоритмизации?

    kumaxim
    @kumaxim
    Web-программист
    Задача "экономить" технические мощности встает в трех случаях:
    1. Вы Марк Цукерберг и Вашему Facebook не хватает мощностей всех датацентров для нормального функционирования
    2. Вы программируйте тостер/утую/кофеварку и т.п. где в принципе ресурсов нет
    3. Вы мазохист и используйте шаг 0,000000001 в методе приближения чего-либо


    С моей точки зрения, написанный Вами код должен в первую очередь быть понятен другому разработчику, он должен легко читаться, возможно, расширяться. Если клиент стоит перед выбором "Нанять разработчика за 1к у.е./месяц или арендовать под свой проект еще один сервер за 250 у.е./месяц", то я сомневаюсь что он выберет первый вариант, кроме случая №1 из списка выше.
    Ответ написан
    2 комментария
  • Какие ресурсы "экономить" при алгоритмизации?

    saboteur_kiev
    @saboteur_kiev Куратор тега Программирование
    software engineer
    Задача программиста не писать алгоритмы, а решать конкретные задачи, посредством написания алгоритмов.

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

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    В 99% случаев надо экономить ресурс под названием "время программиста".
    А в оставшемся 1% - исходить из реальной задачи и реальных условий по объему данных, имеющимся аппаратным ресурсам и требуемому быстродействию.
    Ответ написан
    Комментировать
  • Что нужно сделать в фирме безопаснику, если его должность только открылась и никакой почвы для этого нет?

    begemot_sun
    @begemot_sun
    Программист в душе.
    Поднять прокси. И пусть люди ходят только через неё. Все действия людей логировать, передаваемую информацию тоже. Обрубить возможность работать с флешек, дискет, дисков и т.п. загрузочных вещей.
    Подписать со всеми согласение о неразглашении информации и т.п.

    P.S. Не безопасник я.
    Ответ написан
    Комментировать
  • Как вы относитесь к возможности сортировки вопросов Тостера по степени их сложности?

    Paliki
    @Paliki
    не нужно делать тут вторую версию хабра, где куча снобов и без кармы ни пикнуть
    Ответ написан
    Комментировать
  • Как вы относитесь к возможности сортировки вопросов Тостера по степени их сложности?

    @olololosh
    что значит "много тупых вопросов"? Вы все такие умные? Если человек что-то спрашивает, то значит, что по каким-то причинам он не может самостоятельно ответить на этот вопрос в данный момент. Я тоже уже задал огромное количество "тупых вопросов", где в ответах было много шлака. Но один пользователь мне всегда помогал. Достаточно было всего одного его комментария, что бы я отметил вопрос как решенный. Я, к примеру, задаю "тупой вопрос", и параллельно гуглю. И это может для 40-ка летнего лысого программиста задрота со стажем 15 лет этот вопрос "тупой", но для меня он важный, иначе зачем его задавать? Просто не смотри "тупые вопросы", если ты такой "умный".Не надо ничего решать с "тупыми вопросами", а если что просто ответь на него и на 1 тупой вопрос будет меньше...
    Ответ написан
    5 комментариев
  • Как вы относитесь к возможности сортировки вопросов Тостера по степени их сложности?

    Petroveg
    @Petroveg
    Миром правят маленькие с#@&ки
    Может, сделать без негатива ровно наоборот? Помечать вопрос как сложный или интересный. Популярные автоматически определять по количеству подписчиков и ответов как это уже сделано.
    И фильтрация будет, и оскорблений меньше. И так уже в рунете градус хамства и говнометания зашкаливает.
    Ответ написан
    27 комментариев