Everyone should know programming…


Since computers first appeared, they have gone on to make human life better and easier. What troubles me is that still only a handful of people can really tell a computer what to do. Yes we are way better than a few years ago; but still a lot of people don’t know how to harness the power of a machine to solve their problems. Make their day to day life easier.

There will always be those who know tools better, and can solve problems faster. But if the commoner was able to instruct a computer how to solve a problem, we would be much better off. What keeps the commoner away? Computers still cannot understand natural language. We can reasonably state that it will be a long time before they can understand natural language instructions and code for themselves. However as languages improve and allow people to specify instructions at a much higher level, giving the instructions should be easier. I hope this enables more people to program.

The other remedy to the situation is that we learn to speak the language of computers. Fundamental programming logic should be a part of school education. Just as kids learn languages to talk to other humans, it is necessary that they know how to talk to computers too. What do I mean by fundamental programming logic? Anyone who understands programming in one language, understands how to communicate with a computer. It is then no big deal to learn programming in another language. Just a matter of picking up the syntax.

Why is this knowledge needed? Machines are better at solving certain types of problems. Excellent candidates to carry out repetitive tasks. But people who are oblivious to the world of computers and programming, often don’t realize the many ways in which these machines can help them. As a result a lot of things that can be automated are still waiting for someone who understands both the task and computers to automate the process. Tell the machines how to do it once… and no one will have to waste their time doing it in future. To make that future happen, everyone should know some programming.

The more problems you face, the more you learn


Yesterday was one of those days when a lot of things went wrong. An investigation into the exact cause of what caused the trobule taught me a lot of things I was not aware of earlier.

Often when things run the way they are supposed to, no one is bothered about how they run.
When you flick a light switch you expect the room to be lit. No even thinks at that moment the number of things in the background that need to be just right for it to turn on.
You need to have power-supply. There needs to be a particular minimum voltage. Your bulb needs to have a proper filment… if you really want to think more… the bulb needs to have an inert gas in it and all..Do we even have the time to think of all this every time we put on a switch?!

You know what the problem with problems is?! Some people learn from their problems, some people just don’t. You can solve your problems yourself. Or you can look for an easy way out. Lets take the same example: The bulb in your room does not turn on. You would probably check your power supply(I am assuming any human would do this basic check before accepting that the bulb does not work). Now you have a choice, you can find why there is no power… or you can take the easy way out; just call an electrician, and he will do it for you. If you call an electrician you learn nothing. Then there are those times when you are left without much of a choice, like my case. When the electrician is just not available. You could live without the bulb, which would be really messy. Or you could call it a bad day and get down to solving your own problems. In the process you learn what an electrician does.

Learning from other problems is like studying history. Its really good to know it… I don’t dispute that. But it is so damn boring. But solving your problems… your own way; is fun! It feels great when you pull yourself out of a mess. Now historians will tell you, you could have stayed out of the mess in the first place. But when you goof around, you put yourself in a bigger mess… you learn more. The bigger a mess you are able to pull yourself out of, the better you feel.

Be goofy! Learn more!!

Undereducated software developers


I was just reading
More Trouble with Programming
The second part of our interview with Bjarne Stroustrup, the inventor of C++.

When I came this line…

Indeed, one serious problem is that currently, too many software developers are undereducated and undertrained.

and I couldn’t agree more. Holding a degree from any college hardly makes one a software developer… Colleges here in India are churning out “software professionals” who know nothing about software. I have millions of examples to support that. It is a grim situation cause the bad code written by them becomes part of many software systems. This introduces flaws in architecture and design, that not only cost a lot to fix, but may go undetected for months or years together.