Вы можете быть ниндзя?
После многих лет работы в разных компаниях над различными приложениями, я видел много методов, которые утверждают, что помогают разработчикам улучшить свои навыки программирования. К сожалению, только немногие действительно помогли мне, не только улучшая себя, но и обучая других.
Некоторые из вас могут знать Дейва Томаса или, по крайней мере, слышать о концепции «СУХОЙ» («Не повторяй себя») или других концепциях, которые он придумал. Он программист и автор / редактор. Одна из его самых известных книг — «Прагматичный программист» , книга о программной инженерии, опубликованная в 1999 году.
Когда началось расширение Ruby, Дейв Томас стал одним из его крупнейших евангелистов, он много писал о философии и рыночном контексте, лежащем в основе происхождения Ruby и Rails. В результате он узнал много нового о гибких методах и концепциях. Именно здесь он придумал термин Code Katas как метод обучения и начал распространять его.
Катас из боевых искусств
Термин Ката изначально происходит от боевых искусств: это японский перевод формы слова. Ката используется для описания подробных, хореографических моделей движения, которые можно практиковать как в одиночку, так и в парах.
Он может описывать другие действия в боевых искусствах, как вы можете видеть в Википедии , такие как тренировки, высоко детализированные симулированные бои и другие.
Изначально ката были методами обучения и тренировок, с помощью которых успешные боевые приемы сохранялись и передавались. Практика ката позволила компании людей участвовать в борьбе, используя систематический подход, а не как личность в беспорядочной манере.
Основная цель использования Katas в боевых искусствах — передача проверенных приемов и их повторное использование. Это приводит к тому, что ученик развивает способность выполнять эти техники и движения естественным, рефлекторно-подобным образом. Чтобы достичь этой цели, ключ состоит не в том, чтобы делать это систематически, а в том, чтобы интернализировать движения и технику, чтобы вы могли адаптировать эти техники к различным потребностям.
практикующий
Практика как метод обучения вездесуща. Мы видим это во многих областях, не только в боевых искусствах:
- Игра на музыкальном инструменте
- Улучшение спортивных результатов
- Подготовка к публичному выступлению
- Улучшение грамматики и правописания
Это уже зарекомендовало себя как фундаментальный метод обучения. Конечно, это зависит от многих факторов, но при правильном руководстве и самоотдаче вы сможете овладеть многими вещами на практике. Это утверждение является основой того, что называется процедурной памятью .
Процедурная память
Процедурная память — это тип долговременной памяти, в частности, это тип неявной памяти, которую можно использовать для процедурного обучения . Это достигается путем повторения той же сложной задачи, что приводит к улучшению нейронных систем, используемых для выполнения этой задачи.
Психологи начали писать о процедурной памяти более века назад. Впервые он был отмечен в 1804 году Мэн де Биран . После долгих исследований было доказано, что простое повторение задачи не гарантирует приобретение навыка. Поведение должно измениться в результате повторения. Если наблюдается изменение поведения, то вы можете утверждать, что приобрели новый навык.
Код Катас
Как
Дейв Томас пришел к выводу, что Katas можно использовать как метод обучения в программировании. Подход действительно прост: кодовое ката — это простая проблема кодирования, предназначенная для легкого решения, которую вы решаете снова и снова, повторяя до совершенства. Идея состоит в том, чтобы помочь вам лучше решать проблему каждый раз, когда вы пытаетесь, а ваше подсознание изучает подробные пары проблем / решений, которые могут помочь вам в других проблемах. Вы даже можете сделать это, бросив себе вызов с ограничениями, такими как использование языка, отличного от того, который вы используете ежедневно.
Как не катаюсь
Многие считают, что Code Katas — это решение одной и той же проблемы одним и тем же способом. Это приведет вас к тому, что вы ничего не узнаете, а только научитесь использовать ярлыки в вашей среде IDE. Как я уже говорил о процедурной памяти:
… простое повторение задания не гарантирует приобретения навыка. Поведение должно измениться в результате повторения.
Как говорит Джон Сонмез в этом блоге :
точно так же, как прогулка каждый день не делает вас мастером, а ежедневное вождение автомобиля не делает вас превосходным водителем, так как решение одних и тех же проблем программирования снова и снова не сделает вас главным программистом.
…
Повторяя одно и то же снова и снова без увеличения уровня сложности, на самом деле ум становится довольным этой деятельностью.
Если вы хотите использовать Code Katas , это должно быть сложно, поскольку ходьба была, когда вы были еще ребенком, как вождение было, когда вы были еще подростком. Повторение не поможет вам, если ваш мозг не задействован.
Вы должны бросить вызов своему мозгу, чтобы вы могли тренировать свои нервные пути и создавать новые. Написание одного и того же кода снова и снова в вашей IDE только сделает вас более комфортным.
Где его найти
К сожалению, оригинальный сайт Code Katas, созданный Дэйвом Томасом, находится в автономном режиме, но есть множество других сайтов с кодами, задачами и информацией. Как разработчик Ruby я бы порекомендовал:
- CodeKatas.org — Codekatas.org предназначен для тех, кто ищет Code Katas, независимо от того, хотите ли вы посмотреть, как кто-то другой играет, или начать практиковать себя.
- Coders Dojo — большой список катов на многих языках. У него также есть веб-клиент на Ruby для выполнения катов в Интернете, а также множество примеров в их каталоге.
Учусь
Многие люди спрашивают меня, как они могут научиться разрабатывать приложения для iOS, приложения для Android, одностраничные приложения или любые другие технологии, связанные с программированием. Ответ прост: сделать эти приложения .
«Но какой пост или книгу я должен прочитать о создании этих приложений?» Забудьте пока о книгах: просто начните описывать свою идею на бумаге и начните процесс разработки. Учись и делай одновременно.
Поднимая планку
Реальность такова, что нет серебряной пули. Но есть много методов, и если вы действительно хотите улучшить свои навыки программирования, Code Katas — один из тех методов. Вам не нужно в нее влюбляться, просто дайте ей шанс.
Правда в том, что если вы хотите другого результата, вы должны что-то изменить.