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.
    On, 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