It partially derives from the latin name "johannus" meaning "John"
The two words surname scientists think it comes from are "cod(e)" meaning bag (not the fish) and "codde" meaning fish!?