저술가가 저조한 프로그래머가됩니까? [닫은]


16

저는 Peter Seibel의 직장에서 코더를 읽고 있으며, 글을 쓸 수없는 프로그래머가 일반적으로 가난한 프로그래머를 만든다고 언급 한 적이 있습니다. Douglas Crockford, Joshua Bloch, Joe Armstrong, Dijkstra가 주장했습니다. 책의 절반 만 읽습니다).

이것에 대한 당신의 견해는 무엇입니까? 영어와 같은 자연 언어로 글을 쓰지 못하는 것이 좋은 코드를 작성하는 데 방해가됩니까?


9
저는 프로그래머로서의 기술에 대해 잘 모르지만 프리랜서 세계에서 똑똑한 = 프로그래머로 자신을 판매합니다. 그러므로 글을 잘 쓰고 말할 수 있다면, 당신은 똑똑하다고 인식되고 개발자로서 더 신뢰할만한 것으로 간주 될 것입니다 (완전히 근거가 없더라도).
Dan Rosenstark

"글을 쓸 수 없다"는 것은 문법이 틀렸다는 것을 의미합니까? 그것은 아마도 흐름이 좋지 않은 것보다 더 큰 문제 일 것입니다.
Maxpm

1
@Maxpm : 어쩌면 문법적으로 정확하지만 서면으로 의미를 전달할 수없는 경우도 있습니다.
gablin

답변:


30

'코드 작성'보다 프로그래밍에 더 많은 것이 있습니다. 성공적인 프로그래머가되기 위해서는 대부분 의사 소통이 필요합니다. 고객과 연결하고, 고객의 요구를 이해하고, 기술 영역으로 변환하고, 코드로 표현한 다음, 고객에게 결과를 설명 할 수 있습니다.

글로 자신을 명확하게 표현하는 데 어려움을 겪는 프로그래머는 일반적으로 의사 소통을 잘하지 못할 수 있지만, 언어와 글을 잘 이해하는 사람은 일반적으로 해당 기술을 자신이 작성한 코드로 번역 할 수 있습니다.

글을 잘 쓸 수 없어서 의사 소통을 잘하면 아주 좋은 프로그래머가되지 않을 것입니다.

Jason Fried와 David Heinemeier Hansson (37 신호)은 그들의 저서 Rework에서 다음과 같이 말합니다.

몇 사람 중에서 입장을 정하기로 결정하려는 경우 최고의 작가를 고용하십시오.

훌륭한 작가가되는 것은 글쓰기 이상의 것입니다. 명확한 글쓰기는 명확한 생각의 표시입니다. 위대한 작가들은 의사 소통하는 방법을 알고 있습니다.


2
그렇습니다. 저는 훌륭한 프로그래머의 품질 중 하나가 코드로 자신을 명확하게 표현하는 능력이라는 데 거의 모든 사람들이 동의한다고 생각합니다. 그래서 명확하게 표현하는 능력이 명확하게 표현하는 능력과 관련이 있다는 사실은 놀랍지 않습니다. 코드에서 (또는 그 반대로). +1
n1ckp 2018

2
두 번째입니다. 기계와 통신 할 필요는 없습니다. 당신 주변의 사람들과 당신을 따르는 프로그래머들은 말하고 글로 의사 소통을해야합니다. 조만간 사람들과 대화를해야하므로, 코드와 의견이 다르기 때문에 작성되었습니다.
quick_now

나는 당신의 대답이 매우 흥미로 웠습니다! 그러나 내가 기억하고, 내가 함께 일하거나, 일하거나 일한 최고의 프로그래머가 누구인지 찾기 위해 많은 사람들이 글을 쓰는 것이 매우 나빴다는 것을 알았습니다. 그러나 그들은 말도 안되게 좋았습니다. 그러나 귀하의 탁월한 답변을 명심하고 앞으로 시도해 드리겠습니다. +1

16
  • 충분히 설명 할 수 없다면 충분히 이해하지 못할 수도 있습니다 . 똑똑한 사람이된다는 것은 다른 똑똑한 사람들과 함께 일하고 효과적으로 의사 소통해야한다는 것을 의미합니다.
  • 당신의 머리 속에 만 있다면 당신이 가진 어떤 좋은 아이디어도 쓸모가 없습니다.
    당신의 아이디어를 효과적으로 전달할 수 있다는 것은 큰 이해의 표시입니다. 이것은 프로그래밍 분야 이상의 분야에 적용됩니다.

4

질문을 검토하면 직접 답변을 얻습니다.

영어와 같은 자연 언어로 글을 쓰지 못하는 것이 좋은 코드를 작성하는 데 방해가됩니까?

좋은 코드를 작성한다는 것은 실제로 무엇을 의미합니까?

사람들이 읽을 수 있도록, 그리고 기계가 실행할 수 있도록 프로그램을 작성해야합니다.
-Abelson & Sussman, 컴퓨터 프로그램의 구조 및 해석

그것은 프로그래밍 언어로 자신을 명확하고 간결하게 정확하고 우아하게 표현하는 것을 의미합니다.

영어 나 프로그래밍 언어로 자신을 능숙하게 표현하는 것의 유일한 차이점은 영어가 훨씬 관대하다는 것입니다.


3

나는 그것이 코드 원숭이에게 큰 장애라고 생각하지 않습니다 (나는 자신의 모국어로 자신을 표현할 수있는 특정 기본 수준 / 능력을 가정하고 있습니다). 그러나 나는 당신 (개발자)이 비 기술적 청중에게 디자인 / 아치 / 계획을 더 잘 설명하기 시작함에 따라 그것이 큰 장애가 될 수 있다고 생각합니다. 저와 거의 같은 기술 수준에있는 다른 사람에게 무언가를 가져 오는 경험에서, 저는 더 쉽고 (자연적인) 언어 기술을 덜 사용하여 고객 및 / 또는 관리자에게 무언가를 분명히 표현합니다. 주제가 덜 구체적이되기 때문에 기술적 인 대상이더라도 기술 토큰을 사용하는 사람도 그와 관련하여 글을 쓰는 사람 (또는 그 문제에 대해 이야기하는 사람)은 상당히 명료해야합니다.


3

그것은 "좋은 코드"의 의미에 달려 있습니다.

작동하는 코드를 의미한다면 사람과 의사 소통 할 수있는 것과 컴퓨터와 의사 소통 할 수있는 것 사이에는 아무런 관계가 없습니다.

작동하고 유지 보수가 가능하며 코드의 의도를 명확하게 표현하는 코드를 의미한다면 좋은 코드를 작성하는 것과 인간을위한 언어로 작성하는 것 사이에는 절대적인 관계가 있습니다.

이해할 수있는 코드를 작성하는 데 훌륭한 작가가되기 위해 필요한 모든 기술이 필요하지는 않지만, 인간이 읽을 수있는 몇 가지 요소가 여전히 있습니다. 어떤면에서는 컴퓨터가 실행하는 동안 성능이 좋지 않은 구문을 사용하지 않으면 서 코드로 의도를 설명해야하므로 좋은 코드를 작성하기가 더 어려워집니다.


2

문제는 코딩도 의사 소통 기술입니다. Jack Manssle은 Embedded Muse e-newsletter에서 최근 Doug Abbott를 인용했습니다.

프로그램을 작성할 때 실제로하고있는 일은 다른 사람에게 컴퓨터가 원하는 것을 전달하는 것입니다. 프로그래밍은 다른 형태의 글쓰기와 마찬가지로 의사 소통에 관한 것입니다. 그렇습니다. 컴퓨터 공학 학생들은 작문에 잘 노출되어야합니다. 그러나 컴퓨터 과학에는 그다지 귀중한 것이 거의 없기 때문에 기본 창작 작문 수업이 필요할 수도 있습니다.

산문 작성 방법을 모르는 프로그래머도 코드 작성 방법을 모릅니다.

이 흥미로운 기사에 대한 추가 정보 :

나쁜 글쓰기는 열악한 프로그래밍 기술을 반영합니까?


2

이것은 모두 일화이지만,

내가 함께 일한 최고의 "록 스타"프로그래머 중 하나는 매우 가난한 작가였습니다. 그리고 내가 "매우 가난하다"고 할 때, 나는 당신이 그의 이메일을 보았을 때, 그가 매우 취하거나 거의 문맹이었던 것처럼 온 유형을 의미합니다. 오타, 구두점 부족, 아이디어를 명확하게 표현하는 데 어려움 및 일반적인 철자 실수 ( "그들 / 그들"등)는 거의 모든 경우에 매우 많았습니다. 그의 이메일 중 일부를 읽는 것-나는 그에게 클라이언트에게 직접 이메일을 보내는 것에 대해 걱정했을 것입니다 (우리는 그 회사에서 그렇게 할 필요가 없었습니다)-회사가 나빠 보이게 만들 수 있기 때문입니다!

여전히 그는 슈퍼 스타 프로그래머였습니다. 평균보다 생산적이고 스위치가 많은 주문.

무엇을 만들어야할지 모르겠습니다. 나는 다른 사람들과 함께 이것을 여러 번 보았다. 일부는 앉아서 물건을 쓰는 요령이없는 것 같습니다. 그리고 종종 그것은 다른 영역에서 그들의 재능에 영향을 미치지 않는 것 같습니다 (프로그램과 같이 비교적 유사한 "지식 작업"재능). 당신은 그것이 연결될 것이라고 생각할 것이지만, 나는 그렇지 않은 곳에서 이와 같은 몇 가지 살아있는 예를 보았습니다. 나는 그들이 "임을 확실히 가능하다 생각하지만 규칙을 증명하는 예외 나는 아마 프로그래머가 아닌 나쁜 작가를 주목하는 생각도 못하고, 좋은 작가 -" 있다가 .


3
규칙에는 항상 예외가 있습니다. 나는 소수의 사람들과도 함께 일해 왔습니다. 훌륭한 사람들. 우리는 고객을 미스 미트로 만들었 기 때문에 고객 근처에 두지 않았습니다. 나는 문서에서 오타 등을 교정하는 데 오랜 시간을 보냈습니다. 그들에게 기술적 인 문제를 줘라. 통찰력과 해결책의 번쩍임은 훌륭했다. 이것은 모두 여기에 대한 답변이 일반화라는 것을 보여줍니다. 그러나 일반화는 대다수의 사람들에게 적용됩니다.
quick_now

3
@quickly_now : (코드를 지정하지 않았으므로) 코드를 읽는 방법이 궁금합니다. 그들은 매우 영리하고 좋은 문제 해결자가 될 수 있지만 코드를 읽을 수 없다면 내 의견을 원한다면 훌륭한 프로그래머가 아닙니다.
n1ckp

@ n1ck : 이제 당신이 그것을 언급 했으므로, 내가 생각하는 사람은 그의 코드를 문서화하는 데별로 좋지 않았습니다. 코드 자체는 훌륭하고 잘 설계되었지만 본질적으로 복잡한 코드 비트에 대해서는 주석을 달지 않았으므로 유지 관리가 어려워졌습니다. 그런 생각을하지 않았습니다. :)
Bobby Tables

@ n1ckp와 동의합니다. 또한 변수 / 메소드 / 클래스에 대한 그의 이름 선택이 때로는 비밀스럽고 혼란 스러울 것이라고 확신합니다. 생산성이 매우 높은 프로그래머에게는 장기적인 유지 관리 능력을 향상시키기 위해 약간의 시간이 더 걸리기 때문에 매우 조심스러운 경향이 있습니다.
Disillusioned

2

글을 잘 쓸 수 없다면 어떻게 그들이 훌륭한 프로그래머 임을 확신시킬 수 있습니까?


0

시스템 조직이나 아이디어를 정확하게 표현할 수없는 사람이 그것을 작성함으로써 코드를 작성할 수있을 것입니까?


그러나 코드가 올바르게 작성되지 않으면 컴퓨터에서 매우 명확하고 즉각적인 피드백 루프를받습니다. 나는 당신이 영어를 극도로 열악하게 쓸 수 있었으며 아마도 당신이 개선해야 할 피드백을 주었을지라도 그것에 대해 거의 알지 못했습니다.
Carson63000

컴파일러를 사용하더라도 명확하고 올바른 방법을 배워야합니다. 그렇지 않으면 결국에는 아무것도 컴파일하지 않기 때문입니다.
Klaim

0

프로그래머가 말하기와 쓰기 언어로 잘 의사 소통하는 것이 매우 중요하다고 생각합니다. 아이디어를 단어로 번역하는 기능은 코드를 작성하기위한 전제 조건입니다.

컴퓨터 나 사람과 의사 소통을하든 문법 규칙에 따라 말을 순서대로 정리해야합니다. 대화의 다른 쪽이 이해하기 위해서는 단어를 올바르게 발음하거나 철자를 정확하게 입력해야합니다. 컴퓨터는 구문 오류를 발생시키고 동료는 "무엇입니까?"라고 말합니다. 또는 미친 졸졸 또는 더 나쁜, 짜증나는 산만이라고 말하는 것을 할인하십시오.

후보자를 생각하지 못하거나 주제에 대해 머물 수 없기 때문에 채용 후보를 강력히 권장하지 않습니다. 어쨌든 한 사람이 우리 상사에 의해 고용되었고, 밝고 반짝이는 새로운 기술이나 장난감이 눈을 사로 잡은 것에 산만 해져서 제 시간에 간단한 과제를 전달할 수 없다는 것이 밝혀졌습니다.

예, 프로그래머가 의사 소통을 잘 할 수 있어야합니다. 그들이 효과적으로 인간과 의사 소통을 할 수 없다면 그들은 컴퓨터로 그것을 할 수 없습니다.


0

가난한 작가는 가난한 작가를 만들지 만 그 밖의 것은 없습니다. 글쓰기 능력이 좋지 않다고해서 전혀 의사 소통을 할 수는 없지만 글을 잘 쓰거나 표현할 수는 없습니다. 물론 의사 소통 기술이 회사 등에서 중요하고 중요하다고 말할 수는 있지만, 의사 소통 기술이 좋지 않은 프로그래머가 업무를 훌륭하게 수행 할 수있는 것은 아닙니다. 프로그래밍과 작문은 예술이지만 완전히 다른 종류입니다. 글쓰기는 다른 사람이 당신의 말을 이해하고 그에 따라 행동하는 방법에 관한 것이지만 프로그래밍은 컴퓨터가 사용자의 요구 사항을 이해하지 못하게합니다. 프로그래밍은 요구 사항을 프로그래밍 언어로 변환하는 방법에 관한 것이므로 작문 기술과 관련이 없습니다.


1
프로그래머의 임무 중 일부는 컴퓨터뿐만 아니라 다른 사람도 코드를 읽을 수 있도록 코드 (및 주석)로 자신을 명확하게 표현하는 것입니다. 이러한 기술은 서로 관련이 있다는 것이 이치에 맞습니다 (단, AFAIK는 입증되지 않음).
n1ckp

0

절대적으로하지!

훌륭한 작가는 훌륭한 작가 일뿐입니다. 좋은 작가에게 데이터베이스의 개념을 비전문가에게 설명하도록 요청하십시오. 당신은 무엇을 얻을 것이라고 생각합니까?

좋은 작가는 씁니다. 좋은 프로그래머는 좋은 코드를 작성합니다.

  • 다른 사람이 개발 한 후 6 개월 후에 읽을 수있는 코드.
  • 시스템이 고장 나서 디버깅이 진행되는 오전 2:00 AM에 적합한 코드입니다.
  • 다른 사람들이 그것을 이해하고 쉽게 수정할 수 있기 때문에 빌리고 싶어하는 코드
  • 365 일 24 시간 작동하는 코드

나는 계속 가고 있었지만 오히려 다른 게시물에 대답하는 데 시간을 보내고 싶습니다. 나는 당신 이이 문제의 어디에 서 있는지 알고 있다고 생각합니다.


1
글 머리 기호 1, 2 및 3은 훌륭한 프로그래머가 될뿐만 아니라 훌륭한 작가가되어야한다고 생각합니다. 본질적으로, 당신은 좋은 작문 기술을 암시 적 특성으로 고려하고 있습니다.
Mamta D
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.