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

Software engineer

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

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

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

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

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

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


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

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

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

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

B-tree

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

Введение


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

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

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

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

Информация

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