I wrote my first database application at 11. I was in the sixth grade, and the homeroom teacher needed a way to calculate the scores of each student fast. He was himself a computer enthusiast, first among a new generation of young teachers in Taiwan in the mid-1980s. The school had an early PC/XT (the Taiwan-made pirate clone, of course) at his disposal, and he knew one of his students had some gift on making computer work. And that seemed to me, as far as I could recall, how the journey began.

Before the teacher used Lotus 1-2-3. If all you needed was quick statistics, simple averages and sorting, that could be the best tool you needed. But Lotus 1-2-3 was not about bulk data entry and processing. The early day version didn’t have good group features (later features like pivot tables solved the problem), and the early version didn’t go with Chinese characters well.

So I wrote a program with dBase III, then the most popular, generic PC database application, and we had run two semesters of scores with it. I heard the teacher continue using it for another few terms, with only minor modifications.

Then for the next two years I wrote another few database applications, all in dBase III and one eventually compiled with Clipper. I can’t recall every one of them, but the list should include a business contact database, a department expense database, and a clinic patient record database. They all come with a visual user interface, form validation and all. The last of them, the clinic’s database, had been put in use for at least 5 years and had kept about 20,000 unique patient’s records, quite a number for a local clinic.

About 20 years later, during a casual talk, mom mentioned this in passing: “I marveled, why were you able to do the programming?”

Honestly I didn’t know and I don’t know.

Should I say it’s in the blood … I still remember the three dBase III books that dad bought for his reference at work, because they started introducing it in their company, and one thing that dBase III was different from similar PC database applications was the programmability, even if it came with crappy language design that was in the middle of no where and performed badly. But it was programmable, malleable and could be bent to the will (slightly) of a 11-year-old. It was magic, among other magical things like MS BASIC, Turbo C and Turbo Pascal.

Only after 20 years am I now finally able to untangle many of the unhappy consequences because of that–being able to do programming at such an early stage in the mid-80′s Taiwan. I mean, come on–it’s not such a phenomenon now, if we hear now in the late 2000′s that your neighbor’s kid knows programming in Python or Process or Mathematica or even in C (I do admit that knowing C deserves more of my amazement though). It’s not even a thing that you tag with the term “whiz kid” anymore.

But I just don’t think that’s what happened to me or to a few kids that I knew personally during that time.

If you knew programming as a kid in Taiwan in the mid-80′s, what was brought out of you could be determined in either of the three family settings. Say you are from a very good family, and your parents and relatives happen to know other people (e.g. university profs) that know what to do with it. Or you are from a rural family where your parents aren’t college-graduated and they have not a clue what you are doing.

I personally prefer the latter–although never is such thing a choice that, in the mid-80′s Taiwan, it was way better if your parents didn’t know the nature of your doings and you were simply left alone. I find–subjectively and biased though–that most people I knew that belonged to that category did the best. Not necessarily in terms of achievement, but in terms of that they later took the path of becoming a programmer or dropped it as some experience (like being able to play guitar or piano, albeit never professionally) and could smile at it.

The former wasn’t that bad either, but not as good as the latter. Chances are you were thought as a kid good at math and sent to the so-called class for the talented students (we have lots of that kind of thing in Taiwan), or if your parents were business-savvy, your software was packaged and sold. And if your parents were really, really business-savvy (that is, unlike many Taiwanese who blow their easy-come fortune), the money earned from your software would be put in trust, invested other things, and you started a software business world from that modest beginning.

Well, if I do the categorization, I’d say my family belonged to the third kind: somewhere in the middle. My parents didn’t really know what to do with it, but being upward mobile middle-middle-class in the mid-80s, they thought–or they took the advice from their peers–they could do something out of it, to the worst combination.

So here’s the ugly thing. My late father used the database software I wrote to try to help his colleagues or superiors. Actually, other than the business contact program which I willingly did for him, the other two apps were results upon his request. Not that he forced me to do it–I did have developed them with pleasure and fun.

The problem was I was paid naught, except for some perfunctory praises. I don’t think he got paid too, in the form of the due value, other than the imaginary “good karma” in the course of career-wise promotion.

20 years later, I have a better idea how much the app probably valued. A PC/XT clone, with 640 KB of RAM and a 20 MB hard disk drive, could cost at today’s equivalent of USD 3,000-4,000, a handsome sum. In the mid-80s the doctors were among the most affluent and most technologically savvy class in Taiwan, and they were indeed among the first to introduce personal computers into their clinics. A well-made database application, I was told only later, could be easily sold at USD 5,000-7,000 alone (again, at today’s value) and there was a demand for such packages–because there weren’t many during that time. This all excluding service (though then a rarely-heard concept), upgrading, maintenance and all.

I did have mentioned this to my dad when he was still alive, and later to mom when she mentioned all this in passing.

I can actually understand why we arrived where we were. Dad conceded that running a software business out of it wasn’t on his mind at all. He was, after all, trying to secure a job and working upwards–even if that meant he had to please his superior with what he had at hands. For example, I still remembered that I was brought to fix one of his boss’s computer at 11pm, reinstalling Windows 3.0 with early-day Excel and DOS-boxed Lotus 1-2-3 and all. I don’t think I was duly appreciated, and neither was my dad.

And mom said, “Son, really, we didn’t know what to do. And you never knew what you’d become even if you had your business plan running. I meant, it was in the 80s, and many whiz kids who earned their fortune did not end up well. Many of them even became lost because of the early fortune and the talent. Ours was not a culture that knew how to treat the precocious gifts well. We’re still learning, son.”

She’s right.

With hindsight, I wasn’t really troubled by all those under-appreciations that had to do with my database app. It was only after when I got into high school was I then told that writing database app was about big money (at least relatively big to a high school kid–you usually didn’t get a good bargaining because people thought it was written by a kid) and this or that senior of ours had made some money out of it. But database app written in dBase III or Clipper or FoxBase (later FoxPro) was despised by peers, because real high school kid learned C++ (then a novelty) and chewed on OOP jargons and boasted their male prowess in assembly language, among many other things (like sports, at which I am eternally awkward).

And then there were other teenage teethings and the troubled youth that I had. Some of them was still caused by the fact that I knew programming, because many teachers thought I should be good at math but I flunked high school math every semester.

I still did quite lot coding, first in C and later in C++, did come up with a few utilities, some half-baked full apps, even a never-finished interpreter of BASIC language with OO add-on’s.

But I was told, sometimes insinuated, that I was simply and totally unfit for computer science even if that was what I wanted to study at first, then even dad opposed vehemently too the idea of doing CS because he associated the study of computer with the drudgery of PC clone sales and probably (this I gathered only years after) the worthless programming–tinkering–that his son had done for his thankless superiors.

And in-between I had read some algorithm and data structure textbooks, read about system software programming and operating systems, computer graphics and software engineering, even some introduction to compiler implementation in C, some by myself, some with the help from a kind senior or teacher. I must have had glimpses of most parts of sophomore or even junior CS classes, but probably didn’t know when I read them, and throughout wished I had attended a vocational school (which my parents looked down upon, but I really fantasized countless times), because then I could have become more craftsman-like without the need to pass the math, which I flunked, six semesters straight, and being told that as a general high-school student, I was not fit for something I was simply able to do.

I finally gave up programming in 1995 after having finished my first year at college–I then majored in geography–and having passed calculus with passable grades (which healed my trauma about high school math). I did find some new passion in human languages and applied for transfer to do foreign langs. Probably once again without much bitterness just as I didn’t think too much about those database apps. But I did have thought that probably I would never do programming again. I did have closed the books, literally, by throwing or giving away every computer textbook that I had possessed before I was 18.

Thirteen years later, and after having run for the first one year my own software company with client projects and our own products humming, and as we have a modest beginning, and as I didn’t thought much about the efforts in doing the actual coding work and as mom mentioned in passing her surprise at how I came back, continuing the journey from where I dropped, and I thought, that dad would be proud, and that I have found something back, after all those years on the long and winding road.