So, what is it you actually do? I mean, when you “program”…

1b0cc699
According to the definition found on Wikipedia:

The purpose of programming is to find a sequence of instructions that will automate performing a specific task or solving a given problem.

If the purpose of programming is finding then programming itself must be searching right?

I wonder why they’ve used finding as the verb here. (Maybe it’s just my lack of understanding proper English.)
Looking at the first of the two goals, performing a specific task, I would think that searching for a sequence of instructions a little weird: If you want to perform a specific task you probably know what the task entails. So there’s not much to find, is there?

You just command to execute the individual steps that complete the performing of the task. And the execution can be automatically triggered by an event. Or, if you just want to do a whole lot of performing, you automate it by wrapping the commands in some sort of loop. The second option, solving a given problem, makes me better understand the use of finding. Still, “finding” mostly makes me think of the labyrinth puzzles in childrens magazines: You put your pencil at one end and have to find your way through to the middle or out the other end. Most kids I’ve seen, solve this by trying out one path, going back and trying another path. Going back again and again until they finally get to the center/out the other side. Having grown up I’ve done so many of those puzzles I see through a lot of them in a flash. But most of them still need some searching for the right path. Except I can now use a pencil in my mind before I actually draw on the paper.

Is that actually what we do when we program?

I like to tell myself there’s more to software programming than just throwing stuff against the wall to see what sticks. But maybe it is just that simple. Maybe you just need to do it somewhat methodical so you can stack the good results and call it a solution. And the better programmer is just someone who has attacked more problems and is better in remembering the wall-stuff that brought the better results. I like to think it’s something different, that analysing and understanding the problemhas something to do with it. That breaking down the problem into smaller problems is essential to good programming and that a solution to the given problem will also solve similar problems.

To get back to the labyrinth puzzle; I think creating the method (to solve the puzzle) is more related to programming than the solving itself. We have Kodable on the iPad. It’s an app that claims to learn kids the basics of programming. You need to put up instructions which will guide a furry ball through some very simplistic looking labyrinths. It’s still the same as the pencil and paper labyrinths except the paper is replaced by the iPad and the pencil is replaced by a furry ball. And you won’t hit any walls because instead of controlling the pencil with your hand, you now control the furball with the instructions. I haven’t tried any further than level 9 or 10 but it seems that that game’s purpose is totally in sync with finding the right sequence of instructions.

Still, I’m not convinced that programming is searching for the right sequence of instructions that will automate the solving of a given problem.

I would very much like to know what your definition is.