Лишь бы не работать

— Подсудимый, что вы скажете в оправдание?

— Нет в мире более гуманитарного занятия, чем программирование. Даже филологи должны иметь представление об условиях формирования народов, а программисты работают с эталонным образцом речи, на который не влияет устройство гортани, особенности климата и обилие растительности. Считать программистов технарями все равно, что лингвистов считать медиками.

А теперь, поскольку камни в меня все-равно уже полетели, я скажу главное. Хороший программист может совершенно не знать языков программирования. Никаких перлов, скала, пхп, плюсов, шарпов, вообще ничего. Перевести алгоритм в код — рутинная задача, которую человек в современном мире может выполнять лишь по недоразумению. Другое дело — выразить повелительный глагол в максимально понятном, элегантном и коротком виде. Так сформулировать мысль, что-бы тебя даже машина поняла.

Хотите доказательства? Пожалуйста. В тридцатых годах лингвист по фамилии Щерба предложил угадать язык на котором сказана фраза «Глокая куздра штеко будланула бокра и кудрячит бокренка». Ясен перец: какая-то (глокая) куздра как-то (штеко) будланула бокра. Куздра имеет женский пол, а бокр живой (иначе бы куздра будланула не бокра, а бокр). А после начала кудрячить маленькую разновидность бокра. Фраза на русском языке, только в каждом слове подставлены незнакомые корни. Мы видим механику процесса, но не понимаем действующих лиц и степени воздействия.

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

Если я вас не убедил — вспомните хоть один случай, когда теория групп Ли, понятие кватерниона или гомоскедастичности помогло вам в написании кода больше, чем навык верной расстановки подлежащего и сказуемого.

Удивляет не технофилия программистов, а их убежденность в совершенстве логичного кода. Пока доминирует принцип «Энитинг бат а блэк бокс» компьютеры не начнут решать сложные задачи. К такому умению прилагается неэффективность. Можно сутки копать яму, выполняя три-четыре однотипных действия. А можно весь день балду пинать, но затем написать заметку о связи программирования и гуманитарных наук.

— Подсудимый, ваше объяснение не канает. Идите работайте!

— Гражданин судья, не могу молчать! Особенно после поста в штосме.

Есть два популярных метода проверки корреляции: Пирсона и Спирмена. Первый известнее, но без проверки данных на нормальность распределения ее применять нельзя.

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

— Подсудимый, я сказала, это вам не поможет! Идите работайте!