Хорошие программисты

Oct 17, 2009 01:10

Черты идеального программиста в моем понимании:
1. Понимает, что программы пишутся для людей.
2. Понимает, что код пишется для людей.
3. Понимает разницу между требованиями и решениями.
4. Может самостоятельно в чем-то разобраться.
5. Знает необходимые технологии и типовые решения.
6. Старается сделать решение оптимальным.

Чуть более развернуто:
1. Пытается пользоваться тем, что делает. Не забывает проверить, что все работает.
2. Называет объекты емко и ясно. Пишет код предсказуемо и понятно. Не забывает о комментариях.
3. Не отклоняется произвольно от требований, сознательно проверяет результат своей работы на соответствие им. Вместе с тем может предложить иной вариант решения, лучшую реализацию.
4. Способен сам продумать реализацию небольшой задачи, не дергая поминутно старшего. Умеет пользоваться google и stackoverflow.
5. Знает хотя бы в общих чертах о широком круге средств решения задач, связанных со своей специализацией. Имеет представления о типовых решениях, в идеале - опыт их применения.
6. Видит разницу между надежной и хрупкой реализацией, простым и сложным для изменения решением, красивым и ужасным кодом, быстрым и медленным алгоритмом. В идеале сразу выбирает лучшее. Думает об возможных ошибках, которые могут возникнуть в ходе работы программы.

Удивительно, но с чертой 5, которая обычно считается определяющей, проблем чаще всего не возникает, а самые большие трудности вызывает 1 и 2 (самые важные, на мой взгляд). Пункты 4-6 очень, очень приятны, но без них работать, на самом деле, вполне реально, а вот работа без 1-3 превращается в эпическую битву. Вещи достаточно очевидные, но я только сейчас смог их четко для себя сформулировать.

ЗЫ: Между тем, со времен старого поста ненависти стало как-то лучше. С одной стороны, люди под давлением стали работать несколько лучше (хоть и не без рецидивов), с другой стороны, лучше осознались мои собственные ошибки.
ЗЗЫ: На самом деле работа в ДонНУ при всей ее ущербности с точки зрения технологий и процесса разработки, дала мне очень много для понимания важности всех этих моментов - сказывается полный цикл, от раннего сбора требований до поддержки проекта спустя семь лет после старта. Правда, после этого больно видеть людей, которые этого не понимают.

управление проектами, работа, кадры, программирование, за жизнь

Previous post Next post
Up