Задать вопрос
  • Что начать читать?

    VasiliyGubenkov, ну и в целом, я согласен здесь с теми, кто топит за практику и базу. Идеальный баланс - это 80% практики и 20% теории, но раз теории так мало в ней должна быть самая база.
    Написано
  • Что начать читать?

    VasiliyGubenkov, ну и кстати, недовно общался с учителем информатики про обучение программированию на python, было это в контексте долбанутости задач на программирование в ЕГЭ.
    С одной стороны ЕГЭ на нормальные баллы можно писать только на Python, ибо в других языках, которые там разрешают, потратишь всё доступное время на одну единственную задачу, а в Python почти все ЕГЭ задачи решаются в пару строк, надо только знать что импортировать из его стандартной библиотеки.

    С другой стороны, те кто начинают с Python почти всегда сливаются в последствии в ВУЗах, ибо не осиливают программирование на других языках, требуется сначала вычистить мозг от того подхода, которым готовили к ЕГЭ.
    Ну или вот прямо сейчас у меня занимается человек, изучает Rust с баграундом уже нормальной разработки на Python. Многие вещи ему даются очень тяжело. И он такой у меня не первый. А вот люди с бэкграундом плюсов проходят мой индивидуальный курс по Rust раза в 3 быстрее (в среднем 2 месяца против 6) и идут уже искать вакансии на нём.

    С третьей стороны, у питона локаничный синтаксис и возможность сделать многие вещи просто. Опять же ИМХО, но это чуть ли не единственный язык из актуальных на рынке, где можно обучать без постоянных забеганий вперед, без "а вот эту магическую строчку мы поймём через несколько занятий, но без неё здесь работать не будет" (когда обучаю людей Rust, такое регулярно происходит, а на плюсах думаю такое будет ещё чаще).
    Написано
  • Что начать читать?

    Nik Faraday, а почему именно плюсы, если уж с низкоуровневого идти (а в этом реально есть смысл), то лучше начинать с Rust, ИМХО.
    В плюсах 1000 и 1 способ отстрелить себе ногу:
    - overflow signed int - UB
    - void foo(int &x, int &y) { bar(x, ++y); } - UB, потому что алиасинг мать его и компилятор имеет право вычислять аргументы в любом порядке...
    - получить dangling pointer - раз плюнуть, и опять UB

    В Rust очень строгий компилятор, первые пару месяцев с ним боришься, потом он меняет твоё мышление раз и на всегда и начинаешь лучше писать уже на любом языке.
    Теоретически в safe коде UB не бывает (на практике он может прорасти из unsafe какой-нить кривой библиотеки), а unsafe помечен явно.
    Написано
  • Как решить ошибку отправки почты, с использованием PHPMailer?

    bingo347
    @bingo347 Куратор тега JavaScript
    а серверные логи где?
    Написано
  • Есть ли реальный профит от использования актуальных фронтенд-технологий?

    1. Бизнесы стараются быть в тренде. Если у тебя в компании есть психолог корпоративный, а у соседа - нет, значит ты лучше. Если у тебя есть печеньки в холле - ты лучше. И так далее.

    Иван Веков, как правило это способ экономить на ФОТ. Гораздо дешевле нанять психолога по корпоративному тарифу, заплатив 1 раз за много сотрудников с большой скидкой или купив печеньки оптом, чем добавить стоимость разового визита к этому же психологу или розничной стоимости печенек к зарплате, а сверху заплатить НДФЛ, ФОМС, ФСС, ПФР и т.д. Можно конечно этого всего совсем не платить, вот только выгоревший к чертям сотрудник имеет производительность на уровне нуля, а з/п ему нужно платить ту же.

    Все фронтенды сейчас изучают вью/реакт, других почти нет. А если находятся - то стоят дешевле
    Есть фронтенды, которые знают только вью/реакт, а за их пределами толком ничего не могут - такие стоят дешего. Есть фронтендеры которые умеют голый TypeScript/JavaScript, а изучить react/vue/svelte/angular/ember/любую другую новомодную хрень для них дело 1-2 вечеров, такие стоят дорого. Те кто не в состоянии освоить хотя бы 1 фреймворк/либу сегодня не стоят ничего и никому не сдались ибо такое встречается только среди тупых вкатунов, которые пришли в IT за "много платят", вот только изучить что-то они не готовы.

    Это знаете, как гелик. В городе от него нет смысла, он жесткий, неудобный, много жрет
    Вы не поверете, в городе от гелика гораздо больше пользы чем за городом. Если за городом бездорожье, то там лучше уаз или нива. А вот в городе, там где пузотерки встают во дворе напротив друг друга и спорят, кто должен сдавать назад и пропустить, гелик объезжает их по сугробу и не парится, много раз такое видел в СПб.
    Написано
  • Есть ли реальный профит от использования актуальных фронтенд-технологий?

    Иван Веков, ну попробуйте поищите...

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

    если увольняется разработчик за 50 тысяч, находится другой за 50 тысяч
    За 50 тысяч сейчас даже джуны работать не идут, которых много, за эти деньги можно найти разве что стажера совсем без опыта. Есть конечно исключения, но я бы 10 раз задумался, а не рисованый ли там опыт, раз кандидат так мало просит. А если даже не рисованный, то опыт опыту рознь, можно 10 лет одну кнопку красить и ничего больше не уметь, а можно за год-другой в нескольких проектах поучаствовать и кучу граблей разобрать.
    Вот только и джуну и тем более стажеру без более опытных коллег делать в компании нечего, только плодить лапшекод продолжать.

    Ну и легаси на чистом жс, опять же, как я видел - проще к пониманию, нежели легаси на vue. Всё получается нагляднее.
    Любое легаси тяжело к пониманию и требует высокой ментальной нагрузки, на то оно и легаси. Проще к пониманию код становится только если над ним опытный архитектор поработал, от фреймворка это не зависит.
    Написано
  • Как добавить eslint в vite Could not find a declaration file?

    bingo347
    @bingo347 Куратор тега TypeScript
    MishaXXL, можно просто запускать как консольную утилиту
    можно в IDE интегрировать

    но в сборке он реально лишний, мало того что eslint штука жутко медленная, а значит замедлит сборку в разы, так еще и сборка будет падать на каждый чих
    Написано
  • Куда утекает память в read Rust?

    Василий Банников, у Option есть try оператор, так что вместо:
    let Some((file,info)) = self.get_index_and_file(key) else {
      return None;
    };
    достаточно написать: let (file,info) = self.get_index_and_file(key)?;
    Написано
  • Как типизировать next-connect?

    bingo347
    @bingo347 Куратор тега TypeScript
    судя и по доке и по исходникам у next-connect нет дефолтного экспорта
    Написано
  • Можно ли такое реализовать с помощью MySQL?

    Akina, из исходного вопроса можно сделать вывод, что такой параметр не 1 на платформу
    Написано
  • Можно ли такое реализовать с помощью MySQL?

    ??? Почему? что тут денормализованного?

    Akina, данную сущность можно декомпозировать без потерь
    Написано
  • Можно ли такое реализовать с помощью MySQL?

    Pro_Hacker, Postgres более строго относится к типам полей, все касты между типами явные, а самих типов больше. Ну и есть куча возможностей, без которых вполне можно обходиться, но когда изучишь - MySQL будет казаться обрубком СУБД, ИМХО.
    Написано
  • Можно ли такое реализовать с помощью MySQL?

    Pro_Hacker, насчет второго варианта, он ещё и денормализован, что не очень хорошо для реляционных БД, в том числе по той причине, что Вы описали.
    А из реляционных БД принципиален именно MySQL? Просто в том же Postgres есть и jsonb поля с поиском и индексами по ним и кастомные типы и возможность сделать sequence (autoincrement) на несколько таблиц.
    Написано
  • Манипуляция оффером?

    но с другой стороны нанять нового сотрудника чаще дороже, чем докинуть нал старому. Поэтому все таки надеюсь на лучшее

    jimmyCim, в большинстве случаев это понимают только когда уже столкнулись с увольнением сотрудника и последующим наймом.
    Ну и еще есть куча нюансов, от банально разных бюджетов на найм и на повышение з/п, до того что типичному hr найм - это премия, а за удержание премии нет, а тем кто сверху зачастую рынок не виден пока не прижмет.
    Регулярная смена работы - это практически единственный способ получать по рынку.
    Написано
  • Как открывать много TCP соединений и поддерживать их?

    Сергей Соловьев, можно использовать один номер порта на разных интерфейсах, при этом эти 2 интерфейса спокойно могут жить на одной карте.
    Написано
  • Как лучше использовать setInterval?

    bingo347
    @bingo347 Куратор тега JavaScript
    сильно зависит от решаемой задачи
    Написано
  • Как лучше выбрать только выбранные checkbox?

    bingo347
    @bingo347 Куратор тега JavaScript
    $('#item1:checked, #item2:checked, #item3:checked').each(function() {
        checkboxes.push($(this).val());
    });
    Написано
  • Как правильно настроить babel в webpack?

    bingo347
    @bingo347 Куратор тега JavaScript
    Sviaznoi, но судя по ошибке у Вас где-то используется fs/promises
    Написано
  • Взгляд опытных программмистов, что улучшить и исправить?

    Андрей, по проверке на выигрыш:
    #define WIN_COMBINATIONS_SIZE 8
    
    const size_t win_combinations[WIN_COMBINATIONS_SIZE][3] = {
      {0, 1, 2},
      {0, 3, 6},
      // ...
    };
    const char checked_values[2] = {'X', 'O'};
    
    for (size_t vi = 0; vi < 2; ++vi) {
      const char checked_value = checked_values[vi];
      for (size_t i = 0; i < WIN_COMBINATIONS_SIZE; ++i) {
        if (field[win_combinations[i][0] == checked_value &&
          field[win_combinations[i][1] == checked_value &&
          field[win_combinations[i][2] == checked_value)
        {
          reboot_field(field, SIZEFIELD);
          return vi + 1;
        }
      }
    }


    По поводу пустой клетки, сначала проверяем на победу, а потом уже на ничью:
    for(size_t i = 0; i < SIZEFIELD; ++i){
        if(field[i] == SPACE){
          return 0;
        }
    }
    
    reboot_field(field, SIZEFIELD);
    return 3;
    Написано
  • Как долго хранится пользовательский трафик в РФ?

    гугл не дает ключи https
    даже если бы гуглу было не с большой колокольни на законы тех, кого он и так уже слил под веяниями последних двух лет, то у https (точнее у tls) новый ключ на каждую сессию. Его конечно тоже можно достать и расшифровать при большом желании, но вероятность этого стремиться к нулю, tls не дураки делали.
    Написано