For me, they both lead to the same "end result"...non-working code.
But the difference between the two, as moritz conveys well, is profound: in the first case a simple whack to forehead and few keystrokes solves the problem, in the latter it takes hours of my time to figure out and typically hours more to resolve.
In the balance I have been blessed with far more of the "silly mistakes" than of the "programming mistakes". That is *not* because I'm a good programmer (not by any means), rather because I fret so much and stew so much over everything I code that I end up mentally walking though the code over and over before I commit much of it to the computer and then I tend to take almost every small but significant code segment (especially ones that I'm not sure if I've got the right strategy or constructs) and try them multiple ways on their own. A lot of work for what arguably is not much payoff. But for me, it is so painful to track down and figure out my programming errors that I'd rather suffer the pain of my strategy to my alternative.
I am so envious of how most all programmers can just "get it right the first time" (or nearly the "first time").
UPDATE: Sorry, I typed moritz when I meant wol. See..."silly mistakes". My bad. Sorry wol. Also, having just gotten back from 3 weeks of vacation, I can't remember the syntax for "bolding"...so this update is not in good form. And there isn't a "preview" with an update. Please forgive me.
I personally believe that the real problem lies in the fact that the two terms are far from being mutually exclusive: some programming mistakes can arise for silly reasons, but they may have serious consequences in many different ways.