Задать вопрос
  • Можно ли строго разграничить С и С++?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега C
    Седой и строгий
    Технически C++ - это всё ещё Си с плюсами, но фактически он очень сильно ушёл от первоисточника и на сегодняшний день стили и подходы к программированию на этих языках существенно отличаются.
    Ответ написан
    6 комментариев
  • Хочу стать хорошим программистом,как быть?

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

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

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

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

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

    vt4a2h
    @vt4a2h
    Senior software engineer (C++/Qt/boost)
    Просто корочку вы и в метро купить можете. Причём, за определённую сумму, вы можете купить и такую корочку, которая будет во всех базах данных и вообще будет официальной полностью. Не то чтобы я вам это советую, но вы просто можете заработать денег, а когда приспичит... получить диплом.

    А вообще, тут и везде уже много раз об этом писали, в образовании есть ценность и существенная. Можно воспользоваться поиском, чтобы найти соответствующие вопросы. Поэтому я рекомендую его получить, если есть возможность.
    Ответ написан
    Комментировать
  • Как установить wxWidgets?

    Adamos
    @Adamos
    Надо чё-то где-то исправить - и все заработает.
    Верный способ, я сто раз так делал.
    Ответ написан
    Комментировать
  • Как удалить одинаковые элементы из списка?

    @res2001
    Developer, ex-admin
    В общем случае сортируете, проходите по списку и удаляете рядом стоящие одинаковые элементы.

    Но может надо решать проблему более кардинальным образом - вместо list использовать более подходящий контейнер - set? В set элементы уже отсортированы и уникальны.
    Ответ написан
    4 комментария
  • В чем разница перегрузки функции и перегрузки операции?

    @res2001
    Developer, ex-admin
    Нет разницы.
    Операторы частный случай функции, только со строго заданными и описанными в стандарте сигнатурами и со специфическим ключевым словом operator. Ну и разница в использовании - вызовы операторов, как правило, компилятор подставляет в код сам, а функции явно вызывает программист. С точки зрения именно перегрузки разницы нет.

    UPD: дополнительно смотри комментарий Евгений Шатунов
    Ответ написан
    3 комментария
  • Почему нельзя перегрузить оператор?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    bool& operator [] (int index) {
        return selfVector[index];
      }

    должен стать
    std::vector<bool>::reference operator [] (int index) {
        return selfVector[index];
      }
    Ответ написан
    Комментировать
  • Порекомендуйте очные курсы по Node.js/Javascript в Москве?

    Vlad_IT
    @Vlad_IT Куратор тега JavaScript
    Front-end разработчик
    Рекомендую не ходить на курсы. 7-10 дней это мало. Чтобы превратить теоретические знания в практические, лучше самостоятельно разработать какой-нибудь проект.
    Лучше это время отходите, сходите в какие-нибудь места, посмотрите город.
    Ответ написан
    5 комментариев
  • Основные концепции в golang для изучения?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Если вас интересует минимум, который нужно знать, то просто возьмите учебник и изучите его. А максимума нет, можно бесконечно наращивать совершенство, вплоть до погружения в исходный код компилятора и сборщика мусора.
    Ответ написан
    2 комментария
  • Как реализовать функцию 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 комментарий
  • Как правильно искать работу (откликаться на вакансии) без опыта работы?

    opium
    @opium
    Просто люблю качественно работать
    Писать что знаете
    Ничего не писать
    На любые вакансии откликаться
    Ответ написан
    Комментировать
  • Как научиться решать задачи по программированию?

    Vlad_IT
    @Vlad_IT
    Front-end разработчик
    Практиковаться, читать умные книжки по алгоритмам и структурам данных. Вот берите например https://leetcode.com/ отсортируйте по сложности (с самых легких), и делайте-делайте. Но без теории алгоритмов будут костыли, поэтому лучше почитать что-то.
    Ответ написан
    Комментировать
  • Массив не передается полностью в функцию потока. Объясните в чем проблема?

    @res2001
    Developer, ex-admin
    Выход за границу массива тут:
    for(int i=0;i<s->m;i++){
    ...
       s->secondSortedArray[i]=num;
    }

    У вас количество элементов в обоих массивах 4, а m вы инициализируете 5. При последнем присваивании secondSortedArray происходит выход за границу массива, а т.к. после secondSortedArray в структуре идет m, то m у вас заменяется последним рандомным значением.
    В firstSortedArray то же есть выход за границу массива, но это не носит деструктивных последствий.
    Подобные вещи часто приводят к краху программы. Вы могли бы это отловить в отладчике. Пользуйтесь им. Отладчик - друг программиста! :-)
    Ответ написан
    4 комментария
  • Как не превратиться в мамонта?

    sim3x
    @sim3x
    А про люки, что не спрашивали совсем?
    Вот нубы


    Если процесс собеседования дан на откуп кому попало, то он чаще всего и скатывается в меряние знаниями в вакууме

    Если вас смущает ваше незнание, то доучите

    Также всегда советуют ходить на собеседования просто ради прокачивания навыка прохождения собеседований

    Формальный синьойр = джун с 5+ годами опыта, который в состоянии решать реальные задачи
    Джун - человек знающий ЯП с минимальным опытом решение реальных задач
    Ответ написан
    7 комментариев
  • Почему #define не рекомендуетс к использованию?

    BacCM
    @BacCM
    C++ почти с рождения
    Потому, что
    1. нет контроля типов
    2. нет ограничения по области видимости, типа неймспейсов.
    3. макрос разворачивается подстановкой в месте использования, т.е. там будет вставлен код
    ((a) > (b) ? (a) : (b)) который превратится в ((++a) > (b+10) ? (++a) : (b+10))
    4. макросы сложно отлаживать
    5. неправильно написанный макрос будет компилироваться в непонятно что. Например если убрать те же скобки

    как без них раскроется выражение x = max(a, b) + 10; ?
    x = a > b ? a : b+10;

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

    #include <iostream>
    
    #define mymax(a,b) a>b?a:b
    #define mul(a,b) a*b
    
    int main() 
    {
    
    	std::cout << mymax(5, 10) << std::endl; // Ошибка компиляции
    	std::cout << mul(5+5, 10) << std::endl; // Неожиданно на выходе 55, а не 100
    
    	return 0;
    }
    Ответ написан
    3 комментария
  • Как реализовать поиск по Linked List?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Что я делаю не так?
    Не занимаетесь отладкой своей программы. Если не умеете пользоваться отладчиком, то возьмите лист бумаги, карандаш, и пошагово пройдите всю свою программу.
    Если таки ничего не поможет
    node->value на первом же элементе равняется нулю, соответственно отрабатывает последняя ветка условия и возвращает false.
    Ответ написан
    Комментировать
  • Как в Golang проверить строку с текстом?

    У переменной pos тип int, как вы собираетесь в неё записать D5?
    Сделайте string, например.
    Ответ написан
    Комментировать
  • Как имитировать нажатие клавиш на Ноде?

    zendor
    @zendor
    robotjs
    const robot = require('robotjs');
    robot.keyTap('enter');
    Ответ написан
    Комментировать