Ну и банально сложность алгоритмов надо уметь считать. Сколько раз видел как НайтиФайлы используют вместо использования Файл.Существует() не понимая что у первого О(н) а у второго О(1). Или строки собирают конкатинацией не понимая что это жрет память потому что не знают как устроено хранение строк в памяти, и что собрать массив и сделать СтрСоединить на порядок эффективнее.