Опыт и его последствия

April 13, 2012

Есть история про обезьян, которых обливали водой, когда они пытались добраться до пищи, потом обезьян по одной меняли и сухие обезьяны тем не менее не брали бананы. Я не знаю где найти оригинал, но в гугле можно найти много интерпретаций: https://www.google.ru/search?q=обезьян+обливали+водой. Сам эксперимент хороший, но почему-то его обычно пересказывают в стиле, что "все - обезьяны, а я д'Артаньян". Я хочу реабилитировать его на примере программирования. Мудрец по капле воды догадывается о существовании океанов, а специалист любое социальное явление может объяснить примером из своей профессии.

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

Я помню минимум 2 истории, когда я оказался подобен сухим обезьянам, хотя конечно их намного больше и о многих я еще не знаю.

В рейлс 3.0 (или 3.1 я не помню) была досадная особенность, что в девелопменте сервер не подхватывал измения схемы базы данных, и после выполнения каждой миграции нужно было его рестартовать. Я дисциплинировано перегружал сервер вплоть до ближайшего понедельника, когда случайно забыл перегрузить и увидел, что уже все работает правильно.

Когда-то давно я обжегся когда создал модель News для реализации новостей. Это было нарушением минимум двух конвенций: использование для модели и для ресурсов слова, одинакового в единственном и множественном числах, а также использование служебного слова new. Поэтому я долго время использовал невнятный NewsLetter. Недавно я проверил как же обстоят дела с новостями в новых рейлс, оказывается все работает как надо. Можно использовать rails g scaffold news title:string body:text и все будет работать.

Таким образом обезьяны нам просто подсказывают, что, нужно время от времени проводить инвентаризацию своих знаний и чем старше знание, тем более внимательно нужно проверять. Часто молодые программисты без опыта оказываются более эффективные, чем с опытом, потому-что они пользуются сразу же новыми технологиями без лишней рефлексии. Пусть и они не знают ассемблера, си, как экономить байты, как управлять памятью и писать резидентные программы. Чёрт, они вообще ничего не знают и ничего не боятся! Но у них нет груза устаревших знаний. Хотя я, следует признать, тоже не работал за Спектрумом, БЭСМ-6, счетами абак и не видел динозавров, что очень злит людей, которые это все пережили.

Поэтому я советую всем (и сам стараюсь следовать этому совету) постоянно изучать новые технологии, подходы, экспериментировать и искать. Тогда работа будет в удовольствие и не будешь сухой обезьяной :)

comments powered by Disqus