When you have to Paint

When you’re a lowly programmer, you just clock in, do whatever your superiors tell you to do, and you clock out. When you’re a corporate programmer, aaahhh, this is where the fun part comes. You get people saying to you, “Make it more user friendly” or “The login page doesn’t look nice enough. Fix it.” Then you think to yourself, “But I’m supposed to just write code!” Think again.

When I started doing graphics work because there’s no web designer nor graphics artist in my team, I fell back on the good old Windows Paint program. Yes, I can hear people laughing from as far away as the United States…

*pause*

Now that you’ve calmed down, you have to realise that I don’t have professional graphics software, so I make do with what I have. Which isn’t much. So I branched out. I found this wonderful free software that forms the integral part of my graphics work. It’s Paint.NET, and it’s packed with lots of stuff comparable to Photoshop. And together with Windows Paint, I have in possession the basis of my image processing skills.

And for those with Photoshop: more power to you.

It’s not about you. It’s about results.

Recently, something happened that shook my confidence a little. Before I get to that, let me say that I’m a fairly competent in web applications, in particular, .Net web applications. I have done image creation/processing, CSS validations, and making sure the web applications are as cross-browser as possible. I have made the user interface as simple and as easy to use as possible. I’ve read up tons of security measures and implemented many of them on the web server and in programming too. I follow any sensible coding guideline. Database tables are designed to be relevant and scalable for as long a time as possible. I’ve even released two public web sites, all single-handedly done by me.

Now, in between doing new projects, I also try to improve existing ones. So I have this pet project. Being that it’s a pet project, I let my creativity fly on the web application. I tried out my own 3d rendered graphics. I pushed my CSS skills in managing display. I even tested out what was to me very new, AJAX, to make the web application more lively, more “real-time”.

Then one fine day, it was decided that my pet project is actually going to make a difference in the team’s overall productivity. So it became a full-fledged project. Suddenly there was a deadline. Suddenly people are going to see it and use it. I mean like really see this project of mine. And then it happened. My deluge of “change this”, “that’s not right” and “I want it that way” came.

For the first few seconds, I was like outraged. I mean who are they to comment on my work? I was enraged. I was indignant. Then, I calmed down. Because I realise that it doesn’t matter what you think. Ultimately those people who said “do this and do that” are the ones who will use your application. Accept that.

It’s not personal. (Ok, sometimes it is…), so I want you to concentrate on the results. What is it that the users ultimately want? Your code can be the most elegant piece of creative work there is, but if it doesn’t do what the user want, it’s useless.

Focus on the user. And yes, sometimes, you have to let go of your code.

Master your programming language of choice

I have gone through many a program where I would stare at a section of code, trying to figure out what it’s doing. After a while, a light of understanding would flood my consciousness, and I would ask, “Why did someone write like this?”

The problem? The task at hand required a certain function, say formatting output (quite common) for displaying a string of a length of 4 characters from a number between -999 and 999, inclusive of the negative sign. I would then see code checking if the number was negative (to determine if a minus sign was required), string trimming and left/right alignment of the number and so on.

Why did anyone go through all this when there’s a perfectly functioning formatting ability within the standard library of the language? (I’m thinking C at the moment, but most other languages are still applicable) I came to one conclusion: the programmer didn’t know about it.

You can be a better programmer by simply knowing more about the language you’re using. You don’t have to remember every single function available. You just need to know where to look. Albert Einstein said something to the effect of “I don’t remember anything that’s written in a book.” There are online libraries of programming languages. Use them.

As a programmer, you are paid to think up solutions and implement them via code, not reinvent something that’s already done and then code the business logic. Your creative abilities are more important than your memorisation skills.

E equals M C squared

The famous equation of Albert Einstein has a simple elegance to it. I knew of it when I was young, but it didn’t mean anything to me. It probably warms the hearts of scholars of physics though.

The magic happens when I read about something that Robert Kiyosaki (author of “Rich Dad, Poor Dad”) said. In his book, he mentions that money is an idea. This prompted me to think of our earlier human ancestors, where barter trade was the norm. If you have herds of good cattle, you are considered rich. If your sheep produces fabulously soft wool, you are considered rich. In our modern times, if you have tons of those paper notes that your country’s mints are producing, you are considered rich.

What I realised is that, being rich has little to do with money itself. You are rich, because other people consider you to be rich. Having herds of cattle makes you rich because other people need the meat they can get from you. Since they don’t have it, they consider you to be richer than them. If you have a huge bank account, then other people consider you rich because they believe in the numbers they see and in the integrity of the bank.

Money is an idea.

Going back to the equation, I understand it as dividing our universe into two parts, energy and matter (or mass). If money is an idea, then it’s an energy form. And wealth is the material manifestation of this energy. If I want wealth, then I’ll have to materialise it from its energy form. Let’s look at the equation again:

Energy = Matter(mass) x Speed of light x Speed of light

The speed of light is 300000000 metres per second squared. That’s a 3 followed by 8 zeros. I realised that my energy level for wealth has to be extremely high in order to materialise anything.

This explains why many of the millionaires I’ve seen, heard and read about, are passionate, lively, animated and energetic. They create wealth from their ideas! To do this, they have to match their energy levels with that of wealth.

I now look at this equation under a different light.

The “2nd best” theory – Overbalancing

You might want to read part one and two first.

There is this almost obsessive need to “work on your weaknesses” pervading our lives. As a child, when I submit my report book to my dad, he would look it over, and point at some line on a page, and say something like, “How come you got a [insert low grade] for [insert some subject]?”.

After I graduated from university, I came to the “real” world. At my work reviews, my manager would go over my achievements, point at some line on his report, and say something like, “You are very good at [insert strong point], but I want you to improve on [insert weak point].”

Unless the weak point is critically hampering your progress, strengthening the weak point is a colossal waste of time!

Why is this so? Because you have little interest in it. If you had even a passing interest in it, it wouldn’t have been a weak point. You’d want to find out more more about it, even if it’s not one of your natural strengths. You have no feeling for it.

An example of a weak point worth correcting is the ability (or lack thereof) to communicate and work with fellow team members. You do want to work well with others right? Then you’d have an interest in making your relationship with them work.

This is where overbalancing comes in. In this context, it refers to improving every single skill you have, whether or not they create the most value for you. You might have heard of the 80/20 rule. 20% of your efforts produce 80% of your results. It’s hard enough finding out what your strengths are. Using the productive 20% effort on improving your weaknesses is commendable, but impractical.

Use a large part of the 80% effort on improving your complementary skills (to your strengths). The rest of the 80%? Go ahead with improving your weaknesses to do as little damage to your success as possible.