• Как определиться с направлением программирования или ЯП?

    Immortal_pony
    @Immortal_pony
    Бери JS:
    1. Стрелочек нет
    2. Долларов нет
    3. Можно писать как backend, так и frontend. И даже для мобилки приложения можно писать, ну.
    4. Вакансий мульён, на любой уровень
    5. Порог входа ниже плинтуса (ну а нормально на нём научиться писать будет сложно. Правда, это относится и к любому другому языку)

    Стоит ли работать с тем ЯП синтаксис которого тебя мало устраивает?

    Начинать с него точно не стоит

    Стоит ли идти на какие то курсы/книги по данным направлениям?

    Решай примеры, пользуйся для этого документацией и статьями (ну или видео, если в таком виде материал больше заходит) по конкретной задаче.
    Как наберёшь базу, можешь начинать читать книги.
    Ответ написан
  • Как запустить сайд-проект при основной работе?

    @nApoBo3
    Проекты загибаются потому как не ясна монетизация для каждого из участников.
    Нужна не только: "Чёткая идея, концепция MVP и хард-скиллы", но и бизнес план.
    Ответ написан
    Комментировать
  • Почему возвращает undefined?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    Я понимаю, что для вас такое поведение выглядит непонятным, но по названию вашего вопроса и тегу javascript легко догадаться о его содержимом не заходя внутрь. Просто потому, что ровно таких вопросов здесь повяляется по три в день.
    Прочитайте как работает асинхронность в javascript, про промисы, про async/await.
    Ответ написан
    5 комментариев
  • Почему программа не компилится?

    vabka
    @vabka
    Токсичный шарпист
    При попытке запуска твоего кода возникает ошибка
    VM527:15 Uncaught SyntaxError: Identifier 'x1' has already been declared

    1. И в ней, кмк, вполне чётко сказано, что у тебя на 27 строке объявляется переменная x1, которая уже объявлена.
    2. У тебя ещё используется функция sqrt, которой в глобальной области видимости нет (по-умолчанию)
    Вероятно, ты хотел Math.sqrt

    PS: ну и JS не компилируемый язык, по тому он и не будет компилироваться.
    Ответ написан
    2 комментария
  • Язык программирования D. Почему отличный язык остался невостребованным?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Представьте, что вам нужно изучить иностранный язык и от выбора языка зависит сколько людей в мире вы будет понимать, какое количество текстов вы сможете прочитать, сколько вакансий вам будет доступно и какого размера зарплаты вам светят. Что выберите - английский или венгерский? Так же у языка программирования. Пока на нём нет вакансий, никто не хочет его учить, а пока никто не хочет его учить, на нём нет вакансий. Вырваться из замкнутого круга можно только двумя путями - либо язык предлагает суперконкурентное преимущество программисту, либо ему выдаёт кредит доверия гигантская корпорация. Очевидно. у D не нашлось ни того, ни другого.
    Ответ написан
    24 комментария
  • Как спрятать пароль?

    vabka
    @vabka Куратор тега C#
    Токсичный шарпист
    Ведь часть исходного кода порой можно глянуть сторонними инструментами.

    Если это бэкенд, то какими ещё инструментами можно глянуть без прямого доступа к исходному коду и файловой системе сервера, где это запускается?

    А так из вариантов, как убрать его из исходников - прокидывать как параметр в конфиге или в переменных среды.
    Или использовать какое-нибудь секурное хранилище.
    Например Vault или Azure Key Vault.
    Ответ написан
    Комментировать
  • Где писать на Assembler-е?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    К сожалению, твой вопрос похож на "какой командой ассемблера пакман ест чертика".

    Слишком рано задаешь подобный вопрос. Перед тем как изучать именно ассемблер для того, чтобы делать Операционную Систему, тебе следует изучить как вообще операционная система работает, как вообще языки программирования работают. То есть для начала стать продвинутым пользователем.

    Для начала, подучи С/С++ до уровня, чтобы ты мог писать простые консольные программки, вроде "открыть файл, записать в него что-то", "открыть файл, прочитать с него что-то".
    Затем можешь изучить как загружается операционная система с диска, разобраться с тем что такое BIOS на самом деле (а не думать что bios это то меню, в котором можно выбрать грузиться с диска или флешки), и подумать сможешь ли ты написать собственный загрузчик операционной системы.
    Потом можно почитать/полистать хотя бы 1-2 ЛЮБЫЕ книжки по ассемблеру (и не бойся такие простые вопросы задавать гуглу). Рекомендовать тебе самое лучшее нет смысла.

    А вопросы следует задавать, когда ты уже знаешь примерно половину ответа. Тогда это будут правильные вопросы.
    Ответ написан
    1 комментарий
  • Почему у меня не находит аннотации?

    vanesxl
    @vanesxl Автор вопроса
    Кому может пригодится
    Ответ написан
    Комментировать
  • Уместны ли каверзные вопросы на собеседовании?

    saboteur_kiev
    @saboteur_kiev Куратор тега Карьера в IT
    software engineer
    Странный вопрос.
    На собеседовании все уместно. Ты же не забывай, что собеседование это не ЕГЕ.
    Это диалог двух сторон. Если кандидату не понравился вопрос, он может встать и уйти.
    Если он не знает ответ, он может что-то насочинять, и если ты грамотный специалист ты увидишь что он тут отгадывает или точно знает.

    У меня для собеседований есть небольшой опросник, в котором чуть ли не каждый второй вопрос идет с небольшим подвохом, и по полноте ответов я понимаю насколько глубоко кандидат шарит. Но мне не всегда необходимо найти того, кто ответит на все 100% вопросов развернуто.
    Я просто оцениваю что кандидат знает, а с чем сталкивался настолько регулярно что прям помнит наизусть детали без мануала.

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

    0xD34F
    @0xD34F Куратор тега JavaScript
    Конечно, можно прямо посчитать количество интересующих нас элементов:

    const countWithKey = (arr, key) => arr.filter(n => key in n).length;
    
    console.log(countWithKey(arr, 'ключ'));

    Но можно решить задачу и в более общем виде.

    Например, просуммировав данные. Функция суммирования кроме данных получает также функцию, которая из отдельного элемента данных извлекает слагаемое, в данном случае - факт наличия нужного свойства:

    const sum = (data, val = n => n) =>
      Array.prototype.reduce.call(
        data,
        (acc, n) => acc + val(n),
        0
      );
    
    console.log(sum(arr, obj => obj.hasOwnProperty('ключ')));

    Кстати, что даёт более общий вид.
    Считать можно разные суммы. Как, например, обычных массивов из чисел (sum([ 1, 2, 3 ]) // 6), так и более сложные варианты. Например, есть массив, представляющий содержимое корзины с товарами (цена, количество), надо посчитать общую стоимость:

    const cart = [
      { price: 100, count: 5 },
      { price:  10, count: 6 },
      { price:   1, count: 7 },
    ];
    
    const total = sum(cart, item => item.price * item.count); // 567

    Или, считаем количество лайков за ответы на этот вопрос (можете открыть консоль и прямо там выполнить этот код):

    const likes = sum(document.querySelectorAll('.btn_like .btn__counter'), n => +n.innerText);


    Или, можно посчитать, сколько элементов набора данных относится к той или иной группе. Функция подсчёта помимо данных получает в качестве параметра функцию, которая принимает элемент данных, и возвращает группу, к которой он относится:

    function Counter(data, key = n => n) {
      const counted = new Map;
    
      for (const n of data) {
        const k = key(n);
        counted.set(k, (counted.get(k) ?? 0) + 1);
      }
    
      return k => counted.get(k) ?? 0;
    }
    
    const keyExists = Counter(arr, obj => Object.hasOwn(obj, 'ключ'));
    console.log(keyExists(true)); // смотрим, у скольких элементов массива ключ есть
    console.log(keyExists(false)); // и у скольких нет

    Аналогично суммированию, есть разные варианты применения.

    const str = 'hello, world!!';
    
    const chars = Counter(str);
    console.log(chars('h')); // 1
    console.log(chars('!')); // 2
    console.log(chars('x')); // 0

    const persons = [
      { name: 'Вася', birthday: new Date('1999-05-22') },
      { name: 'Маша', birthday: new Date('2004-03-06') },
      { name: 'Катя', birthday: new Date('1976-05-15') },
      { name: 'Петя', birthday: new Date('1987-04-18') },
      { name: 'Коля', birthday: new Date('2000-01-01') },
      { name: 'Дима', birthday: new Date('2003-05-09') },
      { name: 'Миша', birthday: new Date('1996-02-29') },
      { name: 'Таня', birthday: new Date('1981-03-12') },
      { name: 'Олег', birthday: new Date('1992-08-24') },
    ];
    
    const birthMonths = Counter(
      persons,
      ({ birthday }) => birthday.toLocaleString('ru-RU', { month: 'long' })
    );
    console.log(birthMonths('май')); // в мае родилось три человека
    console.log(birthMonths('март')); // в марте два
    console.log(birthMonths('октябрь')); // а в октябре никто

    function* naturalNumbers(n) {
      for (let i = 1; i <= n; i++) {
        yield i;
      }
    }
    
    const numLengths = Counter(naturalNumbers(100), num => `${num}`.length);
    console.log(numLengths(2)); // среди первых ста натуральных чисел - девяносто двухзначных
    console.log(numLengths(3)); // и одно трёхзначное
    console.log(numLengths(0)); // число из нуля знаков? - конечно же нет таких

    Ответ написан
    1 комментарий
  • При чтении файла в java программа компилируется, но результата нет, что делать?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Вот почему, ну почему, на любых курсах по программированию, не важно ява или какой другой язык, не учат пользоваться отладчиком, или хотя-бы принты расставлять во все места?!
    Господа и господицы, тичеры, тичерицы, коучеры, коучерицы - ну обучайте же в самую первую очередь на примере "Хелл программинг уорльд" отлаживать свои поделия всеми возможными способами.
    С явой отдельный разговор, в ней отладчик в каждой ИДЕ торчит немым укором, и кнопочка рядом - только бреакпоинт воткнуть.
    Ответ написан
    1 комментарий
  • Как передать на бекенд требования к API?

    @Vitsliputsli
    Многие фронтендеры относятся к беку, как к некой обертке для работы с базой данной. Когда такие становится лидом команды и начинают диктовать свои требования беку, начинается ад, проект даже с простым беком превращается в нечто монструозное, разваливающиеся на ходу. Но, так как снаружи бек не виден, руководство считает, что дело в отдельных тупых бек-разработчиках, которые артачатся, не хотят работать и увольняются.
    Судя по вашим фразам, вы скорее всего один из них. Так как уверены, что приложение - это то, что на фронте, что api - это хрень, которая завязана на отображении информации на фронте, что разработчики бека не нужны при разработке архитектуры и вообще пофиг, что они там делают, главное чтобы давали то, что хочет фронт.
    Но, раз вопрос задан, значит сомнения вас посещают. Поэтому: приложение это не только фронт, а зачастую фронт это не самая сложная его часть. Бек - это не обертка над базой данных, и если вы поменяете значение в базе, это не значит, что к примеру, в потоковом вещании сменится кодек (вот, кому-то может и смешно, а мне в такой ситуации ни фига не было весело). С помощью API получают данные, поэтому не важно, что там у вас напроектировали дизайнеры, или как эти данные выводит фронт, API должен быть универсальным и не зависить от того как вы отображаете данные, поэтому, к примеру, бек может вам дать для получения данных несколько универсальных запросов, а не один специальный. В общем, все гораздо сложнее, и ваш вопрос как состыковать фронт и бек перерастает в вопрос как формировать архитектуру проекта, и как управлять командой.
    Ответ написан
    17 комментариев
  • Как раньше люди программировали?

    @odissey_nemo
    Программист, ГИС-системы, растры, космоснимки
    Раньше было на порядок больше дела, на два порядка меньше банков, рекламы, посредников, пробок, конкурентов, владельцев средств производства и инвесторов.
    Совсем не было менеджеров. А были руководители (часто от бога), собаку съевшие на деле, которым занимались. Некоторых помним и сегодня, спусти 30 лет после их смерти. Придут ли сегодняшние программеры на могилку своего текущего тим-лида через 30 лет? ответ очевиден.
    Отсюда и задачи стояли более интересные, разнообразные, ответственные. И ты мог заниматься ими десятки лет.
    Пригождался любой человек, а не только юные гении, знающий все вопросы на собеседовании. Но не способные связать двух слов с товарищами или посоветовать что-то.
    Вероятность получить в ответ на твой произвольный вопрос фразу: "Я занят, некогда мне с тобой" была исчезающе мала.
    Больше времени люди проводили в обсуждениях совместных и мероприятиях вне работы (и отпуска проводили вместе). Мало, очень мало было личных проектов.
    Работало много институтов. создающих свои машины, свои операционки, свои языки программирования.
    И достигали реально многого. Уважали друг друга.
    Уволить тебя, если ты не был откровенным тунеядцем. было невозможно.

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

    HemulGM
    @HemulGM
    Delphi Developer, сис. админ
    Попробуйте книги почитать, говорят, по ним и учились
    Ответ написан
    2 комментария
  • Фриланс: какие специальности не оккупировали "индусы"?

    @Stalinko Куратор тега Фриланс
    PHP'шник и фрилансер до мозга костей
    С таким уровнем я бы рекомендовал набраться опыта в офисе или где-то в работе по найму.
    Лезть во фриланс с нуля - это крест на своей карьере.

    Нормальные опытные люди вообще не конкурируют с индусами.
    Ответ написан
    Комментировать
  • Какие есть варианты повышения для вебмастера?

    Tomio
    @Tomio
    backend developer (python, php)
    Когда-то очень давно я был в такой же ситуации, как и вы. Просто упёрся в потолок. И тут дело даже не в зп, мне могли ее повысить. Дело в пуле задач, которые я решал. Он был ограничен веб-мастерингом, очень разрозненным (сео, формошлёпство, вёрстка, контент).
    В итоге, как бы комфортно мне ни было, я решил, что нужно двигаться дальше. Сменил работу, стал чисто бэкендером. В итоге хорошо прокачал PHP, MySQL, освоил Git. Потом снова сменил работу, освоил на ней Symfony, Clickhouse, Kubernetes. А потом вообще сменил язык и сейчас активно работаю на Python с очень крутым стэком. Соответственно, зп моя очень сильно выросла, так как знаний и опыта стало больше и цениться на рынке я стал выше. А главное, я кайфую сейчас от того, чем занимаюсь)
    Не бойтесь, вырывайтесь из этого болота, пока не поздно. Думайте наперёд.
    Ответ написан
    Комментировать
  • Какие есть Python курсы для инженера?

    @mkone112
    Начинающий питонист.
    Считаю, было бы отлично пройти какие-то обзорные курсы (с перспективой в будущем ухода в IT).

    Для курсов - действительно отлично.
    но я ценю свое время и было бы отлично найти структурированную учебную программу.

    Это называется "книга". А "специалист" не способный самостоятельно структурировать информацию - бесполезен.
    Ответ написан
    Комментировать
  • Как скрыть родителя, если у детей определённое значение?

    0xD34F
    @0xD34F Куратор тега JavaScript
    document.querySelectorAll('.filter__item').forEach(n => {
      n.style.display = Array
        .from(n.querySelectorAll('.filter__checkgroup-count'))
        .some(m => +m.innerText.trim())
          ? 'block'
          : 'none';
    });

    или

    .hidden {
      display: none;
    }

    for (const n of document.getElementsByClassName('filter__item')) {
      n.classList.toggle('hidden', Array.prototype.every.call(
        n.getElementsByClassName('filter__checkgroup-count'),
        m => Number(m.textContent.trim()) === 0
      ));
    }
    Ответ написан
    1 комментарий
  • Есть пример как оформить репозиторий для портфолио?

    vabka
    @vabka
    Токсичный шарпист
    1. Сделай в репе всё что можешь сделать. Тоесть например тесты, настроенный ci/cd, и прочее такое.
    Бейджики, что тесты прошли/не прошли
    2. Полностью опиши проект, что это такое, и как его у себя задеплоить. В идеале какой-нибудь автоматизированный скрипт (например через Docker)
    3. Добавь скрины и ссылку на демку, если это возможно.
    4. Если проект сложный, то напиши документацию о том, что и где там есть.
    5. Естественно, опиши в отдельном разделе все используемые технологии, и для чего они использовались.
    Ответ написан
    1 комментарий
  • Насколько правильный вопрос "На какой версии PHP пишете"?

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