I would argue some important concepts to understand are.<p>- programming is commanding a machine to do what they want.<p>- computers speak a non-english language so everything they write is translated before the machine follows it<p>- a machine is only limited to its hardware. You cannot save without a harddrive, you cannot communicate without an antenna of somesort.<p>Instructing a machine can come in a variety of forms<p>- Robotics - commands reinterpreted into physical movement<p>- User Experience - commands reinterpreted to produce graphics or sound<p>- Logical - Encoding and decoding, list management and prediction, mapping commands to actions, language grammer<p>If anyone disagrees or has more to add, let me know