Created at 10pm, Jan 5
furkanSoftware Development
1
The clean coder - Martin, Robert C
UTc8X5tzm_u3GucA0tG-viCb-Ui8UdgWzpsfiR_Nm8o
File Type
PDF
Entry Count
509
Embed. Model
jina_embeddings_v2_base_en
Index Type
hnsw
They called it a Kata and credited Pragmatic Dave Thomas4 with the original idea.5 Since then many programmers have adopted a martial arts metaphor for their practice sessions. The name Coding Dojo6 seems to have stuck. Sometimes a group of programmers will meet and practice together just like martial artists do. At other times, programmers will practice solo, again as martial artists do. About a year ago I was teaching a group of developers in Omaha. At lunch they invited me to join their Coding Dojo. I watched as twenty developers opened their laptops and, keystroke by keystroke, followed along with the leader who was doing The Bowling Game Kata. There are several kinds of activities that take place in a dojo. Here are a few:
id: ad84ff7a0db7a22366e4e1ff39381109 - page: 122
K ATA In martial arts, a kata is a precise set of choreographed movements that simulates one side of a combat. The goal, which is asymptotically approached, is perfection. The artist strives to teach his body to make each movement perfectly and to assemble those movements into fluid enactment. Well-executed kata are beautiful to watch. Beautiful though they are, the purpose of learning a kata is not to perform it on stage. The purpose is to train your mind and body how to react in a particular combat situation. The goal is to make the perfected movements automatic and instinctive so that they are there when you need them. A programming kata is a precise set of choreographed keystrokes and mouse movements that simulates the solving of some programming problem. You arent actually solving the problem because you already know the solution. Rather, you are practicing the movements and decisions involved in solving the problem.
id: b0086e43f7199e45660f012caab08aa0 - page: 123
4. We use the Pragmatic prefix to disambiguate him from Big Dave Thomas from OTI. 5. 6. 90
id: 7d15852c53d66edb6d25501142003765 - page: 123
THE CODING DOJO The asymptote of perfection is once again the goal. You repeat the exercise over and over again to train your brain and fingers how to move and react. As you practice you may discover subtle improvements and efficiencies either in your motions or in the solution itself. Practicing a suite of katas is a good way to learn hot keys and navigation idioms. It is also a good way to learn disciplines such as TDD and CI. But most importantly, it is a good way to drive common problem/solution pairs into your subconscious, so that you simply know how to solve them when facing them in real programming. Like any martial artist, a programmer should know several different kata and practice them regularly so that they dont fade away from memory. Many kata are recorded at Others can be found at Some of my favorites are: The Bowling Game:
id: 3a844ade092cc310cc4c348582eab819 - page: 124
How to Retrieve?
# Search

curl -X POST "https://search.dria.co/hnsw/search" \
-H "x-api-key: <YOUR_API_KEY>" \
-H "Content-Type: application/json" \
-d '{"rerank": true, "top_n": 10, "contract_id": "UTc8X5tzm_u3GucA0tG-viCb-Ui8UdgWzpsfiR_Nm8o", "query": "What is alexanDRIA library?"}'
        
# Query

curl -X POST "https://search.dria.co/hnsw/query" \
-H "x-api-key: <YOUR_API_KEY>" \
-H "Content-Type: application/json" \
-d '{"vector": [0.123, 0.5236], "top_n": 10, "contract_id": "UTc8X5tzm_u3GucA0tG-viCb-Ui8UdgWzpsfiR_Nm8o", "level": 2}'