Влияние личного характера на способность к написанию программ

Давно хотел написать заметку на тему того, как влияет характер программиста на способность к написанию программ. Заметка состоит из цитат, взятых из книги, которую должен прочитать каждый программист, – «Совершенный код».

Cамые лучшие программисты — те, кто понимают, насколько ограничены их возможности. Они скромны. Худшие программисты отказываются признать, что их способности не соответствуют задаче. Характер не позволяет им стать отличными программистами. Чем усерднее вы работаете над компенсацией ограниченных возможностей своего разума, тем лучше будете программировать. Быстрота вашего развития напрямую зависит от вашей скромности.
Как только вы признали, что ваши способности слишком малы для понимания большинства программ, и поняли, что эффективное программирование — это поиск способов компенсировать данный недостаток, вы начинаете этот поиск, продолжающийся вплоть до окончания карьеры. А поэтому важная черта характера программиста — любопытство к техническим вопросам.
«Любой дурак способен отстаивать свои ошибки — большинство дураков именно так и делают.» Дейл Карнеги

Становление высококвалифицированного программиста предполагает развитие обостренного чувства профессиональной честности, которая может проявляться в самых разных формах:

  • отказ от притязаний на роль эксперта, если вы им не являетесь;
  • охотное признание собственных ошибок;
  • стремление разобраться в предупреждениях интерпретатора/компилятора вместо их отключения;
  • желание ясно понять программу и отказ от компиляции кода с той лишь целью, чтобы узнать, работает ли он;
  • предоставление реалистичных отчетов о статусе проекта;
  • предоставление реалистичных оценок срока выполнения проекта и отстаивание своей позиции, даже если руководители просят адаптировать оценку.
  • Оценка статуса проекта – один из главных источников лжи в нашей работе. Программисты печально известны своими заявлениями, согласно которым на протяжении всей второй половины проекта программа неизменно “готова на 90%”

    «На первые 90% кода приходятся первые 90% времени. На оставшиеся 10% кода приходятся другие 90% времени разработки.» Том Каргилл

По-настоящему отличные программисты учатся эффективно сотрудничать, что всегда подразумевает написание удобочитаемого кода. Вероятно, компьютер читает вашу программу так же часто, как другие люди, но он читает плохой код гораздо лучше, чем люди. Работая над кодом, не забывайте про людей, которым придется изменять его в будущем. Программирование — это в первую очередь общение с другим программистом и только во вторую — с компьютером.
Некоторые программисты считают, что стандарты и конвенции подавляют свободу творчества, но с этим трудно согласиться. Можете ли вы представить Web-сайт, на каждой странице которого использовались бы разные шрифты, цвета, способы выравнивания текста, графические стили и способы навигации? Какое уж тут творчество — это хаос. Если стандарты и конвенции не используются в крупном проекте, завершить его становится невозможно. Не тратьте свою творческую энергию на то, что не играет никакой роли. Установите конвенции для второстепенных областей и сосредоточьтесь на действительно важных аспектах.
Лень может проявляться несколькими способами:

  • отсрочка выполнения неприятной задачи;
  • немедленное выполнение неприятной задачи с целью как можно более быстрого избавления от нее;
  • написание инструмента для выполнения неприятной задачи, чтобы ее никогда не пришлось выполнять снова.

Первое проявление лени едва ли когда-нибудь будет выгодным. Вы сможете избавиться от первого типа лени, если выработаете привычку выполнять эти задачи сразу. Эта привычка соответствует второму типу лени — «просвещенному». Вы все так же ленитесь, но решаете неприятные проблемы, тратя на них как можно меньше времени. Третий вариант лени предполагает написание инструмента для выполнения неприятной задачи. Это «долговременная лень». Несомненно, это самый продуктивный вид лени (если, конечно, инструмент позволяет в итоге сэкономить время). В этом контексте определенная лень даже выгодна.

Однако лень имеет и обратную сторону. «Спешка» и «усилия» ценятся в программировании совсем не так высоко, как на уроках физкультуры. Спешка — это дополнительные, ненужные усилия. Она указывает на активность, но не на выполнение работы. Движение нетрудно спутать с прогрессом, а занятость с продуктивностью. Главную роль в эффективном программировании играет мышление, а размышляющие люди обычно не кажутся занятыми.

Выработать хорошие привычки крайне важно, потому что очень многое из того, что вы делаете как программист, вы делаете не задумываясь. Например, когда-то вы могли думать о форматировании циклов, но вы не думаете об этом при написании каждого нового цикла. Вы пишете их как привыкли. Это относится почти ко всем аспектам создания кода.

Билл Гейтс говорит, что любой программист, который впоследствии станет хорошим, хорош уже в первые несколько лет. После этого измениться практически невозможно.

Обучаясь делать что-то, сразу учитесь делать это правильно. В первый раз вы активно обдумываете свои действия и все еще можете с легкостью изменить свой подход. Выполнив что-то несколько раз, вы начинаете уделять меньше внимания своим действиям, и «сила привычки» берет свое. Проверяйте, что вы приобретаете именно те привычки, какие хотите.

Что, если вы еще не выработали самые эффективные привычки? Как изменить плохую привычку? Вы не можете заменить плохую привычку на отсутствие привычки. Вы можете заменить плохую привычку на хорошую. Попробуйте выработать новые, эффективные привычки.

Tags:

Автор

Эту статью написал who has written 29 posts on Software & Startups.

Нет комментариев.

Оставить комментарий