Здравствуйте, 9Val, Вы писали:
V>И все же человек в своем мышлении использует естественные языки, а потом "переводит" на нужный.
Это ты брат не был в состаянии боевого програмистского транса. Там вообще никаких языков нет
V>ЗЫ: Никогда не отлавливал багов в логике системы, словесно объясняя другим как она работает? Довольно удобный способ. Нарисовать схемку обычно не помогает. А если описывать словами, то оп, вот и озарение, даже если "помощник" только слушал. Самое сложное — это найти свободного программиста, который выслушает и будет задавать вопросы.
А я вот баги на ощупь ловлю. Буквально чуствую физический дискомфорт и ощупываю конструкцию на предмет шероховатостей и заусенцев.
Просто не надо за всех говорить, люди ведь очень разные бывают.
Как то читал, что ещё в начале 60-х один шутник привел в ньюиоркский клуб "великого учёного" — актёра (с компанией, которая натурально разыгрывала свиту гения), минут 15 его воспевали (причём приписывая ему очевидно бредовые достижения — зато с большим пафосом и апломбом) — потом выпустили этого "учёного" к публике (среди которой были и бизнесмены и учёные и даже политики) — причём он специально нёс заранее заготовленый бред (в чём и была суть шутки). "Учёный" пошёл на ура. Большинство было от него в восторге. Было парвда несколько асоциальных типов — которым "светило" не понравилось и они заявили, что он несёт бред. Но на них стали цикать — урезонивать и стыдить их — политики, бизнесмены и... да — учёные (настоящие, а не подставные), которые находились в клубе. Издевательство продолжалось НЕДЕЛЮ ("учёный" "выступал" каждый вечер в течение всего этого времени, а потом "уехал"). И всё это время большинство так ничего и не поняло.
Но интересно не только это, но и то, что потом (в середине 80-х) этому шутнику стало интересно — а как же дальше сложилась судьба тех, кто участвовал в той шутке. Так вот — оказалось — что почти все "асоциальные типы" — сделали головокружительные карьеры, многие стали весьма известными людьми. Зато вот среди большинства — многие опустились ниже того уровня, на котором были в момент шутки. Шутник по сему поводу даже выпустил скандальную книгу с описанием всего этого безобразия, которая в США довольно хорошо продавалась.
Здравствуйте, Шахтер, Вы писали:
V>>Равно как и умение выражать то, что "наанализировалось" — толку маловато, если оно будет сидеть в голове программиста.
Ш>Это верно. Для архитектора или прайма хорошие коммуникационные способности крайне желательны.
Верно. Чем выше человек в иерархии — тем важнее.
Ш>>>Что касается естественных языков. Они плохо приспособлены для описания логических систем. Именно поэтому были изобретены другие языки, включая математические языки и языки программирования.
Здравствуйте, 9Val, Вы писали:
V>И все же человек в своем мышлении использует естественные языки, а потом "переводит" на нужный.
Вообще то Шахтер и Alexey Chen ответили правильно (с моей точки зрения). Но если ты дигитал (термин NLP) то это не значит — что все вокруг такие. Шахтер (как и я) как мне кажется представляет метематические или програмные идеи визуально. А ты всякую картину можешь описать словами так, что бы каждый увидел именно её и ничто другое? Если думаешь, что каждую — возьми какой нибудь красивый рисунок (который другие не видели) — и опиши его кому-нибудь. А потом покажи рисунок и попроси сказать — насколько похоже твоё описание на этот рисунок. Тебя ждёт большой сюрприз!
Alexey Chen — чувствует баги тактильно. Вот и попробуй это описать словами.
А теперь вспомним что очень многих философов почти невозможно понять и именно потому, что они вкладывали в слова некий свой смысл — очевидно отличный от того, какой в них вкладываем мы. Слова сами по себе ничего не значат — это лишь произвольные этикетки для ассациаций (визуальных, тактильных или звуковых образов) в нашем мозгу — и следовательно, каждый воспринимает их по-своему.
Вот потому то, когда кто-то видит совершенно ясную и чёткую картину у себя в голове — но затем начинает её описывать другим — то велика вероятность того, что он будет употреблять для её описания слова, которым он придаст некоторое специфическое значение, точное для его внутреннего языка — но совершенно иначе трактуемое другими. Если с человеком общаться и вылавливать подобные расхождения — то можно понять что он имел в виду, но если же (как часто бывало с философами) — человек просто выпускает книгу, то понять его может быть просто не возможно...
Здравствуйте, Alexey Chen, Вы писали:
V>>ЗЫ: Никогда не отлавливал багов в логике системы, словесно объясняя другим как она работает? Довольно удобный способ. Нарисовать схемку обычно не помогает. А если описывать словами, то оп, вот и озарение, даже если "помощник" только слушал. Самое сложное — это найти свободного программиста, который выслушает и будет задавать вопросы.
AC>А я вот баги на ощупь ловлю. Буквально чуствую физический дискомфорт и ощупываю конструкцию на предмет шероховатостей и заусенцев.
Хмм, интересный способ. Со своим кодом это представить еще можно, а каково с абсолютно чужим?
AC>Просто не надо за всех говорить, люди ведь очень разные бывают.
Здравствуйте, Шахтер, Вы писали:
V>>И все же человек в своем мышлении использует естественные языки, а потом "переводит" на нужный.
Ш>А вот это неверно. Наоборот, профессионалы не мыслят о логических (математических, программистских и.т.п.) системах и задачах используя естественные языки. Только когда мысль созрела, она, при необходимости, выражается на естественном языке, если это вообще возможно. Ну зачем далеко ходить, попробуйте какую-нибудь нетривиальную теорему сформулировать на русском -- или не получиться вообще,
А можно пример такой, которую нельзя было бы сформулировать?
Ш>или получится такой абзац, что понять его без бутылки будет невозможно.
Ну так на то и нетривиальная теорема
Вернемся к нашим баранам. О математических проблемах думать на русском несложно. По большей части идет расширение словаря языка, синтаксис и семантика практически неизменны. Писать сложнее — объемно получается. Это я к тому, что основываясь на моих мат. знаниях существуют только письменные "математические" языки (поправьте, если ошибаюсь). Мыслить письменами лично у меня не получается. Аналогично с языками программирования — их синтаксис и словарный запас достаточно сильно отличаются от того, как я привык мыслить. Поэтому сначала в мозгах выстраивается некая логическая схема, потом в мысленный псевдокод и лишь потом, с учетом деталей конкрентного языка, в реальный код. Как это происходит у вас?
PS: Сразу одна оговорка — я не считаю себя профи ни в программировании, ни в математике
Здравствуйте, AndreyFedotov, Вы писали:
AF> Вообще то Шахтер и Alexey Chen ответили правильно (с моей точки зрения). Но если ты дигитал (термин NLP) то это не значит — что все вокруг такие. Шахтер (как и я) как мне кажется представляет метематические или програмные идеи визуально. А ты всякую картину можешь описать словами так, что бы каждый увидел именно её и ничто другое? Если думаешь, что каждую — возьми какой нибудь красивый рисунок (который другие не видели) — и опиши его кому-нибудь. А потом покажи рисунок и попроси сказать — насколько похоже твоё описание на этот рисунок. Тебя ждёт большой сюрприз!
Хороший пример. Но к данной конкретной ситуации он неприменим — мы говорим о том, что обязательно можно выразить на языке программирования (а значит и на естественном).
Общую идею понял — не для каждого человека от родного (визуального, тактильного, слухового, обонятельного) восприятия нужен мостик к коду через естественный язык. Каюсь и посыпаю голову пеплом
Здравствуйте, McSeem2, Вы писали:
MS>Длинная цитата из книги "ВЕРЕВКА ДОСТАТОЧНОЙ ДЛИНЫ, ЧТОБЫ ВЫСТРЕЛИТЬ СЕБЕ В НОГУ"
Недавно я тоже прочитал эту книгу. Вначале мне нравилось, что он пишет, потом к середине книги некоторые вещи начали, скажем так, удивлять, но ближе к концу этот клоун занасладевал класс EditBox от String (!) и в классе String все операторы сделал виртуальными (!)
Вековые рудники — Специализация, итеративное накопление и анализ, дедукция многошаговой
точечной логики предположений и т.п. В науке никто это еще не отменял.
Программирование не исключение, да а философия, как лучше программировать и т.п. — тошна от
своего примитивизма (не в обиду будет сказано). Лестница в небо состоит из великих ступеней.
Программирование, в плане прорывов, находиться в состояния ступора. Помню читал комментарии одного
из оригинальных разработчиков Unix из Bell Labs по поводу Linux — типа "жуть, 25 лет идейного простоя".
1984г. Компьютеры 5 поколения, Пролог, Япония — программа минимум — ауууу, где вы? Доверчив был,
как кролик слюну пускал перед морковкой, почитывая поэтапную программу прорыва в бесконечность —
все вычислял — доживу, не доживу.
Утерев слезы седой бородой (заодно приняв очередного дрона-програмера на работу — счас только
введу в него инструкции и отправлю в производство — не шучу — факт), как там в математике?
Думаешь, что математика — это просто? Ну что ж для начала, попробуй доказать существование и
единственность нуля. Дедекинд, Кантор, Вейерштрасс — эй мужики, что так рано померли — сейчас бы
все вместе попрограммировали бы, офигевая от счастья прикосновения к русифицированной клавиатуре.
Вперед ребята — я в вас верю (тфу ты — опять мои дроны сбежались за указаниями — все принимают
на свой счет).
A critic is a bundle of biases held loosely together by a sense of taste. -- Whitney Balliett
Здравствуйте, 9Val, Вы писали:
V>Хороший пример. Но к данной конкретной ситуации он неприменим — мы говорим о том, что обязательно можно выразить на языке программирования (а значит и на естественном).
С этим я согласен. Правда и тут есть некоторые проблемы. Там где программист видит сортировку элементов в конейнере и маршалинг COM интерфейсов — пользователь увидит финансовый отчёт. Потому идеи о том, что и как делает программа — у них могут быть (и будут) совершенно различны. Причём на столько, что видя один и тот же результат работы программы — они оценят его диаметрально противопложно.
Например:
Программист: Так тут всё работает правильно! (Контейнер отсортирован верно, всё отмаршалислось и ничего не упало. Что в скриптах олухи из отдела внедрения прописали — добуквенно и выполнено).
Пользователь: Да ваша программа вообще не работает! (В оборотно-сальдовую ведомость в графу "Приход" попала цена в долларах, а должна быть в рулях, потому что....)
И каждый по своему прав...
Здравствуйте, AndreyFedotov, Вы писали:
AF> Там где программист видит сортировку элементов в конейнере и маршалинг COM интерфейсов — пользователь увидит финансовый отчёт. Потому идеи о том, что и как делает программа — у них могут быть (и будут) совершенно различны. Причём на столько, что видя один и тот же результат работы программы — они оценят его диаметрально противопложно. AF> Например: AF> Программист: Так тут всё работает правильно! (Контейнер отсортирован верно, всё отмаршалислось и ничего не упало. Что в скриптах олухи из отдела внедрения прописали — добуквенно и выполнено). AF> Пользователь: Да ваша программа вообще не работает! (В оборотно-сальдовую ведомость в графу "Приход" попала цена в долларах, а должна быть в рулях, потому что....) AF> И каждый по своему прав...
Ну это уже совсем из другой области — изначально вопрос ставился о связи умения владения языком с качеством получаемого кода. Об удовлетворении пользователя нужно вообще отдельный тред заводить
Здравствуйте, 9Val, Вы писали:
V>Здравствуйте, Alexey Chen, Вы писали:
V>>>ЗЫ: Никогда не отлавливал багов в логике системы, словесно объясняя другим как она работает? Довольно удобный способ. Нарисовать схемку обычно не помогает. А если описывать словами, то оп, вот и озарение, даже если "помощник" только слушал. Самое сложное — это найти свободного программиста, который выслушает и будет задавать вопросы.
AC>>А я вот баги на ощупь ловлю. Буквально чуствую физический дискомфорт и ощупываю конструкцию на предмет шероховатостей и заусенцев.
V>Хмм, интересный способ. Со своим кодом это представить еще можно, а каково с абсолютно чужим?
Я примерно так же поступаю, а чей код не важно, просто спрашиваю сам себя "Где ошибка?" и буквально за мгновение это становиться совершенно понятным.
Здравствуйте, 9Val, Вы писали:
V>Здравствуйте, AndreyFedotov, Вы писали:
AF>> Там где программист видит сортировку элементов в конейнере и маршалинг COM интерфейсов — пользователь увидит финансовый отчёт. Потому идеи о том, что и как делает программа — у них могут быть (и будут) совершенно различны. Причём на столько, что видя один и тот же результат работы программы — они оценят его диаметрально противопложно. AF>> Например: AF>> Программист: Так тут всё работает правильно! (Контейнер отсортирован верно, всё отмаршалислось и ничего не упало. Что в скриптах олухи из отдела внедрения прописали — добуквенно и выполнено). AF>> Пользователь: Да ваша программа вообще не работает! (В оборотно-сальдовую ведомость в графу "Приход" попала цена в долларах, а должна быть в рулях, потому что....) AF>> И каждый по своему прав...
V>Ну это уже совсем из другой области — изначально вопрос ставился о связи умения владения языком с качеством получаемого кода. Об удовлетворении пользователя нужно вообще отдельный тред заводить
Я имел в виду другое. В приведённом выше примере — программист мог совершенно великолепно обяснить — как написана и что делает его программа. Так же возможно что и пользователь столь же великолепно может сформулировать — что он хочет от программы. Но каждый из них — обясняет это со своей точки зрения. И очень может быть — что даже если программист прекрасно обяснит, что делает его программа (и как она написана) — то пользователь его не поймёт. И вполне вероятно, будет считать, что программист не умеет не объяснять ни писать программы...
Здравствуйте, 9Val, Вы писали:
V>Хмм, интересный способ. Со своим кодом это представить еще можно, а каково с абсолютно чужим?
Без разницы.
Некоторые люди просто в ступор входят, кода я показываю им ошибку даже не зная, как работает их код.
Иногда и так бывает. А я всего лишь показываю то место в коде где, как я чуствую, что-то не так.
Код, он ведь как музыка, и чем лучше код, тем четче в нем чуствуется фальш.
Здравствуйте, Kluev, Вы писали:
K>Недавно я тоже прочитал эту книгу. Вначале мне нравилось, что он пишет, потом к середине книги некоторые вещи начали, скажем так, удивлять, но ближе к концу этот клоун занасладевал класс EditBox от String (!) и в классе String все операторы сделал виртуальными (!)
Во-первых, по технической части книга устарела. Во-вторых, она вообще-то не о том. Книга ценна прежде всего не чисто техническими рекоммендациями, они дейсвительно не соответствуют (а бездумное наследование в C++ — вообще маздай). Книга ценна прежде всего тем, что тренирует способность думать. Автор в самом начале сделал оговорку, что не все советы должны восприниматься как буква закона. Наибольшую ценность, конечно же представляют вводные главы.
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Здравствуйте, 9Val, Вы писали:
V>Здравствуйте, Шахтер, Вы писали:
V>>>И все же человек в своем мышлении использует естественные языки, а потом "переводит" на нужный.
Ш>>А вот это неверно. Наоборот, профессионалы не мыслят о логических (математических, программистских и.т.п.) системах и задачах используя естественные языки. Только когда мысль созрела, она, при необходимости, выражается на естественном языке, если это вообще возможно. Ну зачем далеко ходить, попробуйте какую-нибудь нетривиальную теорему сформулировать на русском -- или не получиться вообще,
V>А можно пример такой, которую нельзя было бы сформулировать?
Да возмите всю гомологическую алгебру или геометрию. Я не представляю себе как, скажем, лемму о змее сформулировать вербально. Нарисовать диаграмму -- 5 секунд. В гомологической алгебре есть даже термин такой -- диаграмный поиск. Это метод доказательства при котроом человек просто водит ручкой по диаграмме и доказывает утверждение. Попытки записать такие доказательства (в алгебраической нотации) приводят к нечитаемым текстам.
Ш>>или получится такой абзац, что понять его без бутылки будет невозможно.
V>Ну так на то и нетривиальная теорема
V>Вернемся к нашим баранам. О математических проблемах думать на русском несложно. По большей части идет расширение словаря языка, синтаксис и семантика практически неизменны. Писать сложнее — объемно получается. Это я к тому, что основываясь на моих мат. знаниях существуют только письменные "математические" языки (поправьте, если ошибаюсь).
Поправляю. Это математика 19 века или раньше. В 20 веке в математика (да, кстати, и физика тоже, и здесь колоссальная заслуга принадлежит Гильберту и Эйнштейну) качественно изменилась превратившись из алгебро-аналитической в премущественно геометрическую по языку и способу мышления. Это дало огромный толчок развитию науке. Собственно говоря, это отражается даже в терминологии, например, теорию чисел сейчас часто называют диофантовой геометрией. В современной математике очень широко используются диаграммы разного рода. Т.е. запись из последовательности слов превратилась в рисунок, иногда весьма сложный и даже псевдо-трехмерный.
V>Мыслить письменами лично у меня не получается. Аналогично с языками программирования — их синтаксис и словарный запас достаточно сильно отличаются от того, как я привык мыслить. Поэтому сначала в мозгах выстраивается некая логическая схема, потом в мысленный псевдокод и лишь потом, с учетом деталей конкрентного языка, в реальный код. Как это происходит у вас?
Боюсь, я не в состоянии это объяснить.
V>PS: Сразу одна оговорка — я не считаю себя профи ни в программировании, ни в математике
Здравствуйте, AndrewVK, Вы писали:
AVK>Думаю стоит переформулировать его выводы так: если человек небрежен в программировании, то наверняка он будет столь же небрежен и в письменной речи.
Тоже совсем не так. Бывает по разному.
... << RSDN@Home 1.1.4 beta 2 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Шахтер, Вы писали:
Ш>Поправляю. Это математика 19 века или раньше. В 20 веке в математика (да, кстати, и физика тоже, и здесь колоссальная заслуга принадлежит Гильберту и Эйнштейну) качественно изменилась превратившись из алгебро-аналитической в премущественно геометрическую по языку и способу мышления. Это дало огромный толчок развитию науке. Собственно говоря, это отражается даже в терминологии, например, теорию чисел сейчас часто называют диофантовой геометрией. В современной математике очень широко используются диаграммы разного рода. Т.е. запись из последовательности слов превратилась в рисунок, иногда весьма сложный и даже псевдо-трехмерный.
А квантовая механика? Попробуй-ка словами обяснить, что означает или как работает та или иная формула. Кроме общих идей — исходя из которых она была получена — обяснять просто нечего. Или возьмём большую численную модель — например авиационного двигателя. Можно её просчитать, можно показать формулы, по которым она расчитывается — но попробуйте обяснить почему в точке [x][y][z] получилась такая температура — не показать, как она была расчитана, а обяснить словами — почему и в добавок обяснить — что это значит — у вас ничего не выйдет. Это как картина — её надо видеть.
В общем словами можно обяснить далеко не всё.
Здравствуйте, Шахтер, Вы писали:
Ш>Да возмите всю гомологическую алгебру или геометрию. Я не представляю себе как, скажем, лемму о змее сформулировать вербально. Нарисовать диаграмму -- 5 секунд. В гомологической алгебре есть даже термин такой -- диаграмный поиск. Это метод доказательства при котроом человек просто водит ручкой по диаграмме и доказывает утверждение. Попытки записать такие доказательства (в алгебраической нотации) приводят к нечитаемым текстам.
Никогда даже не слышал о таком Ухожу в свободный гуглевский поиск
Ш>Боюсь, я не в состоянии это объяснить.