Недавно невольно наблюдая за русскими туристами (судя по их разговору за столиком), стал свидетелем несколько странной сцены. Когда официант (waiter) принес им весь заказ и молча дожидался каких-то дальнейших указаний (так у них принято), русские девушка и парень, судя по всему ничего больше от него не хотящие, после паузы нерешительности в минуты 2–3, попытались как-то отогнать докучливого waiter, дав ему понять, что (дословно) “в ваших услугах больше не нуждаемся”…
Для этого русская девушка, произнесла довольно длинную речь (на которую я и среагировал – отвернувшись от своего ноутбука) – при чем сделала она это на довольно правильном английском (грамматически и синтаксически более-менее верном), но судя по выпученным глазам waiter – он это понял совсем не так… он, попятившись медленно назад и озираясь, таки, с некоторым колебанием ушел. Я краем глаза наблюдал как все эти местные басгерлы и вэйтеры шушукались за своей стойкой, поглядывая временами косо на эту русскую парочку…
Дело в том, что для того, чтобы дать понять официанту, что заказ окончен, спасибо, можете быть свободны, достаточно сказать короткую фразу:
Девушка Таня (если я правильно расслышал её имя), судя по всему, всё-таки окончила неплохой ВУЗ, т.к. её английский объективно довольно неплох, потратила на выражение этой простой мысли 3 предложения, и когда официант всё это обдумывал в нерешительности, сделала ещё пару отмахивающих движений рукой в сторону от себя, повторив ещё пару раз для верности, что-то типа, дословно: “а теперь можете валить вон отсюда, спасибо!” (я, по-крайней мере, так понял смысл её длинной речи, и судя по выражению лица waiter’ a – не я один).
К чему это я вспомнил. Сегодня утром ковырялся в одной чужой программе, написанной на C++ с открытым исходным кодом, у которой была мелкая, как казалось внешнему наблюдателю (т.е. мне) ошибка. Ну так вот, в один прекрасный и солнечный воскресный, относительно свободный день, я решил подправить её, руководствуясь известным принципом DIY.
Так вот, полчаса, потраченные на разбор логики кода программы, тут же живо вызвали у меня аналогию с девушкой Таней, с которой я и начал наш пост. Неа, поймите меня правильно, у автора программы явно есть образование и он умеет программировать, просто… эх, просто всё это можно сделать гораздо короче и проще.
И глядя на этот код, с некоторой грустью и разочарованием размышляя, что мне делать теперь… Дело в том, что я рассчитывал потратить на все это максимум 1 час, а теперь я стал перед дилеммой – подправить и оставить код в состоянии dirty & nasty, или всё-таки переделать всё заново…, но на это уйдёт весь викэнд минимум.
Мой редактор учил меня, у каждого стоящего сообщения (например, статьи, книги и т.д.) должен быть некий вывод (в явной или неявной форме), т.е. заключение, если хотите — мораль.
Глядя на всё это, я ощутил инсайт: опытного программиста от молодого (пусть такого же старательного и начитанного) отделяет… опыт, который зримо выражается в его эффективности. Для молодых свойственна (скажу мягко) — избыточность мышления.
Получается, что более сильный программист — более рационален!
Иначе говоря, недостаточно хорошего образования и отличного знания языка программирования, для того, чтобы автоматически писать хорошие программы (или дополнительного языка для общения): даже если ваши программы будут работать (или в примере с Таней - вас худо-бедно поймут) — без реального опыта, есть большой риск, что эти знания будут... как неспелый плод, т.е. результат не совсем качественным.
А теперь, собственно, и сам главный методологический хинт: я думаю, что молодым ребятам, делающим свои первые шаги в программировании, стоит на время отбросить такой типичный для них юношеский максимализм, и по-возможности посматривать на код своих более опытных старших коллег (хотя бы в крупных проектах open source) — воистину, это сэкономит им пару лет профессионального развития...
P.s.: Написал это как продолжение к посту "Если ты - начинающий программист".
И кстати, если уж и говорить о личном опыте, на ум сразу приходит наши приключения с заменой картриджей в лазерных принтерах, описанный мною здесь и здесь. Мораль сей басни такова, что в таких делах очень важно иметь собственный опыт и знания, ну а если они отсутствуют — картриджи или барабаны для больших принтеров лучше покупать у профессионалов, кто знает в этом толк. В нашем случае нам был нужен барабан 013R00579 для принтера Xerox, и к счастью для нас, хоть и не с первой попытки, но мы приобрели нужные нам расходники от Xerox оригинального качества.
1 комментарий
Почему-то вспомнился старый анекдот:
Есть такой бородатый анекдот про фестиваль акынов. За верность употребления термина не ручаюсь, ибо народ-автор часто в терминах путается.
В общем, съехались на фестиваль со всей Средней Азии мастера игры на дутаре. Выступали все при полном успехе у публики. Пальцы по грифу дутара бегали у всех. Звучания от двух струн добивались самого неожиданного. А в конце фестиваля выступал заслуженный артист еще СССР, в очень старом халате, с длинной белой бородой. Особо популярный у слушателей. Так он с самого начала как зажал две струны - так до конца на тех же нотах струны и дергал, однообразно и монотонно. После выступления его спрашивают: "А вот почему все исполнители руку на грифе переставляют, ноты разные играют, а вы - две ноты зажали и все?". Он бороду огладил и с достоинством отвечает: "Молодые еще - ищут. А я уже нашел."