О программировании и других разочарованиях

Программирование — тяжелая работа, чувак. И я не имею в виду то, что видит человек, не любящий компьютеры. Я говорю с точки зрения парня, которому ночью снится код. Я говорю о шаблонах проектирования, архитектурах, унаследованном коде, процессах принятия решений и обо всем остальном, что так называемый инженер-программист должен иметь при себе.

Я имею в виду, как узнать, когда перестать думать?
Когда проблема решена!? Всегда есть место для совершенствования!

Что делать? Насколько это слишком много?
Я считаю, что проблема и код, приснившиеся ночью, могут считаться слишком большими. Но тогда как остановить это?

Дисциплина.

Дисциплина важнее мотивации.

Мотивация угасает перед лицом сорванных сроков и ночных стоянок перед цифровым экраном, но именно дисциплина возвращает вас в нужное русло.

Забавно, я только что понял, насколько сложной может быть работа с унаследованным кодом — и под унаследованным кодом я имею в виду мой собственный код, начатый год или около того назад. Разработка API для него еще сложнее. Делать это, работая в распределенной команде… да ладно, мне еще предстоит это испытать.

Я работаю в команде из одного человека, иногда с помощью других, и даже в этом случае придумывать хорошие дизайнерские решения, способные соответствовать требованиям завтрашнего дня, это тяжелая работа, человек. И, пожалуйста, не поймите меня неправильно: я разрабатываю с учетом рефакторинга, и я выполняю итерации, и изо всех сил пытаюсь написать самый чистый код, который преподают дядя Боб и Д. Крокфорд (о да, я пишу JavaScript, но только пока), и тем не менее, когда я выхожу с работы, мой разум блуждает лучше, чем ДК, среди множества идей и решений, и непринятых решений, и тревог, и...

И я знаю, я знаю:

Одним из достоинств TDD является то, что вы лучше спите по ночам.

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

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

В итоге я расстроен. Я не дисциплинирован. Мне следует.