저는 Peter Seibel의 직장에서 코더를 읽고 있으며, 글을 쓸 수없는 프로그래머가 일반적으로 가난한 프로그래머를 만든다고 언급 한 적이 있습니다. Douglas Crockford, Joshua Bloch, Joe Armstrong, Dijkstra가 주장했습니다. 책의 절반 만 읽습니다).
이것에 대한 당신의 견해는 무엇입니까? 영어와 같은 자연 언어로 글을 쓰지 못하는 것이 좋은 코드를 작성하는 데 방해가됩니까?
저는 Peter Seibel의 직장에서 코더를 읽고 있으며, 글을 쓸 수없는 프로그래머가 일반적으로 가난한 프로그래머를 만든다고 언급 한 적이 있습니다. Douglas Crockford, Joshua Bloch, Joe Armstrong, Dijkstra가 주장했습니다. 책의 절반 만 읽습니다).
이것에 대한 당신의 견해는 무엇입니까? 영어와 같은 자연 언어로 글을 쓰지 못하는 것이 좋은 코드를 작성하는 데 방해가됩니까?
답변:
'코드 작성'보다 프로그래밍에 더 많은 것이 있습니다. 성공적인 프로그래머가되기 위해서는 대부분 의사 소통이 필요합니다. 고객과 연결하고, 고객의 요구를 이해하고, 기술 영역으로 변환하고, 코드로 표현한 다음, 고객에게 결과를 설명 할 수 있습니다.
글로 자신을 명확하게 표현하는 데 어려움을 겪는 프로그래머는 일반적으로 의사 소통을 잘하지 못할 수 있지만, 언어와 글을 잘 이해하는 사람은 일반적으로 해당 기술을 자신이 작성한 코드로 번역 할 수 있습니다.
글을 잘 쓸 수 없어서 의사 소통을 잘하면 아주 좋은 프로그래머가되지 않을 것입니다.
Jason Fried와 David Heinemeier Hansson (37 신호)은 그들의 저서 Rework에서 다음과 같이 말합니다.
몇 사람 중에서 입장을 정하기로 결정하려는 경우 최고의 작가를 고용하십시오.
훌륭한 작가가되는 것은 글쓰기 이상의 것입니다. 명확한 글쓰기는 명확한 생각의 표시입니다. 위대한 작가들은 의사 소통하는 방법을 알고 있습니다.
질문을 검토하면 직접 답변을 얻습니다.
영어와 같은 자연 언어로 글을 쓰지 못하는 것이 좋은 코드를 작성하는 데 방해가됩니까?
좋은 코드를 작성한다는 것은 실제로 무엇을 의미합니까?
사람들이 읽을 수 있도록, 그리고 기계가 실행할 수 있도록 프로그램을 작성해야합니다.
-Abelson & Sussman, 컴퓨터 프로그램의 구조 및 해석
그것은 프로그래밍 언어로 자신을 명확하고 간결하게 정확하고 우아하게 표현하는 것을 의미합니다.
영어 나 프로그래밍 언어로 자신을 능숙하게 표현하는 것의 유일한 차이점은 영어가 훨씬 관대하다는 것입니다.
나는 그것이 코드 원숭이에게 큰 장애라고 생각하지 않습니다 (나는 자신의 모국어로 자신을 표현할 수있는 특정 기본 수준 / 능력을 가정하고 있습니다). 그러나 나는 당신 (개발자)이 비 기술적 청중에게 디자인 / 아치 / 계획을 더 잘 설명하기 시작함에 따라 그것이 큰 장애가 될 수 있다고 생각합니다. 저와 거의 같은 기술 수준에있는 다른 사람에게 무언가를 가져 오는 경험에서, 저는 더 쉽고 (자연적인) 언어 기술을 덜 사용하여 고객 및 / 또는 관리자에게 무언가를 분명히 표현합니다. 주제가 덜 구체적이되기 때문에 기술적 인 대상이더라도 기술 토큰을 사용하는 사람도 그와 관련하여 글을 쓰는 사람 (또는 그 문제에 대해 이야기하는 사람)은 상당히 명료해야합니다.
그것은 "좋은 코드"의 의미에 달려 있습니다.
작동하는 코드를 의미한다면 사람과 의사 소통 할 수있는 것과 컴퓨터와 의사 소통 할 수있는 것 사이에는 아무런 관계가 없습니다.
작동하고 유지 보수가 가능하며 코드의 의도를 명확하게 표현하는 코드를 의미한다면 좋은 코드를 작성하는 것과 인간을위한 언어로 작성하는 것 사이에는 절대적인 관계가 있습니다.
이해할 수있는 코드를 작성하는 데 훌륭한 작가가되기 위해 필요한 모든 기술이 필요하지는 않지만, 인간이 읽을 수있는 몇 가지 요소가 여전히 있습니다. 어떤면에서는 컴퓨터가 실행하는 동안 성능이 좋지 않은 구문을 사용하지 않으면 서 코드로 의도를 설명해야하므로 좋은 코드를 작성하기가 더 어려워집니다.
문제는 코딩도 의사 소통 기술입니다. Jack Manssle은 Embedded Muse e-newsletter에서 최근 Doug Abbott를 인용했습니다.
프로그램을 작성할 때 실제로하고있는 일은 다른 사람에게 컴퓨터가 원하는 것을 전달하는 것입니다. 프로그래밍은 다른 형태의 글쓰기와 마찬가지로 의사 소통에 관한 것입니다. 그렇습니다. 컴퓨터 공학 학생들은 작문에 잘 노출되어야합니다. 그러나 컴퓨터 과학에는 그다지 귀중한 것이 거의 없기 때문에 기본 창작 작문 수업이 필요할 수도 있습니다.
산문 작성 방법을 모르는 프로그래머도 코드 작성 방법을 모릅니다.
이 흥미로운 기사에 대한 추가 정보 :
이것은 모두 일화이지만,
내가 함께 일한 최고의 "록 스타"프로그래머 중 하나는 매우 가난한 작가였습니다. 그리고 내가 "매우 가난하다"고 할 때, 나는 당신이 그의 이메일을 보았을 때, 그가 매우 취하거나 거의 문맹이었던 것처럼 온 유형을 의미합니다. 오타, 구두점 부족, 아이디어를 명확하게 표현하는 데 어려움 및 일반적인 철자 실수 ( "그들 / 그들"등)는 거의 모든 경우에 매우 많았습니다. 그의 이메일 중 일부를 읽는 것-나는 그에게 클라이언트에게 직접 이메일을 보내는 것에 대해 걱정했을 것입니다 (우리는 그 회사에서 그렇게 할 필요가 없었습니다)-회사가 나빠 보이게 만들 수 있기 때문입니다!
여전히 그는 슈퍼 스타 프로그래머였습니다. 평균보다 생산적이고 스위치가 많은 주문.
무엇을 만들어야할지 모르겠습니다. 나는 다른 사람들과 함께 이것을 여러 번 보았다. 일부는 앉아서 물건을 쓰는 요령이없는 것 같습니다. 그리고 종종 그것은 다른 영역에서 그들의 재능에 영향을 미치지 않는 것 같습니다 (프로그램과 같이 비교적 유사한 "지식 작업"재능). 당신은 그것이 연결될 것이라고 생각할 것이지만, 나는 그렇지 않은 곳에서 이와 같은 몇 가지 살아있는 예를 보았습니다. 나는 그들이 "임을 확실히 가능하다 생각하지만 규칙을 증명하는 예외 나는 아마 프로그래머가 아닌 나쁜 작가를 주목하는 생각도 못하고, 좋은 작가 -" 있다가 .
글을 잘 쓸 수 없다면 어떻게 그들이 훌륭한 프로그래머 임을 확신시킬 수 있습니까?
시스템 조직이나 아이디어를 정확하게 표현할 수없는 사람이 그것을 작성함으로써 코드를 작성할 수있을 것입니까?
프로그래머가 말하기와 쓰기 언어로 잘 의사 소통하는 것이 매우 중요하다고 생각합니다. 아이디어를 단어로 번역하는 기능은 코드를 작성하기위한 전제 조건입니다.
컴퓨터 나 사람과 의사 소통을하든 문법 규칙에 따라 말을 순서대로 정리해야합니다. 대화의 다른 쪽이 이해하기 위해서는 단어를 올바르게 발음하거나 철자를 정확하게 입력해야합니다. 컴퓨터는 구문 오류를 발생시키고 동료는 "무엇입니까?"라고 말합니다. 또는 미친 졸졸 또는 더 나쁜, 짜증나는 산만이라고 말하는 것을 할인하십시오.
후보자를 생각하지 못하거나 주제에 대해 머물 수 없기 때문에 채용 후보를 강력히 권장하지 않습니다. 어쨌든 한 사람이 우리 상사에 의해 고용되었고, 밝고 반짝이는 새로운 기술이나 장난감이 눈을 사로 잡은 것에 산만 해져서 제 시간에 간단한 과제를 전달할 수 없다는 것이 밝혀졌습니다.
예, 프로그래머가 의사 소통을 잘 할 수 있어야합니다. 그들이 효과적으로 인간과 의사 소통을 할 수 없다면 그들은 컴퓨터로 그것을 할 수 없습니다.
가난한 작가는 가난한 작가를 만들지 만 그 밖의 것은 없습니다. 글쓰기 능력이 좋지 않다고해서 전혀 의사 소통을 할 수는 없지만 글을 잘 쓰거나 표현할 수는 없습니다. 물론 의사 소통 기술이 회사 등에서 중요하고 중요하다고 말할 수는 있지만, 의사 소통 기술이 좋지 않은 프로그래머가 업무를 훌륭하게 수행 할 수있는 것은 아닙니다. 프로그래밍과 작문은 예술이지만 완전히 다른 종류입니다. 글쓰기는 다른 사람이 당신의 말을 이해하고 그에 따라 행동하는 방법에 관한 것이지만 프로그래밍은 컴퓨터가 사용자의 요구 사항을 이해하지 못하게합니다. 프로그래밍은 요구 사항을 프로그래밍 언어로 변환하는 방법에 관한 것이므로 작문 기술과 관련이 없습니다.
절대적으로하지!
훌륭한 작가는 훌륭한 작가 일뿐입니다. 좋은 작가에게 데이터베이스의 개념을 비전문가에게 설명하도록 요청하십시오. 당신은 무엇을 얻을 것이라고 생각합니까?
좋은 작가는 씁니다. 좋은 프로그래머는 좋은 코드를 작성합니다.
나는 계속 가고 있었지만 오히려 다른 게시물에 대답하는 데 시간을 보내고 싶습니다. 나는 당신 이이 문제의 어디에 서 있는지 알고 있다고 생각합니다.