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

Software engineer

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

Спринт или Марафон?

Время на прочтение 6 мин
Количество просмотров 5.5K
Думаю, большинству знакомы различные методологии, которые описывают как можно структурировать процесс разработки, как можно стабилизировать качество продукта или как можно достигать запланированного результата в ожидаемые сроки. И, конечно, всем знакомы agile, scrum, спринты и прочие магические слова, которые повышают продуктивность на 20% сразу после произнесения их на важной встрече. Данная заметка совсем не раскрывает данных понятий (есть масса других статей с определениями, правилами внедрения, а также десятки курсов от различных тренеров), она даже не дает ответа на вопрос «что делать?». Она всего лишь затрагивает некоторую экзистенциальную проблему введения спринтов, и почему это не всегда работает (или всегда не работает).

image
Читать дальше →
Всего голосов 14: ↑8 и ↓6 +2
Комментарии 19

Еще одна история удаленщика

Время на прочтение 6 мин
Количество просмотров 34K
На Хабре несметное количество статей про удаленную работу. Истории из жизни, демонстрации успехов/неудач в этом нелегком деле. Но несмотря на это, постоянно продолжаю натыкаться на то, что люди путают удаленную работу с фрилансом. Читая очередную статью по этой теме, я понял, что ждать больше нельзя, в интернете кто-то не прав и надо срочно максимально просто изложить свой опыт по данному вопросу, чтобы впоследствии фраза «удаленная работа» не порождала у людей в голове ассоциацию «фриланс».


Читать дальше →
Всего голосов 49: ↑46 и ↓3 +43
Комментарии 82

Как можно узнать больше, или Почему я буду участвовать в школе CSEDays

Время на прочтение 3 мин
Количество просмотров 663
Всем доброго времени суток!

Как и многие из вас, я занимаюсь программированием и исследованиями в области Computer Science. И примерно год назад, пришло осознание того, что знаний, получаемых в вузе на обычных лекциях не достаточно. А прочтение умных книжек не всегда дает полное представление о конкретной тематике. Постараюсь описать более конкретно проблему и способы ее решения.
Читать дальше →
Всего голосов 18: ↑12 и ↓6 +6
Комментарии 0

B-tree

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

Введение


Деревья представляют собой структуры данных, в которых реализованы операции над динамическими множествами. Из таких операций хотелось бы выделить — поиск элемента, поиск минимального (максимального) элемента, вставка, удаление, переход к родителю, переход к ребенку. Таким образом, дерево может использоваться и как обыкновенный словарь, и как очередь с приоритетами.

Основные операции в деревьях выполняются за время пропорциональное его высоте. Сбалансированные деревья минимизируют свою высоту (к примеру, высота бинарного сбалансированного дерева с n узлами равна log n). Большинство знакомо с такими сбалансированными деревьями, как «красно-черное дерево», «AVL-дерево», «Декартово дерево», поэтому не будем углубляться.

В чем же проблема этих стандартных деревьев поиска? Рассмотрим огромную базу данных, представленную в виде одного из упомянутых деревьев. Очевидно, что мы не можем хранить всё это дерево в оперативной памяти => в ней храним лишь часть информации, остальное же хранится на стороннем носителе (допустим, на жестком диске, скорость доступа к которому гораздо медленнее). Такие деревья как красно-черное или Декартово будут требовать от нас log n обращений к стороннему носителю. При больших n это очень много. Как раз эту проблему и призваны решить B-деревья!

B-деревья также представляют собой сбалансированные деревья, поэтому время выполнения стандартных операций в них пропорционально высоте. Но, в отличие от остальных деревьев, они созданы специально для эффективной работы с дисковой памятью (в предыдущем примере – сторонним носителем), а точнее — они минимизируют обращения типа ввода-вывода.
Читать дальше →
Всего голосов 82: ↑75 и ↓7 +68
Комментарии 32

Информация

В рейтинге
Не участвует
Откуда
Екатеринбург, Свердловская обл., Россия
Дата рождения
Зарегистрирован
Активность