• Обязательно ли читать книгу по языку/технологии что бы быть тру и продвинутым кодером?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Вы не найдёте ни одного авторитетного программиста с мировой известностью, который бы утверждал, что курсы и видео-уроки лучше книг. Обычно это утверждают либо профаны, оправдывающие своё нежелание читать, либо авторы курсов, делающие деньги на лентяях и глупцах. И я лично за 18 лет в отрасли встретил множество программистов, но ни одного хорошего, выучившегося по курсам и видео-урокам.

    Видеокурс может запилить любой дурак. Чтобы написать книгу, нужно иметь авторитет достаточный для издательства. Кроме того, текст пройдёт редактуру нескольких профессионалов. Поэтому знания в книгах качественные и систематизированные. Для начинающего это очень важные качества.

    К тому же, после достижения профессионального уровня достаточного чтобы называться специалистом, вы обнаружите, что необходимые на этом уровне знания можно почерпнуть только из документации. То есть всё равно придётся читать. Много и часто.

    Наконец, постоянная практика чтения неизбежно приводит к увеличению скорости чтения. И наступает момент когда прочитать учебник будет в 10 и более раз быстрее, чем просмотреть видеокурсы по той же теме и в том же объёме.

    Кроме того, чтение развивает абстрактное мышление - основной инструмент разработчика.
    Ответ написан
    16 комментариев
  • Каким образом платные сервисы от DDOS атак работают?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Во-первых, DDOS, это не всегда запросы к сайту. Это может быть просто поток сетевых пакетов с целью перегрузить ваш канал. Если он слабый, типа домашнего Интернета, то это вообще не проблема. Поэтому платные сервисы тупо дают широкий канал, и загрузить такой сервис очень сложно. Далее такой флуд легко фильтровать по простым критериям, и до вас, до вашего сервера, доходит лишь "чистый" трафик, от нормальных пользователей.

    Ну а дальше начинается война снаряда и брони. Можно придумывать всякие способы атаковать вас, и можно придумывать всякие способы защиты. К примеру, боты могут делать запросы к сайту. Вы можете тупо отправлять их на капчу. Или можете попытаться найти закономерность в атаке и написать свой фильтр (опять-таки, если атака не перегружает канал, иначе это бесполезно). Можете даже воспользоваться машинным обучением, чтобы найти какие-то паттерны у ботов. Платные сервисы отличаются тем, что уже съели собаку на методах борьбы, поэтому делают это дешевле, чем если вы своими руками. И если они завтра что-то новое придумают, то это распространится на всех их клиентов, - это дешевле, чем если каждый клиент отдельно будет изобретать велосипед с нуля. Хотя, как я сказал выше, главной фишкой является широкий канал, так что их нельзя заддосить тупо трафиком.

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

    В общем, война никогда не меняется. Поэтому ответить вам, что вот, мол, такие сервисы следуют такому-то рецепту - не получится. Технологии постоянно развиваются. И через год будут новые способы атаки и защиты. Платные сервисы просто берут деньги за то, что участвуют в этой войне, а как и что у них там получается - это отдельная наука. Для любой брони можно подобрать снаряд. И для любого снаряда можно подобрать броню. Вопрос в цене. Побеждает тот, у кого больше ресурсов (времени и денег), но потери по итогам несут все стороны конфликта (наживаются только спонсоры).
    Ответ написан
    1 комментарий
  • C++ Где изучать нейросети?

    Zoominger
    @Zoominger
    System Integrator
    Сначала натренируйте свою головную нейросеть в любой непонятной ситуации трясти Гугл.
    Ответ написан
    Комментировать
  • ЯП для информационной безопасности?

    fox_12
    @fox_12
    Расставляю биты, управляю заряженными частицами
    > Захотел заниматься тем же, чем и он. Поступил в колледж на эту специальность и узнал от препода,
    > что никаких языков программирования мы учить не будем
    Естественно. Основная сфера деятельности специалистов по безопасности, особенно с данным профильным образованием - это офисная работа с документами.

    В сериале - главный герой - программист высокой квалификации, занимающийся смежной областью инфобезопасности.
    Ответ написан
    5 комментариев
  • Как вы учились или как вы считаете чему нужно учить Web-разработчика в ВУЗе?

    Adamos
    @Adamos
    Если вы можете:
    - получив ТЗ, составить план работ по нему и выполнить работы самостоятельно и ответственно, придерживаясь этого плана;
    - столкнувшись с необходимостью изучить новый язык или фреймворк, можете взять учебник и заниматься с ним достаточно долго для достижения результата, а когда учебника будет недостаточно - найти и использовать другие источники;
    - столкнувшись с незнакомой проблемой, четко ее сформулировать и прикинуть возможности ее решения на основе той информации, которой вы владеете...
    - и т.п.
    Так вот, если вам это не слабо, то вуз вам может не особенно и требоваться.
    Однако большинство вчерашних школьников практически по любому такому пункту теряются и не знают, как действовать либо впадают в прокрастинацию и советы на Тостере. Более того - и вуз не гарантирует, что вы чему-то научитесь. Но среда для этого там подходящая... и кое-какие знания дают, но это уже вторично, особенно для IT, где все устаревает раньше, чем попадает в учебники.
    Ответ написан
    Комментировать
  • Для чего можно применить блокчейн в своем проекте, причем стартапе?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Для хайпа. Кстати, это самая частая причина его применения.
    Ответ написан
    2 комментария
  • Что нужно сделать эникею с опытом чтобы за 4 месяца стать безопасником или админом?

    Zoominger
    @Zoominger
    System Integrator
    Знаю Linux на уровне RHCSA+ (готовился к курсам RHCSA+RHCE, но не сдавал).

    Не знаете.

    Читаю давно каналы про новости в ИБ, чутка кусал в метасплоите виртуалки,

    Это не ИБ, это даже близко не ИБ. Это как "я посмотрел на скальпель, теперь я хирург".

    Через 4 месяца нужно найти работу безопасником (не верится)

    Правильно не верится. Безопасника без образования не возьмёт никто.

    Подскажите, реалистично ли за 4 месяца стать junior-безопасником в какой-то сфере с моими данными?

    Нет.

    или сетевым/системным админом.

    Это возможно.

    И имеет ли место быть мнение, что в регионах почти не найти нормальной работы и надо сразу пытаться ехать в Москву/Питер?

    Ну да, в принципе.

    TL;DR Недоинженер без вышки не хочет ни в техподд, ни в шарагу, ни в петлю. Помогите, что делать?

    В первую очередь - забыть этот идиотский сленг уровня подростков с Лурочки.
    Во вторую - развиваться в сторону сисадминства, забыв влажные мечты о безопасности, куда без в/о никак, безопасник - это не только "я поставел Кали и типерь я хаккир". Если опыта эникея хотя бы полтора-два года, то есть шансы найти работу сисадмином в маленькой конторе или продвинутого эникея в большой.
    А там уже - заочка на ИБ, если прямо хочется.
    Ответ написан
    Комментировать
  • Для чего можно применить блокчейн в своем проекте, причем стартапе?

    @PapaStifflera
    Родился, вырос...
    Сам термин Blockchain частично характеризует его задачи и назначение. Часть «Block» – это блоки, «chain» – это «цепочка». Получается, что Blockchain – это цепочка блоков. Причем не просто цепочка. В ней выдерживается строгая последовательность.

    Что это за блоки и что за цепочка? Блоки – это данные о транзакциях, сделках и контрактах внутри системы, представленные в криптографической форме. Изначально блокчейн был (и остается до сих пор) основой криптовалюты Bitcoin. Все блоки выстроены в цепочку, то есть связаны между собой. Для записи нового блока, необходимо последовательное считывание информации о старых блоках.

    Все данные в блокчейн накапливаются и формируют постоянно дополняемую базу данных. Из этой базы данных невозможно ничего удалить или провести замену/подмену блока. И она «безгранична» - туда может быть записано бесконечное количество транзакций. Это одна из главных особенностей блокчейна.

    Поэтому мне нужна информация, что дают блокчейны.


    Децентрализация – в цепочке нет центрального/главного сервера. Каждый участник – это и есть сервер. Он поддерживает работу всего блокчейна;

    Прозрачность – информация о транзакциях, контрактах и так далее хранится в открытом доступе. При этом эти данные невозможно изменить;

    Теоретическая неограниченность – теоретически блокчейн можно дополнять записями до бесконечности. Поэтому его часто сравнивают с суперкомпьютером;

    Надежность – для записи новых данных необходим консенсус узлов блокчейна. Это позволяет фильтровать операции и записывать только легитимные транзакции. Осуществить подмену хэша нереально. Эта особенность блокчейн описана на картинке ниже.

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

    2) высоконагруженность вроде и без блокчейнов реализовалась. в чем их-то профит.

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

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    Машинлернера с задачей о рюкзаке и опытом оптимизационных задач

    поиск тут вообще до
    Ответ написан
    Комментировать
  • Как вы развиваетесь и откуда черпаете информацию?

    Новые и интересные статьи — в закладках браузера.

    Самообучение должно быть в свободное время и нужно действительно хотеть этого. Тогда всё получится.
    Ответ написан
    Комментировать
  • Что делать с хакером?

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

    @tlbogdanov
    Самое легкое, что нужно сделать, это понять - в задачах на hackerrank или где вы их смотрите нет ни одной задачи, которая создана, чтобы Вас завалить. Ни единой. Уверен, за то время, что вы работаете, вы уже изобрели собственный подход к решению рабочих задач и он эффективен и подходит именно вам. Попробуйте применить его в алгоритмических задачках. Представьте, что вы решаете не какую-то "сложную задачу, которую фиг знает как решать", а одну из тех, что вам дали на работе... Просто - вот такую.
    И не стесняйтесь гуглить, большинство задач уже прорешано, и посмотреть метод решения - не значит завалить задачу... Вы же хотите принцип понять, а не "нарешать ответственно 100 задач без подглядывания в гугл"
    Ответ написан
    2 комментария
  • Куда копать дальше по информационной безопасности?

    Zoominger
    @Zoominger
    System Integrator
    Прочитал ерунду.
    Вы не безопасник. Хотите в безопасность - идите в ВУЗ на профильную специальность.
    Сейчас же вы то тут, то там хватаете какие-то пенки абсолютно без понимания, что вы, вообще, делаете.
    Ответ написан
    4 комментария
  • Зачем учить алгоритмы сортировки, если есть уже готовые методы сортировки?

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

    @nrgian
    1) Для развития мышления. Работа с алгоритмами сортировок хороший практикум для развития навыков программирования. Плюс это удобно проверяется преподавателем, удобно давать обратную связь при обучении.

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

    За более чем 20 лет программирования, действительно, крайне редко сортировал сам, все больше использовал готовые алгоритмы.

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

    @rPman
    Не надо вам тут нейронные сети и обучение, это как ходить в соседний магазин за хлебом, на вертолете, садясь на него в соседнем городе.

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

    samodum
    @samodum
    Какой вопрос - такой и ответ
    в данном случае хэш-функция возвращает int, а не строку. Цель хэш-функции превратить объект, используя его содержимое, в целочисленное значение - это и будет индекс для массива. Эту хэш-функцию надо грамотно написать, чтобы было минимум коллизий и для этого есть несколько базовых рекомендаций.
    Внутри хэшмэп устроен так, что у него есть массив списков. То есть, по индексу, который мы вычислили с помощью хэш-кода, мы из массива по этому индексу (вот он, О(1)) забираем список (список - как раз и есть те самые коллизии и чем их меньше, тем короче будет список), в котором хранятся значения и забираем/добавляем нужное значение.
    И тут есть замечания: если хэшкод всегда возвращает нам одно и то же число, то хэшмэп вырождается в список - все значения по любому из ключей будут храниться в списке, доступном по одному-единственному индексу.
    В идеале хэшкод должен возвращать уникальное число для каждого объекта (но всегда одно и то же для объекта с таким же содержимым, ключом)

    Общее понимание и прекрасное объяснение:
    https://en.wikipedia.org/wiki/Hash_function
    Функция для PHP:
    https://php.ru/manual/function.spl-object-hash.html
    Объяснение, почему нужно использовать простые числа на примере рекомендаций из книги "Effective Java" (объяснение есть и в википедии):
    https://computinglife.wordpress.com/2008/11/20/why...
    https://stackoverflow.com/questions/3613102/why-us...
    https://medium.com/@biratkirat/learning-effective-...
    Ответ написан
    3 комментария
  • C# или C++, что выбрать со связкой с Python'ом?

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

    Moskus
    @Moskus
    Ну опять это MMORPG-мышление.

    Для того, чтобы решить проблему, нужно уметь решать проблему. Или отдать её тому, кто умеет её решать.
    Потому что любой автоматический анализатор кода также требует понимания, какие предупреждения он выдает и почему выдает.

    Код, который входит в большие проекты и/или публичен не становится от этого хорошим по волшебству. Он становится лучше только от того, что на него посмотрело больше хороших программистов, а не тех, кто научился писать hello world.

    Простая публичность этого не гарантирует, а только слегка увеличивает вероятность. Именно потому, есть довольно качественные opensource проекты, а есть - глюк на глюке, несмотря на большое число участников.

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