Re[5]: Мышление в терминах кода
От: jamesq Россия  
Дата: 13.04.21 06:16
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

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

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

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

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

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

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

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

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


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

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

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

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