• Что мотивирует IT специалистов кроме ЗП?

    Robur
    @Robur
    Знаю больше чем это необходимо
    до 30 - самоуверждение. норм денег, чтобы хватало на все, технологии покруче, все эти печеньки, звания, возможность ходить с гордым видом собственной важности и вообще.
    после 30 - возможность делать осмысленные вещи, понимать ценность потраченного на работу времени, профессиональный рост (не в плане изучения очередной новой технологии), принимать ответственность за решения и сознавать свой вклад в то на что тратишь свою жизнь. Все это работает когда комфортный уровень жизни к которому привык в период до 30 сохраняется естественно.
    Ответ написан
    4 комментария
  • Как вытащить переменную?

    TTATPuOT
    @TTATPuOT
    https://code.patriotovsky.ru/
    Если поддерживается ES6 - используйте async/await:
    var s = await aut();
    Если же нет - то у вас всё правильно:
    var s;
    aut().then(data => {
      s = data;
    });

    Но сразу после этого вы не можете делать console.log, т.к. функция асинхронна. Переменная s будет установлена, когда функция aut() выполнится. Правильнее будет сделать:
    var s;
    aut().then(data => {
      s = data;
      console.log(s);
    });
    Ответ написан
    Комментировать
  • Переход из web-разработки в SAP?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Насколько выгодным будет трансфер в SAP

    3639946.jpg

    будет очень тяжело выйти с него в случае какого нибудь форсмажора.

    Никто из моих знакомых SAP'истов не сидит без работы и дня. Правда, никто из них свою работу не любит.
    Ответ написан
    23 комментария
  • Как работает функция построения дерева?

    судя по распечатке массива, где-то ошибка: функция предполагает, что в неё передаётся хэш ( то есть массив, у которого ключи - значимы), а у вас приведён список ( ключи не несут информации ).
    Может, поэтому и непонятен результат работы функции. $arr должен быть таким:
    $arr = [685 => [
        'id' => 685,
        'title' => 'Комплектующие к Apple',
        'parent' => 0
      ],
      691 => [
        'id' => 691,
        'title' => 'Запчасти к iPad',
        'parent' => 685
      ],
      692 => [
        'id' => 692,
        'title' => 'Запчатси к iPhone',
        'parent' => 681
      ]
    ];

    Плюс в последнем элементе подозрительное значение у ключа parent ( больше подходит 685 ).
    Ответ написан
    Комментировать
  • Клиент много задает вопросов, как быть?

    opium
    @opium
    Просто люблю качественно работать
    Отвечать на них.
    Ответ написан
    Комментировать
  • Какие языки программирования лучше всего оплачиваются в России, США и Европе?

    @mamontm
    Оплачиваются не языки программирование.

    Оплачивается умение ими пользоваться.

    Есть буквально одно исключение - Cobol.
    Это один из старейших языков программирования, на котором начали писать еще тогда когда ваши родители еще не родились.
    Приходится иметь дело с очень древними программами, причем выполняющими весьма ответственные вещи, где высока цена ошибки (первыми, кто мог позволить себе компьютеры был очень крупный бизнес)

    о наблюдениям сервиса «Мой круг» в России последние пару лет по зарплатам лидируют...

    Вы неверно интерпретируйте данные.

    Просто ряд языков чаще используется в недорогих простых проектах. Что не отменяет их же использование в дорогих проектах. Но искажает понятие "средняя зарплата".

    Плюс недорогих проектов всегда намного больше. Что еще более искажает понятие "средняя зарплата".

    Ну то есть математически-формально всё так как описано в обзоре зарплат.

    Но вас же интересует, поди, сколько лично вы будете зарабатывать, если смените язык?
    А ваш заработок связан вовсе не с языком - а с тем, что вы в этом случае будете и с другим работодателем работать и опыта постепенно набераетесь.

    Причём если Scala и Elixir два года назад по зарплатам опережали прочие языки с сильным отрывом и за последние годы выросли по зарплате несильно, то Go и Objective-C за эти же два года совершили сильный отрыв от остальных языков и догнали Scala и Elixir

    Все упомянутые нельзя назвать распространенными на простых (то бишь на дешевых) проектах.

    P.S.:
    Узнаю типичный страх начинающего новичка (и типичное заблуждения уже начавшего новичка, который уже успел разочароваться в том, что ему не предлагают сходу 100 500 миллионов баков в месяц, как об этом все трубят) -

    "Я выучу не тот язык и карьера будет погублена"
    "Я выучу тот язык и карьера пойдет вверх".

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

    Важно ваше умение программировать. А это понимание/знание - алгоритмов, парадигм, концепций, паттернов.

    Эти вещи из языка в язык повторяются.
    Трудно выучить только первый.

    Сменить язык программисту с опытом - не сложно.
    Ответ написан
    8 комментариев
  • Фреймворк для команды с нулевым опытом в ООП?

    iamd503
    @iamd503
    Верстальщик
    У вас в тегах как раз нужный список фреймворков
    Ответ написан
    Комментировать
  • Программное решение для упорядочивания жизни?

    Robur
    @Robur
    Знаю больше чем это необходимо
    часть информации в итоге забывается

    Нужно забывать больше - все то о чем вы не можете сказать как именно и когда собираетесь это применить.

    а жизнь кажется хаотичной,

    Потому что у вас каша в голове из всей той ненужной информации которую вы туда пытаетесь запихнуть.

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

    Учитесь фильтровать по принципу "а как я собираюсь это применить?". не "вообще" а именно я, именно её и в какие конкретно даты?
    Останется только действительно нужное и вот это вы уже сможете упорядочить.
    Ответ написан
    6 комментариев
  • Найти хорошую работу с нуля на PHP: правда или вымысел?

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

    если вы действительно более-менее знаете и понимаете, что написали, а не тупо перепечатывали с какого-то курса, то у вас есть все шансы зацепиться. остальное зависит только от вас.
    Ответ написан
    9 комментариев
  • Почему свойство length массива неперечисляемое, но метод .propertyIsEnumerable(length) возвращает true?

    Stalker_RED
    @Stalker_RED
    let arr = ['a', 'b', 'c'];
    arr.propertyIsEnumerable('length'); // -> false

    Выдыхаем, расходимся.
    Ответ написан
    Комментировать
  • Почему свойство length массива неперечисляемое, но метод .propertyIsEnumerable(length) возвращает true?

    0xD34F
    @0xD34F Куратор тега JavaScript
    arr.propertyIsEnumerable(length)
    // => true

    Вы тут не свойство length проверяете, а свойство, чьё имя совпадает со значением переменной length - и что у вас в ней лежит, да хрен его знает. Может быть число, соответствующее какому-то индексу массива - тогда неудивительно, что получаете true.

    UPD. Могу предположить, что за length там у вас - если вы сами её не объявляли, это window.length.
    Ответ написан
    Комментировать
  • ДДос атака на nginx пакетами 1 байт?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    500 строк в секунду - это не мощно и, вероятно, даже не DDoS. Если адрес один, то просто закройте ему доступ брандмауэром, а если адреса разные, то настройте лимит запросов в Nginx.

    nginx.conf
    http {
        ...
        limit_req_zone $binary_remote_addr zone=reqlimit:10m rate=30r/s;
        ...
    }

    some_site.conf
    server {
        ...
        location / {
            ...
            limit_req zone=reqlimit burst=10 nodelay;
        }
    }

    После этого запросы с одного ip-адреса начиная с 31-го в секунду будут отбрасываться.

    Как вишенку на торт, можно добавить ещё фильтр для fail2ban:

    nginx-req-limit.conf
    [Definition]
    
    failregex = limiting requests, excess: .* by zone .*, client: <HOST>
    ignoreregex =

    и правило в jail.local
    [nginx-req-limit]
    enabled = true
    port = http,https
    filter = nginx-req-limit
    logpath = /var/www/*/*/logs/error.log # Здесь укажите свой путь к логам виртуального хоста
    findtime = 600
    maxretry = 10
    bantime = 7200

    После этого адреса DoS'еров будут автоматически блокироваться брандмауэром на два часа. Что разгрузит Nginx от обработки паразитного трафика.
    Ответ написан
    11 комментариев
  • Как указать путь к не существующей странице?

    0xD34F
    @0xD34F Куратор тега Vue.js
    const routes = [
      ...
      {
        path: '*',
        component: Page404,
      },
    ];

    или, можно дополнительно редиректить:

    const routes = [
      ...
      {
        path: '/404',
        component: Page404,
      },
      {
        path: '*',
        redirect: '/404',
      },
    ];
    Ответ написан
    Комментировать
  • Книги по логике, или как добиться математического склада ума?

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

    Вам достаточно просто не чувствовать себя таковой

    по развитию критического мышления
    навык завязан на теорию вероятностей и матстатистику в их прикладном понимании
    Данное понимание имеет крайне мало число людей
    Начать отсюда https://www.lesswrong.com/
    Потом в вики

    логики
    https://multipotens.com/logic-books/
    https://www.goodreads.com/shelf/show/logic

    составлению алгоритмов
    тут не помогут книги - тут нужна практика
    Изучите как рисуются блоксхемы
    Рисуйте блоксхемы на все ситуации что вам попадаются в жизни
    На бумаге, в визио, в спецсофте
    Перерисовывайте их

    что позволит вращаться в компании мужчин
    ИТ характерно тем, что тут постоянная нехватка женского пола.
    Потому вам нужно постараться, чтоб не вращаться в компании мужчин

    намного быстрее чем наступит "опытность"
    не стоит
    Перегнать тех кто начал раньше у вас не получится - соревнуйтесь с собой
    Развивайте навыки, которые вам легче даются
    Доводите до мастерства, то что вам нравится
    Не нужно получать невроз на ровном месте

    PS:
    EQ>>>IQ
    Ответ написан
    6 комментариев
  • Актуальность и целесообразность использования NodeJS?

    sim3x
    @sim3x
    1. Хотелось бы услышать мысли опытных людей, кто использует, или использовал NodeJS, стоит ли тратить время на изучение/написание кода под данную платформу, или перспективнее с нуля учить PHP, Python итп.
    Для того кто "знает жс" проще самому попробовать писать на ней вместо задавания таких общих вопросов

    2. Что на данный момент с актуальность NodeJS на рынке СНГ или Запада. Количество вакансий, проектов итп. Растет ли NodeJS так же быстро, как он рос в 14-16 годы?
    Все растет быстро. Если вы исходите из популярности, то вам лучше учить tiobe топ3

    3. Техническая составляющая: изучая статьи про NodeJS, в большинстве из них писали, что NodeJS отлично подходит под огромное количество небольших запросов, но вот с прожорливыми запросами начинаются проблемы. Т.к. пишу в основном под web, то и вопросы будут относительно него. Целесообразно ли писать небольшие и средние (а высоко-нагруженные приложения?) сайты на NodeJS?
    v8 коренным образом не поменялся.
    Нагрузка бывает разная
    Целесообразно использовать, то что лучше знаете - для малых и средних проектов не имеет значение ЯП

    под огромное количество небольших запросов
    подходит ерланг, а не нода
    Ответ написан
    Комментировать
  • Как с помощью JS вызвать событие change и убрать галочку на чекбоксе?

    0xD34F
    @0xD34F Куратор тега JavaScript
    Вариант раз - вызвать у элемента метод click: checkbox.click();.

    Вариант два - установить новое значение checked и отправить элементу событие change:

    checkbox.checked = /* сюда пишем true или false */;
    checkbox.dispatchEvent(new Event('change'));
    Ответ написан
    Комментировать
  • Как вы верстаете?

    @deasmont
    Делаю следующим образом - забираю что мне нужно с фм с помощью SASS
    Что-то проще переписать малёк, что-то заменить, опять же - зависит строго от проекта. Была у меня парочка инет-магазов, и там все средства хороши, задача выполнена пм доволен. Трудоёмкие "фичи" стараюсь выдирать, всё что хорошо было сделано в будущем понадобиться. Короче говоря всё опционально. Есть основания полагать что мего-сайтоделкины имеют за плечами сколько опыта что и сами не в силе все припомнить, и весь процесс написания кода или верстки сводиться к его поискам в старых проектах)
    Ответ написан
    Комментировать