Как стать автором
Обновить
0
0

Пользователь

Отправить сообщение

Эксперимент об автоматическом фильтре кандидатов по годам опыта

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров18K

Весной 2023 года в IT горячо обсуждалась тема автоматического фильтра кандидатов по годам опыта. Одна сторона утверждала, что фильтра нет, и резюме оцениваются по содержимому, а другая, что резюме автоматически летят в отказ, если не проходят порог нужных лет опыта. Повышенный интерес объясняется тем, что люди, прошедшие обучение и желающие быть подвергнутыми проверке, не могут попасть на собеседование, даже не доходят до общения с живым человеком.

Выходит видео, демонстрирующую работу функции авторазбора на hh.ru со стороны работодателя. Сомнений в наличии автоматического фильтра не остается. Но, возможно, не все работодатели пользуются им, а действительно смотрят на качество и полноту оформления резюме.

Для проверки этой гипотезы я объявляю набор участников в эксперимент “Волк в овечьей шкуре”. Его цель доказать сильное влияние отсутствие опыта в резюме на уменьшение количества приглашений на собеседования. Участники убирают из своего резюме года опыта работы, но оставляют пет-проекты, образование, опенсорс и откликаются на вакансии. Здесь можно подробно прочитать про правила и ход эксперимента, получившего название "Волк в овечьей шкуре".

Читать далее
Всего голосов 33: ↑29 и ↓4+33
Комментарии103

Внезапно сложная задача на литкоде: Варианты покупки двух товаров

Уровень сложностиСложный
Время на прочтение6 мин
Количество просмотров12K

Есть вот такая, вроде бы, простая задача на литкоде: Дано три числа total - сколько у вас есть денег, cost1, cost2 - цены двух товаров. Надо подсчитать, сколько всего существует различных способов купить сколько-то этих двух товаров, не выходя из бюджета (значение имеет только общее количество покупок). Иными словами, сколько существет целых неотрицательных пар (x, y), таких что x*cost1+y*cost2 <= total . Например, имея товары ценами {5, 10} и 20 денег на руках, есть 9 способов потратить деньги: 0, 5, 5+5, 5+5+5, 5+5+5+5, 10, 10+5, 10+5+5, 10+10.

Она там даже помечена как medium и вообще в одну строчку решается, но это если допускать безумно медленное решение за O(total / max(cost1, cost2)) , т.е линейное от входных чисел. А сможете ли вы решить ее сильно быстрее - за O(log(max(cost1, cost2))) ? В этом случае задачка становится вполне себе hard и требует много математики и аккуратности. Если интересно решение - добро пожаловать под кат. Буду рад любым альтернативным решениям. Может кто-то сможет додуматься до похожего решения проще.

Читать далее
Всего голосов 23: ↑18 и ↓5+18
Комментарии49

Искренность — как худшее качество в IT-карьере? Или как меня уволили в первый же день на первой работе

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров38K

В различных учебных заведениях по программированию обучают специализированным профессиональным навыкам. Иногда там учат умению работать в команде. Это когда дают задачи бригадам из 2-x или 3-х студентов. Но я не слышал, чтобы где-то рассказывали про корпоративную субкультуру тех организаций, где предстоит работать молодому специалисту. А зря! Такое незнание на порядок опасней профессионального!

Читать далее
Всего голосов 72: ↑48 и ↓24+42
Комментарии344

Организация памяти в текстовом редакторе

Время на прочтение6 мин
Количество просмотров35K
Каждый, кто пытался запрограммировать хотя бы простейший редактор текста на низком уровне, сталкивался с задачей организации памяти для хранения редактируемого текста. Структура данных для хранения текста должна удовлетворять следующим требованиям:
  1. иметь малые накладные расходы по памяти. Большая часть доступной памяти должна использоваться для хранения текста, а не служебной информации;
  2. допускать эффективную вставку и удаление в произвольном месте текста.

Удовлетворить эти требования одновременно непросто. Если рассмотреть широкоизвестные структуры данных, такие как массивы, списки, деревья, стеки, очереди, кольцевые буфера — то такой структуры, которая бы позволила эффективно выполнить оба требования, не встречается. В случае массива имеем незначительные накладные расходы по памяти, но операция вставки имеет сложность O(n), где n — размер редактируемого текста. В случае списка сложность вставки и удаления составляет O(1), однако накладные расходы по памяти в несколько раз превышают размер собственно текста. Деревья, кучи, кольцевые буфера, ассоциативные массивы и прочие структуры и вовсе неприменимы для хранения текста в редакторе.

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

Предлагаю вашему вниманию эффективную структуру данных для хранения редактируемого текста, которая проста в реализации, имеет константные накладные расходы по памяти и быструю вставку/удаление в произвольном месте. Также она позволяет эффективно редактировать файлы, которые целиком не умещаются в оперативную память.

Несмотря на то, что эта структура данных была открыта давно и использовалась в текстовых редакторах на старых ЭВМ в 8-битную эпоху, это тайное знание предков было в значительной мере утеряно и в современных редакторах встречается редко. Попробуйте открыть файл, состоящий из одной строки мегабайт на 10, в Notepad или Far. Вставка и удаление символов будет длиться секундами.
Читать дальше →
Всего голосов 126: ↑119 и ↓7+112
Комментарии57

AI позволяет генерировать невероятно красивые QR коды

Уровень сложностиПростой
Время на прочтение1 мин
Количество просмотров26K

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

Ребята выложили рабочую демку на https://huggingface.co/spaces/huggingface-projects/QR-code-AI-art-generator

Читать далее
Всего голосов 27: ↑15 и ↓12+7
Комментарии88

Человек-инструмент – когда плохо быть «молотком»

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров4.8K

Около года назад я писал статью про вред концепции полезности, которую я писал на основании результатов своей работы с различными клиентами. Но в последнее время 80% моих клиентов – это непосредственно сотрудники IT-сферы. И вот за последний оборот вокруг солнца я узнал, насколько глубока кроличья нора в контексте того, как убеждение «я должен быть полезным» расползается за пределы профессиональной жизни и пускает метастазы во всю остальную жизнь. Этому и посвящена данная статья.

Я постараюсь ответить на ряд вопросов: когда начинается такая профдеформация? Почему искренние отношения начинают восприниматься как сухой обмен ресурсами? И можно ли что-то с этим сделать? А найти ответы в формате сторителлинга мне поможет Гипотетический Геннадий.

Подумать о жизни
Всего голосов 11: ↑7 и ↓4+4
Комментарии2

Microsoft только что сделала огромную ставку на термоядерный синтез

Время на прочтение10 мин
Количество просмотров51K


Ученые десятилетиями мечтали о ядерном синтезе. Который даст неограниченную энергию и не будет угрожать радиацией. Microsoft считает, что технология почти готова. И теперь ставит на это миллиарды. Предыдущая большая ставка компании — на OpenAI и её ИИ-системы — оправдалась с лихвой. За полгода с момента релиза ChatGPT капитализация компании выросла на 670 миллиардов долларов. Таким интересом со стороны инвесторов и близко не могут похвастаться Google, Apple и Amazon. Посмотрим, сможет ли Сатья Наделла провернуть всё это второй раз, только возможно в ещё большем масштабе.

Читать дальше →
Всего голосов 75: ↑69 и ↓6+81
Комментарии469

Занимательная задачка по мотивам теоремы Гёделя о неполноте

Время на прочтение4 мин
Количество просмотров13K

Альберт Эйнштейн награждает Гёделя (второй справа) наградой, названной в честь него самого

В 1931 году австрийский логик, математик и философ математики Курт Гёдель опубликовал свою теорему о неполноте. Эта работа считается одним из величайших интеллектуальных достижений современности.

В теореме утверждается, что в любой разумной математической системе всегда будут существовать истинные утверждения, которые невозможно доказать. Это утверждение шокировало математическую общественность, в которой до того преобладал неистребимый оптимизм, касающийся мощи и всеобъемлющей природы математики. Предполагалось, что математика «полна» — то есть, любое утверждение можно доказать или опровергнуть. 25-летний Гёдель показал, что это не так, составив корректное утверждение, доказать которое невозможно. Таким образом он продемонстрировал ограничения математики.

Теорема о неполноте преобразовала исследования основ математики и стала важным фактором развития информатики, поскольку из неё следует, что у возможностей всех формализованных систем, в том числе и языков программирования, есть свои ограничения.
Читать дальше →
Всего голосов 38: ↑33 и ↓5+39
Комментарии45

Пишем на С++ вектор, умеющий расширяться без копирования элементов

Время на прочтение9 мин
Количество просмотров21K

В языке С есть функции malloc, free и realloc. При использовании последней вы можете написать этакий расширяющийся массив из примитивных типов или структур (классов-то нет), который, можно надеяться, не будет копировать все данные при каждом расширении. В С++ есть встроенный класс vector, который представляет из себя расщиряющийся массив, но он так не умеет: при каждом расширении вектора выделяется новый участок памяти и все элементы перемещаются на него (по возможности, с использованием move-семантики). Но ведь, если можно каждый раз не копировать все старые элементы на новое место, вектор должен работать быстрее? В этой статье я попробую написать вектор, который умеет расширяться без копирования элементов.

Код приведён здесь.

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

Читать далее
Всего голосов 15: ↑11 и ↓4+9
Комментарии70

Проверяем Архитектурные стили на движке Factorio (часть 2, SOA)

Время на прочтение27 мин
Количество просмотров27K

Все снова большой привет, спустя полгода! Сегодня мы будем продолжать работать на движке Factorio в попытках разобраться, какой же Архитектурный стиль по каким аспектам является хорошим или плохим!

Welcome!

Сегодня мы рассмотрим SOA и даже сравним его с Monolith-архитектурой!

Читать далее...
Всего голосов 77: ↑76 и ↓1+89
Комментарии50

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность