Saturday, September 29, 2012

First Step to Learning Programming...

I had a terrible start. Around 17 years back I decided I will be a computer programmer. My first serious encounter with programming was "C". I was from ICSE board, and they had BASIC not even C as part of their academic. We had DOS those days, and had to remember the commands. Loosely talking there were BIOS calls to be made after setting various bits in the CPU registers to get things to work. There were no background process other than TSR programs. Achieving graphic result was accompanied with tons of secret codes, even some ASM.

We didn't have Internet. Damn, there were no mouse! It needed to be typed, there were very few books detailing the secret weapons. We were hearing from distance horizon of something called Java cooking up. We read, it runs inside a box and no system calls can be made. It wouldn't have been used either for serious UI based application nor for writing any background service. I don't worry what Java 6 or 10 has now, but that's how it was in 1996.

Things are changed now. Instead of calling interrupts, we call the APIs or damn me we call the "Framework"'s function. Things are encapsulated at such a detail that your compiler will even help you run your code in 32 or 64 bits computer with almost no effects.

So whats the point? When you drop Internet, when you drop your Superior High Level Language, and when you seat naked with your command line based compiler, then it makes you do one thing that you absolutely and essentially need to be a programmer. That is, Think!

Sunday, September 9, 2012

Where you work matters!

Private software companies have made quite a bad reputation. Once a government subsidiary bank manager visited me and during talk he said right of course you wouldn't have been placed that's why you're seating here. One of the employee's (who run away lately) mother came to visit me, and reasoned that there would be better prospect of finding a good girl if her boy was working in a public company.

In the Jungle of elancing, software companies main theme is do as many projects as possible with the lowest possible paid workers. Paid by Quantity not Quality. Before you start damning your employer, it is your equal fault to be working there. Nobody has fastened you to your seat but your paycheck, if you are working at a place which is no better than a sweet shop, it is time to break free.

Jerry McGuire woke up in the middle of the night and started writing a mission statement for his company, he copied it and passed it on to all his staffs at work. It said, `Fewer clients, less money.` A week later he was fired, because the mantra of success of service industry is `More clients, more money.` McGuire was not the founder of the company, he was an employee. But is it a curse for an employee to write the mission statement of its company if you were already giving your sweat and blood to it?

Software companies need to advocate a place of openness where free flow of idea can take place. It should not just be the products getting focus, but the process as well. The vision of the company need to be induced in each employee of the company. Attend the clients that bring value to the company. Do the projects which sharpen your portfolio, bring quality process and stick to good code design. Use private networking to increase openness. Focus on getting it done to getting it done right.

As an employee, rebel to the conspiracy. Bring change to the process. Go agile, use source code control, make UMLs and build user friendly scalable and maintainable software. Stand up to the politics, and don't be afraid to pass above your immediate supervisor if you wish to bring a good change. And above all be the change you wish to see in others.

Of course, if you wake up to write mission statement for Retina, promise you wont be fired for it.