Re: Мышление в терминах кода
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 10.04.21 15:55
Оценка: +4
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Отсюда вопрос: когда вы видите незнакомый код без пояснений, состоящий из десятка-другого строк простых операций, или из нескольких функций/классов/шаблонов, или из нескольких строк хитровложенных конструкций, как часто у вас в мозгу возникает понимание непосредственно идеи, концепции, которую должен реализовывать этот код? И от чего это больше зависит — от типа мышления, или от многолетнего опыта ковыряния в чужом коде самого разного вида?


Возникает только если код из моей предметной области, когда я вижу знакомые паттерны. Тогда я по этим паттернам могу угадать, что делает код. Но чаще всего надо вчитываться и разбирать сам алгоритм.
Re: Мышление в терминах кода
От: bnk СССР http://unmanagedvisio.com/
Дата: 10.04.21 17:15
Оценка: 2 (2)
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Отсюда вопрос: когда вы видите незнакомый код без пояснений, состоящий из десятка-другого строк простых операций, или из нескольких функций/классов/шаблонов, или из нескольких строк хитровложенных конструкций, как часто у вас в мозгу возникает понимание непосредственно идеи, концепции, которую должен реализовывать этот код? И от чего это больше зависит — от типа мышления, или от многолетнего опыта ковыряния в чужом коде самого разного вида?


Я думаю что от опыта работы зависит. Если долго работаешь в команде индусов, способность читать и понимать индусский код прокачивается

ЕМ>Ну и главный вопрос: мне должно быть стыдно, что у меня такого понимания почти никогда не возникает?


Вообще чтение чужого кода — это отдельный скил. Тут как с любым скиллом — лучше, когда он есть, чем когда его нет

Качается так же как и любой другой.

Я вот на старости лет сидя на карантине на гитаре решил таки научиться играть. И прогресс все же есть.
Что не можешь сегодня — сможешь завтра, не завтра — не следующей неделе, в следующем месяце, в следующем году. "Правило 10.000 часов".
Мозг постепенно адаптируется, создает связи. Или что он там создает

Для программиста читать и понимать чужой год скорее полезный навык, чем вредный, как мне кажется. Так что устыдись и дерзай
Отредактировано 10.04.2021 17:28 bnk . Предыдущая версия .
Мышление в терминах кода
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 10.04.21 15:29
Оценка: +2
Еще со школьных времен заметил, что меня очень раздражает чрезмерное увлечение символической записью. Скажем, в учебнике по математике, условие может быть сформулировано в виде идеи, концепции, как "дано множество чисел, кратных трем" (возможно, с последующей символической записью), а может и как "дано M такое, что ∀ x ∈ M, ∃ n ∈ ℕ, x = n * 3". Но определения и пояснения второго типа встречаются довольно часто, и непонятно, то ли это образ мышления у автора такой, что за символами он воочию видит непосредственно саму концепцию, то ли уже настолько привык к символам, что стал забывать человеческие слова.

Такая же фигня и с программным кодом. Нередко пост программиста с вопросом к сообществу выглядит примерно так: "вот у меня есть <приводит код>, он не компилируется / не работает / тормозит, что с ним нужно сделать?". Когда подразумевается только оценка синтаксиса, это вполне нормально, но довольно часто необходимо понимать и задачу, которую этот код должен решать, но ее словесное описание отсутствует, или очень неполно, а код состоит из пары десятков строк или больше, и смысл его, на первый взгляд, далеко не всегда очевиден.

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

Отсюда вопрос: когда вы видите незнакомый код без пояснений, состоящий из десятка-другого строк простых операций, или из нескольких функций/классов/шаблонов, или из нескольких строк хитровложенных конструкций, как часто у вас в мозгу возникает понимание непосредственно идеи, концепции, которую должен реализовывать этот код? И от чего это больше зависит — от типа мышления, или от многолетнего опыта ковыряния в чужом коде самого разного вида?

Ну и главный вопрос: мне должно быть стыдно, что у меня такого понимания почти никогда не возникает?
код запись символ символическая формальная знаковая
Re: Мышление в терминах кода
От: Don Reba Канада https://stackoverflow.com/users/49329/don-reba
Дата: 10.04.21 21:55
Оценка: +2
Когда начинаешь учить английский, то сначала переводишь фразы на русский. Проходит время, и постепенно начинаешь мыслить в терминах нового языка. Так же с кодом и математикой.
Ce n'est que pour vous dire ce que je vous dis.
Re: Мышление в терминах кода
От: varenikAA  
Дата: 11.04.21 01:07
Оценка: +2
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Такая же фигня и с программным кодом. Нередко пост программиста с вопросом к сообществу выглядит примерно так


Думаю это прежде всего связано с биологическими особенностями мышления.
Люди задают вопрос чаще всего не потому что им непонятно, а потому что лень, т.к. мозг пытается не думать, чтобы сэкономить энергию.
А вообще, да четкая формулировка проблемы существенно облегчает решение любой задачи.
Еще бы неплохо вести документацию. А то часто складывается такая ситуация. Есть хотелки в чате/по телефону, реже в виде документа с тезисами.
Делаешь как понял/смог. Через время вопрос: что это? Т.е. я еще должен и документацию был подготовить пользователю/заказчику.
Много мест где природная лень/желание сэкономить
на деньгах и глюкозе убивает чудесные задумки "делать как надо".
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re: Мышление в терминах кода
От: jamesq Россия  
Дата: 11.04.21 11:57
Оценка: +2
Здравствуйте, Евгений Музыченко, Вы писали:

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

Про стыд могу сказать так. Надо иметь свои сильные стороны. И пусть ты не силён в чём-то, ну и что с того?
Почему тебе в этом тебе должно быть стыдно, если у тебя есть сильные стороны, ты в них востребован, и тебя за них ценят? Хотя конечно, если в твои прямые обязанности входит нечто, в чём ты не силён, и не справляешься — тогда да, есть за что себя укорять.

Да, чтобы понять что делает код, мне приходится попотеть. Сразу понимание не приходит. Даже если это мой старый код, который я писал лет 5 назад, и про который я всё позабыл, всё равно приходится с усилиями разбираться, что же он делает и как он работает. Зависит это, наверное в первую очередь от опыта.
Но думаю, есть ещё люди, которые попросту соображают куда быстрее меня.

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

А ещё, вовсе не всё можно понять из кода. Есть вещи, которые невозможно выразить кодом, и они должны быть высказаны словами. Это и всякие архитектурные соображения, и требования, и предположения, и много чего ещё.
Вот например, в Юникоде есть обещания, что определённый диапазон codepoints никогда не будет задействован.
Такое в коде выразить нельзя. Т.е. например в коде ты никогда не можешь написать, что какого-то кода вообще никогда не будет.
Или например, карта распределения адресов памяти. Ты не можешь так просто выразить её в коде. Куда какие адреса предназначены. Эту карту надо выражать в виде отдельного документа.
Ну и конечно, есть предостаточно кода, в котором водятся всяческие говнокодные артефакты, появившиеся там по разным причинам. Кто-то в спешке написал if (false) { ... }, а ты будешь гадать, какого чёрта эта хрень там присутствует. Все эти артефакты ещё больше усложняют задачу понимания кода.
Re: Мышление в терминах кода
От: Pzz Россия https://github.com/alexpevzner
Дата: 10.04.21 15:42
Оценка: +1
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Отсюда вопрос: когда вы видите незнакомый код без пояснений, состоящий из десятка-другого строк простых операций, или из нескольких функций/классов/шаблонов, или из нескольких строк хитровложенных конструкций, как часто у вас в мозгу возникает понимание непосредственно идеи, концепции, которую должен реализовывать этот код? И от чего это больше зависит — от типа мышления, или от многолетнего опыта ковыряния в чужом коде самого разного вида?


Только после определенных усилий.

ЕМ>Ну и главный вопрос: мне должно быть стыдно, что у меня такого понимания почти никогда не возникает?


Это вопрос к психотерапевту
Re[2]: Мышление в терминах кода
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 10.04.21 16:05
Оценка: +1
Здравствуйте, Pzz, Вы писали:

ЕМ>>мне должно быть стыдно, что у меня такого понимания почти никогда не возникает?


Pzz>Это вопрос к психотерапевту


Но сперва-то приходится задавать его себе. Когда кто-нибудь без пояснений приводит хитрозагнутую конструкцию вроде вложенных рекурсивных шаблонов с переменным числом параметров — возникает ощущение, что он ее за минуту настучал левой ногой, а не выверял два часа по буквам. И сразу обидно, что у меня такие конструкции ассоциируются в первую очередь с белибердой, а не с изящными и эффективными решениями.
Re: Мышление в терминах кода
От: gardener  
Дата: 11.04.21 23:30
Оценка: +1
А вот бывает часто наоборот. Кто-то пишет или говорит, и я вот понимаю что ничего не понимаю. А в принципе должен. Дай-ка мне код и с полчаса времени посидеть с ним, тогда смогу что-то полезное сказать. И обычно получается.
Слова далеко не всегда хорошо описывают. Некоторые не умеют. В других случаях деталей нужных не хватает, упущенно важное и в может в голову не придти спросить об этом. А код-то пополнее будет.
А вообще конечно с кодом напрягаться больше приходится чем со словами.
Re[4]: Мышление в терминах кода
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 12.04.21 12:32
Оценка: +1
Здравствуйте, varenikAA, Вы писали:

AA>Нейробиолог Савельев С. считает что 4 часа интенсивной умственной работы это край. Потом идет переутомление.

AA>Т.е. если сидишь над кодом больше то закономерно тупеешь, мозг будет всеми силами сопротивляться думать или сгорать.

В основном тупеешь, когда задачу решать нужно, но не хочется, или нет нужных идей. Когда идея прёт, порой и по 8-10 часов работается с удовольствием, и мозг мыслит четко и ясно.
Re[2]: Мышление в терминах кода
От: Владимир Паронджанов Россия http://drakon.su/ Форумы сайта http://forum.drakon.su
Дата: 13.04.21 07:21
Оценка: :)
Здравствуйте, A13x, Вы писали:

A>Автор предлагает использовать математический язык для описания и проверки алгоритмов, весьма здравая и популярная "в узких кругах" идея. По сути описание алгоритма использует теорию множеств, логику предикатов первого порядка и темпоральную логику:


Математика, разумеется, великая вещь, без нее никуда.
Можно ли сделать коды более понятными?
Можно ли сделать математику более понятной?
Можно ли сделать алгоритмы более понятными?

Насчет алгоритмов: я попытался найти более понятный способ записи алгоритмов.
Точнее,способ записи порядка выполнения (потока управления) control flow.

Мой способ записи потока управления называется ДРАКОН (DRAKON)
https://en.wikipedia.org/wiki/DRAKON

Предлагаемое решение таково: если нужно иметь более доходчивую и легкую для понимания (но математически строгую) запись потока управления, я рекомендую использовать визуальный алгоритмический язык ДРАКОН.

Конечно, это лишь частичное и неполное решение проблемы, которая волнует уважаемого топикстартера.
С уважением В. Паронджанов
Re: Мышление в терминах кода
От: gyraboo  
Дата: 10.04.21 16:27
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Отсюда вопрос: когда вы видите незнакомый код без пояснений, состоящий из десятка-другого строк простых операций, или из нескольких функций/классов/шаблонов, или из нескольких строк хитровложенных конструкций, как часто у вас в мозгу возникает понимание непосредственно идеи, концепции, которую должен реализовывать этот код? И от чего это больше зависит — от типа мышления, или от многолетнего опыта ковыряния в чужом коде самого разного вида?


ЕМ>Ну и главный вопрос: мне должно быть стыдно, что у меня такого понимания почти никогда не возникает?


Приведи конкретные примеры кода, который ты не понимаешь. Может это просто код такой плохой, непарадигмальный, без мета-синтаксиса (т.е. без верхнеуровневых принципов). Или у него цикломатика сложная. Тогда его без поллитра никто не поймет. В общем, давай конкретику.
Re[3]: Мышление в терминах кода
От: Pzz Россия https://github.com/alexpevzner
Дата: 10.04.21 17:06
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

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


Она и есть белиберда
Re[2]: Мышление в терминах кода
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 11.04.21 00:28
Оценка:
Здравствуйте, gyraboo, Вы писали:

G>Приведи конкретные примеры кода, который ты не понимаешь.


Речь о том, что не понимаю при беглом просмотре, а не вообще. Если буду вчитываться, анализировать, а то и эквивалентно править конструкции, то в конце концов пойму. Но сам факт того, что код объемом более нескольких коротких строк дается без пояснений, меня раздражает. Это отнюдь не способствует желанию вчитываться. Иногда могу себя заставить внимательно прочитать один раз, но, если после этого еще не начало складываться общее понимание, это раздражение усиливается, и дальнейшие попытки я просто бросаю.
Re[2]: Мышление в терминах кода
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 11.04.21 01:17
Оценка:
Здравствуйте, varenikAA, Вы писали:

AA>Думаю это прежде всего связано с биологическими особенностями мышления.

AA>Люди задают вопрос чаще всего не потому что им непонятно, а потому что лень, т.к. мозг пытается не думать, чтобы сэкономить энергию.

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

Ну и подобная "экономия" чаще всего заставляет скупого платить даже не дважды, а впятеро-вдесятеро и больше, поскольку ему приходится вычитывать и анализировать все варианты, приходящие в голову комментаторам.
Re[3]: Мышление в терминах кода
От: varenikAA  
Дата: 11.04.21 02:50
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Ну и подобная "экономия" чаще всего заставляет скупого платить даже не дважды, а впятеро-вдесятеро и больше, поскольку ему приходится вычитывать и анализировать все варианты, приходящие в голову комментаторам.


Да, и тут еще один аспект высплывает. Кол-во рабочего времени. Нейробиолог Савельев С. считает что 4 часа интенсивной умственной работы это край. Потом идет переутомление.
Т.е. если сидишь над кодом больше то закономерно тупеешь, мозг будет всеми силами сопротивляться думать или сгорать.
А все задачи будут бездумно оформляться на форуме в надежде что кто-то другой выдаст готовое решение.
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[2]: Мышление в терминах кода
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 12.04.21 12:55
Оценка:
Здравствуйте, jamesq, Вы писали:

J>Про стыд могу сказать так. Надо иметь свои сильные стороны. И пусть ты не силён в чём-то, ну и что с того?


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

J>конечно, если в твои прямые обязанности входит нечто, в чём ты не силён, и не справляешься — тогда да, есть за что себя укорять.


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

J>Сразу понимание не приходит. Даже если это мой старый код, который я писал лет 5 назад, и про который я всё позабыл, всё равно приходится с усилиями разбираться, что же он делает и как он работает.


Ой, не сыпьте соль на рану. Меня уже как-то оборжали за забывчивость
Автор: Sergey Storozhevykh
Дата: 23.04.10
.

J>В математической символьной записи есть типичные паттерны. И когда человек с опытом, знакомый с ними, на них наталкивается, ему сразу всё становится ясно, что они означают, и что за ними стоит.


Скорее всего, основная часть дела именно в опыте, "набивке мозга". Но тогда опять-таки завидно тем, кому это или интересно от природы, или они умеют себя мотивировать на эту самую набивку.
Re[2]: 1000* часов
От: Sharov Россия  
Дата: 12.04.21 17:38
Оценка:
Здравствуйте, bnk, Вы писали:

bnk>Я вот на старости лет сидя на карантине на гитаре решил таки научиться играть. И прогресс все же есть.


https://www.youtube.com/watch?v=nMcdhCR9Ubw -- прогресс паренька с полного нуля до хорошего уровня.

bnk>Что не можешь сегодня — сможешь завтра, не завтра — не следующей неделе, в следующем месяце, в следующем году. "Правило 10.000 часов".


https://www.youtube.com/watch?v=T-n796DqvrA -- вот тут говорят, что 10000 уже неактульно (ссылку выше подсмотрел в этом видео)
Кодом людям нужно помогать!
Re: Мышление в терминах кода
От: Sharov Россия  
Дата: 12.04.21 17:53
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>В таких случаях у меня сразу же возникает острое нежелание вчитываться в код, чтобы понять его смысл (я вообще не люблю копаться в чужом коде, и делаю это лишь в случае серьезной нужды). Но дальше нередко вижу комментарии, из которых следует, что их авторы поняли смысл кода, и делятся соображениями по его улучшению. Непонятно — то ли они не поленились вчитаться и разобраться сами, то ли почти сразу увидели суть задачи, которую поленился описать автор исходного сообщения.


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


ЕМ>Отсюда вопрос: когда вы видите незнакомый код без пояснений, состоящий из десятка-другого строк простых операций, или из нескольких функций/классов/шаблонов, или из нескольких строк хитровложенных конструкций, как часто у вас в мозгу возникает понимание непосредственно идеи, концепции, которую должен реализовывать этот код? И от чего это больше зависит — от типа мышления, или от многолетнего опыта ковыряния в чужом коде самого разного вида?


Зависит от самого кода и опыта читающих.

ЕМ>Ну и главный вопрос: мне должно быть стыдно, что у меня такого понимания почти никогда не возникает?


Если ничего менять в плане работы не собираетесь, то нет.
Кодом людям нужно помогать!
Re: Мышление в терминах кода
От: A13x США  
Дата: 12.04.21 22:08
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>...

ЕМ>Отсюда вопрос: когда вы видите незнакомый код без пояснений, состоящий из десятка-другого строк простых операций, или из нескольких функций/классов/шаблонов, или из нескольких строк хитровложенных конструкций, как часто у вас в мозгу возникает понимание непосредственно идеи, концепции, которую должен реализовывать этот код? И от чего это больше зависит — от типа мышления, или от многолетнего опыта ковыряния в чужом коде самого разного вида?

Давно же замечено, что язык определяет мышление как "гипотеза лингвистической относительности".

А вообще, такая мысль часто возникала. Яркий пример — TLA — https://lamport.azurewebsites.net/tla/book.html
Автор предлагает использовать математический язык для описания и проверки алгоритмов, весьма здравая и популярная "в узких кругах" идея. По сути описание алгоритма использует теорию множеств, логику предикатов первого порядка и темпоральную логику:

Our basic tool for writing specifications is mathematics. Mathematics is nature's way of letting you know how sloppy your writing is. It's hard to be precise in an imprecise language like English or Chinese. In engineering, imprecision can lead to errors. To avoid errors, science and engineering have adopted mathematics as their language.

Отредактировано 12.04.2021 22:09 A13x . Предыдущая версия .
Re[2]: Мышление в терминах кода
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 13.04.21 02:36
Оценка:
Здравствуйте, Sharov, Вы писали:

S>в наше время, когду "все уже написано" (кроеме шуток)


А что толку от того, что "все написано"? Да, типовые универсальные паттерны известны широко, но их не так много, а дальше начинаются частные случаи. И их доступность в среднем даже ниже, чем открытий и изобретений лет двести назад. Тогда мешала разобщенность людей и примитивность средств связи, а сейчас — информационный мусор.
Re[5]: Мышление в терминах кода
От: jamesq Россия  
Дата: 13.04.21 06:16
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>порой и по 8-10 часов работается с удовольствием, и мозг мыслит четко и ясно.

Мне уже не работается. Вот когда мне 16-18 было — тогда я мог устраивать бессонные ночи, программировать по 8 часов, обходиться минимумом пищи даже, т.к. увлечён был и не хотел отвлекаться. Спать по 4 часа, и утром всё-таки мочь отправиться на занятия.
Теперь я уже на такое не способен. Я слишком старый стал. Заплыв на 8-10 часов, пожалуй будет выше моих сил.
Re: Мышление в терминах кода
От: Dym On Россия  
Дата: 16.04.21 06:17
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Еще со школьных времен заметил, что меня очень раздражает чрезмерное увлечение символической записью. Скажем, в учебнике по математике, условие может быть сформулировано в виде идеи, концепции, как "дано множество чисел, кратных трем" (возможно, с последующей символической записью), а может и как "дано M такое, что ∀ x ∈ M, ∃ n ∈ ℕ, x = n * 3". Но определения и пояснения второго типа встречаются довольно часто, и непонятно, то ли это образ мышления у автора такой, что за символами он воочию видит непосредственно саму концепцию, то ли уже настолько привык к символам, что стал забывать человеческие слова.

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

ЕМ>Такая же фигня и с программным кодом. Нередко пост программиста с вопросом к сообществу выглядит примерно так: "вот у меня есть <приводит код>, он не компилируется / не работает / тормозит, что с ним нужно сделать?". Когда подразумевается только оценка синтаксиса, это вполне нормально, но довольно часто необходимо понимать и задачу, которую этот код должен решать, но ее словесное описание отсутствует, или очень неполно, а код состоит из пары десятков строк или больше, и смысл его, на первый взгляд, далеко не всегда очевиден.

С кодом другая фигня. Математические языки (типа эпсилон-дельта) однозначны, а код нет. Одно и тоже можно сделать разными способами. Отсюда, более долгое въезжание, которое раздражает.

ЕМ>В таких случаях у меня сразу же возникает острое нежелание вчитываться в код, чтобы понять его смысл (я вообще не люблю копаться в чужом коде, и делаю это лишь в случае серьезной нужды). Но дальше нередко вижу комментарии, из которых следует, что их авторы поняли смысл кода, и делятся соображениями по его улучшению. Непонятно — то ли они не поленились вчитаться и разобраться сами, то ли почти сразу увидели суть задачи, которую поленился описать автор исходного сообщения.

А вот не факт, что они поняли. Вполне могли понять что-то свое, не относящееся к задаче, которую должен решать код по замыслу автора. Такое часто случается и с вполне откомментированным и очевидным кодом.


ЕМ>Отсюда вопрос: когда вы видите незнакомый код без пояснений, состоящий из десятка-другого строк простых операций, или из нескольких функций/классов/шаблонов, или из нескольких строк хитровложенных конструкций, как часто у вас в мозгу возникает понимание непосредственно идеи, концепции, которую должен реализовывать этот код? И от чего это больше зависит — от типа мышления, или от многолетнего опыта ковыряния в чужом коде самого разного вида?

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

ЕМ>Ну и главный вопрос: мне должно быть стыдно, что у меня такого понимания почти никогда не возникает?

Нет, не должно. Всё нормально
Счастье — это Glück!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.