97 вещей, которые должен знать программист

Мой перевод цикла статей 97 Things Every Programmer Should Know, опубликованных под лицензией  Creative Commons Attribution 3.

1 Будьте предусмотрительны
2 Применяйте принципы функционального программирования
3 Наблюдайте за пользователями
4 Автоматизируйте стандарт кодирования
5 Красота и простота
6 Перед началом рефакторинга
7 Осторожнее с повторным использованием!
8 Правило туриста
9 Подозреваете ошибку в компиляторе? Проверьте получше свой код!
10 Осторожно выбирайте внешние модули
11 Программируйте на языке предметной области
12 Программирование - это дизайн.
13 Разметка кода важна!
14 Делайте ревью кода.
15 Программируйте осознанно
16 О комментариях
17 Комментируйте лишь то, что не ясно из кода
18 Непрерывное обучение
19 Удобство?
20 Начните отладку процесса установки как можно раньше
21 Разделяйте технические и логические исключения
22 Осознанная практика
23 Языки предметной области
24 Не бойтесь что-нибудь сломать!
25 Думаете, это никто не увидит?
26 Не игнорируйте ошибки
27 Выучить язык - значит понять его культуру
28 Позвольте трупу упасть
29 Не надейтесь на магию
30 Не повторяйтесь
31 Не трогай это!
32 Инкапсулируйте не только состояние, но и поведение
33 Числа с плавающей точкой - не действительные!
34 Удовлетворяйте свои амбиции на проектах open source
35 Золотое правило дизайна API
36 Миф о гуру
37 Не работайте сверхурочно
38 Основы bug tracking-a
39 Чтобы улучшить код, удалите его
40 Установи меня
41 Взаимодействие между процессами влияет на время отклика
42 Поддерживайте чистоту кода
43 Научитесь пользоваться командной строкой
44 Изучайте другие языки программирования
45 Изучите свой IDE
46 Изучите ограничения
47 Планируйте свой следующий коммит
48 Много данных? Используйте СУБД!
49 Изучайте иностранные языки!
50 Учитесь оценивать.
51 Не забывайте о "Hello, world"
52 Дайте проекту голос
53 В линкере нет никакой магии
54 Нет ничего более постоянного, чем временное
55 Хороший интерфейс: легко использовать правильно, сложно использовать неправильно
56 Делайте невидимое видимым
57 Обмен сообщений вместо разделяемой памяти
58 Послание в будущее
59 Упущеные возможности полиморфизма
60 Тестеры - лучшие друзья программистов
61 Единственный исполняемый файл
62 Только код расскажет всю правду
63 Сделайте процесс сборки своим
64 Состояние потока и парное программирование
65 Используйте типы из вашей предметной области
66 Предотвращайте ошибки
67 Программист - профессионал
68 Помещайте все в систему контроля версий