Що означає Дайкстра, коли він рекомендує надзвичайно добре оволодіння рідною мовою? [зачинено]


28

Dijkstra пише тут :

Окрім математичного нахилу, надзвичайно добре оволодіння рідною мовою є найважливішим надбанням компетентного програміста.

Я не розумію останньої частини цієї цитати. Чи можете ви поясніть чи поясніть?

PS Я виріс в Індії. Я вдома розмовляю бенгальською ; Я розмовляю маратхі в громаді, в якій живу; Гінді - це національна мова і дуже широко розмовляється, тому я знаю це, і в школі та в коледжі мене викладали з англійської як першої мови. Звичайно, зараз я думаю на безлічі мов, і мушу визнати, що я не володію жодною мовою . Це дійсно впливає на мою здатність до програмування? Якщо так, то як? і чи є рішення ?


20
Цікаво ... У мене є хороший друг, який є індіанець (тамільський), і я одного разу спостерігав, як він повністю замерз, коли хтось запитав його, як сказати якусь фразу "своєю мовою". Поговоривши про це пізніше з ним, я дізнався, що він не має мови. Він і його дружина виросли цілком різними мовами, він не може спілкуватися зі своїми закохами. Вони обидва майже говорять мовою міста, де вони зустрілися, та англійською. Це захоплююче. Я поняття не мав, що Індія настільки лінгвістично роздроблена.
Ден Рей

4
Не випадково дуже хороші програмісти також є дуже хорошими письменниками; знання чітко висловити свої думки є необхідністю для обох ремесел.
Джон Перді,

1
Я не можу не задатися питанням, чи не було б менше тлумачень слів Дійкстри, якби вони були написані рідною мовою (голландською), де (я припускаю) він чудово володів.
Брендан

Відповіді:


29

Хоча я згоден з тим, що сказав Алекс і швидко знаю, я вважаю, що може бути різний виток. Це моя власна теорія, і я не припускаю, що Дайкстра мав на увазі те саме.

Що таке "оволодіння мовою": це вміння брати основні складові частини мови і ставити їх у конструктивні, корисні фрази та речення. Алфавіти та символи самі по собі безглузді. Вам потрібно скласти їх разом і отримати з цього сенс. Слова самі по собі безглузді; лише якщо ви ставите їх у правильній послідовності на основі синтаксису та граматики, вони висловлюють конкретні ідеї.

Хіба це зовсім не те саме в комп'ютерному програмуванні? Ми складаємо кілька ключових слів і символів і робимо з них конкретні ефективні речі. Мова програмування має символи та граматику так само, як і природна мова. Оволодіння мовою програмування вимагає вміння складати ці (індивідуально безглузді) символи та правила, щоб зробити щось значуще та корисне.

Я вважаю, що це означає, що існує можливість прямого взаємозв'язку між здатністю людини до вивчення людської мови та комп’ютерної роботи. Обом потрібен однаковий набір людських здібностей та можливостей мислення. Погляньте серед своїх колег, і ви побачите, що ті, хто має погані навички програмування, також є тими, хто не вміє говорити чи писати так чітко, як інші. Ті, хто добре підбирає людські мови, мають навички, необхідні, щоб також стати хорошими програмістами.


3
+1, це було моїм початковим тлумаченням виступу Дійкстри, коли я його читав.
Роб

1
@quickly_now: "Дуже багато програмістів, які вміють писати дуже хороший код, але їм не вистачає здатності добре спілкуватися в одному з мовних або письмових", я би заперечив це. Я змінив би це з дуже хорошого на прийнятне . Через 30 років, як підрядник, я зустрів чимало програмістів. Нерозбірливі з часом можуть створювати робочий код. Але хороші програмісти насправді можуть писати різними мовами, як природними, так і штучними.
С.Лотт

4
Суть бути хорошим програмістом - бути хорошим комунікатором. Ось як я це інтерпретував.
Ніл

8
@quickly_now, Neil, Onesimus; Я думаю, що це трохи глибше, ніж словесне чи писемне спілкування. Я вважаю, що він говорить про зв’язок між мовою та пізнанням, наприклад. web.mit.edu/newsoffice/2008/language-0624.html . Я думаю, що це означає оволодіння над деякою тональністю (як правило, рідна тонна, оскільки рідко стає знанням другої чи третьої мови) вказує на міцні душевні лінгвістичні конструкції, що безпосередньо відповідають здібностям програмування.
Роб

1
@OnesimusUnbound, я думаю, що Дайкстра згадав про рідну мову, тому що логічно очікувати, що люди будуть добрими рідною мовою (яка у багатьох випадках, але не у всіх, також є мовою їх невдалості), але не обов'язково у своїй другій / третій мовах . Однак у сучасному світі це може бути інакше, наприклад, я набагато краще англійською, ніж рідною мовою. Але це, тому що я ніколи не вчився цього в школі
DPD

23

Dijkstra говорить, що ви повинні вміти писати та говорити чітко, стисло та наполегливо мовою навколишнього середовища свого робочого місця. Він абсолютно правий: якщо ви не можете говорити і писати про технічні (і нетехнічні) проблеми таким чином, щоб інші могли негайно зрозуміти, вам заважають і дещо неефективно, як інженер програмного забезпечення.

Ідея полягає в тому, що писати про код так само важливо, як і писати сам код.

Отож ідеальний приклад: скільки разів ми бачили, як добрі, настирливі, цінні питання підірвали чи закрили, оскільки афіша не могла добре висловитись англійською? Відповідь: занадто багато.


7

У цитаті сказано, що вам потрібно знати рідну мову (наприклад, маратхі у вашому випадку). Це важливий актив.

Як правило, психологи вважають, що добре знати мову допомагає краще висловити свої думки. Деякі кажуть, що все мислення, яке ми робимо, обмежується нашою основною мовою. Чим багатша мова (і знання її), тим краще людина може спілкуватися та структурувати ідеї.

Знання кількох мов також допомагає зрозуміти різні моделі мислення.


7
Якщо "Деякі кажуть, що все мислення, яке ми робимо, обмежується нашою основною мовою", це правда, то моя рідна мова не є (вже не) моєю основною мовою? Com'on. Моя рідна та основна мова - голландська, але мою мову мислення під час програмування - це англійська ... І не тільки тому, що більшість термінології та майже всі статті, які допомагають мені думати про проблеми програмування, - англійською. Насправді мені важко працювати за комп’ютером, який розмовляє з голландською мовою / мені, нічого не може знайти і покладається на розташування речей у меню. (Ще одна причина, чому персональне меню смокче).
Мар'ян Венема

7

Дивлячись на фрагмент у повному обсязі, це цікавий перелік, але він датується 1975 р. Справедливо сказати, що певною мірою часи змінилися протягом періоду, що перебуває протягом цього періоду, що робить частини цього списку принципів дещо застарілими.

Основна навичка, яку, на мою думку, повинні мати програмісти, - це здатність ефективно спілкуватися. Це не означає лише пояснення; це означає розуміння. Незалежно від того, якою є ваша робоча мова, англійська у вашому випадку, хоча це не ваша рідна мова, тим, хто має труднощі ефективно спілкуватися рідною мовою, в іншому місці це не буде легше.

Як загальне зауваження, справедливо сказати, що незалежно від того, яке ваше становище в житті, якщо у вас є труднощі з рідною мовою, ви будете знедолені у своєму щоденному житті.

Я б не переймався тим, що він має на увазі під майстерністю - виходячи з вашого внеску вище, я підозрюю, що ви володієте більш ніж адекватною англійською мовою, і, отже, я екстраполюю, що ви ефективно спілкуєтесь іншими мовами.


Правда. Думаю, у Дейкстри є пункт, але слово "програмісти" слід замінити на "комп'ютерні". Звичайно, вченому потрібно вміти сперечатися і писати зрозумілою мовою. Те саме стосується програмістів: ви не заманюєте мене думати, що ви посперечаєтесь зі своїми (також рідномовними) колегами іншою мовою. Тут у Голландії все середовище розробки є англійською мовою, але коли я сперечаюся з колегами про фрагмент коду, ми робимо це голландською мовою.
vstrien

@vstrien, тож скажи другові, що ти будеш робити, якщо кожен з колег розмовляв різною рідною мовою? ось ситуація тут. кожне тіло походить з іншої індійської "держави", і вони мають різний язик (я не маю на увазі діалект .. я маю на увазі мову) сподіваюся, що ви можете поставити голову навколо цього: P, і це саме те, що було моїм питанням ... я не дійсно Подумайте в конкретному язику (я не можу дозволити собі, оскільки мені доводиться говорити майже 3 язики з 6 різними частками за проміжок години) Що я хотів запитати, чи це погана практика
Чані

РЮЗАКІ, це ситуація, в яку люди потрапляють у різні сфери життя. Раніше я працював в організації, яка мала 3 робочі мови. У такій компанії, як ваша, якщо у вас є одна робоча мова, ви працюєте добре. Ви виявите, що певні частини вашого життя працюватимуть певними мовами.
тамптар

@RYUZAKI: Вибачте, я не звертався до вас, коли я сказав, що ви не посперечаєтесь з колегами на рідній мові :). Але я думаю, що в цьому випадку важливо знайти способи чіткого спілкування - і найпростіше, що я можу придумати, - це використовувати одну мову, щоб пояснити один одному. Знову ж таки, я не думаю, що це впливає на вас у ваших навичках програмування, але впевнений, що це шкодить продуктивності, якщо ви не можете спілкуватися над кодом ..
vstrien

1
@temptar: "значна та зростаюча кількість програмістів у всьому світі, що не мають досвіду в застосованій математиці", це зовсім не скасовує заяву. Ваше спостереження означає, що "люди, які не мають офіційної підготовки з математики, все ще можуть встигнути засвоїти частину прикладної математики за програмуванням". Я згоден з вашим спостереженням. Але це зовсім не визнає (або застарілим) твердження Дійкстри. Дійсно, це здається взаємодоповнюючим.
S.Lott

5

Я підозрюю, що він має на увазі добре розуміння того, що люди хочуть від вас - іншими словами, хорошу здатність до вербальної комунікації.

(Якщо говорити про свій власний нахил. Частина цього означає, що в контексті програмування іноді потрібно розуміти, що люди говорять, або що вони говорять, але не дуже чітко.)


1
Я також кину туди можливість чітко передати свої ідеї іншим. Одне так само важливо, як і інше imo :)
Дем'ян Брехт

1
Я погоджуюся з тим, що ви говорите, але я не думаю, що саме про це говорить Дійкстра.
Роб

1
Це все нагадує мені уроки англійської літератури в середній школі. Можна годинами сперечатися про те, що мав на увазі автор. Я завжди задавався питанням, чому ми не просто йдемо і запитуємо їх. О ... англійська література. Деякі з них уже мертві. (Я завжди вважав, що вам не слід занадто багато намагатися тлумачити Ф. Скотта Фіцджеральда - його погляд на світ формувався, дивлячись на нього через пляшку віскі. Мій учитель англійської мови мені також не подобався, що я це говорив.)
quick_now

Ви можете безцільно сперечатися годинами, або можете підтримувати свої аргументи фактами. Наприклад, подивіться інші цитати Dijkstra на цій же сторінці, наприклад. "Практично неможливо навчити хорошого програмування студентам, які мали попереднє опромінення BASIC: як потенційних програмістів, вони психічно понівечені за межами надії на регенерацію". - знову виступаючи на тему мови та пізнання.
Роб

І таке твердження просто запальне. Crikey, я почав програмувати в BASIC близько 30 років тому, тому що це все було. Я не вважаю себе суперменом, але я також не "психічно понівечений поза сподіванням на відновлення". Я вважаю таку заяву досить образливою, і це означає, що я ставлюсь до всього іншого, що він говорить, як обмеженого довіри.
quick_now

2

Я думаю, що хороша мова (будь-яка) мова служить цьому -

Якщо ваша думка не зрозуміла, ви можете продумати, переглянути, перезапустити вдосконалений спосіб. Поки те, що ви говорите, - це саме те, що ви хочете зрозуміти наступній особі (або машині).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.