• Какую иностранную чипованную карту помимо 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 комментария
  • Можно ли назвать человека программистом, если он занимается геймдевом?

    voidnugget
    @voidnugget
    Программист-прагматик
    Берём
    1. Среднестатистические алгоритмы используемые в современных играх
    2. Мат модели шейдеров и прочего графического барахла
    3. Стохастические сетевые алгоритмы для стабильного мультиплеера
    4. Генетические алгоритмы для тестирования в песочницах
    5. Алгоритмы передачи и упаковки ресурсов по приоритетам, ещё и в Р2Р сетях

    Понимаем что это выходит далеко за рамки любого распространенного CRUD'a, которым занимается 80% "реальных программистов".

    Реальный gamedev - штука, ну очень, наукоёмкая, с кучей математики, и математики тут ещё больше чем в любом другом направлении разработки.

    Gamedev, в принципе, сочетает в себе всю наукоёмкую муть со всех направлений разработки.
    Другое дело, что сейчас всё оказуалилось, и глубже возможностей своих игровых движков люди отказываются вникать, а способных реально в этой всей наукоёмкой мути разобраться - единицы.

    Людей, способных начать игру и довести до конца - тоже единицы.
    Если ваших родителей не устраивает зарплата в 1000-2000$ со старту, с расчёта в 10-12$ в час, то я уж и не знаю как лучше им так объяснить ...

    Сейчас ситуация такая, что университеты дают очень мало знаний, которые реально можно использовать на практике, а то что даётся - инициатива самих преподавателей, и в общем, получается "как повезёт". Всё что сам со школы выучил - то и использовалось до сегодняшнего дня, а университет лишь стал "списком литературы", и не более. Благо есть тостер и другие проекты - есть знающие люди которые могут подсказать что куда и как. Но при выезде за бугор наличие образования играет очень важную роль, так что им очень сильно пренебрегать не стоит, но и надеяться на него глупо.
    Ответ написан
  • Можно ли назвать человека программистом, если он занимается геймдевом?

    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)?

    voidnugget
    @voidnugget
    Программист-прагматик
    Начнём с того что большинство "стартапов" нельзя отличить от мелкого бизнеса - разберитесь какие рынки сбыта вы порождаете и исследуете, как будет происходить их дифференциация и какие архитектурные особенности характерны для поставленных задач, а потом уже можно думать кого и куда искать...
    На чистом энтузиазме люди не работают, на пустой зарплате тоже - решите вопрос мотивации.

    Требуете физического присутствия - признак потребности в компенсации посредством "ореола", это такое когнитивное искажение. Соответственно вы сами не знаете как обеспечить должное качество продукта и как правильно организовать работу, ищите человека который бы смог сделать большую часть работы в этом плане за вас, и обеспечить вас "обещаниями" или иллюзией выполнения каких либо задач. Вас просто будут постоянно кидать с таким отношением ...

    В общем не тратьте своё и чужое время - есть слишком много примеров провальных проектов ещё до того как кто-либо начинал их реализовывать.
    Ответ написан
    7 комментариев
  • Как найти программиста-энтузиаста в стартап(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

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

    @xibir
    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
    не нужно делать тут вторую версию хабра, где куча снобов и без кармы ни пикнуть
    Ответ написан
    Комментировать