Задать вопрос
  • Считается ли только создание API достаточным пет проектом для демонстрации своих навыков в бэкенд разработке в резюме?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    ПОСТОЯННО люди путают пет проект и тестовое задание.

    пет проект - рабочий проект, который кем-то используется.
    Если ты сделаешь API которое реально будет работать и будешь им пользоваться , а может твои друзья а может и еще кто-то, то это пет проект.

    Если просто API которое положишь на гитхаб и все - это НЕ пет проект.
    слово pet как-то должен намекнуть о смысле.
    Ответ написан
    2 комментария
  • С чего сейчас начать карьеру веб-разработчика?

    AlexNest
    @AlexNest
    Работаю с Python/Django
    Какие курсы смотреть и проходить?

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

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

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

    Ну и да - бумажка ничего не значит, если ты не готов самостоятельно бегать по судам, чтобы доказывать, что кто-то твой договор нарушил.
    Ответ написан
    Комментировать
  • Где работать онлайн ИБ?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    ИБ онлайн? Примерно нигде.
    Ответ написан
    Комментировать
  • Как найти сумму элементов вложенных массивов?

    0xD34F
    @0xD34F Куратор тега JavaScript
    Рекурсия есть:

    const sum = data =>
      Array.isArray(data)
        ? data.reduce((acc, n) => acc + sum(n), 0)
        : (+data || 0);

    Рекурсии нет:

    function sum(data) {
      let result = 0;
    
      for (const stack = [ data ]; stack.length;) {
        const n = stack.pop();
        if (n instanceof Array) {
          stack.push(...n);
        } else {
          result += +n || 0;
        }
      }
    
      return result;
    }

    Здесь, конечно, будет складываться всё, что можно сложить. Т.е., не только собственно числа, но и всё, что может быть сведено к числу, например true, '0xBB', { valueOf: () => 666 } и т.д.

    Если нужно складывать только числа - предлагаю подумать самостоятельно, как изменить представленный код.
    Ответ написан
    1 комментарий
  • Как сделать тёмную тему в *.habr.com?

    В Твиттере её нельзя "сделать", её можно "включить". Включить то, чего нет, невозможно.
    Вы можете использовать одно из многих браузерных расширений, которые как раз добавляют тёмную тему сайтам, у которых её нет. Качество там может быть неидеальным, поскольку за результат отвечает алгоритм, а не человек-дизайнер.
    Ответ написан
    Комментировать
  • Как можно улучшить модерирование?

    ddv88
    @ddv88
    Binance Futures
    Прочитал все комменты. Ни один из вариантов не решит проблему модерирования. И главное не пресечет создание флуд топиков.
    Забавно, что такая многочисленная коллегия опытных программеров (и юзеров в том числе) не может придумать алго для оптимизации качества контента. Все сводится к "запретить" и "забанить".

    Докину свое видение. Считаю что существует неочевидный изъян. Очень многие юзеры обладают мотивацией отвечать на простые вопросы. Джуны, которые узнали чуть больше тех, кто только-только пытается "войти". Тогда как ТС не может понять базу, ему приводят готовое решение без объяснения (свежий пример, где юзер уже после моего диалога с попыткой заставить автора подумать самостоятельно, приводит рабочее решение). В итоге этот же ТС очень скоро возвращается, чтобы сгенерить очередной тупой вопрос, тк понимает, что "щас за меня всё решат", вместо того, чтобы загуглить и поразмыслить [повторить цикл n-раз].
    Я бы предложил ввести систему рейтинга с градацией силы голоса. Дать возможность, как и на хабре, как и на стаковере, не только плюсовать, но и скрывать ответы. Чтобы юзер с более сильным рейтингом одним голосом, мог отправлять в самый низ или вовсе скрывать (не удалять) ответы заплюсованные 10 юзерами с слабым рейтингом. Или же ограничивать возможность отвечать на сложные вопросы юзерам с слабыми рейтами, типа как в ММО, пока не прокачаешься боса не завалишь) Это конечно тоже своего рода ограничение, но его можно уже по месту подшлифовать.
    В учете рейтинга можно было бы использовать как раз опцию "сложность вопроса". А кураторы и эксперты тэгов смогли бы адекватно корректировать данную оценку. Ясен красен, что для новичка вопрос, который он считает сложным, для опытного программиста таковым не является.
    Ответ написан
    2 комментария
  • Как можно улучшить модерирование?

    Adamos
    @Adamos
    Примерная хаутушка, если вдруг у кого зачешется левая пятка:
    0. Здесь ресурс айтишных вопросов. Не айтишные, а также опросы, задания, спам и флуд - удаляются.
    1. Погугли, прежде чем спрашивать. Кстати, здесь тоже есть поиск (ссылка).
    2. Обращайся с проблемой. Не с задачей, а с тем, что у тебя не получилось в ее решении. Если ты ничего не сделал для решения сам - тебя здесь затроллят и отправят на фриланс.
    3. Если задача решается кодом - приведи код. Не скриншоты, видео и ссылки, а код. В теге "code", чтобы его можно было нормально прочитать. Ошибки, логи и пр. - только текстом.
    4. Указывай только необходимые теги. За тег-спам модератор покусает.
    5. (и ссылка на полный текст правил, буде возникнет желание его прочитать).
    Ответ написан
    4 комментария
  • Как можно улучшить модерирование?

    0xD34F
    @0xD34F
    Через форму обратной связи изложить администрации свои гениальные идеи (нет, это не насмешка, не сарказм - там такой пункт есть в выпадающем списке "тема"). Дальше надеяться, что администрация вас услышит, согласиться с услышанным и укажет модераторам на необходимость смены поведенческих паттернов.
    Ответ написан
    2 комментария
  • Стоит ли фильтровать пароль на символы?

    Vamp
    @Vamp
    У вас классическая проблема обработки пользовательского ввода. Решается она по-разному в зависимости от контекста, в котором используются данные. Так как вы не указываете контекст, то и ответ будет соответствующе широким.

    1. Запрос первоначально поступает в node.js (конкретно в движок v8, отвечающий за сетевое взаимодействие). Здесь возможны уязвимости, при которых специальным образом сформированный запрос может привести к отказу в обслуживании (DoS), несанкционированному доступу к памяти (вспоминается эпичнейшая уязвимость heartbleed) и иным спецэффектам.

    2. Далее запрос поступает в express, где он парсится и преобразовывается в объект req. Здесь так же могут быть уязвимости, эксплуатируемые путем отправки специально сформированного запроса.

    Пункты 1 и 2 исполняются до вашего кода, поэтому всё что вы можете здесь поделать - это вовремя обновлять софт и библиотеки.

    3. Далее ваш код занимается обработкой данных. Важный момент в этом - санация и валидация данных.

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

    Валидация - это проверка данных на корректность. Например, вы ожидаете номер телефона в поле phone. После санации останется проверить, что длина номера не нулевая и не больше 15.

    Если данные предполагается передавать дальше, скажем, на удалённый JSON REST сервис, то вы должны будете корректно экранировать строку перед добавлением её в JSON, иначе случайная кавычка сломает ваш запрос.

    Либо если данные будут вставляться в базу данных, то необходимо экранировать данные (либо вставлять данные через подготовленные запросы) чтобы не получить SQL injection уязвимость.

    Вот тут как раз и появляется зависимость от контекста. В контексте базы данных - один способ экранирования. В контексте json - другой. В контексте HTML (при выводе данных пользователю) - третий. В ещё каком-нибудь другом контексте будут свои способы обезопасить данные.

    Если рассматривать конкретно пароль, то с ним всё просто. Как правило, пароли не хранятся на сервере в открытом виде и предварительно подвергаются преобразованию в криптографически стойкий хеш (например, argon2 или scrypt). Сам хеш уже имеет фиксированный размер и известный набор символов. Поэтому санировать пароль не нужно, а при валидации просто проверить минимально допустимую длину, несовпадение с логином, email и может ещё какие-нибудь проверки, навязанные бизнесом или применяемыми стандартами.
    Ответ написан
    6 комментариев
  • Что делать с выгоранием?

    @d-sem
    Возможно, что программирование просто не затягивает. Это нормально и не нужно себя насиловать. Тогда не делать ничего и не париться.

    Это такое занятие к которому должно тянуть, трудности мотивировать, а ситуация когда чего-то не знаешь - заставлять учиться.

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

    IonDen
    @IonDen Куратор тега IT-образование
    JavaScript developer. IonDen.com
    Увы в современном мире это так не работает. В айти огромнейшая конкуренция среди новичков (как в дизайне, так и в разработке).

    Чтобы как следует войти в профессию - нужно пахать пару лет за бесплатно, нарабатывая портфолио, авторитет и стаж. Только потом можно начать на что-то расчитывать.

    Единственная разумная стратегия для взрослого человека - работать где-то еще и параллельно заниматься образованием.

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

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Хорошо составленный вопрос содержит половину ответа :) По самой постановке вопроса, по описанию, по языку, который используется (не языку программирования, а именно языку общения, манерам, стилю, жаргону, фене), по его уместности в данной обстановке (особенно для вопросов типа "как сейчас заработать на фрилансе"), по полноте информации можно судить - стоит отвечать серьезно или же просто потроллить. Или вообще не тратить время :)
    Ответ написан
    Комментировать
  • Как стать андроид разработчикам если ничего не понятно?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    1. Читаешь учебник для начинающих, практикуешься с учебными примерами.
    2. Читаешь учебник для продвинутых.
    3. Читаешь документацию, пишешь пет-проект сначала без архитектуры.
    4. Читаешь про архитектуру, понимаешь в лучшем случае половину.
    5. Устраиваешься на работу, где командная работа и большие проекты.
    6. Сталкиваешься в работе с ситуациями, для которых архитектурные шаблоны и придумывались.
    7. Просветляешься.
    Ответ написан
    1 комментарий
  • Как погрузиться в начала/фундамент программирования?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Как построенн язык программирования, например: Как понять, как устроенны ключевые слова; Препроцессорные процессы: define, include и др.; - Я правильно понимаю, нужно опустится на ещё более низкий уровень до ассемблера? - Ассемлер является той фундаментальной сущностью в программировании (не считая машинный код, который и так человек не должен понимать)?

    Лет 50 назад так было. Программист был физик-математик. И он обязан был знать как работает транзистор. Этот был "тот" уровень понимания требований к профессии. Сегодня знания ассемблера уже не являются обязательными. Можно прожить бурную и интересную жизнь будучи синьором-помидором разработчиком но так и не написать ни строчки на асмах. Профессия разделилась на узкие специализации и знать весь стек уже стало настолько трудно что это перестало быть необходимым.

    По второму пункту - я не понял что хотел автор. Хотел достичь какого-то дзена?

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

    Кажется один из авторов SICP сказал примерно следующее. Что современный инженер - это уже не создатель алгоритмов. Он - интегратор. Просто сама индустрия подталкивает к тому чтобы популярным стал язык Go а не Scheme. Хотя c моей кочки зрения Scheme интереснее и умнее, но увы. Прагматизм все решает. Для меня Scheme останется в разделе забавных мозговых экспериментов вроде брейн-фака. Ты решаешь задачу и получаешь от этого эндорфин. Как codewars. Вот такого эндорфина от Go нету. Хотя в резюме такое вписывать бесполезно наверное. Кому нужен Lisp-овед или Schem-щик?

    Кстати кто знает какие курсы в MIT сейчас читают? Поделитесь.
    Ответ написан
    4 комментария
  • Как выполнять вычисления с помощью функций (результат вызова предыдущей должен быть аргументом следующей)?

    phaggi
    @phaggi
    лужу, паяю, ЭВМы починяю
    Решаю задачи на codewars, не могу решить задачу с функциями?

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

    fox_12
    @fox_12
    Расставляю биты, управляю заряженными частицами
    Программист
    Ответ написан
    3 комментария
  • Что должен уметь делать Python разработчик?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Не перестают удивлять меня такие вопросы. Каждый день вы имеете дело с результатами труда разработчиков. Включаете компьютер, у него в железе крутятся прошивки, написанные кем-то, загружается операционная система, написанная кем-то, вы открываете браузер, написанный кем-то, взаимодействуете с фронтом qna.habr.com, написанным кем-то, который шлёт web-серверу, написанному кем-то, запрос к бэкенду qna.habr.com, написанному кем-то, который работает с брокерами, кэшами, СУБД и прочим-прочим, написанным кем-то. Вот уметь написать всё это и должен разработчик неважно на чём. Когда я начинал, я постоянно задавался вопросами "Как это устроено? Смогу я написать такое же? Что надо, чтобы смог?", поэтому мне не нужно было ни у кого спрашивать, что изучать.
    Ответ написан
    Комментировать