Bridging the gap
With computers, there are two related areas that are connected
in a way that can somewhat be confusing.
In laymens terms, those two areas are hardware and software.
At some point down the chain, you will be wondering where do the 1's and
0's come into play.
Modern programming languages compile into machine code. While at that, that
is the difference between a programming language and a scripting language.
Programs are compiled. Scripts are interpreted.
When a program is compiled, it is basically turned into a series of machine
instructions(1's and 0's) that can be interpreted by the computer.
How many ones and 0's is determined by the specifications of the cpu.
Anyways without going into too much detail, just know that those ones and
zeros are processed and the computer does things based upon them.
The reason that a computer can only use 1's and zero's is because
it is easy to turn something on and turn something off.
That is the same as True or False, High or Low, or in the case
of binary math, one or zero.
A little background information, in electronics, it is much easier and cost
effective to generate 2 voltage states to represent a value; Greater than 0 volts,
or 0 volts.
It is possible to create more voltage states, but would make things extremely
complicated, and computers are already complicated enough!
This is where the gap between hardware engineer and software engineer comes into
Hardware is hard-coded to accept certain instructions that are incoded in binary.
Software compiles into those instructions.
It's all 1's and 0's!!!
For this reason, to be a good a programmer, a solid understanding base 2 math is important.
Continue to Base 2 math