+1 however I think there is a 3rd kind of developer as well. The 3rd being those who CAN do fizzbuzz/codekata style tests but when faced with a real programming problem in real code base they falter.
There are a thousand gradients of skill level, dividing it into 2 or 3 stereotypes is facile and pointless.
There are actually just millions or billions of discrete points, one for each programmer. Implying that they can be approximated by some kind of continuous gradient is quite frankly insane and unfounded.
That's called a model.
The gradient covers all the hypothetical programmers that could exist but happen not to.
Each of those 'programmers' is millions or billions of data points, one for each neural circuit. Implying that they can be approximated by a single discrete point is disingenuous and misleading.