as a computer illiterate caveman do I understand it right that computer bugs have two primary origins; the first being simple developer error/oversight and the second being excessively hard to predict or entirely unpredictable edge cases?