Однажды, сидя ночью за очередным проектом, попивая крепкий чай и слушая фоном приятную музыку. Я стал приходить к мысли, что создавая проект - я играю в шахматы сам с собой. Что казалось может быть общего у программиста и шахматиста, подумаете вы. На самом деле очень многое их объединяет, а в некоторых моментах программирование даже лучше. Начнем с того, что разложим на простые составляющие шахматы и программирование: В шахматах есть фигуры и у каждой фигуры свое назначение. А в программировании есть переменные и функции, только в отличии от шахмат, мы сами назначаем их, и таких "фигур" на нашем поле может быть бесчисленное множество. В шахматах главная задача обыграть соперника, а в программировании главная задача обыграть самого себя (да да, борьба идет с самим собой). Сложнее всегда играть против себя, так как все ходы известны на 100 или даже на 1000 шагов вперёд. Однако преимущество партии в шахматы над разработкой в том, что в среднем партия длится не дольше получаса, а вот