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

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

Первый опыт, основано на треде @tastapod


  1. Хороший программист смотрит в суть проблемы. Он пытается решить корень проблемы, а не ее следствия.
  2. Он решает поставленную проблему, а не её вычурную обобщённую версию.
  3. Он пишет простой, очевидный код, который легко изменить позже.
  4. Он знает, что многого не знает, но всё равно пробует. Потом он повторяет попытки, пока не получится. Это требует смирения и настойчивости.
  5. Он выбирает правильный инструмент для работы, даже если раньше не использовал его. Он считает, что инвестиции в изучение инструмента того стоят, чтобы решить проблему правильно. Это значит, что он создает простые и изящные решения, но не всегда идет самым легким путем.
  6. Он знает, когда нужно сделать "хак" (простое, но не самое лучшее решение), а когда инвестировать в качество - он делает эти выборы осознанно. Его хаки все равно пишутся так, что их легко стабилизировать позже. Он создает маленькие, выражающие намерения компоненты, которые легко рефакторить, реструктурировать или заменять.
  7. Он щедро делится своими знаниями и искренне радуется, когда видит, как люди учатся.
  8. Он не ограничивается только программированием. Он рассматривает всю ситуацию и с радостью рефакторит процесс, ставит под сомнение предпосылки проблемы.
  9. Он является нетто-вкладчиком в любую группу, членом которой он является. Не только за счет информации, но и через поощрение и поддержку.
  10. Он усердно работает над собой. Нет "врожденного дара программирования". Способ хорошо в чем-то разбираться - делать это снова и снова и снова, и быть готовым терпеть неудачи в новых вещах, пока не станешь в них лучше. Это сложно, особенно если у тебя раздутое эго.
  11. Он не следует ни одному конкретному методу или методологии, но он изучает их на случай, если они могут быть полезны, и чтобы иметь контекст, когда другие люди говорят о них.
  12. Он изучает языки, инструменты, библиотеки, стили программирования. Это дает ему разные перспективы.
  13. У него есть интересы вне программирования, включая физические активности, и он серьезно относится к семейной жизни. Это служит хорошим примером для менее опытных программистов, что они должны поддерживать баланс.
  14. У него потрясающее внимание к деталям, но он не относится к себе слишком серьезно.
  15. Он наблюдает, как люди используют его программу, выясняет, что их раздражает, упрощает это и устраняет их раздражение. Он не делает предположений о том, чего люди хотят от программы, он их спрашивает и слушает.
  16. Он изучает бизнес-домен, в котором работает, чтобы ясно выражать концепции домена в коде и соединять их вместе для решения значимых проблем.


Report Page