Pull to refresh
25
0

Software engineer

Send message

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

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

image
Читать дальше →
Total votes 14: ↑8 and ↓6+2
Comments19

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

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


Читать дальше →
Total votes 49: ↑46 and ↓3+43
Comments82

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

Reading time3 min
Views671
Всем доброго времени суток!

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

B-tree

Reading time6 min
Views201K

Введение


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

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

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

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

Information

Rating
Does not participate
Location
Екатеринбург, Свердловская обл., Россия
Date of birth
Registered
Activity