What is programming?                         rev 20 April 2013 ➽ back to dir

_______________________________________________________________________________
Here's what it is:

  Computer programming is telling a computer what to do.

_______________________________________________________________________________
OK: Here's what programming is:

  A computer program is
      ☆ a sequence of commands
          executed by the CPU
          one after another
      ☆ each command is generally very simple (like sums, multiplications, reading data from the RAM),
          but are combined to do more complicated tasks.
          with thousands to millions of such simple commands
 
  So "programming" is "problem-solving"
      ☆ the problem is, how to make the computer give back what we put in.
      ☆ so then you have a bunch of smaller problems that are part of
          that big problem, and you write more in your program to solve those.
      ☆ Good details are here:
          http://www.dummies.com/how-to/content/how-does-a-computer-program-work.html
 
_______________________________________________________________________________
OK OK ... Here's what programming is:

  By itself, a computer is just a box of metal, with a lot of
  tiny electronic switches that are either on or off.
 
  A computer only knows "on" and "off" -- "1" and "0"
 
  All a computer can do is:
      ∘ accept some input
      ∘ manipulate that input
      ∘ give it back in some form that is useful to us.
 
  "Programming" is setting those switches, giving input,
  telling the computer what to do with it, and telling
  the computer how to give it back to us.
 
  In the very first days of computers, "programming"
  was actually turning those switches on and off, by hand.
  Now we do it with words, in a list of instructions.
  This list is called a "computer program".
 
  But the computer still understands only "0" and "1" -- "machine language".
  A program known as a compiler changes the words in the programming
  language to machine language for the computer.
 

_______________________________________________________________________________
Well then - Do you have to be good at math to be a good programmer?

  Everybody says so.

  ☆ James' answer: no. If you did, i wouldn't be able to program anything!

  ☆ Some others' answer: yes. If you don't use math it's not programming.
    It's "just scripting".

  Fair enough! A great discussion is here:
	http://programmers.stackexchange.com/questions/89158/do-you-have-to-be-good-at-math-to-be-a-good-programmer
 
_______________________________________________________________________________
More explanations:

  How does a computer program work?
    http://www.dummies.com/how-to/content/how-does-a-computer-program-work.html
    Dummies.com

  How a Program works
    http://www.isotton.com/devel/docs/lcpp/unpacked/node4.html
    Isotton.com

  How processor, assembler, and programming languages work
    http://www.codeproject.com/Articles/315505/How-processor-assembler-and-programming-languages
    CodeProject.com


_______________________________________________________________________________
And here are some more explanations, really detailed, how it works, step by tiny step:

  "How do computers actually work? We write code, but how do our inputs
   become outputs? As you know, there are a number of layers between
   the code that we write and the electrical impulses that race through
   our hardware."
   -- Karl Seguin

  ☆ In the software - the assembly instructions:
      Let's Increment i, Assembly Style
      http://openmymind.net/2012/5/3/Lets-Increment-I-Assembly-Style/

  ☆ In the hardware - the digital circuits:
      Let's Increment i, Logic Gate Style
      http://openmymind.net/2012/5/7/Lets-Increment-I-Logic-Gate-Style/

  ☆ "Computer programming is considered by different people to be an art
      form, a craft and an engineering discipline. It involves creating a set
      of instructions aimed at making computers perform specific operations or
      exhibit desired behaviours."
      -- http://www.scidev.net/en/new-technologies/icts/news/arabic-computer-code-aims-to-inspire-new-programmers.html
      Discussion of necessity of English for all IT.