Bringing Computers, Puzzle-Solvers and Wizards together - The Ninja Pencil
Dec. 2nd, 2012
08:24 am - Bringing Computers, Puzzle-Solvers and Wizards together
Something I’ve been pondering lately is how our species love puzzles of all kinds, (from crosswords to Sudoku, Connect 4, jigsaws, chess, cryptograms, you name it.) But so many of the general populous of puzzle solvers are terrified or oblivious to the fact that learning to write computer programs comes from the exact same place & passion. If you hunger for mental challenges, putting pieces together, figuring your way through a maze or connecting dots for fun, then you could apply this pastime & hunger to something that will have so much leverage in your life, it’s phenomenal. Learning how computers work, and then how to expand this understanding to make them do more, was by far the most powerful thing I ever directed my hunger towards. I went from being terrified of touching Excel (because it did things I didn’t understand) to learning how to get under the hood, break down the walls and limits and make that one program do virtually whatever I wanted it to do. But getting there was just another puzzle and series of basic steps, to which I applied my crossword-brain.
I took some classes and have a ton of books about everything and anything; I learned several languages from C to php to VB to VBA to whatever. But to this day, the most important 2 things in my entire learning arsenal were:
1. A basic class on how computers work, which essentially said: “they are dumb”. They follow steps, and only when told to do so. They don’t make assumptions, and they need explicit instructions, or they can’t do anything.
2. A language-independent class on the fundamentals of programming. It taught me how to drop my assumptions, think in smaller and smaller terms about how things come to be, how to forget what I thought I knew, and then how to reconstruct my knowledge whilst paying attention to the things we tend to overlook, due to their simplicity. “Otto the Robot” was the most important puzzle I ever solved, and this was before I allowed myself to even consider what a development environment was.
When you make a program which automates and simplifies someone’s life, they look at you like you’re an alchemist. You just turned lead into gold, you just wove magic out of thin air. The inevitable next question is: “How can I learn to do THAT?”
The unfortunate answer is, “by becoming obsessed, dedicated, single-minded and applying hundreds and thousands of hours into wanting to do it, never accepting no for an answer, never accepting that something is beyond you, and by so much patience and self-forgiveness that nothing will beat you into submission, no matter how hard it tries.” (We make it look easy so folks often assume it is.)
For the first time in my life, my twisted obsessive personality worked in my favor, because I HATE not knowing things, I hate when something won’t work when it should, and I especially can’t accept this when I know that every single thing is made of a system of steps and checks.
Bottom line: If you like puzzles, then learn how computers work, and apply that passion towards making the world a better and more efficient place.
Contrary to popular belief, there is no magic involved.