Скучна ли жизнь программиста?

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

99

Я программист, сейчас я расскажу, почему это не скучно.

1. Программирование - это лотерея. Ты оцениваешь таск в 2 часа, тимлид оценивает таск в 2 часа, самый старый и древний сеньор, который еще на плюсах писал под первый Windows, оценивает её в 1 час. Затем вся команда по очереди пытается закрыть её за месяц.

Бывает и наоборот. Тебе кидают задачу  с багом "на рисерч" - найди, почему критичекий участок тормозит, как нидерландская сука под кофешопом.  Дают сроку на неделю, приговаривают "может не спешить".   Ты, как идиот (я как идиот) решаешь эту задачу за вечер!  Очень тяжело не похвастать такими успехами - и я конечно сообщаю, что задача решена. Джекпот! А мог бы неделю отдыхать, попивая сок у себя в квартале.

2. Программирование - это масштабирование. Можно писать так 1..2..3..4... и так до миллиона, пока нужно, всю жизнь. А можно написать две строчки с циклом for и он выдаст все числа до десяти миллиардов за минуту.  Это пример для совсем далеких.

Для продвинутых - всегда можно найти решение, которое ускорит разработку в десятки раз. Иногда это новая библиотека (редко - новый язык), иногда просто внимательно перечитанная документация к старой библиотеке. Можно городить свои велосипеды (если контрол фрик или джун-мидл). А можно знать фреймворк, который делает ту же задачу двумя ударами по клавиатуре. 

3. Программирование - это головоломки. Какими бы ни были задачи, всегда приходится думать, как втиснуть новое требование, не повредив старую проверенную логику (тут, конечно, сильно помогают тесты - но кто из вас их пишет? И как часто? А вы вообще их запускали на этой неделе? ).   Даже задача "покрась-ка кнопку в красный цвет" может оказаться ловушкой.

Вообще, главный источник головоломок в программировании - это сами таски, ТЗ, которые составляются без подробного описания. Или их составитель не осознает, что в динамике все выглядит иначе. Или кто-то написал противоречащую задачу. Нет, не "покрасьте кнопку в зеленый цвет", а "замените фон на пестренький".

Ты делаешь две задачи, кнопка красная и фон новый, но вместе они как говно. Дизайнер утверждает белую обводку. Волевым усилием ты отрываешь зад от кухонного кресла, перечитываешь документацию, запускаешь пробный вариант и убеждаешься
- да! да! да!!! Именно белая обводка и именно с таким радиусом скругления внезапно вызывает краш приложения под iOS 9.1.3.4 на любимом ноуте критически важного клиента. 

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

PS: если вы столкнулись с последним случаем  - поговорите с дизайнером, если дизайн меняется легко. Если нет - хахахахаха, делайте, как требует директор и ищите продуктовую компанию, в которой люди понимают, что главное функционал, а не конкретный цвет с конкретным закруглением.

5