Static types and dynamic types are two ways of labeling the data stored inside your computer. Static types are set at the time the program is written, and never change. They are like a rulebook for the computer about what data can be put in each place. Dynamic types can change as the program is running, and are like a list of instructions telling the computer what to do when it gets data. Static types help the computer be more efficient because it knows exactly what it is dealing with, while dynamic types help the computer be more flexible and can do more things with the data.