Каты программирования 02.02.2016

Каты программирования
С понятием “каты программирования” я познакомился из книг. Как гласит википедия, впервые это понятие использовал Дэйв Томас, соавтор книги “The Progmatic Programmer” (эту книгу я еще не читал, но обязательно собираюсь прочесть). Впоследствие, эту идею за ним подхватили и другие авторы. Но, несмотря на то, что каты программирования упоминались, примеров их использования в книгах не приводилось практически никаких. Так что же такое “каты программирования”?

Если буквально, каты программирования — это упражнения, которые позволят вам стать ниндзя программирования. С одной стороны, довольно очевидное определение, с другой не совсем понятно, какие упражнения нужно выполнять, чтобы стать обычным ниндзя, а ниндзя программирования уж тем более. Итак, если серьезно, то каты программирования — это небольшие упражнения в программировании, призванные держать ваши навыки программиста в тонусе. Для себя я уяснил, что это могут быть:

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

Упражнения, демонстрирующие особенности реализации с использованием конкретного языка программирования. Например, реализация одного из классических паттернов на языке Objective-C или пример реализации классического наследования на языке EcmaScript 3. Регулярное выполнение подобных кат позволит вам не забыть особенности языка даже при отсутствии практики программирования на нем.

Упражнения для освоения одной из практик программирования (например, модульные тесты для класса, реализующего функционал калькулятора).

Каты могут не только помочь отточить навыки, но и проверить их качество — примерами кат могут служить задачи, предлагаемые соискателю на собеседованиях. Помните, как ряд собеседований позволяет освежить в памяти ту или иную тему?

Тему кат программирования я поднял не случайно. Я собираюсь создать собственную коллекцию кат, чтобы самому стать джедаем программирования. Читайте соответствующую тему моего блога и да пребудет с вами сила!

by 02.02.2016