## How can we have free electricity?

I was travelling on the bus. My thoughts were flying around doing their flights of imagination. “It would be wonderful to have electricity available everywhere.” Then came “It would be even more wonderful if it’s free. Or at least cheap.”

Then I wondered, “How can we have free electricity?”

“We would need something to generate it.” And my next immediate thought was “A dynamo!” I was remembering my physics lessons long ago, when we were playing with magnets. One of the interesting things I remembered was a spinning magnet as part of a dynamo to generate electricity.

So, we need an easy way to do rotation, preferably on a big scale. And the biggest thing that rotates? Earth.

I was thinking of building some structure to house some magnetic material along the equator. Earth is spinning at about 465 metres per second. That should count for something. As the Earth rotates, that structure “rubs” another supporting structure above it, using the theory of the dynamo, we’ll get electricity!

I don’t even know if the theory behind it is sound. Assuming it is, what’s going to hold the upper structure? It can’t be supported by the Earth, because that would defeat the purpose, since it will spin along too. Then came my next breakthrough.

Supporting structures in space.

There will be satellites holding up the structure. I thought of having just one single structure, but the mechanics of holding it steady might be tough. Have you ever played that game where you have to hold a rod of metal with a loop, and slowly pass it through a maze of metal wires without touching the wires? You need steady hands.

Ok, that drawing was bad… I hope you get the idea.

Anyway, several separate satellites to hold up the structure might be better. Now that I look at the diagram carefully, I’m not even sure if the structure would hold up… perhaps some super light material…

Assuming this works out fine, I imagine physicists (theory), engineers (building it), mathematicians (calculations) and other scientists would be involved. Programmers too, for the software used to run the satellites and the structure. Biologists too, for the effects of such a large scale of electromagnetic energy on living things near the equator. Particularly the marine biologists, since most of the structure is over the ocean.

Alright, fine. It’s probably not going to work. I’m just saying, what if it works? What if we can get cheap, even free electricity generated this way? What if you can come up with some other way?

What if…

## Flights of fantasy and realms of reality

Imagination is more important than knowledge
– Albert Einstein

During a stint some time back, I casually asked a co-worker what he thought of “Charmed”, the television series. I had to explain the concept of magic and witches to him. In the end, he said he’d much rather watch or read fictional stories based on real life, like law or police work. I couldn’t get through to him about the joys of simply asking “What if?”.

“What if you could fly?”
“What if you could stop time?”
“What if you could move objects with your mind?”

What if.

I’m going to give 2 extremely broad generalisations. Here are my observations. Asians (or maybe just Chinese) in general, are less daring to try new things. The general advice is to be realistic, more down-to-earth. Once in a while, a small spark of innovation occurs, possibly out of sheer luck, and progress is made. This probably don’t match the Asia today.

The Western world seems more willing to reach for the sky, indeed, for outer space. Leaps of faith, jumps in industrial progress and quantum bounds in science and technology.

Like I said, those are very broad generalisations. I admit that I’m a little sheltered here in Singapore, so the situation east and west of my longitude may not be as what I perceive them to be. So here’s what I do know. The education system in my country consistently churns out good students, even outperforming American students.

The thing is, parents here are, shall we say, extremely concerned about their children’s education and future. I’m actually appalled at the activities a typical 8 year old goes through. Aside from school, there’s extra tuition and lessons for English, math, Chinese, science, ballet, swimming, music and even brain development courses (I think it’s Montesorri or something). Where’s the time for fun? I’m not sure what happens in your country, but that’s what’s happening here in Singapore.

Yet we don’t have Nobel prize winners. I read in another report (can’t find the reference) an observation. The Asian countries have, on average, better students. But the Western countries, particularly America, have on occasion, brilliant students. The really bad and the really good live near each other, like some cosmic balance act.

Where am I going with this? I believe the key is imagination. My countrymen may be better at math and science on average, but the Americans landed on the moon.

So, now, finally, bringing it back to something relevant. Programming is an act of creation, of imagination. Maintaining existing code requires you to imagine yourself in the shoes of the programmers who wrote that. Writing new code requires you to imagine how the finished program is going to look like.

If you keep sticking to what’s done before, then that’s what you’ll get. More of the same. But if you indulge in your flights of fantasy, of imagining the possibilities, of trying something else, then maybe, just maybe, you’ll get something different, something awesome.

## Path of a Polymath Programmer Part 1

What is a polymath programmer? First, you need to know Merriam-Webster’s definition of a polymath, who is

a person of encyclopedic learning

Wikipedia says a polymath

may be a person who knows a great deal about several fields of study, a person who has proficiency and competence in multiple fields, or even a person who has excelled in multiple fields.

And to answer the very first question:

A polymath programmer is a person who has proficiency and competence in many programming related activities or tasks. More importantly, a polymath programmer can apply knowledge and expertise from non-programming fields to programming.

After reading the above definitions, your first thought might be, “Oh, a jack of all trades”, followed by “and a master of none”. There’s actually a third line to the phrase, and is particularly important to programming.

And a master of none
Though ofttimes better than master of one

In fact, being a master of only one programming skill will get you fired faster than you can say “Sacrebleu“. Technology moves fast, and by the time you understand a new language or technique or concept, another one is invented. If you can’t keep up, you’ll be left behind. Doing one thing well isn’t enough anymore. And this is particularly true in our programming field.

What you need is a broad and stable base of knowledge and skills to support you when you travel the shifting sands of the IT landscape. This base of knowledge must be relatively impervious to change, so you need minimal learning time when a new change is invented. And this is why a polymath programmer will thrive, while the average programmer strives to survive.

So how do you become a polymath programmer? I don’t believe there’s one true path to becoming one, but I can guess. Let me start by asking a question. Have you noticed how some physicists and mathematicians make better programmers? They aren’t any better at programming than regular programmers. In fact, some mathematicians write code that’s an abomination to even look at.

So what’s the secret? They can think. And they have an insatiable curiosity about the world around them, whether it’s related to their field of study or not.

Now let me tell you my journey of becoming a polymath programmer. I have to tell you that it didn’t happen overnight. In fact, it took years. And I didn’t even realise I was slowly becoming one.

It started when I was maybe 9 years old. I remember learning and memorising the multiplication tables. I also learned to play chess, Chinese chess and checkers.

I read voraciously. I adventured with Tin Tin, met characters of Enid Blyton, sleuthed with the Hardy Boys and solved mysteries with Encyclopedia Brown. My parents bought me an encyclopedia set, and hours passed by as I browsed through the books, particularly the ones on science and mathematics. The Norse and Greek gods also provided me with tons of legends about heroes and villains.

I also remember this fascinating story explaining why the earth was bountiful for about 6 months only, because Persephone ate 6 pomegranate seeds given by Hades, so she’s forced to stay in the underworld for 6 months. Persephone’s mother, Demeter, the goddess controlling seasons, wept whenever her daughter went underground, and thus the unfruitful and harsh seasons of fall and winter.

Great, but what does all this mean for you? It fires up the imagination, and as Albert Einstein says, “Imagination is more important than knowledge“. You’ve got to be able to imagine and visualise a problem before you could solve it. Then you’ve got to imagine and visualise a solution before you could distill it into programming logic, and subsequently into code.

Then came the part that might interest you more. I got a toy computer. Yes, it was a toy, because my parents bought it from Toys R Us. The other programmer geniuses I read about usually had some ancient artifact of a computer like an XT86 or something. I still got an XT86, but that was later on.

Oh yes, back to my toy computer. It had the standard keyboard. No mouse. And a one line output screen. No graphics. Its play functions included

• questions and answers about general knowledge, math and science (amongst others)
• games like hangman
• typing practice

And the most significant one of all? It included a BASIC compiler! Not that I knew what a compiler was then. I was just ecstatic that I could print a “Hello World!“. I pored over the instruction manual, learning all the BASIC commands listed. I learned the concept of commenting by starting a line of code with REM. I learned that numbering the lines of code makes the code run in sequential order. I questioned the practice of numbering in multiples of ten, even though BASIC code ran perfectly fine so long as the numbers were in increasing order.

Then something happened that jump-started my learning process. There was a book fair in my school, and as I browsed through the offerings, I found and bought two distinct sets of books. The first set included 3 (I think) books called Dragon Warriors, a series of role playing games (RPG) with instructions on playing and game mastering. The second set included a few books from the micro adventure series, where you play Orion, an adolescent secret spy whose area of expertise was programming!

How did those two sets of books propel me towards being a polymath programmer? I’ll tell you more in the next part of this series of posts. … Alright, fine, I’ll give you a preview. Both sets of books wove story plots, game problem mechanics and code tuning/tinkering together.

See you on our path to becoming polymath programmers!

Continue to part 2