So I talked about how I started on my path to becoming a polymath programmer, and ended with an introduction to two book series on role playing games and a computer programming super spy. We’ll see how they played an integral part in my development.
Role playing games
Dragon Warriors was my first experience with role playing games. A role playing game is a game where you act out a (fictional) character in a script or story. You can be a knight in shining armour, or a dastardly devious crime lord. You can be a floundering wizard apprentice, or an imposing space fleet commander.
There are real life role playing games, where actors and actresses play out their imagined characters, with full decorative settings and costumes. I’m referring to the pencil and paper variety, alongside Dungeons and Dragons and Blood Sword series. They are known as pencil and paper, because the statistics of the characters are recorded on paper using pencils. Statistics change frequently, so writing down values and then erasing them is common. The players still act out their roles, but only for dialogue, and they usually gather around a table with their stats sheets in front of them.
Recording character statistics (or stats) is a way of measuring progress in a game campaign. Typical stats to note are strength, speed and intelligence. These stats are used to determine the damage inflicted, reaction time in maybe dodging. You also note down possessions like weapons, armour and special items. Possibly relationships with other players, the character’s beliefs and lineage as well. Basically, you are charting down as complete a life story of a fictional person as possible, within the context of the game genre.
Thus I got introduced to the concept of storing values that can change frequently. In programming, they’re called variables. Mind you, I still don’t know programming. It’s the concept that matters.
Dice, statistics and 3D
Then there were dice. I’ve used the 4-, 6-, 8-, 10- and 12-sided dice. How do you get a value between 3 and 18? Oh, use 3 6-sided dice. What’s the difference between using 2 4-sided dice and just one 8-sided dice? 2 4-sided dice skews the results to the middle, while an 8-sided dice gives results of equal probability. Thus my introduction to simple math statistics theory and 3 dimensional geometry. The 12-sided dice boggled my mind…
Unlimited powered fettered by only by limited imagination
I also game mastered for my friends. A game master (or dungeon master) is the person who knows and controls everything about the game. I would play every single character in the story not played by anyone (NPCs or non-player characters), every monster they met, choreograph every battle, settle any unforeseen circumstance (like what to do if my friend “dies” but the others are still in). I can throw freak storms in, and see how the players react.
This omniscient and omnipotent ability might sound cool, but it’s very tough. Try keeping track of basilisk killing properties, beautiful enchantress back stories and making judgement calls for everything, all in your head. All at once.
Then you’ve got to remember any rules specific to the game, but is hard to imagine in our real world. How do you handle weak gravity movement? Can magical fire burn on water? While astral projecting, can the person get hurt? Can zero point energy be pinpointed at one specific area? What would happen if a dagger is fitted to a piece of wood, and fired from a bow in place of an arrow?
So you’ve got to keep tons of stuff in your brain RAM, and take note of special rules. Sounds like loading a program in your head with business rules thrown in to me. Games mastering taught me people management skills, adaptability and coming up with creative solutions to non-standard problems, much like software management.
Introduction to programming
The other set of books is about this adolescent computer expert slash spy codenamed Orion, working in a secret government agency. In his adventures, there’d be situations where his programming skills come into play, and a program code would be given. There are about 5 to 7 programs included in each book.
The books start with Orion in some fairly normal setting, like in school, and he’d be handed some obscure piece of information. He’d then type in a program and using that piece of information, work out his next mission. And this first program involves encryption and decryption like substitution ciphers and ASCII value/number transformations (65 represents capital A).
Then there’d be programs you can play with, like the one on Nim, where you play against a computer enhanced human in the story. The odds were against you, but if you can find the place in code where your disadvantage lay and change the line of code, you stand a chance… Or you’d be desperately keying in the program code, and then entering the atmospheric levels of gases to determine toxicity. Though you’re safe, Orion isn’t, because he’s allergic to certain inert gases.
Since I only had a toy computer then, I couldn’t play with a lot of the programs listed. And my toy computer’s BASIC compiler is limited in some ways. Still, I got a kick out of reading the program listing, and guessing what ASC (change to ASCII value) or MID (middle of string, the substring function in BASIC) means.
Executing programs in your head
For these short programs, I found that I could “run” them in my head. There’s this program for calculating the precise angle to tilt a mirror so a laser beam is directed correctly. I didn’t even have to try out the program. Reading through the source code, I did some math, and came up with the answer (45 degrees).
What is interesting about Orion’s adventures, is the variety of situations where his programming expertise was put to the test. The code word programs taught basic encryption and decryption. The Nim program taught simple game mechanics and how to code them. The atmospheric gas and laser beam angle programs transformed math calculations into program code.
This kind of exposure is crucial. Business rules change. Science and technology changes. The ability to understand new concepts quickly and transform them into usable program code is far better than rote understanding of standard problems and their solutions. Building upon previous knowledge is important. Sometimes, quantum leaps in knowledge serves better, and quantum leaps come from that “Eureka” moment from many sources.
So, what’s next?
I’ve told you the impact role playing games and early program code introduction had on me. In the next part of this series, I’ll talk about typewriters, juxtaposition and the must-have story of how I got my first XT86 computer.
To becoming polymath programmers!