What is Dogsport?
When I refer to "dogsport," I'm personally referring to IGP, as that is the sport in which I've been immersed for a few years now. (I'll explain what that means in just a minute.) But in a general sense, dogsport is simply a system of training your dog well enough to pass a given test. Many different varieties of dogsports exist, but I think currently the most commonly known in America may be Agility, as seen on the Westminster Dog Show every year, with the AKC's Rally Obedience or the Canine Good Citizen test coming in a close second.
To explain the sport my dog and I participate in, I have to go into a little bit of dog history. In early 20th Century Germany, the German Shepherd Dog breed was invented and finalized by Max von Stephanitz along with the breed's first official Breed Standard, or the official specifications for the breed's proper physical and temperamental qualities. Along with this, though, he created a Breeding Suitability Test, comprised of three separate phases of competition (Tracking, Obedience, and Protection phases, namely,) and preceded by a separate temperament test. The main reason was to make it easier on responsible breeders to have a measurable way to preserve the breed according to his specifications, and keep the dogs consistently producing level-headed working progeny. Von Stephanitz's hope was that only the dogs who passed all phases of the Breeding Suitability Test with confidence and a stable temperament would be deemed suitable for breeding, in order to weed out those who were either unstable or untrainable and ultimately keep all future German Shepherd Dogs true to the breed. This test was called Schutzhund, (German for Protection Dog.)
Tug with my boy Tanto, 2018
Schutzhund is still practiced around the world today and is still used as the standard by which dogs are judged among responsible breeders and enthusiasts. Passing the Schutzhund test is called “titling,” and while the breeders that participate in the sport among the breed enthusiasts/responsible breeders do so to show their dogs’ capabilities as a way of holding themselves and their breeding stock accountable, some enthusiasts like myself partake in the training just as a way of forming a relationship with their dog, and as a hobby their dog can enjoy with them! These dogs are bred for this work, and they enjoy working to please their handlers and satisfy the drives present through their genetics. In recent years, the official Breed Club in Germany has changed the sport’s name to IPO, (Internationale Prüfungs-Ordnung, German for "International Exam Rules,") and then most recently they changed it again to IGP, (Internationale Gebrauchshund Pruefung, German for "International Working Dog Exam.")
This is a severely simplified explanation of the sport & how it came about, etc., so for those who want to learn more about it from the official page (because I find the subject utterly fascinating,) here you go.
Brett & Malinda Weber, mentors & friends of mine. Both Hera (pictured^) and Tanto come from their selective working-dog breeding program.
So How in the World Does This Relate to Coding?
Every interaction with a dog is a form of training, especially when that dog possesses the drives & intelligence levels of the working German Shepherd Dog breed. Even with this in mind, countless hours go into each little aspect of what it takes to train these dogs to do even the simplest task and, even with an experienced trainer/handler, many times the dogs aren't even ready to attempt the temperament test until two years of age or older.
Preparation for any level of the Schutzhund test (and even the preliminary temperament test) involves forming a detailed mental picture of how you want something to look when you actively compete in the future, and *then* reverse-engineering how to communicate each tiny detail of what you want to an animal whose brain literally doesn't understand what "words" are. Making that mental picture a reality and tackling the obstacles along the way awakens a certain problem-solving skill that I'm now learning is also imperative in communicating with a computer via coding. To paraphrase something I've heard countless times from one of my favorite training role models, Dave Kroyer: *If my dog fails, all it means is that I've failed. It's not on the dog. Dogs can only know what we teach them, and if my dog disobeys me, it means there is some inconsistency in my training. That's all it means. Fix the training and eventually you will fix the behavior.*
Malinda and Warrior (Tanto's Mom!) practicing their competition heel
As I'm sure many on this site can attest, the same principle applies with computers as it relates to writing/executing code. Computers can only do what we give them accurate, detailed instructions to do, and even then it will only work if certain conditions are followed. It's not complicated; in a way it's almost *too* simple. We as humans tend to be slow and dumb and conditional in our learning, whereas computers are quick and literal. Same with dogs, a lot of the time.
Before I began actually training my puppy two years ago, I'd been attending a weekly dog training club to learn from experienced handlers every weekend for 12 months prior to bringing him home. This is not common, as a majority of people new to dogsport begin the process of researching the different sports and looking for clubs to visit *after* they have the dog. I'm still very much the new kid when it comes to training, (I know people who have been doing sport for over 30 years, and most of them still aren't "experts" on the subject, nor do they claim to be,) but the point is-- I jumped in headfirst from the beginning, and I quickly found out just HOW much I didn't know about training, even with the extra year I'd given myself to ask questions, take notes (often literally,) and really just immerse myself in the culture. I've been told that working as a programmer is a constant regeneration of that feeling-- I'll call it a "Clueless but Capable" feeling. I loved how that first club I went to reassured me that, not only was this feeling normal, but it was actually encouraged, and through that common ground they made me feel truly accepted & understood. To quote the club's training director at the time, "If you don't feel stupid on the field with your dog, you're doing it wrong. Accept that you will feel like a failure; just go ahead and expect it. Know that that's a necessary part of learning how to do this. You will mess up. Accept it. That's where learning takes place."
How The Two Connected For Me
It is completely normal when training a dog, (especially when training for sport due to the higher expectations,) to occasionally think, "Why did I ever think I could do this? I've bitten off more than I can chew, this dog deserves a better handler, I'm the absolute worst and I'm holding him back, this was a bad decision," thoughts...
(Okay, it might be more routine than occasional. Whatever.)
But recently, someone asked my coding mentor what an average day on the job looked like for her, behind the scenes. I don't know what I expected her reply to consist of, exactly, but it really encouraged me when she mentioned that exact feeling and continued with, "...And then you take a break, come back to your screen, keep plugging along and tinkering with it... Eventually you figure out where your code failed, you realize it was a stupid mistake, that you forgot to close an anchor element or something, and then you correct your mistake and your website works and you go, *'I'M A GENIUS!!!'* And you remember it's not the end of the world, and you remember why you do this: Because it's a constant challenge and it's honestly pretty fun." That's honestly when I knew coding was for me.