I think it's fair to say that you can be effective without necessarily being good and vice versa.
I think the some of the best developers are those who are smart enough to have gotten a CS degree but skipped a bit of the academics. (A bit self serving: I graduated high school in 1996, had my first intro IT job by the fall of 1998, and had my first real programming job in January 2000, while my contemporaries were still in college)