Dijkstra가 모국어를 능숙하게 익힐 것을 권유 할 때 무엇을 의미합니까? [닫은]


28

Dijkstra는 다음 과 같이 씁니다 .

수학적 성향 외에도, 모국어를 능숙하게 익히는 능력은 유능한 프로그래머의 가장 중요한 자산입니다.

이 인용문의 뒷부분을 이해하지 못합니다. 설명하거나 정교하게 설명해 주시겠습니까?

추신 : 나는 인도에서 자랐습니다. 나는 집에서 벵골어 를 사용합니다. 나는 내가 살고있는 공동체에서 마라 티어 를 구사 한다. 힌디어 는 자국어이며 매우 널리 사용되므로 학교와 대학에서 영어를 모국어로 배웠습니다. 물론, 나는 이제 여러 언어로 생각하며 나는 어떤 것에도 숙달 되지 않았다는 것을 인정해야한다 . 이것이 실제로 프로그래밍 적성에 영향을 줍니까? 그렇다면 어떻게? 그리고 어떤 해결책이 있습니까?


20
흥미 롭습니다. 저는 인디안 (타밀어) 인 좋은 친구가 있는데 누군가가 "그의 언어로"어떤 문구를 말하는지 물었을 때 그를 완전히 멈췄습니다. 나중에 그와 이야기하면서 나는 그가 언어를 가지고 있지 않다는 것을 알게되었습니다. 그와 그의 아내는 완전히 다른 언어를 사용하면서 자랐으며, 시어머니와 대화 할 수 없었습니다. 그들은 거의 그들이 만났던 도시의 언어와 영어를 구사합니다. 흥미 롭습니다. 나는 인도가 언어 적으로 조각화되어 있다는 것을 몰랐다.
Dan Ray

4
훌륭한 프로그래머가 훌륭한 작가가되는 것은 우연의 일치가 아닙니다. 당신의 생각을 명확하게 표현하는 방법을 아는 것은 두 공예 모두에 필수적입니다.
Jon Purdy 2012

1
나는 Dijkstra의 말이 모국어 (네덜란드어)로 쓰여졌을 때 그에 대한 해석이 적을 지 궁금해 할 수 없다.
Brendan

답변:


29

나는 alex와 quick_now가 말한 것에 동의하지만 다른 스핀이있을 수 있다고 생각합니다. 이것은 내 자신의 이론이며 Dijkstra가 같은 것을 의미한다고 제안하지는 않습니다.

"언어의 숙달"이란 무엇입니까 : 언어의 기본 구성 요소를 구성하여 유용한 구문과 문장으로 표현하는 기능입니다. 알파벳과 문자 자체는 의미가 없습니다. 그것들을 모아서 의미를 얻어야합니다. 단어 자체는 의미가 없습니다. 구문과 문법을 기반으로 올바른 순서로 배치하여 구체적인 아이디어를 표현할 때만 가능합니다.

컴퓨터 프로그래밍에서 정확히 동일하지 않습니까? 우리는 몇 가지 키워드와 기호를 조합하여 구체적으로 실행 가능한 것을 만듭니다. 프로그래밍 언어에는 자연 언어와 마찬가지로 기호와 문법이 있습니다. 프로그래밍 언어를 숙달하려면 이러한 (개별적으로 무의미한) 기호와 규칙을 조합하여 의미 있고 유용한 것을 만들 수 있어야합니다.

나는 이것이 사람의 언어를 배우는 능력과 컴퓨터 언어 사이에 직접적인 상관 관계가 있다는 것을 의미한다고 믿는다. 둘 다 동일한 인간 능력과 사고 능력이 필요합니다. 당신의 동료들 사이를 살펴보면, 프로그래밍 기술이 나쁜 사람들도 다른 사람들처럼 명확하게 말하거나 쓸 수없는 사람들이라는 것을 알게 될 것입니다. 인간 언어를 잘 선택하는 사람들은 훌륭한 프로그래머가되기 위해 필요한 기술을 가지고 있습니다.


3
+1, 이것은 내가 읽을 때 Dijkstra의 진술에 대한 나의 초기 해석이었습니다.
Rob

1
@quickly_now : "매우 훌륭한 코드를 작성할 수는 있지만 말하기 나 쓰기로 의사 소통을 할 수있는 능력이 부족한 많은 프로그래머"라고 저는 논쟁의 여지가 있습니다. 나는에서 그것을 바꿀 것 아주 좋은 으로 허용 . 계약자로서 30 년을 보낸 후 많은 프로그래머를 만났습니다 . 명료하지 않은 사람은 결국 작업 코드를 생성 할 수 있습니다. 그러나 훌륭한 프로그래머는 실제로 자연 언어와 인공 언어 등 다양한 언어로 글을 쓸 수 있습니다.
S.Lott

4
좋은 프로그래머가되는 본질은 좋은 의사 소통자가되고 있습니다. 그렇게 해석했습니다.
Neil

8
@quickly_now, 닐, 오네시모 스; 구두 나 서면 의사 소통보다 조금 더 깊다고 생각합니다. 나는 그가 언어와인지의 관계에 대해 말하고 있다고 믿는다. web.mit.edu/newsoffice/2008/language-0624.html . 나는 (이 두 번째 또는 세 번째 언어로 더 능숙하게 드문의로, 일반적으로 하나의 기본 tonque) 일부 tonque을 통해 숙달을 의미 강력한 나타냅니다 생각 정신 언어학 구조 능력을 프로그래밍에 직접 대응합니다.
Rob

1
@ OnesimusUnbound, 나는 Dijkstra가 사람들이 모국어에 능숙하다고 기대하기 때문에 논리적으로 혀를 언급했다고 생각합니다. . 그러나 현대에서는 상황이 다를 수 있습니다. 예를 들어 저는 모국어보다 영어가 훨씬 낫습니다. 그러나 그것은 학교에서 결코 배운 적이 없기 때문에
DPD

23

Dijkstra는 직장의 주변 언어로 명확하고 간결하며 강력하게 글을 쓰고 말할 수 있어야한다고 말합니다. 그는 완벽하게 옳습니다. 다른 사람들이 즉시 이해할 수있는 방식으로 기술적 (기술적이지 않은) 문제에 대해 이야기하고 글을 쓸 수 없다면 소프트웨어 엔지니어로서의 방해와 다소 비효율적입니다.

아이디어는 쓰기 있다는 것입니다 에 대한 코드는 코드 자체를 작성하는 것만 큼 중요하다.

포스터가 영어로 자신을 잘 표현할 수 없어서 몇 번이나 좋은 질문을 했습니까? 답 : 너무 많습니다.


7

이 인용문은 모국어 (예 : 귀하의 경우 마라 티어)를 알아야한다고 말합니다. 이것은 중요한 자산입니다.

심리학자들은 일반적으로 생각하는 언어를 아는 것이 아니라 당신이 더 당신의 생각을 표현하는 데 도움이. 어떤 사람들은 우리가하는 모든 생각이 우리의 기본 언어에 국한되어 있다고 말합니다. 언어가 풍부하고 지식이 풍부할수록 사람이 아이디어를 더 잘 전달하고 구성 할 수 있습니다.

여러 언어를 아는 것은 다른 사고 모델도 이해하는 데 도움이됩니다.


7
"우리가하는 모든 생각이 우리의 기본 언어에 국한되어 있다고 말하는 사람들"이 사실이라면, 내 모국어가 더 이상 기본 언어가 아닌가? 어서 저의 모국어와 기본 언어는 네덜란드어이지만, 프로그래밍 중 영어는 영어입니다 ... 프로그래밍 문제에 대해 생각하는 데 도움이되는 대부분의 용어와 기사가 영어로되어 있기 때문일뿐입니다. 사실, 나는 네덜란드어를 나에게 말하고, 아무것도 찾을 수 없으며, 메뉴의 위치에 크게 의존하는 컴퓨터를 사용하는 것이 어렵다는 것을 알게되었다. (맞춤 메뉴가 빠지는 또 다른 이유).
Marjan Venema

7

이 작품을 전체적으로 살펴보면 흥미로운 목록이지만 1975 년부터 시작되었습니다. 어느 정도는 개입 기간에 시간이 변경되어 해당 신조 목록의 일부가 다소 쓸모 없게되었다고 말할 수 있습니다.

프로그래머들이 가지고 있어야 할 핵심 기술은 효과적으로 의사 소통하는 능력입니다. 이것은 단지 설명을 의미하는 것이 아닙니다. 그것은 이해를 의미합니다. 귀하의 작업 언어가 무엇을 의미하든 귀하의 경우 영어는 모국어는 아니지만 모국어로 효과적으로 의사 소통하는 데 어려움을 겪는 사람들은 다른 곳에서는 더 쉽게 찾을 수 없습니다.

일반적으로, 당신의 모국어가 어려우면 일상 생활에서 불이익을 받는다는 것은 당신의 인생에서 어떤 지위에 관계없이 말할 수 있다는 것입니다.

위의 기여를 바탕으로 그가 숙달 한 의미를 잘 알지 못합니다. 충분한 영어 구사 능력을 가지고 있다고 생각합니다. 그러면 다른 언어로 효과적으로 의사 소통 할 수 있다고 추정합니다.


참된. Dijkstra는 요점이 있다고 생각하지만 "프로그래머"라는 단어는 "컴퓨터 과학자"로 대체되어야합니다. 물론 과학자는 명확한 언어로 논쟁하고 쓸 수 있어야합니다. 프로그래머에게도 마찬가지입니다. 다른 언어로 동료들과 논쟁한다고 생각하지 않습니다. 여기 네덜란드에서는 모든 개발 환경이 영어로되어 있지만, 동료들과 코드 조각에 대해 논쟁 할 때 네덜란드어로합니다.
vstrien

@vstrien 그래서 동료들 각자가 다른 모국어를 할 경우 어떻게 할 것인지 친구에게 알려주십시오. 그 상황이 여기에 있습니다. 모든 몸은 다른 ​​인도의 "상태"에서 왔고 그들은 다른 언어를 가지고 있습니다 (나는 방언을 의미하지 않습니다. 나는 언어를 의미합니다). 내가이 나쁜 관행으로 goingg 경우였다 물어보고 싶은게 무엇 (나는 시간의 기간에 6 DIFF PPL 거의 3 랭 가문 말을해야하기 때문에 여유 캔트) 특정 LANG 생각
Chani

RYUZAKI, 이것은 사람들이 다양한 삶의 길을 치는 상황입니다. 나는 3 개의 언어를 사용하는 조직에서 일했습니다. 당신과 같은 회사에서, 당신이 하나의 작업 언어를 가지고 있다면 당신은 잘하고 있습니다. 인생의 특정 부분이 특정 언어로 작동한다는 것을 알게 될 것입니다.
temptar

@RYUZAKI : 죄송합니다. 다른 언어로 동료들과 논쟁하지 않는다고 말했을 때 지시하지 않았습니다. :). 그러나 나는이 경우 명확하게 의사 소통하는 방법을 찾는 것이 중요하다고 생각합니다. 제가 생각할 수있는 가장 쉬운 것은 한 언어를 사용하여 서로 설명하는 것입니다. 다시 말하지만, 이것이 프로그래밍 기술에는 영향을 미치지 않는다고 생각하지만, 코드를 통해 통신 할 수 없다면 생산성이
떨어질 것입니다

1
@temptar : "응용 수학에 대한 배경 지식이없는 전 세계적으로 많은 프로그래머가 증가하고있다"고해서 진술이 무효화되지는 않습니다. 당신의 관찰은 "수학에 공식적인 훈련을받지 않은 사람들은 여전히 ​​프로그래밍 뒤에 적용되는 일부 수학을 배울 수 있습니다." 나는 당신의 관찰에 동의합니다. 그러나 이것이 Dijkstra의 진술을 전혀 무효화하지는 않습니다. 실제로, 그것은 보완적인 것 같습니다.
S.Lott

5

나는 그가 사람들이 당신에게 원하는 것을 잘 이해하고 있다고 말하고 있습니다.

(내 자신의 생각을 기울이려면 : 프로그래밍의 맥락에서 사람들의 말이나 말을 이해하지만 명확하지 않은 말을 이해해야하는 경우도 있습니다.)


1
나는 또한 당신의 아이디어를 다른 사람들에게 명확하게 전달할 수있는 능력을 가지고 있습니다. 하나는 다른 imo만큼 중요합니다 :)
Demian Brecht

1
나는 당신이하는 말에 동의하지만, 그것이 Dijkstra가 전혀 말하고 있지 않다고 생각합니다.
Rob

1
이것은 모두 고등학교에서 영어 문학 수업을 생각 나게합니다. 저자의 의미에 대해 몇 시간 동안 논쟁 할 수 있습니다. 나는 왜 우리가 왜 가서 물어 보지 않는지 궁금해했습니다. 아 ... 영문학. 그들 중 일부는 지금 죽었습니다. (나는 항상 당신이 F 스콧 피츠 제럴드를 너무 많이 해석하고 해석해서는 안된다고 생각했지만 위스키 병을 통해 세상을 바라 보는 그의 시각은 형성되었습니다. 저의 영어 선생님은 저도 그렇게 말하는 것을 좋아하지 않았습니다.)
quick_now

몇 시간 동안 무의미하게 논쟁하거나 사실을 통해 논쟁을지지 할 수 있습니다. 예를 들어, 같은 페이지에서 Dijkstra의 다른 인용문을보십시오. "BASIC에 사전 노출 된 학생들에게 좋은 프로그래밍을 가르치는 것은 사실상 불가능합니다. 잠재적 인 프로그래머로서 그들은 재생의 희망을 넘어 정신적으로 절단되었습니다 ." -언어와 인식의 주제에 대해 다시 말하기.
Rob

그리고 그러한 진술은 단지 염증성입니다. 크리 키, 약 30 년 전에 BASIC에서 프로그래밍을 시작했습니다. 나는 나 자신을 슈퍼맨으로 생각하지 않지만 "재생의 희망을 넘어서도 정신적으로 절단되지도 않았다". 나는 그러한 진술이 매우 모욕적이라는 것을 알게되었으며, 그가 말하는 것을 신뢰가 제한적인 것으로 취급한다는 의미입니다.
quick_now

2

나는 (어떤) 언어를 잘하는 것이 이것을 제공한다고 생각합니다-

요점이 명확하지 않으면 개선 된 방식으로 생각하고 수정하고 다시 언급 할 수 있습니다. 당신이하는 말은 정확히 다음 사람 (또는 기계)이 이해하기를 원하는 것입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.