Real money, RPG money
I’m careful with the way I use my money. Once in a while, I splurge a little, maybe a book as a reward. I’m moderately thrifty and have a balanced lifestyle.
All this goes out the window when I play a role playing game.
In a computer/console RPG, I take unimaginably stupid risks. If there’s a piece of armour priced at 2000G (gold pieces), and I had 1950G, I’d go out there and kill a few more monsters to gain the remaining 50G. Even if all my magic were depleted. Even if my healing potions were low on supply. Even if my characters were practically dying. If there’s a better than 50% chance I’ll survive another battle, I’d do it.
If a night’s stay at an inn costs 150G, and my characters are like 70% healthy, I’d skip the inn. Even if I hadn’t rested for like 4 virtual days.
Sometimes, I’d go into an item store and buy 20 herbs (replenish stock), 30 antidotes (next boss specialises in poison attacks), 20 ice crystals (next area monsters vulnerable to cold) and a dozen odds and ends. Then I left the store with zero money. Every single gold piece I had was used up. No savings, no bank, no backup.
Then I’d realise my characters weren’t fully rested. It would be a waste of herbs and potions to restore them to full health. Better to rest at an inn. Oh right, no money. Off to slaughter a few more monsters and earn just enough gold to rest at the inn. Then off to the next adventure.
I would hoard money obsessively to buy some high priced weapon while in virtual mortal danger. I would also spend everything to buy and restock items, to the point of ignoring virtual personal safety. I just don’t handle money in RPGs the way I do in the real world.
There’s no real point I’m trying to make. Just wanted to write about this observation…
Be flexible like bamboo
This is another lesson I learned from a comic book (man, that artist had deep meaningful ideas!). I actually wrote about the hero from that comic book in another article. Yes, it’s amazing what I can learn from comics and adapt them to programming. *smile*
Retreat at Bamboo Grove
Swinging his staff just short of his sparring partner’s head, Chen Min breathed a sigh of triumph. He had just picked up the skills in wielding the staff, his callused hands the result of training with the wooden stick. There’s the exhilaration of winning and being better than his other fellow students. And he hadn’t trained with them for very long.
Chen Min’s master sensed a growing arrogance, and asked another student to spar with Chen Min. That student was tall, large, and looked menacing enough without a staff as a weapon. The fight was short. Despite Chen Min’s agility, he was forced into defeat by the sheer strength and power of his opponent.
The master, watching Chen Min’s fallen expression, sent him to meditate in the Bamboo Grove.

image by Robert Churchill
And that’s how Chen Min came to be on the porch of a small building surrounded by bamboo. A small pond was in front of the building. Soft breezes whispered across the water, creating small ripples and waves. Tree leaves rustled. Bamboo shoots swayed. Birds sang. And it’s been like that for 3 days.
Chen Min’s been meditating on why the master sent him here. And why he lost that fight. Just when he’s getting frustrated, the sky darkened. Clouds closed ranks, and the wind picked up speed. Lightning flashed and the first sheet of rain fell.
Chen Min was getting to his feet to retreat back into the building when he thought of his master. He was sent there to learn something. And he’s not giving up because of some drizzle. He’s still moderately sheltered from the storm, so he sat resolutely on the porch.
The winds howled and the rain pelted everything. Chen Min was startled by the ferocity of the storm, and was beginning to question his decision when there was a crash. He turned towards the direction of the crash and saw that a tree was felled. By the wind.
He was preparing to scramble back into the safety of the building when his eyes focused on the bamboo around the fallen tree. The bamboo bent under the strength of the wind. And bent. And bent. The wind abated for a while and the bamboo sprang back into place. The wind resumed blowing with renewed energy. And the bamboo continued to bend in the wind’s direction.
Chen Min realised that even though the tree was sturdier than bamboo, going head-on with the wind ultimately decided its fate. The bamboo on the other hand, gave way to the wind, and survived the wind’s onslaught.
The torrent of rain weakened. The wind lost heart. And the clouds opened up to let the sun in. Soon, the pond was still again, with an occasional ripple travelling across the surface. The storm had disappeared.
Chen Min stood up and stretched. He breathed in the fresh clear air and felt excited again. He felt this was the lesson, and he was ready to go back to his master again.
Handling ambiguity and unknown
Some people think putting off a decision makes them look weak and indecisive. That’s nonsense. Making a decision without enough consideration is worse than not making a decision. And if you’re the philosophical type, deciding to wait and think through is also a decision.
For simple and familiar programming tasks, you can certainly decide what to do and how to proceed immediately. For more complex tasks, it’s ok to give yourself time to think and plan. Give yourself permission to think and plan. You don’t have to react immediately.
Be flexible like the bamboo (not too much though). Give way to the task and requirements first, letting them wash over you, while you decide how best to tackle them. Once you get over the shock of what you need to do, spring back into balance and unleash your solution.
It comes down to how much you can handle ambiguity and the unknown. How long can you stand not knowing what to do? When you’re struggling to come up with answers, your brain starts throwing ideas at you. The first one might be good or it might not. Some might be useless. Some ideas have possibilities for further investigation.
Once you gather enough ideas, the fog of ambiguity lifts. You feel better able to tackle the tasks and requirements. This feeling of clarity is stronger than the feeling you get from reactionary solutions. Because you’ve thought through the situation and came up with a solution (possibly several), despite the fact that you knew very little about the problem at hand from the start.
How to prioritise your tasks
I follow just one simple rule. This rule comes from the culmination of 3 job changes, more than 5 years of experience in programming, administration, technical assistance and interactions with users and peers. And it goes something like this:
Given similar levels of urgency, first do that task which has the most number of people irritating you.
Feel free to substitute “irritating” with “bothering”, “unhappy with” or “angry with”.
What a young king taught me
Garion was a nice young man, raised as a peasant boy in a farm. He’s polite and modest, had a good sense of what’s right and had great friends. He’s also destined to be the king of an island, protected by powerful friends, and guardian of a precious orb. (find out more from the Belgariad series by David Eddings).
I’m going to skip the part about how he grew from just a simple peasant boy to overlord of the western seas. Now, as a king, he knew it would be very hard to get feedback from his people. Just his title alone scares the living daylights out of the lords and ladies, let alone his people.
So what he did was to have a confidant who’s among his people. I wouldn’t call the confidant a spy, and even if you think it is, I’d advise you not to say it to Garion’s face. He could do a lot of damage even if he’s only mildly irritated.
So, this confidant was a glass blower in town. Every once in a while, Garion would make some excuse about needing to buy some glass ware and go meet this glass blower. Then he’d talk with the glass blower and get some idea of what his people were doing or saying. This way, he’d be able to improve the situation. Coming from a peasant background, Garion really didn’t know how to run a kingdom, so he desperately needed feedback on how his laws and actions affected the common folks.
So, there’s this one time where the glass blower mentioned about a particular tax law which made taxes too high for the commoners and too low for the lords. The people were complaining, but no one dared say anything, even though Garion had repeatedly shown his kindness and fairness.
Garion told the glass blower he’d change the tax law in favour of the commoners immediately. The glass blower was surprised, so he asked his king what’s the reasoning behind it.
“It’s actually based on a selfish motivation.” said Garion. “How many people are affected by the high taxes?”
“About five hundred or so.” replied the glass blower.
“Well then, I’d rather have 5 people hating me than 500.”
How does this apply to me?
Let me give you an example. Suppose you have on your task list, in the following order:
- Development work
- An email query that you know is going to take an indefinite but probably long time to check
- A simple data patching that’s an update statement which takes less than half an hour, including verification
Even though development work came first, you have to put it aside because the other 2 are more urgent. Now, you are already half way through the email query, finally understanding what the user was trying to ask in the first place. Then the data patching request comes in.
This is how I see it. Either way, you’re going to have the user who sent the email query, and the user requesting the data patch waiting for you. There are 2 people “unhappy with” you already. Even though the email query came first, and is slightly more urgent and important than the other one, you should complete the data patching first.
Your goal is to have as few people waiting for you to complete whatever they’re asking for. Can you imagine having 10 people waiting for you? You could have completed 9 very fast requests and have only 1 breathing down your neck. Whatever that long task is, that user is going to wait a long time anyway.
The side effect is that you’re perceived as super efficient by 9 people. 10, if that last user understands the length of time needed for his request. Everyone is happy, and at the end of the day, you still completed 10 requests. The trick is in gauging the urgency level.
Anything involving customers (and thus revenue and thus bottom lines) are top priority. Your users (other than direct customers) are next. Users such as sales personnel, customer support officers, marketing personnel and managers.
And you know what? Development takes the last priority. I’m like an all-in-one, so I handle a lot. Luckily, I’ve taken these constant opportunities-to-learn into my project estimations.
Getting burnt out from an overwhelming number of tasks is not fun. People breathing down your neck is not fun. So how do you prioritise your tasks?
Are you conscientious
My friend is thorough in his analysis and coding. Once, he remarked that he thought about solving a work problem while driving home. While bathing. Just before closing his eyes to sleep.
You could call him obsessive, a workaholic. Actually he isn’t. He arrives on time and leaves maybe half an hour after the official work hours.
He did it beyond the requirements of a paycheck. He cared about the work. Yet he’s not passionate about programming. At least not as much as I am anyway.
He did it because he’s conscientious. Because he’s responsible. Because he cares about the people he works with. And so when the situation requires it, he puts in a little extra effort to make his program better, more robust.
Are you conscientious in your work? Do you choose the right way, or the easy way?
Lines of programming experience
I’ve written and sent resumes before. Looking at the job requirements listed by some of the companies, I will never meet many of the job descriptions. 5 years of C and C++ programming experience? 3 years of programming experience, involved in at least 2 complete development life cycles?
I daresay I’ve done more in a year than some ideal candidate of theirs with 10 years of experience. Alright, 7 years. Ok, maybe 5 years of experience.
The point is, programming is different from other jobs. The years of experience don’t count in the traditional sense. A manager of 5 years of experience is highly likely to be better than one with 1 year of experience. This doesn’t scale with programming. A veteran programmer with 5 years of experience can very well be worse off than a brilliant programmer who’s been coding only a couple of months.
It’s not the years of programming experience that count. It’s the number of lines of code you write that never see the light of day. And I’m not talking about superfluous stuff like
int i = 2 * 7 ;
I mean, you might be paid by the number of lines of code you write, but seriously…
It’s that chunk of code you wrote to test out a concept in a for loop. It’s that printf statement you wrote to check how the output would look like. And those lines of code never make it to your final product. They never get migrated to a production environment. They were probably written to help you, and only you, to automate some task on a temporary basis (generating SQL insert statements come to mind).
I practised till my fingers bled
I was 13, 14 years old. I was in my school’s Chinese orchestra, and I played the zhong ruan. It’s like a guitar, just with 4 strings instead of 6.
I had a lot to learn then. I don’t have a music background, and I wasn’t familiar with Chinese orchestral music or instruments. Luckily, the musical scores were in numbers instead of what’s affectionately known as the “tadpole script”. So a 1 represents “doh”, 2 represents “re” and so on. A dot above the 1 means it’s a “doh” on the next octave. I just find numeric scores easier to read. *smile*
Anyway, one of the hard parts was learning the finger placement. The left hand was to hold down the strings on certain ridges on the instrument, while the right hand held the pick to strum the strings. The strings were taut and thin, and the string with the normal octave was the third one (and the second thinnest).
So after practising for a few weeks, my fingertips on the left hand started to hurt. I could see grooves forming, and there were red patches around them. It’s especially bad for my index and third fingers, since they pressed down the most frequently. And then it happened. The strings cut into my third finger.
I just put on a plaster and continued practising. I couldn’t quite feel the string anymore, which made playing harder. It depends on the sense of touch, since I don’t know if I’m pressing down hard enough. But I practised strumming instead. Did you know using the pick to strum a string back and forth in a consistent manner is very hard?
The point of telling you this entire experience was how determined I was to learn how to play zhong ruan. I knew after a while, the skin on my fingers would harden. I just needed to be patient. I was encouraged to borrow the instrument back home to practise, and I did. I remember lugging that huge instrument case around, and taking a taxi back home. I was just a young boy then, a bit on the thin side, and that case was very large and heavy.
Then I started to appreciate the music. I can follow the 4 beat pattern. After a while, sometimes when I was walking, I would feel the music in my mind, and I would walk to the beat.
1, 2, 3, 4, 1, 2, 3, 4
Right leg, forward, left leg, forward, right leg, forward, left leg, forward
I was living and breathing the music. Then I looked at the scores for the other instruments. I learned how they blended into the overall music, how they fit in. I could visualise in my mind that at a particular point, the cello would come in, graceful and mellow. Then the stringed instruments (that includes me) would bring up the main tune. Then the flutes would fly to the high notes. It’s just beautiful.
Learning how the entire orchestra works made me a better player.
The blood, sweat and tears
Did you know footballers (or soccer players) do weights training? You’d think they’d concentrate on foot work and stuff. It’s about balance. The entire body needs to be trained. Abdominal muscles to stop an airborne ball passed to them. A strong upper torso to maintain balance while the right leg strikes the ball. And I’m starting to get out of my league here… someone more qualified please cite me a scientific reference…
I watched a commercial featuring athletes. A tennis player (Maria Sharapova?) was doing balancing training and “crab dances”. You know, the moving from side to side part. What do you mean you didn’t know tennis players move from side to side a lot? Tsk, tsk… And there’s a Chinese hurdler, lifting his right leg just over a hurdle, then moving his leg back. He’s practising how much to jump and lift, to minimise the energy used for jumping, and funnel it back to running.
Sure, these athletes practise their sport. They also supplement that with complementary training, training that involves other muscle groups and skills. Because having a balanced body, a more responsive body makes them better at their core sport.
So what’s the real experience?
It’s the things you do behind the scenes. So what if you’ve got 5 years of programming experience? A dunce could maintain applications for 5 years and never create anything new or exciting or beneficial.
So start learning about the business surrounding your applications. Then you’ll be able to spot edge conditions that business people never saw. Try out code concepts in small chunks or applications. Then you’ll understand more of what your programming language can do. I mean, changing an integer to a string, then parsing it back into an integer so you can assign it to an integer variable is just stupid.
I practised for months before a music competition or school performance. Athletes practised for months for a sporting event. And all that practice, never really gets noticed.
Using years of programming experience as a benchmark doesn’t work anymore. Technology moves fast. You could get hired and sit tight without contributing anything substantial. 5 years go by and boom, you’ve got 5 years of experience.
Or you could practise the things that speed up your learning curve, that prepare you for a balanced programming skill set, that allow you to face a fast-moving world with uncertain problems. And create something that’s actually useful to the world. So how many lines of programming experience do you have?

