Хороший программист способен решить любую задачу, потратив на это минимум времени на обдумывание и сам процесс решения. Хороший программист, даже если не знает как это сделать, быстро может разобраться и адаптироваться в системе, в проблеме. Посредственный программист работает по шаблона, не развивается и быстро бросает сложные задачи. Хороший программист всегда стремиться решить все существующие проблемы на его пути.
Код хорошего программиста лучше оптимизирован, более надежен. Кроме того, хороший программист производительнее, пишет более понятный для других программистов код.
По-моему мнению тут 2 отличия существенных.
1) хороший спец пишет код так, чтобы его мог понять любой человек + он может объяснить почему он выбрал то или иное решение
2) хороший спец сам решает задачу, а не ждет от кого-то
Тут все очевидно - хороший сделает надолго, а к посредственному нужно будет снова обращаться за ремонтом. Если окончил институт по такой профессии, то не значит, что сразу все сможешь. Опыт надо иметь.