I just talked to a very smart man. He is a programmer who has been
programming computers since before punch cards were popular. The most
interesting thing he said though was something like this (I'm
paraphrasing and not actually quoting).

"Programming is art. An artist sees something in his head. An idea.
Depending upon what medium that artist is familiar with and skilled at
he converts that idea into something others can enjoy.

Programming is much the same. In all my years of programming I have
learned a wealth of languages. Some I liked and some I didn't. I never
spent much time focusing on a language as a way to solve a problem. I
focused on the answer to a problem and found the tools to complete it.

When I taught programming at a local college people where always asking
me what my favorite language was. I would always reply Italian, but I
am fluent in English. They either laughed or looked at me like I was crazy.

In my class we stuck to C and some assembly, but mostly I tried to teach
them how to solve a problem. The students who listened understood that
the first thing a good programmer does is evaluate the problem and then
work on a solution with no particular language in mind. I also taught
them to think small and simple. Break complex problems into smaller
bits. I also tried to teach them how to think like a computer. Remove
the notion that the computer can understand how to do something without
explicit instructions."

He said a lot more than that, but that's the idea that stuck in my head.
He really was rather amazing to listen to. Had to be in his 80's and
still programming. I think he's programmed in just about every major
language. He's also programmed using wires and tubes and such. The
best part is he didn't get a college degree until the 80's when I guess
he started teaching at the local college.

Just made my day to meet somebody like that.