You give the computer explicit instructions. The computer, being the literal-minded silicon brick it is, executes exactly what you typed—not what you meant, not what you needed, but what you actually told it to do . And now it's sitting there with that smug look, waiting for you to realize the bug isn't in the machine. The gap between "what I told it to do" and "what I wanted it to do" is where every developer's sanity goes to die. You spend three hours debugging only to discover you wrote i++ instead of j++ in a nested loop. The computer did its job flawlessly. You, however, did not. Welcome to programming, where the machine is always right and you're always wrong, but somehow it's still the computer's fault.