Я люблю находить на новостных ресурсах статьи о том, что программисты получают очень много денег. Я сразу пролистываю их до комментариев и с теплом в душе читаю гневные отзывы о том, что программисты ничего не делают и не заслуживают таких денег. Но после прочтения возникает мысль: знают ли они, кто такие программисты? Или они исходят в своих суждениях из неверного знания, даже не подозревая об этом. Например, мало кто знает, почему трава зеленая. Подумайте об этом. Следует ли из ваших объяснений зелености травы именно зеленый цвет?
Почему трава зеленая
Вот представьте, есть у вас маленький ребенок (а у некоторых он действительно есть). И спрашивает у вас ребенок типичный детский вопрос «Почему трава зеленая». У вас есть 4 варианта ответа:
1. «Потому что. У тебя мороженка уже капает»
2. На скорую руку придуманное объяснение (автоматически решает проблему с вопросом про голубое небо). Шаблон для ответов по этому принципу:
Природа так удачно создала наш мир, чтобы все в нем было хорошо и приятно. Поэтому небо голубое, солнце желтое, трава зеленая
3. Хорошее понятное объяснение с точки зрения науки в понятных ребенку терминах.
4. Вывалить на ребенка кучу научной чепухи, чтобы он сам выбрал нужное
Наверное, лучший все-таки вариант 3. Но есть проблема. Вы не знаете вариант 3.
Ах вы знаете вариант 3? Давайте послушаем:
Отлично. А почему хлорофилл зеленый?
Здорово. Этим ответом ребенок точно удовлетворится.
Ответ «Потому что в ней содержится вещество хлорофилл, которое зеленое» не является ложью и дает ребенку необходимый ответ. Но в нем нет нужного знания. То, что хлорофилл поглощает все, кроме зеленого цвета — это определение зеленого цвета. С такой точки зрения, зеленый кубик зеленый только потому, что отражает зеленый цвет. А не потому, что его покрасили зеленой краской.
Давайте сначала изучим вариант 4, а потом просто упростим его до уровня понимания ребенка. Итак, почему трава зеленая?
Хлорофи́лл (от греч. χλωρός, «зелёный» и φύλλον, «лист») — зелёный пигмент, обусловливающий окраску хлоропластов растений в зелёный цвет. При его участии осуществляется процесс фотосинтеза. По химическому строению хлорофиллы — магниевые комплексы различных тетрапирролов. Хлорофиллы имеют порфириновое строение и структурно близки гему. (Wikipedia)
А теперь давайте по-детскому. Усадите вашего ребенка на стульчик,
Итак, трава зеленая, потому что в ней содержится хлорофилл. Хлорофилл нужен, чтобы обеспечивать процесс фотосинтеза и превращать углекислый газ в кислород, получая при этом энергию для жизни растения. И именно с процессом фотосинтеза связан зеленый цвет хлорофилла.
Белый свет является смесью всех цветов видимой части спектра. Каждому цвету соответствует своя длина световой волны. Энергия обратно пропорциональна длине волны: чем длина больше, тем энергия меньше. Этим можно объяснить, почему хлорофилл поглощает синие цвета, ведь они обладают самой большой энергией.
Поглощение же красных цветов зависит от другой характеристики светового излучения — числа фотонов на единицу энергии. Хлорофиллы активизируются не энергией, а фотонами. То есть чем фотонов больше, тем активнее происходит реакция фотосинтеза. Количество фотонов наоборот, возрастает с увеличением длины волны.
Объединив энергию и количество фотонов, мы получим 5 разных областей:
1. Фотонов настолько мало, что даже много энергии у каждого не позволяет протекать реакции фотосинтеза;
2. Число фотонов увеличивается, и теперь их достаточно для реакции, несмотря на то, что энергия немного снизилась;
3. Энергии стало меньше, а фотонов еще недостаточно, и реакция вновь под угрозой;
4. Фотонов много, они непрерывно бомбардируют лист и даже их маленькая энергия не помеха реакции: она протекает даже лучше, чем в синей области спектра;
5. Фотоны практически теряют свою энергию и их громадное количество уже не спасает.
В результате получаем почти классический график фотосинтеза:
Из этого графика видно, что хлорофиллу гораздо выгоднее поглощать красные и синие цвета, чем цвета в середине спектра, которые дают растению слишком мало энергии. Поэтому хлорофиллы отражают его. А мы воспринимаем отраженный цвет как зеленый.
По сравнению с реальной физикой это достаточно упрощенное приближение, но все еще недостаточное для ребенка. Как же преобразовать это все в вариант 3? Зависит от вашей фантазии. Например:
Трава зеленая, потому что при таком цвете она может получать больше тепла от солнышка и лучше расти.
Этот ответ вообще не затрагивает хлорофилльско-фотосинтезирующие штуки. Но на мой взгляд, он вполне приемлем. Во-первых, он правдив. Во-вторых, поясняет именно причину, а не свойство каких-то там абстрактных хлорофиллов. Да, этот ответ подозрительно похож на вариант №2. Но он следует из вашего знания, которое вы упрощаете для детского разума. А не из вашего незнания, которое вы скрываете, чтобы ребенок не подумал, что вы…
— Пап, а почему небо голубое?
— У тебя мороженко капает.
Почему программисты крутые
К чему это все? Из этого примера видно, что знание, которое иногда кажется нам наиболее приближенным к реальной картине вещей, не всегда является таковым. Как же люди понимают профессию программиста?
Если бы я хотел, то легко стал бы программистом
Программисты ничего не делают
Экономисты должны проделывать много расчетов, работать с кучей бумажек, и вообще — знали бы вы, как я устаю после рабочего дня...
Я видел несколько дипломных работ экономистов. На то время я тоже писал диплом и легкие папочки по 20 страниц повергли меня в небольшое изумление, поскольку их содержимое было очень похоже на экономическую часть моего 100-страничного диплома. Знаете ли вы, что делает программист? Программист легко объяснит это. Другому программисту.
Я изобразил взгляд на проблему зеленой травы в виде следующего рисунка. Реальность — это бесконечное объяснение всех аспектов, от столкновений галактик до межъядерных взаимодействий. Ученый — это то, как этот вопрос пояснит эксперт в данной области. Человек — как эту ситуацию объяснит человек, просто знакомый с вопросом. И Ребенок — просто наблюдение явления.
Представим, что Ученый объясняет Ребенку, почему трава зеленая. Чтобы Ребенок это понял, разговор должен вестись в понятиях, знакомых Ребенку, и со значительной степенью упрощения. Если упрощение сделано верно, то при получении Ребенком дальнейших знаний они будут накладываться на имеющуюся картину, раскрывая отдельные понятия, а не замещая их абсолютно новыми. Хлорофиллы и фотосинтез дополняют начальную модель, а не изменяют ее.
Если мы спросим людей, кто такой программист, то получим целый спектр ответов: от «человека, который работает с компьютерами» до «такой бородатый страшный мужик в свитере со злыми глазами»;. Но скорее всего, самым популярным ответом будет «тот, кто пишет программы». А что такое программа? С точки зрения программиста это набор инструкций для компьютера/другой машины/да чего угодно. Но с точки зрения непрограммиста, программа — это то, что запускается двойным щелчком мыши. Из разности этих взглядов вытекает любопытная мысль:
Программисты рисуют
Эта ложная предпосылка возникает у Ребенка, когда он впервые сталкивается с понятием программист. Потом это расширяется до «программисты рисуют игры»(
А может ли программист знать, насколько сложна профессия экономиста? Да, может. Потому что он не только художник.
Какой должна быть правильная предпосылка? Которую понял бы ребенок и которая бы со временем превратилась бы в правильное осознание профессии программиста. Ребенок еще не знает понятия алгоритм, а если и знает — то не может расширить его на весь окружающий мир.
Программист — это тот, кто учит компьютер делать необходимые человеку вещи
И вот мы уже перешли от художника к учителю. Из этой предпосылки вполне может развиться «не только компьютер, но и другие механизмы с внутренним компьютером», «компьютер сложнее учить, чем человека», «компьютер думает не так, как человек», «программист должен знать язык компьютера и понятно объяснить ему, что надо сделать». И таким образом добавляем к художнику и учителю еще и переводчика. Добавим обязанность учиться новому, чтобы оставаться на плаву. Добавим переговоры с заказчиком. И вот у нас получился художник-учитель-переводчик-ученик-психолог.
А к этому всему добавляются все профессии, в которых используется компьютер. Если программист пишет программу для экономиста, он должен знать все аспекты работы экономиста. Он должен понять человека, который их объясняет, понять саму специфику работы, научить этому компьютер с помощью переведенной на компьютерный язык программы.
Да, я считаю, что программист — сложная профессия. И разумеется, я не полностью объективен. Но я не хочу, чтобы человек боготворил программиста, жалел и уважал его. Или успокаивал себя на работе тем, что программисту работать сложнее. Я хочу, чтобы человек знал. И исходил в своих суждениях не из скрываемого незнания, а из упрощенного знания. Да, программист не должен знать все. Для написания программы для перевода не нужно знать все слова немецкого языка, чтобы считывать их переводы из базы данных. Но основы грамматики выучить придется. Программист должен подстраиваться под окружающие его проекты, непрерывно получая новые знания и обучая этому глупый компьютер.
Поэтому программисты крутые.
P.S.: Целью данной статьи не является оскорбление экономистов.
P.P.S.: Мнение автора статьи полностью не совпадает с мнением профессора бухгалтерского учета. Просто чтобы вы знали.