> There is very little all programmers should be required to have in common.
We don't need to say "all must know X things" in order to convey a notion of a well-rounded programmer. Of course we don't have to agree. Still, generally speaking, I think the bare minimum is this: the ability to solve your problems with the languages and tools you know in a reasonable amount of time.
But that doesn't say much, so any list needs to get more specific:
* ability to use your tools
* ability to decompose a problem
* ability to debug a problem
* ability to communicate intent via code
* ability to communicate intent via language
We don't need to say "all must know X things" in order to convey a notion of a well-rounded programmer. Of course we don't have to agree. Still, generally speaking, I think the bare minimum is this: the ability to solve your problems with the languages and tools you know in a reasonable amount of time.
But that doesn't say much, so any list needs to get more specific:
* ability to use your tools * ability to decompose a problem * ability to debug a problem * ability to communicate intent via code * ability to communicate intent via language