В программировании немало задач, которые надо сделать, но которые не требуют большого ума, только лишь усидчивости, внимательности и терпения: от «исправить везде по коду символ X на символ Y» (моя самая первая задача на самом первом официальном месте программистом) до «пожалуйста, сделай код из RFC» – вы не программируете, вы набиваете код.

Чем дольше работаете, чем больше «se» в вашем «ju», тем больше соблазн сбагрить на кого-то менее дорогого (вы точно хотите, чтобы Я исправлял опечатки за 300кк/с?!) или на менее творческого (ребята, я тут алгоритмы думаю, ну вы чего?).


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

А если делаете, знайте…

Во-первых, вы теряете [полезную] практику рутины. Отдаляться от народа (тех самых Васянов, на которых вы сплавили опечатку) не лучшая идея. Вы забываете о том, что программирование состоит и из такого. Забываете, что чувствует программист, восемь часов правящий табы на пробелы, образно говоря. Так легко однажды закончить мудрым «Если у них нет хлеба, пусть едят пирожные!», после чего все поймут, что вырастили ещё одного зазвездившегося идиота в своих рядах, и лучше на мороз его, пусть там светит и озаряет. Если читаете мемуары или воспоминания о ком-либо, обратите внимание на то, как особо упоминается умение старшего звена выполнить низовую работу – как тот же Крылов вполне отодвигал рабочих и сам, будучи уже академиком и генералом, забивал гвоздь правильно.

Во-вторых, вы теряете контроль над кодовой базой проекта. Не значит, что надо писать весь код самому (было бы неплохо). Значит, что полезно в каждый момент времени представлять, что происходит на каждом уровне абстракции и в каждом модуле проекта. А для этого надо не отдаляться от ручного перебора строк. Иначе будет то, что бывает: вроде ты и главный и отвечаешь за всё, а никак не можешь в коде найти нужное место. Ну а чё? Для тебя теперь программирование – в облаках бумажки перекладывать, а не инструкции для компьютеров писать. Взлетел-с.

В-третьих, нередко такая рутина залегает в области данных проблемы – констант, типов, классов и т.п. Ну вот приложение для яблоботаников. Надо набить сто сортов. Вы крутой Игорь, пусть набивает некрутой Васян. Он набил. Теперь сюрприз: у некрутого Васяна появилась компетенция в яблочных сортах (и таким образом в области задачи проекта, Васян-то ещё и попутного нахватался, разбирая иерархию сортов), а у вас не появилась (и потому на совещании с ботанами вы помычали, а Васян внятно пообщался – а вы точно главный?).

В-четвёртых, оно откладывается в память и может неожиданно полезно выстрелить. Скажем, вы 20 минут набивали структуру из 64 элементов. Задолбались, разозлились. В память отложилось на эмоциях. Спустя год сервер рушится непонятным образом. Никто не понимает причину, очень глубоко лежит. Ваш взгляд падает на лог, опаньки, а знакомая структура… так, блин, а почему всего два бита, если она точно развесистее? Ага, вот и бага. С одной стороны 20 минут, с другой дополнительное фоновое знание о проекте и экономия часов отладки.

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

Стоят на холме два быка – старый и молодой. Мимо (под холмом) проходит стадо коров. Молодой бык пихает старого под бок:
– Ну давай, ну давай быстренько сбежим с холма и вот ту, молоденькую, трахнем, или вот ту, стройненькую. Ну давай, быстренько…
Старый бык слушает, качает головой, потом говорит:
– Нет, мы медленно спустимся с холма и медленно поимеем все стадо.

А вот унылый дедушка уже тыщу раз обжигался на таких вот скоростях и хочет сейчас медленно сделать всё правильно (перепроверяя каждую цифру по три раза), чтобы потом не получить бумерангом ворох загадочных багов, заканчивающихся спустя неделю «да блин, какой чудак запятую на разряд вправо унёс год назад?! ссскотина… у кого-нибудь есть его адрес? хочу в гости напроситься».

А вы хотите отдать такое на откуп самому дешёвому и неумному молодому команды, да? Ну удачи.

В-шестых, если уж у вас есть в команде джуниоры Васяны, а вы хотите из них хотя бы миддлов получить на треть копеечки, давать им рутину – 1) демотивировать, 2) не учить. Демотивироваться они будут потому, что будут думать так же как вы: «ну да, дали самую тупую задачу самому тупому…» А не учиться будут потому, что им бы хорошо программирование осваивать, а не проблематику задачи по примеру пункта третьего. На набивке констант алгоритмы с идиомами и архитектурами не вырастить в голове. Пусть лучше тянутся вверх на задачах чуть выше их уровня. А вот вам полезно (всё эссе об этом) рукава засучить и вспомнить молодость.


Как-то так. Не ленитесь код писать, академики.