Про слова, язык и абстрактное мышление

Язык — это инструментарий. Но этот инструментарий влияет на субъектов, которые им пользуются. Язык формируется исходя из того, какие задачи он должен решать. Но это ещё не всё. Сам язык влияет на мышление человека (а значит и на задачи, которые он ставит). На способность субъекта создавать нейронные связи, находить новые идеи. Чем сложнее и точнее язык, тем качественнее мысли и наоборот. В негативном окрасе это показано в "1984". А я хочу сказать про позитивный.

В программировании есть такая вещь — оператор. Это некоторое действие. Есть понятие "составной оператор", это когда одно действие состоит из нескольких действий. Операторы не группируются друг с другом абы как, группировка несёт в себе некоторый смысл, роль, или функцию. Функция — это нечто, выполняющее какую-то совокупность действий, ведущих к какой-то цели, и она имеет название, мы вводим для неё новое слово. Функция имеет входные аргументы и возвращает результат.

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

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

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

Объединяя мысли в функцию, ты создаёшь некоторую абстрактную модель у себя в голове. Когда ты её уложил, намного проще видеть в окружающем мире эту модель и распознавать её. Подобно тому, как мы распознаём слова.

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

Очень много вещей из окружающего мира ведут себя схожим образом, имеют одинаковые абстрактные модели. Эти модели становятся функциями, а окружающий мир — вызовом этих функций с определёнными аргументами. Это как математика, один раз доказал теорему Пифагора, и не нужно доказывать её для каждой задачи. 2+3 = 5, неважно, яблоки мы складываем или людей. Ты можешь применить функцию суммирования ко всем объектам, которые можно представить в виде действительного числа. (такие объекты иногда называются хэшируемыми)

Есть готовые библиотеки, которые написали до тебя предыдущие поколения. Ими нужно пользоваться, а не изобретать велосипеды. То есть нужно учиться.

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

Я разговариваю с кем-нибудь и понимаю, что вот это — ошибка выжившего, а здесь оппонент подменяет корреляцию следствием. Разговор для меня становится прозрачным. Я смотрю на некоторую систему, и отмечаю про себя "балансирующая петля обратной связи", и мне сразу понятна целая гамма свойств этой системы. Это и есть ввод новых функций.

Переход на более выскоуровневый язык мышления переводит на более высокий уровень понимание окружающего мира и самого себя.

results matching ""

    No results matching ""