General Issues
Representation (of data, of computation)
Paradigm (General way of thinking)
Naming (names, name spaces, bindings, locality)
Functionality (numeric, data manip, I/O, communication, synchronization, security)
Correctness (types, exception handling, error checking, bug avoidance)