• В чем смысл быть гуру тостера?

    JhaoDa
    @JhaoDa
    LaravelRUS Team
    Если верить некоторым гражданам, то всё потому, что такие гуру:
    1) очень умный чтоли,
    2) задроты, которым бабы не дают,
    3) ничего из себя не представляют и только тут натирают своё ЧСВ.

    А если серьёзно, то «прокачанные» аккаунты на Тостере и Гитхабе уже давно позволяют мне тратить меньше времени на собеседованиях, не выполнять тестовых заданий и иногда получать приглашения на конференции.
    Ответ написан
    10 комментариев
  • Стоит ли заморачиватся с тонкими клиетами?

    @lossyy
    Тонкие клиенты для оперторов 1с, менеджеров продаж и прочих. А разработчикам-конструкторщикам - рабочие станции надо.
    Ответ написан
    Комментировать
  • Хочу стать хорошим программистом,как быть?

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

    Поймите, что, во-первых, программист учится всегда, потому что постоянно что-то меняется в его работе. Во-вторых, он постоянно ищет решения новых проблем самостоятельно, а не применяет решения, которые ему показали во время учёбы. И, в-третьих, программирование на 90% состоит из рутины, которая никак не тянет на развлечение.

    Я не исключаю, что вы сможете, наконец, справиться с всем этим избытком эмоций, обуздать тягу к немедленной гратификации (вознаграждению за совершенные действия), избавиться от эффектов современного воспитания, которое вы получили, но что в вас останется после этого, я сказать не могу. Могу только сказать, что вам на вход в профессию понадобится больше сил и времени, чем если бы вы уже сейчас могли спокойно ковыряться с интересом в каких-то (пусть и самых простых) задачах, проводя за этим часы. Маленький совет: забудьте о том, что видеокурсы существуют, вообще. Только печатная информация: книги, статьи. Видео крадёт время.
    Ответ написан
    10 комментариев
  • Как это работает(сайт угадывающий загаданное число)?

    Lynn
    @Lynn
    nginx, js, css
    вы задумали даузначное число. Пусть это будет 10а+б. Вычитаем из него цифры а и б. Получаем 10а+б-а-б=9а (внезапно). А теперь посмотрите на таблицу внимательно. Там все делители 9 обозначены одним символом
    Ответ написан
    Комментировать
  • Какую систему лучше установить на старый ноутбук 2007 года?

    VoidVolker
    @VoidVolker Куратор тега Windows
    Dark side eye. А у нас печеньки! А у вас?
    Windows XP. Можно конечно и семерку, но она половину памяти сама займет и под софт мало останется.
    Ответ написан
    Комментировать
  • Как передать значение переменной в стек (Ассемблер)?

    @Muriam
    с помощью команды push

    push AX      ; передать значение регистра AX в стек
    push ВX      ; передать значение регистра BX в стек
    
    ....               ; ваш код
    
    pop BX       ; извлечь значение из стека в регистр AX
    pop AX       ; извлечь значение из стека в регистр AX


    Если вы отправляете несколько значений в стек и вынимаете их от туда, то нужно это делать по принципу LIFO (последний пришел, первый вышел)
    Ответ написан
    1 комментарий
  • Сколько будет стоить заказать программу?

    @qoso
    Наверняка есть софт, который Вам нужен, просто Вы о нем не знаете)
    Ну а разработка с нуля подобных программ на заказ в самом оптимистичном случае по новогодним скидкам в черную пятницу с кэшбеком будет стоить от 10млн)
    Ответ написан
    4 комментария
  • Как объявлять переменные в цикле в с++?

    nekipelov
    @nekipelov
    В C++ нельзя создавать переменные на этапе выполнения. Можно делать как-то так:

    std::vector<int> Counter;
    
    for (int i = 0; i <= n; i++)
    {
        Counter.push_back(i);
    }


    Или использовать std::map для произвольных ключей:

    std::map<int, int> Counter;
    
    for (int i = 0; i <= n; i++)
    {
        Counter[i] = i;
    }
    Ответ написан
    Комментировать
  • Какую силу тока выдерживает Arduino?

    NeiroNx
    @NeiroNx
    Программист
    Устройство не "выдерживает" ток, а "потебляет" его. Ток батареи - это то сколько энергии она может отдать за единицу времени. Ключевое слово может.
    Ответ написан
    1 комментарий
  • Нужен совет: чему учиться,в какое направление идти?

    Francyz
    @Francyz
    Photographer & SysAdmin
    Никогда не понимал подобных вопросов. Как люди могут решать за вас куда вам идти?
    Если нужны деньги, то советую идти на сварщика или научитесь плитку класть, будете зашибать больные деньги.

    Что касается ИТ, то идти стоит туда к чему у вас душа лежит, если ни к чему и вас интересует материальная составляющая, то открывает фриланс биржи и сайты, где работу предлагают, сортируете по деньгам и смотрите, какая технология в приоритете и за какую больше платят. Сейчас по факту куча работы для JS нежели для сишарп.
    Ответ написан
    1 комментарий
  • Как к четырем элементам массива добавить ещё два?

    @Mercury13
    Программист на «си с крестами» и не только
    Нужен или массив с запасом (например, на 6 мест), или динамический (например, std::vector).
    Си++ — язык достаточно низкого уровня, и сам программист видит, где там память динамически выделяется, а где выделена заранее.
    Ответ написан
    2 комментария
  • Как к четырем элементам массива добавить ещё два?

    SerJook
    @SerJook
    кодер
    Используйте std::vector.

    #include <iostream>
    #include <conio.h>
    #include <vector>
    using namespace std;
    
    int main()
    {
        int rez;
        int arr_src[] = {1,8,3,2};
        std::vector<int> arr(arr_src, arr_src + sizeof(arr_src)/sizeof(arr_src[0]));
    
        arr.push_back(7);
        arr.push_back(8);
    
        rez = arr.size();          //кол-во элементов в массиве
        cout << rez << endl;
    
        for (int i = 0; i < rez; i++)
            cout << arr[i] << ' ';
    
        getch();
        return 0;
    }


    Еще у вас ошибка в условии выхода из цикла.
    Ответ написан
    Комментировать
  • Как скачать Windows 2000?

    @pfg21
    ex-турист
    rutracker.org
    серийник до лампочки - сервера мс просто не примут ключ от вин95
    Ответ написан
    2 комментария
  • Объект или экземпляр?

    Stalker_RED
    @Stalker_RED
    Класс - это те буковки, которые вы видите на экране.
    Представьте его как чертеж, например. А готовые объекты существуют в памяти компа во время работы программы. Представьте их как кучу какие-то штуковин, сделанных по общему чертежу.
    Объекты - экземпляры класса.
    Ответ написан
    8 комментариев
  • На какой язык программирования перейти?

    @abmanimenja
    См. вакансии вас интересующие (например, на hh.ru).
    См. требования к вакансиям вас интересующим.
    Ответ написан
    4 комментария
  • Компиляция c++?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    получается mainx узнает о том что есть функция printx() на этапе линковки [mainx.o] и [printx.o]?

    Да.

    Каким образом происходит передача информации в [mainx] что функция printx() существует?

    Это работа линковщика связывать ссылки на неопределённые символы с определениями этих символов.
    В main.o в месте вызова printx ставится команда вызова, в секции символов заводится неопределённый символ printx а в секции релокаций заводится запись, связывающая команду вызова с символом:

    objdump -dr mainx.o
    ...
    0000000000000000 <main>:
       0:   55                      push   %rbp
    ...
      3a:   89 c7                   mov    %eax,%edi
      3c:   e8 00 00 00 00          callq  41 <main+0x41>
                            3d: R_X86_64_PLT32      _Z6printxi-0x4
      41:   b8 00 00 00 00          mov    $0x0,%eax
      46:   c9                      leaveq 
      47:   c3                      retq   
    ...


    readelf -a mainx.o
    ...
    Relocation section '.rela.text' at offset 0x580 contains 12 entries:
      Offset          Info           Type           Sym. Value    Sym. Name + Addend
    ...
    00000000003d  001400000004 R_X86_64_PLT32    0000000000000000 _Z6printxi - 4
    ...
    
    Symbol table '.symtab' contains 25 entries:
       Num:    Value          Size Type    Bind   Vis      Ndx Name
    ...
        20: 0000000000000000     0 NOTYPE  GLOBAL DEFAULT  UND _Z6printxi
    ...


    В printx.o в секции символов заводится символ, ассоциированный с адресом в коде, где определена функция printx:

    readelf -a printx.cpp
    ...
    Symbol table '.symtab' contains 24 entries:
       Num:    Value          Size Type    Bind   Vis      Ndx Name
    ...
        14: 0000000000000000    75 FUNC    GLOBAL DEFAULT    1 _Z6printxi
    ...

    Здесь value == 0 -- потому что printx оказалась по адресу 0 в секции .text.

    Линковщик объединяет входные секции согласно скрипту линковки, после чего вставляет конечные адреса символов в места, которые ссылаются на них.
    Ответ написан
    Комментировать
  • Как реализовать функцию map?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    l=[a_1,..,a_n] – некоторый список элементов типа T, а f:T→T, то:
    map(f,l)↦[f(a_1 ),..,f(a_n )]
    Не понятно что она делает и как ее реализовать.


    Почему непонятно что делает? Вы же сами написали: применяет функцию f к каждому элементу входного списка.
    Как её реализовать -- зависит от представления списка, от того, насколько строго хочется обойтись с типами и от того, насколько хочется следовать стандарту.
    Например, можно сделать так:
    #include <stddef.h>
    
    struct list {
        struct list *next;
    };
    
    struct list *map(void f(struct list *p), struct list *l)
    {
        struct list *i;
        for (i = l; i != NULL; i = i->next)
            f(i);
        return l;
    }
    
    struct list_int {
        struct list list;
        int i;
    };
    
    void process_int(struct list *l)
    {
        struct list_int *p = (struct list_int *)l;
        ++p->i;
    }
    
    int main()
    {
        struct list_int l[] = {
            [0] = {
                .list.next = &l[1].list,
                .i = 1,
            },
            [1] = {
                .i = 2,
            },
        };
        map(process_int, &l[0].list);
    }
    Ответ написан
    1 комментарий
  • В чём причина постоянного переделывания кода?

    titov_andrei
    @titov_andrei
    All my life I learn - and die a fool!
    Ремонт ЗАКОНЧИТЬ нельзя — его можно только ПРЕКРАТИТЬ.
    https://www.inpearls.ru/
    - © Михаил Жванецкий
    Ответ написан
    Комментировать