Programming is actually teach you how to think. -- Steve Jobs
Machine with intelligence could learn to see - and think - without the need to be programmed to do it. -- Afterward by Tomaso Poggio from Book "Vision"
Program a computer to do things for you, so you won't need to do it by yourself
Solve problems - Borrow the power of computer technology, write a program to solve problem which can't or take lot cost to solve in tradition ways.
All things are processed as information form in a computer system, information need to be organized/structured, not scattered at everywhere, and them are transform from one structure to another structure in a computer system, which is under the control of procedures. Here, we define data is binary number: 0, 1. Information can be text, image, audio, video, structured data. So the progress of information processing in a computing machine is:
Problems can be solved by approrite Algorithms, Data Structure, and a good Design.
A good data structure may solve the problem directly, take less procedures (simpler algorithms) than the old way which is underdeveloped data structure with complex algorithms, I call this Architecture Evolution, just same principle with Intel CPU development stragety: use 18 month to modify the architecture and another 18 month to improve the process.
Is algorithms more important than data strcuture? or data strcut more important than algorithms?
I don't think so, they are both important, just like eye and ear, but in some specific area, one of them may have less influence than other one.
Programming need a clear logic, write down the thoughts/ideas in your mind will be a good way, because it reify thoughts/ideas.
Programming is a universal ability, it's abrove specific programming language.