Психологическая деформация программистов. Взгляд с обеих сторон баррикад

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

    Я достаточно часто сталкивался с подобным мнением и не придавал ему особого значения, но когда женский коллектив нашей организации поздравил программистов с 23-м февраля по доброму назвав их «космическими войсками», решил всё же расставить определенные акценты в данном вопросе, т.к. одна из моих профессий связана напрямую с психоанализом. Да и баш уже не молчит.


    Сразу стоит заметить, что программист много времени проводит за компьютером, следовательно, многие из перечисленных пунктов относятся не только конкретно к программистам, а и к «компьютерщикам» в целом.

    Гиперконцентрация

    Каждый программист знает, что хорошая и качественная работа над кодом требует очень высокой степени погруженности в код. Кто-то старается себя изолировать наушниками, кто-то ставит таймеры, выключает все внешние раздражители и т.п. Степень концентрации при работе программиста сравнима с работой на ядерной станции. Соответственно, всё это порождает повышенную раздраженность при прерывании данного процесса, что внешне воспринимается непосвященными людьми как «замороченность на работе» и т.п.

    В реальной жизни это также может вызывать свои эффекты, как например бытовые дела тоже по привычке начинают производиться в режиме гиперконцентрации. Например, во время уборки в квартире программист не будет параллельно думать о миллионе дел или безудержно болтать по телефону. Скорее он погрузится в какую-то свою задачу (может и в саму уборку) и просто будет заниматься процессом. Не стоит от программиста «требовать внешнего внимания», когда он прогружен в код или какую-то задачу.

    Погруженность во внутренние образы и конструкции

    Работа программиста имеет свою специфику, которая в аналогичном виде более всего присуща профессии инженера-изобретателя. Если вы знакомы с трудами Никола Тесла, то сможете вспомнить как он описывал то, что происходит в его голове. Если вкратце, то в голове Тесла мог построить механизм, запустить его и даже «прокрутить во времени» его работу, чтобы понять какие детали будут изнашиваться и где могут возникнуть проблемы в будущем. Не менее сложные конструкции возникают и в процессе профессиональной работы программиста. Данный эффект называется образно-чувственным конструированием. Если обыватель видит на экране только наборы символов, то в голове программиста этот код превращается в целые части мира. Как чтение книги создает образы и переживания в человеке, так и код способен такое же делать с программистом. Именно поэтому программисты «чувствуют» код, знают когда он «красив», когда «грязен», будет ли он работать и т.д. С какой-то стороны хороший программист сравним с писателем художественных произведений.

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

    Низкий уровень социального взаимодействия и его разнообразия в повседневной работе

    Данный момент не является «де факто», однако всё же периодически встречается и может играть свою определенную роль в деформации психики. Так как большую часть рабочего времени программист проводит в мире кода, и единственными «собеседниками» в нем являются «методы, функции, объекты, модули, пакеты и т.п.», соответственно и уровень социального взаимодействия у программистов, как правило, ниже, чем в большинстве профессий. Это связано еще не столько с тем, сколько людей вовлечено в работу, сколько с тем, думает ли о других людях в данный момент сам человек. Если работу дворника сложно назвать «активно социальной», тем не менее, сам дворник может в этот момент размышлять о жене, детях, друзьях и т.п. А для программиста же такая возможность отсутствует, он должен быть погружен в код. И хотя часто имеется рабочий коллектив, но коллектив, как правило, таких же программистов. Программистам иногда сложно работать рядом с людьми других профессий. Так что если степень деформации в коллективе высока, то это лишь усугубляет данный фактор (социального разнообразия отношений).

    Обостренное восприятие причинно-следственных связей

    Любой код должен работать, но чтобы написать работающий код, нужно понимать структуру причинно-следственных связей этого кода. Проще говоря «что, почему и как происходит», а также «что произойдет, если что-то не произойдет как ожидалось». Всё это накладывает свой отпечаток и на мышление человека. Данный способ мышления еще принято называть «техническим складом ума», когда человек старается найти всему рациональное объяснение и понять причинно-следственную связь. Отдельные программисты помимо написания кода часто втягиваются в технические аспекты, как например разработка аппаратуры под свои нужды (привет «паяльникам»). Порой это может доходить до уникальных надстроек в психике. Например, когда сложная застежка бюстгальтера девушки вызывает столько же интереса, как и то, что этот бюстгальтер скрывает.

    Со стороны это часто может восприниматься как «замороченность над мелочами». То что не вызывает интереса для большинства людей, в программисте может порождать огромные потоки размышлений. Соответственно, так как не пропорциональны объемы приложения умственных усилий, то выводы, которые делает программист об эффектах реального мира, порой могут казаться «чудаковатыми» и восприниматься с определенным удивлением. Но что удивительно, если вы спросите программиста почему он так решил, то, скорее всего, получите целую цепочку причинно-следственных связей, и почти всегда вполне разумных. В целом такое происходит в голове каждого человека, однако именно у программистов этот момент часто обострен и порой он способен привлекать для анализа те аналогии, которые не пришли бы в голову обычному человеку.

    Привыкание к формализованной постановке задач

    Так как программист должен создавать код, который должен работать ровно так, как это требуется для задачи, то привычка делать то, что было сказано, постепенно перетекает и в другие области жизни. Но так как в большинстве случаев социального взаимодействия имеет место невербальное восприятие, «угадывание» и «додумывание», то у программистов обостряется чувство конкретизации.

    Не то чтобы сказать, что программисты не умеют читать мыслей и предугадывать действия других людей, но скорее они предпочитают задать лишний вопрос, чем потом «переделывать заново». Отправляете программиста в магазин? Скажите на одно предложение больше, но избавьте его и себя от лишних вопросов. Например, не «купи яиц», а «купи десяток яиц первого сорта посвежее». И не воспринимайте его как «робота» если на свой вопрос вы получите детализированную инструкцию с кучей «ненужных вам деталей». Он старается сделать всё правильно. Если для большинства «будь проще» это «говори меньше», то для программистов «будь проще» это часто «говори точнее».

    Жертвы «инженерного-гламура»

    Рискую быть «съеденным заживо», но данный момент требует всё же освещения в рамках этой статьи. Речь пойдет не столько о программистах, сколько о «компьютерщиках». Гламур является нормальным и естественным порождением человеческих потребностей, вкратце девизом гламура можно назвать «Кто круче», соответственно для реальной жизни это «тачки, шмотки, бабло и т.п.». В сфере «инженерного-гламура» действует тот же принцип «Кто круче», однако с иными критериями. Так как основная концентрация «компьютерщика» направлена не на других людей, как в «гламуре реального мира», а на собственный внутренний мир образов и причинно-следственных связей, соответственно и цели здесь преследуются из области этого мира. Последний навороченный по характеристикам смартфон; мощный комп/сервак/ноут чтобы всё бегало еще быстрее; свежие программы, которые делают вбивание автокомплита на 32 миллисекунды быстрее; новые приложения с более плавной проруткой и модным голосовым распознавателем; знания о тайных особенностях новой версии компилятора и т.п.
    Как и в «реальном гламуре», так и в «инженерном» есть свои «иконы», например недавняя статья про модем U.S. Robotics явный тому пример.
    Так что не спрашивайте «зачем ему такой же телефон» и не удивляйтесь ответу «он не такой же, тут же на 500 мегагерц сильнее проц».
    Интересный момент. В отдельных случаях «инженерный гламур» может быть подавлен обостренным требованием к причинно-следственным связям. То есть новый комп не будет куплен, пока реально не потребуется его мощность.

    Заключение

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

    С учетом всего описанного не без оснований программистов воспринимают как «космических товарищей», однако по своему субъективному мнению, хочу сказать что если бы не добровольный выбор тех, кто идет в ряды программистов, то им бы стоило давать «молоко за вредность», но в данном случае психологического характера.

    Тем не менее, каждый человек сам строит свою жизнь и сам факт психологической деформации «труженников кода» пока не так велик. Большинство имеет семьи, друзей, интересы помимо кода и компьютера. Так что не ведитесь на шаблонное «да он программист». Это не диагноз, это просто стиль мышления )

    Лексунин Евгений,
    «Сокращая энтропию в разработке»


    UPD:
    Небольшой бонус от пользователя ikra: жж пост «Не будите программиста».
    Поделиться публикацией
    Похожие публикации
    Ой, у вас баннер убежал!

    Ну. И что?
    Реклама
    Комментарии 547
    • +80
      на вопрос: «расскажи о себе?», можно смело кидать линк на эту статью)
      • НЛО прилетело и опубликовало эту надпись здесь
        • –1
          Это точно, тоже кинул своей девушке. :) Отличная статья!
          • +142
            Ну зачем мне знать, кто кому какой кинул линк?!
            • +30
              А ещё программисты должны уметь пропускать ненужную им информацию мимо их внимания, ставить некий фильтр в голове, чтобы потом не обдумывать лишнее.

              Впрочем, согласен, перечисление всех порадовавших свою половину этой статьёй здесь не очень уместно, каюсь. :)
              • +4
                Уж если подходить к этому рационально, то я склонен допускать однократное появление подобной информации, но категорически против её бессмысленного повторения. У нас же здесь не пионерский лагерь, в котором спрашивают, кто пойдёт смотреть индийский фильм:

                [1] — Я!
                [2] — И я!
                [3] — И я тоже!

                [40] — <неразборчивый крик из толпы>
                • 0
                  Напомнило старый анекдот:
                  — Сегодня будем есть котлеты. Ты, ты, ты и ты — пойдете крутить мясорубку. А ты, ты, ты и ты…
                  — Можно и я?!
                  — … ну и ты — пойдете на фарш.
              • +18
                Аватарка как нельзя лучше подходит к комментарию :)
                • +3
                  Затем что это, на мой взгляд, парадокс программиста. Он с одной стороны логичен и прагматичен, а с другой он обычный человек, который хочет быть признанным и понятым. С кем как не с себе подобными он может поделиться и выразить свои эмоции?
                  • +9
                    я не обычный человек, что за вздор. я Программист.
                    • +1
                      Ну так физик может воскликнуть «Я необычный чел, я Физик!». Но будет ли он для нас каким-то необычным? Нет, это просто чел шарящий в физики и по своему «сдвинутый по фазе». Но он обычный! Под «обычным» следует понимать что он\она также как и любой другой кушает, спит, радуется, прыгает и много еще другого. На мой взгляд программера понимать нужно объект класса «Программист», который унаследован от класса «Человек». А следовательно программер является прежде всего Человеком!
                      • +4
                        ошибаетесь.
                        прежде всего я являюсь именно программистом. для этого я учусь, стараюсь…
                        а человеком я родился (тоже спорно если приплести этику). общебытовые вещи не делают людей похожими. мы радуемся едим и прыгаем по-другому
                        • +2
                          >>общебытовые вещи не делают людей похожими
                          А кто говорил про «похожесть»? Я говорил о том, что какими бы мы различными не были прежде всего мы люди!

                          Вы вот говорите «прыгаем по-другому». Если Вася прыгает выше Пети, это ведь не значит, что Вася стал на несколько процентов кенгуру. ВДВ-шники умеют неплохо ползать(нормативы у них), но это их не делает пресмыкающимися.

                          Какими бы мы различными не были и как бы по разному не делали что-нибудь мы продолжаем оставаться людьми!

                          >>для этого я учусь, стараюсь…
                          Вы это делаете для того, чтобы еще более эффективней решать свои задачи или задачи заказчика. Разве не так?

                          Учение на протяжении чуть ли не на протяжении всей его карьеры делает многое для программиста, но не эта особенность делает его программистом!

                          Программиста прежде всего делает «Огромное желание решить задачу максимально эффективно, а если позволяет возможность и элегантно».

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

                          На мой взгляд Вы заблуждаетесь говоря, что вы прежде всего программер. Чтобы это понять представьте маловероятную ситуацию, что Вам ваш начальник урезал зарплату и аванс скажем до нуля! Мотивируя: «Но ведь ты получаешь колоссальную возможность учиться на боевых ситуациях возникаемых на работе, думаю тебе этого хватит». Неужели Вас это устроит?
                          • +1
                            Собственно я в похожей ситуации нахожусь. Изучаю новые технологии, инструменты, методики и т. п. лишь из-за «любви к искусству». И, в принципе, готов применять их бесплатно, если это не исключает доход «на еду» от «быдлосайтостроения».
                            • +1
                              Вот! Видите Вы не говорите «Я готов работать за бесплатно», вы говорите «в принципе», т.е. когда Вам будет нечего кушать Вы будете действовать совершенно по-другому! А все потому что, когда человек сыт ему легче рассуждать о высоком! Когда же он не знает откуда взять очередные 25.000 руб за квартиру(1 комн. Москва), а при этом думает как бы еще на памперсы хватило и еще много на че, то у него «интерес» уходит в лучшем случае на второй план!
                              • 0
                                В свободное время я их готов применять бесплатно, лишь бы «в стол» не писать, были бы задачи интересные и востребованные. Сейчас занимаюсь маловостребованными и неинтересными за копейки. Будь интересные и востребованные зарабатывал бы чем-нибудь другим, а для души бы писал.
                                • 0
                                  Был такой умный дядька Маслоу. Он всё это очень точно описал…
                          • +1
                            Да, но у наследника свойства и методы могут быть перегружены, полимофизм, все дела…
                            • +1
                              class stream;
                              class input_stream: public stream;
                              class output_stream: public stream;

                              Вот пример того что у наследников может быть совершенно по-другому чем в родителе, но они же не перестают быть стримами!
                  • +8
                    кто такой Женя?
                    • +2
                      У меня была в точности обратная ситуация.
                  • +2
                    Получил Ваш линк, стоп, мы же не женаты?
                    • НЛО прилетело и опубликовало эту надпись здесь
                      • 0
                        … или?..
                    • +5
                      Я как-то наткнулся на пост «Не будите программиста» и теперь кидаю ссылку на него, когда нужно доходчиво объяснить почему отвлекать не стоит ;)
                      • +3
                        Ссылка на сам пост Не будите программиста
                        • +2
                          Блин, сначала прочитал Ваш первый камент, полез искать пост на Хабре. Пока искал нашел пару интересных постов, потом снова зашел сюда и заметил ссылку :)
                        • +2
                          Да, я тоже его в свое время дал почитать жене, много проблем отпало (мы работали вместе). Написан он проще и художественнее, чем этот.
                          • 0
                            Ошибки бы там еще кто почистил…
                          • +1
                            Интересный пост. Добавил ссылку на него в статью.
                          • +5
                            Кинул девушке, чуть не поругались, сказала что я инопланетянин.
                          • +9
                            Я согласен на «молоко за вредность» в его натуральном виде, а не в психологическом.
                            • +89
                              Про поход в магазин — инфа 100%, меня в тупик ставит формулировка задания «Купи что-нибудь к чаю». Я зависаю.
                              • +97
                                — Почисти картошки.
                                — Сколько?
                                — Ну на суп чтобы хватило.

                                Вот от этого тоже ступор бывает.
                                • +2
                                  Просто уточняете, если до этого «на суп» ещё ни разу не покупали. :)
                                  • +14
                                    Просто супы бывают разные, например такие, которые не требуют картошку вообще :)
                                    • –11
                                      if(!popatoes.needed())
                                      throw new potatoesNotNeededException;

                                      И вы зависли…
                                    • 0
                                      Это называется lazy initialization ;)
                                    • +38
                                      Это вы просто ещё юниор, не способный работать самостоятельно и понять задачу без точных директив от тим-лида :)
                                      Опытный программист понимает, что перед ним стоит задача не «почистить три картофелины», а «получить вкусный обед» :)
                                      • +3
                                        Ну собственно ответил выше.
                                        Солянка например, чем не вкусный обед? :)
                                        • +5
                                          Да-да, и он в состоянии провести перспективную декомпозицию обеда, оптимизацию полученной модели и расчитать затраты на разработку :)
                                          • 0
                                            Другой вопрос: почему слесарю 3-го разряда понятна задача «про картофель», а программисту, зачастую и опытному, не понятна без пинка?!
                                          • +11
                                            Картошка — еще не так страшно. Я примерно представляю сколько её в тарелке и сколько тарелок в кастрюле. А вот заявочки типа «купи ванили на торт» или «дрожжи на пироги» — вот это и правда шах и мат.
                                            • +6
                                              Почему? И то, и другое продаётся в упаковках, которые расходуются медленно и хранятся долго, так что можно покупать с запасом.
                                              • +1
                                                Кто их знает на сколько упаковка рассчитана. На дрожжах может ещё и написано на сколько кг теста они рассчитаны, а вот ваниль…
                                                • +20
                                                  Да, я недавно так взял «с запасом» — целых 3 пачки ванильного сахара. Оказалось надо было 4.
                                                • +1
                                                  Дрожжи или ваниль можно с запасом взять, пригодятся.
                                                  • 0
                                                    Интересная идея вычислять количество необходимой картошки по тому, сколько её помещается в тарелку
                                                  • +1
                                                    С покупкой салатов и других весовых продуктов тоже сложно
                                                    • +1
                                                      Наверное это одна из причин, почему я умею готовить сам: чтобы не замарачиваться с ответами типа «на эту кастрюлю супа» — прикидываю из своего опыта самостоятельно. Правда бывают накладки: я люблю суп погуще, а жена пожиже — приходится тоже учитывать :)
                                                      • +1
                                                        [irony]Странно… фраза «Почисти картошки», по идее, уже сама должна ставить в тупик. И уточнять там нечего.[/irony]
                                                        • +3
                                                          Т.е. «почисти печеньки» — все ок, а картошка сразу ставит в тупик? :)))
                                                          • +3
                                                            Я один не знаю, что значит «почисти печеньки»? Или я шутку не понял?)
                                                            • +7
                                                              В китайских смартфонах раньше, а может и сейчас до сих пор, был очень кривой перевод. В частности, в браузере «Clear cookies» переводилось как «Почисти печеньки»/«Чистые печеньки»
                                                        • +2
                                                          Данная предметная область достаточно проста. Тем более, для аналитического ума, коим, без сомнения, является ум программиста. Основные сведения о преобразованиях сырых продуктов в еду, критериях качества и вкусовых особенностях еды, полученной основными способами приготовления, и практические советы приведены в любом более-менее вменяемом учебнике по кулинарии.

                                                          Чтение документации экономит гораздо больше времени в дальнейшем, чем время, потраченное на её изучение. Любой программист уж должен это знать.
                                                          • +4
                                                            Помню на меня девушка смотрела как на идиота, когда я начал взвешивать картошку на суп по «ману». Была ещё мысль одну картофелину пополовинить, чтобы 2 кг (вроде) точно вышло, а не 2,05. Но пожалел её :)
                                                            • +1
                                                              Девушку или картошку? :)
                                                            • +1
                                                              Ага, как же. Половина рецептов содержит слова «положить по вкусу» и «варить до готовности». Адски простое описание для аналитического ума.
                                                              • +2
                                                                Изучать кулинарию по рецептам — это как учить язык программирования по примерам кода. Да и ни в соли по вкусу, ни в варке до готовности нет ничего сверхъестественного. За 1-2 неудачные итерации последовательных приближений вы будете точно знать, сколько надо солить и варить.
                                                                • +1
                                                                  Ещё «малый огонь», «средний огонь», «золотистая корочка» и т. п. «Золотистая» — это как в RGB будет? :)
                                                                  • +16
                                                                    Не, я понимаю, что меня троллят, и всё же отвечу ;-)

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

                                                                    Золотистая корочка — это понятие при жарке мяса. Что такое мясо? Это фрагмент живой ткани, наполовину состоящей из воды. Внутри мясо содержит много капилляров, по которым эта вода во время жарки будет вытекать и испаряться. Если вся вода испарится, мясо получится сухим и жёстким. Чтобы она не вытекала и осталась внутри на всё время готовки, надо эти капилляры на поверхности мяса закупорить. Для этого включают большой огонь и как можно быстрее сообщают поверхности много тепла. Большой огонь нужен, чтобы тепло не успевало проникнуть в середину блюда и изменило только его поверхность. Уже потом включают малый огонь и на нём уже готовят до конца. Это делается, чтобы доставка тепла к середине и поверхности блюда была равномерной, чтобы мясо приготовилось на всей его толщине.

                                                                    Так вот. Состояние поверхности мяса, когда сосуды закупорены, визуально выглядит как корочка. Если подольше обжаривать, корочка станет коричневеть. До этого доводить не надо, т.к. при дальнейшей готовке, когда прожарится середина мяса, корочка станет чёрной и (внезапно!) невкусной. Состояние, до которого надо обжаривать, называют золотистой корочкой. Это не значит, что надо стоять со спектрометром или снимать RGB.

                                                                    Применительно к супу, малый и большой огонь ещё проще. Варение (размягчение продуктов) идёт при температуре кипения воды. Чтобы как можно быстрее сварить суп, вам надо сначала включить большой огонь (максимально быстро нагрев суп до 100 градусов), а потом маленький, достаточный, чтобы не прекратилось кипение. Если оставить большой, то слишком интенсивное кипение быстро испарит вам всю воду.

                                                                    Давать точные количества ингредиентов и точное время приготовления бесполезно по трём причинам. Во-первых, плюс-минус 30% ингредиентов в большинстве случаев незначительно повлияют на результат. Во-вторых, от того, какие конкретно продукты у вас есть, будет зависеть и их приготовление. Например, каменная соль намного солёнее, чем йодированная. А последняя ещё и распадается при термической обработке. И, в-третьих, время приготовления зависит от характеристик вашей плиты и посуды — у всех разные теплопроводность, теплоёмкость и теплопотери. Какая-то очень инертная и долго нагревается, зато потом не остудишь. Какая-то мгновенно нагревается, зато требует посуду с толстым дном. Можно в рецептах писать: «Сообщите мясу 600 кДж тепловой энергии с таким распределением, чтобы плотность тепла на объём продукта на поверхности была в 4 раза выше, чем в середине». Хрен измерите. Гораздо проще написать про золотистую корочку.

                                                                    Надо просто понимать физику процесса, которым вы занимаетесь, и иметь немного практики, чтобы визуально/по запаху/на вкус определять, что сейчас происходит у вас на плите. Уверяю, что проблемы, с которыми сталкивается программист во время работы, гораздо сложнее.
                                                                    • +3
                                                                      И не думал троллить, просто на жизнь пожаловался. В следующий раз надеюсь мясо нормально получится, а то никак нормально не пожарить, как-то не додумывался в процессе температуру менять. Спасибо.
                                                                      • +4
                                                                        вы сделали мой день.
                                                                        я теперь знаю как надо жарить мясо и почему оно у меня невкусное получалось. все дело в корочке!!!
                                                                        • +1
                                                                          Читая ваш опус, подумалось, что дело не только в физике процесса, но и в измерительных приборах и единицах измерения. Т.е. мы картинку на экране можем точно измерить — взять линейку в фотошопе и вот он ответ. А с солью в супе все сложнее. Потому что нет адекватных измерительных инструментов. Нет, оно, конечно, можно взвешивать необходимое количество, но это нифига не быстро и все равно неточно (соль разная). Вот и получается, что, с точки зрения результата, эффективней оценивать на глаз, но требуется практика.
                                                                          • +1
                                                                            Угу. Глаз он такой. Требует калибровки по эталону — рецепторам на языке.
                                                                            • 0
                                                                              Говорят, что рецепторы эти ни фига не эталон. Их «пристрастия» изменяются со временем.
                                                                              • 0
                                                                                Значит надо предусмотреть поверку во время регламентного обслуживания ;-)
                                                                            • 0
                                                                              С солью на самом деле сложность всего одна: абсолютный новичок в готовке не представляет даже примерные диапазоны. Сколько соли на кастрюлю супа? Чайную ложку? Столовую? Две, три? В этом смысле согласна, плохо, что в кулинарных книгах не пишут хотя бы примерные ориентиры.

                                                                              С другой стороны, эти примерные ориентиры достаточно узнать у кого-нибудь (у мамы, например :)) один раз и потом по ним прикидывать все остальное. Вот, например: на самую большую кастрюлю, в которой я борщ варю (5,5 л), кладу полторы столовые ложки соли. Соль обычная мелкая, не йодированная.
                                                                            • +1
                                                                              Это шедеврально!
                                                                              Я ваш коммент в избранное добавил, просто чтобы знать как жарить мясо )
                                                                    • +1
                                                                      Картошка бывает разного размера, иногда необходимо срезать позеленевший верхний слой или потемневшие участки. Поэтому точное количество картофелин обычно сказать сложно.
                                                                      • 0
                                                                        Вес в почищенном виде?
                                                                        • НЛО прилетело и опубликовало эту надпись здесь
                                                                        • 0
                                                                          Когда я учился на повара, нам препод объясняла, что если картошка позеленела хотя бы чуть-чуть, значит, в ней уже есть много соланина, её бесполезно срезать/обчищать, надо выкидывать
                                                                          ru.wikipedia.org/wiki/Соланин
                                                                          • 0
                                                                            Спасибо. Я смотрю, очень полезный топик в плане прокачки кулинарных способностей :-)
                                                                        • +1
                                                                          Картошку еще на глаз отмерить можно. А вот «соли/специй/чего угодно по вкусу» — реально жесть:)
                                                                          • 0
                                                                            Просто спрашиваю. Обычно в итоге чищу с запасом, и лишняя картошка лежит в холодильнике до завтра.
                                                                            • +30
                                                                              Робот Фортран! Возьми в правую руку нож и чисть картошку!

                                                                              Почему никто еще не запостил?
                                                                              • +2
                                                                                Да, да, да! У меня была в детстве такая книжка! Там еще графопостроитель как периферийное устройство вместо принтера описан. :)
                                                                                • 0
                                                                                  Кстати, на каком-то CC можно было порисовать графопостроителем. Классная штука!
                                                                                  Все писали минипрограмки на бейсике, чтобы рисовать картинки, а один самый хитрый сделал прямое управление.
                                                                                  • 0
                                                                                    А еще внутри нее был ноутбук на целый разворот!!!

                                                                                    Поворачиваешь книгу на 90 и вуаля)))
                                                                                  • 0
                                                                                    Ааааа! Это была моя любимая детская книга! ^_^ Мне брат ее дал читать, когда я просил, чем он занимается. =Р
                                                                                    • 0
                                                                                      У меня в детстве таких было 2. Как вторая называлась уже не помню…
                                                                                      • НЛО прилетело и опубликовало эту надпись здесь
                                                                                        • 0
                                                                                          наверное, я слегка постарше тут присутствующих :) и потому один не знаю, о какой книге идет речь?? Намекните про название, а то я тоже часто испытываю трудности при объяснении, чем же я занимаюсь на работе своей 6-летней дочери ))))))))))
                                                                                          • НЛО прилетело и опубликовало эту надпись здесь
                                                                                    • 0
                                                                                      Сразу спрашиваю, сколько средних картошин чистить.
                                                                                      • 0
                                                                                        Прочитал ваш комментарий, и подумал что, если бы вы были программой, то искусственный интеллект бы у вас отстутствовал.
                                                                                        • +23
                                                                                          Вполне адекватно реагирую на такую просьбу — просто покупаю то что нравится/хочется мне :) Не устраивает, говорите конкретнее. В остальном ориентируюсь на то что покупал раньше, если раньше прокатили «яйца первый сорт», то и сейчас прокатит.
                                                                                          • +41
                                                                                            Это называется кеширование :)
                                                                                          • +85
                                                                                            «Жена посылает программиста в магазин:
                                                                                            — Дорогой, купи, пожалуйста, палку колбасы, и если будут яйца, то купи десяток.
                                                                                            Через полчаса программист возвращается с десятью палками колбасы.»
                                                                                            • +12
                                                                                              Ещё в копилку:
                                                                                              Программист перед сном ставит 2 стаканы воды — пустой и полный. Один если захочется пить, второй — если не захочется
                                                                                              • +11
                                                                                                А тот, кто понимает, что такое полиморфизм, ставит один, полный наполовину. В зависимости от возникшей ситуации можно воспринимать его как полупустой или как полуполный.
                                                                                                • +7
                                                                                                  Покажите-ка, пожалуйста, диаграмму классов для этого одного стакана. Что-то у меня нет ощущения, что Вы понимаете, что такое полиморфизм.
                                                                                                  • +3
                                                                                                    Почему же вы считаете, что вне ООП программирования нет?
                                                                                                    • –1
                                                                                                      1) Я так не считаю.
                                                                                                      2) Полиморфизм, если уж мы говорим об объектах класса «стакан», является механизмом именно объектно-ориентированного программирования. Функцией стакан я никак не могу считать, как бы мне этого ни хотелось. А так и полиморфизм кристаллов бывает, что уж там.
                                                                                                      3) Пролейте уж свет на моё невежество.
                                                                                                      • +6
                                                                                                        Полиморфизм по модулю, например.
                                                                                                        % empty_glass.erl
                                                                                                        ...
                                                                                                        handle(Glass) ->
                                                                                                           do_not_drink(Glass).
                                                                                                        % full_glass.erl
                                                                                                        ...
                                                                                                        handle(Glass) ->
                                                                                                           drink(Glass).
                                                                                                        % glass.erl
                                                                                                        ...
                                                                                                        handle(Glass, HandlerMod) ->
                                                                                                           HandlerMod:handle(Glass).
                                                                                                        % human.erl
                                                                                                        ...
                                                                                                        do_something_with_glass(Glass, thirsty) ->
                                                                                                           glass:handle(Glass, full_glass);
                                                                                                        do_something_with_glass(Glass, _) ->
                                                                                                           glass:handle(Glass, empty_glass).
                                                                                                        

                                                                                                        Можно еще сделать через лямбду, тогда больше языков будут подходить для реализации.
                                                                                                        • 0
                                                                                                          Симпатично, ага. Плохо только, что у стакана нет состояния. То есть если из стакана в целом можно сделать в среднем десять глотков, то после одного глотка из полупустого стакана… короче, очень сложная и неэффективная система нарисуется. И это предлагает сделать программист?
                                                                                                          • +4
                                                                                                            Как это нет состояния? Glass же везде обрабатывается как record с полем water_level.
                                                                                                            И каждая из описанных функций возвращает измененный record, так что в неупомянутом коде это выглядит примерно так:
                                                                                                            NewGlass = human:do_something_with_glass(Glass, Human#human.thirst),
                                                                                                            
                                                                                                            • 0
                                                                                                              Тогда непонятно, зачем нужны full_glass и empty_glass. :-)
                                                                                                              • +1
                                                                                                                В данном случае — чтобы продемонстрировать полиморфизм. В жизни — чтобы изменять поведение какого-либа куска кода, не изменяя его.
                                                                                                                Таким образом, например, можно реализовать инкапсуляцию чего-либо в TCP, а потом дописать инкапсуляцию в SCTP неинвазивным плагином.
                                                                                                                Да и сам OTP во многих местах использует полиморфизм по модулю (см. тот же gen_server)
                                                                                                                • +1
                                                                                                                  Вообще удобнее делать частичное применение glass x, где x \in [0,1]. Вроде как «наполненность».
                                                                                                                  • 0
                                                                                                                    Да, удобное каррирование — то, чего эрлангу не хватает. С другой стороны, в хаскелле, вроде бы, нет модулей, по которым можно устроить полиморфизм.
                                                                                                                    • +1
                                                                                                                      Модели в хаскеле есть, однако признаю, что устраивать полиморфизм по ним никогда в голову не приходило, так что даже не знаю, можно ли. В хаскеле все-таки не утиная типизация, а строгая, так что вероятно действительно нельзя. Но зато можно как-то так:

                                                                                                                      empty.hs:

                                                                                                                      handle Glass _ = do_not_drink Glass

                                                                                                                      full.hs:

                                                                                                                      handle Glass Thirsty = drink Glass
                                                                                                                      handle Glass _ = do_not_drink Glass

                                                                                                                      main.hs:

                                                                                                                      do_something_with_glass Empty_glass thirsty = empty.handle Empty_glass thirsty
                                                                                                                      do_something_with_glass Full_glass thirsty = full.handle Full_glass thirsty

                                                                                                                      • 0
                                                                                                                        Ну и понятно, еще data.hs:
                                                                                                                        data Glass = Empty_glass | Full_glass
                                                                                                                        data Condition = Thirsty | Nil
                                                                                                                  • –1
                                                                                                                    В жизни-то понятно. А этот пример, в котором уже прозвучало слово record (ну, Вы понимаете, куда я клоню) просто, имхо, неудачен. Причем не из-за тонкостей реализации, а просто так неудачен, чисто с точки зрения семантики. Мы не будем стаканить человека, мы не будем водянить стакан.
                                                                                                          • +6
                                                                                                            Стоп, как это стакан — не функция? Стакан, это функция, отображающяя жидкость из исходной тары в меня! Стакан — очень даже функция.
                                                                                                            И если уж на то пошло, в ФП не только функции есть, да, а без полиморфизма там вообще никуда.
                                                                                                            • +1
                                                                                                              А что такое «полупустая функция»?
                                                                                                              • +2
                                                                                                                Ну вам выше уже написали как это работает в коде. Если пить хочется — отображает воду, иначе, например, воздух или вообще ничего.
                                                                                                                • +3
                                                                                                                  drink(WaterLeft) when WaterLeft < 10 ->
                                                                                                                     drinker ! {water, WaterLeft},
                                                                                                                     fun() -> drink(0) end;
                                                                                                                  drink(WaterLeft) ->
                                                                                                                     drinker ! {water, 10},
                                                                                                                     ...
                                                                                                                     fun() -> drink(WaterLeft - 10) end.
                                                                                                                  
                                                                                                                  halfglass() ->
                                                                                                                     fun() -> drink(50) end.
                                                                                                                  

                                                                                                                  halfglass возвращает полупустую функцию-стакан.
                                                                                                                  • 0
                                                                                                                    Инженерный гламур в действии :)
                                                                                                        • 0
                                                                                                          Это не то чтобы полиморфизм, а скорее соблюдение протокола а ля duck typing. Ну или полиморфизм со множественным наследованием, что для многих программистов и/или во многих языках представляет собой мозговыносную проблему.
                                                                                                          • 0
                                                                                                            А вот event-driven системе при отсутствии необходимости пить стакан с водой не понадобится.
                                                                                                          • +1
                                                                                                            … 2 стаканы воды — один полный, а второй — '/0' :)
                                                                                                            • +2
                                                                                                              А админ ставит три стакана: один если захочется, второй если не захочетяс, и третий — для бэкапа.
                                                                                                              • +2
                                                                                                                Программист перед сном ставит 2 стаканы воды — пустой и полный. Один если захочется пить, второй — если не захочется

                                                                                                                Вообще глупость, конечно. Программист как раз не имеет с этим проблемы. Просто else для условия if (needWater()) будет отсутствовать. Это тогда не программист, а быдлокодер какой-то, но в таком случае эти стаканы должны выглядеть как велосипеды с квадратными колёсами и костылём вместо седушки.
                                                                                                                • +1
                                                                                                                  А вдруг глотка неинициализированной останется? :)
                                                                                                                  • 0
                                                                                                                    А глотка разве не инициализировалась при создании объекта класса «Человек»? Просто когда хочется попить нам надо будет вывод из полного стакана отправить в глотку. Другое дело, что, у программиста может не стоять обработка ошибки если стакан пустой или отсутствует, но это уже другой вопрос.
                                                                                                                  • 0
                                                                                                                    Поддерживаю. Всегда не любил такие анекдоты. Про программистов есть умные анекдоты, но большинство не имеют к реальности никакого отношения.
                                                                                                                  • 0
                                                                                                                    ну и, как известно, админ ставит 4 стакана — на случай отказа первой системы
                                                                                                                  • +10
                                                                                                                    с одиннадцатью.
                                                                                                                    • +2
                                                                                                                      Всё таки десять.

                                                                                                                      kolbasa=1
                                                                                                                      if eggs
                                                                                                                      kolbasa = 10
                                                                                                                      end

                                                                                                                      Вот если бы формулировка была «Жена посылает программиста в магазин:
                                                                                                                      — Дорогой, купи, пожалуйста, палку колбасы, и если будут яйца, то купи ещё десяток.
                                                                                                                      Через полчаса программист возвращается с десятью палками колбасы.», то:

                                                                                                                      kolbasa=1
                                                                                                                      if eggs
                                                                                                                      kolbasa += 10
                                                                                                                      end
                                                                                                                      • +9
                                                                                                                        ошибка в модели предметной области. я себе это вижу как-то так:

                                                                                                                        basket = new stack();
                                                                                                                        basket.push(sausage);
                                                                                                                        if eggs:
                                                                                                                        basket.push(sausage * 10);
                                                                                                                        end;
                                                                                                                        • +4
                                                                                                                          Чудесный ответ программиста на реакцию жены, встретившей его на кухне с десятью палками колбасы ))
                                                                                                                          • 0
                                                                                                                            Тут, кстати, очень подошёл бы какой-нибудь стековый ЯП, тогда можно было бы просто сделать dup (повтор аргумента, находящегося на вершине стека, и запихивание результата в стек)
                                                                                                                      • 0
                                                                                                                        Вот же денег человеку не жалко )).
                                                                                                                        • +1
                                                                                                                          С одиннадцатью. Инструкции надо выполнять последовательно!
                                                                                                                          • +1
                                                                                                                            В дальнейшем, я непременно буду читать комменты, написанные до меня, чтобы избежать подобных конфузов. 8)
                                                                                                                          • +9
                                                                                                                            Наносить шампунь на мокрые волосы массирующими движениями. Смыть тёплой водой. Повторить.
                                                                                                                            • +1
                                                                                                                              Дурной алгоритм. Так шампуня хватает только на одно мытье головы ;-)
                                                                                                                              • 0
                                                                                                                                В алгоритме нет перехода назад, так что вы ошибаетесь. Да если бы и был, то без условия получился бы бесконечный цикл.
                                                                                                                                • +1
                                                                                                                                  > В алгоритме нет перехода назад, так что вы ошибаетесь.

                                                                                                                                  1 Наносить шампунь на мокрые волосы массирующими движениями.
                                                                                                                                  2 Смыть тёплой водой.
                                                                                                                                  3 Повторить.

                                                                                                                                  В строке 3 команда повторить.

                                                                                                                                  > Да если бы и был, то без условия получился бы бесконечный цикл.

                                                                                                                                  Когда нибудь бы случился throw new Exception( 'EndOfШампуня' );
                                                                                                                                  Всетаки заканичвайте писать на C и всяких там асемблерах.
                                                                                                                                  Давно уже есть Java ;)
                                                                                                                                  • +3
                                                                                                                                    Как напишите нормальную JVM с FFI для микроконтроллеров AVR и STM32 — позовите. А на PC я предпочитаю средства помощнее жабы — D, Lisp, даже C++, в конце концов.
                                                                                                                                    • +1
                                                                                                                                      Да, на всякий случай, поясню: я не имею ввиду, что Java плоха, ведь у этой технологии есть своё применение, своя ниша. Просто я сделал свой выбор в пользу других, ничего более.
                                                                                                                              • 0
                                                                                                                                Exception вылетит, когда шампунь кончится!
                                                                                                                              • 0
                                                                                                                                А в чём прикол?
                                                                                                                              • 0
                                                                                                                                тут, зная особенности мышления, можно использовать «дефолтные параметры»
                                                                                                                                • +25
                                                                                                                                  >«Купи что-нибудь к чаю»

                                                                                                                                  Это ведь в аптеку, а не в магазин. Разве нет?
                                                                                                                                  • +9
                                                                                                                                    если посылает жена — то именно к чаю
                                                                                                                                    • +1
                                                                                                                                      >если посылает жена — то именно к чаю

                                                                                                                                      Не пробовал, но выглядит как-то непривелекательно )
                                                                                                                                    • –6
                                                                                                                                      Почему в аптеку? Там же нет ничего пригодного для выкладывания на стол во время чаепития, кроме гематогена.

                                                                                                                                      Или вы имели в виду купить всяких чаёв, которые в аптеках продаются (для похудения, от давления и т.д.)?
                                                                                                                                      • +5
                                                                                                                                        Эта фраза из древнейшего анекдота:

                                                                                                                                        «Вовочка выходит из школы, там его Маша встpечает и пpосит поднести поpтфель до дома… дошли они до дома, Маша ему говоpит:
                                                                                                                                        — Может быть пойдем чай попьем?
                                                                                                                                        — Щас я быстpенько в аптеку сбегаю, куплю что-нибудь к чаю.»

                                                                                                                                        Впрочем, Вовочку и Машу можно заменить на кого угодно. :)
                                                                                                                                  • +5
                                                                                                                                    А вот я на задание «Купи яиц» без задней мысли куплю десяток, а на «Что-нибудь к чаю» — пару пироженых. Выходит, я плохой программист, да?
                                                                                                                                    • +3
                                                                                                                                      Это просто значит что у вас есть дефольтное значение. Возможно, ваша жена никогда не готовила блюда с более чем десятком яиц и вы не покупали их «про запас».
                                                                                                                                      • +14
                                                                                                                                        Мнится мне, что нет. Вы просто умеете ходить в магазин, знаете вкусы и привычки близких людей, хорошо социализированы и не видите в этом проблемы. Людям же, для которых это составляет проблему, очень хочется эту проблему чем-то оправдать. Например, профессией. Это очень удобно.
                                                                                                                                        • +2
                                                                                                                                          Предлагаю просто создать сайт для программистов.
                                                                                                                                          С дефолтными значениями.

                                                                                                                                          Что говорит жена Что нужно сделать

                                                                                                                                          Купи сахару Уточнить как срочно нужно выполнить задачу. Найти ближайший открытый работающий магазин принимающий ту валюту которая у вас или магинтыне карты которые у вас еть (см. Yandex карты с слоем магазины). Дойти до магазина. Выбрать все сахары в магазине отсортировать по стоимости с критерием только белый и сыпучий. Выбрать пачку обьемом от 1 до 2 кг. Принести домой.

                                                                                                                                          Купить картошки к супу Уточнить тип необходимой картошки молодая или старого урожая. «Подпрограмма идти до магазина». Если есть деньги по умолчанию брать молодую картошку. Выбрать всю картошку в магазин отсортировать по обьему затем по стоимости выбрать цену по формуле «цена за добавочный килограм». Выбрать пакет от 1 до 2 кг. Принести домой.
                                                                                                                                          • +2
                                                                                                                                            Мануалы ни кто не читает же!
                                                                                                                                            • +1
                                                                                                                                              угу
                                                                                                                                              так и представляю звонок «дорогой, я проверила-там в листинге на 150й строке опечатка! как купил? сколько? ФУРУ?»
                                                                                                                                        • +11
                                                                                                                                          А меня иногда в тупик ставит фраза «Ну, расскажи что-нибудь.»
                                                                                                                                          • +7
                                                                                                                                            Эта фраза способна поставить в тупик практически любого человека вне зависимости от его профессии =)
                                                                                                                                            • +16
                                                                                                                                              Ну вы блин и глупые

                                                                                                                                              dd if=/dev/urandom of=/dev/stdout

                                                                                                                                              P.S. А вообще что угодно может быть любой вымысел тут достаточно просто читать ваши области памяти.

                                                                                                                                              Однаждый во Вьетнаме купив пару французких уточек я подошел к банкомату и ввел CYDVB-B3QKC, а оно мне и отвечает человеческим голосом Встатье купюру в купюроприемник, а рядом так вкусно борьщем пахнет, что я подумал и закурил. Но не поддался на провокации это наглой натуры, которая продавала Intel-овые карточки в тридорого. Потому что говоря обычной крилицей можно заметить, что был достаточно серьезный перепад температур, а о часовом поясе я вообще молчу. И тут я понял настоящая любовь приходит только загружая русские шрифты в матричный принтер из лексикона достаточно было просто взять и распечатать диссертацию когда они вошли я уже был готов и зарядил свой автомат, но поезд приблежался и тут мне стало как-то не по себе…

                                                                                                                                              Это я вам рассказал что нибудь… Не судите строго просто мой DEV/RANDOM…