모든 프로그래머가 알아야 할 것은 무엇입니까?


245

프로그래밍 언어 또는 사용 된 운영 체제 또는 개발 환경에 관계없이 모든 프로그래머가 알아야 할 사항은 무엇입니까?

일부 배경 :

저는 최고의 프로그래머가되고 싶습니다. 이 과정의 일부로, 나는 내가 모르는 것을 이해하려고 노력하고 있으며, 내가한다면 많은 혜택을 얻을 것입니다. "모든 [삽입 프로그래밍 언어] 개발자가 알아야 할 사항"라인을 따라 많은 목록이 있지만, 아직 특정 언어로 제한되지 않는 유사한 것을 찾지 못했습니다.

또한이 정보가 다른 사람들에게 흥미롭고 유익 할 것으로 기대합니다.

답변:


636

자존심을 삼키고 개인적으로 실수하지 않고 실수를 인정하는 방법.


60
그것은 모든 인간이 자신의 직업 (성, 종교, 문화, 사회적 지위 등)에 관계없이해야 할 일이라고 생각하지 않습니까? ;)

3
바로 이거 야. 그러나 우리 프로그래머들 (적어도 나는한다)은 대부분의 것보다 더 자부심을 갖는 경향이있다 :-)

17
나는 두 번 투표 할 수 있으면 좋겠다.

4
이것이 제가 대학에서 배운 것 중 하나라고 생각합니다. 고등학교에서는 항상 똑똑한 아이들 중 하나였습니다. 내가 유니에 가지 않았다면, 나는 꽤 똑똑하고 자존심이 크다고 생각했을 것입니다. uni에 가서 진정으로 더 숙련 된 사람들과 교류하면서 나는 내가 얼마나 멍청한 지 알게되었습니다.
Kibbee

4
이것은 매우 사실이지만,이 문제는 항상 거부되거나 큰 자아가 아니지만 최소한 자기 방어 / 손상 통제를 먼저하지 않는 한 실수를 저지르는 것이 공개적으로 인정 될 경우 발생할 수있는 잠재적 결과입니다. 때로는 문화적인 일입니다. :)

309

techie 괴짜 프로그래머가 아닌 사용자처럼 생각하는 방법.


2
나는 업계에서 우리 대부분이 부족하다고 생각하는 것이 가장 중요한 기술 중 하나가 될 수 있다는 것은 항상 아이러니하다고 생각합니다.

이것에 더 동의하지 못했습니다. 이것은 # 1이어야합니다.

23
나는 실제로 동의하지 않습니다. 그것이 당신이 사람들을 고용하는 것입니다. 사용자처럼 생각할 수는 없지만 사람들이 사용자가 그 조언에 대해 어떻게 생각하고 행동하는지 말해 줄 수 있습니다. 사용자에게 어떻게 생각하는지 묻지 마세요! 이것이 최악의 옵션입니다.

1
다른 사람들을 고용하여 그렇게 할 수 있지만 개발 팀이 사용자의 생각을 이해할 수 있다면 문제가 발생하기 전에 인수와 반복이 훨씬 적습니다. 또한 개발자가 사용자처럼 생각할 수 있다면 어떤 새로운 기능을 사용할지 알고 있습니다.

3
사용자는 기술자 괴짜 프로그래머 일 수도 있지만 코드를 구현 한 기술자 괴짜 프로그래머 일 가능성은 적습니다 . 응용 프로그램에 매우 미묘하고 복잡한 의미 / 동작이있는 경우 코드를 작성한 사람은 응용 프로그램 사용 방법을 이해할 수있는 유일한 사람 일 수 있습니다.
Reuben

244

도움을 요청할 때와 도움을 요청하지 않을 때.


2
사실입니다. 최근에 누군가에게 물어 보면서 대답이 내 머리에 터졌습니다. :(
kevindaub

그래서, 대답은 무엇입니까?)

28
먼저 고무 오리에게 물어보십시오. 그가 당신을 도울 수 없다면, 다른 사람에게 물어보십시오 ...
Dean Rather

3
내가 처음 시작했을 때 나는 다른 개발자들에게 지속적으로 간단한 것들을 요구함으로써 얼마나 짜증나는지 몰랐기 때문에 n00b가 나에게 그것을 할 때까지 나 자신을 알아 내야한다.

1
나는 항상 "내 동료가 내가 물어 보면 무엇을 말 할까"라는 문구를 따라 스스로에게 질문을합니다. 일반적으로 문제를 해결하기 전에 문제를 좀 더 해결하는 데 도움이됩니다.

184

다른 사람의 코드를 읽는 방법.


102
부록 : 다른 사람들이 읽을 수있는 코드 작성 방법

42
부록 # 2 : 6 개월 후 자신의 코드를 읽는 방법

10
@Nathan Koop : "6 개월 후에 스스로 읽을 수 있도록 코드를 작성하는 방법"이 더 좋습니다.
Doc Brown

4
6 개월이 지났을 때 이미 다른 사람의 코드가되었습니다. 당신이 그 이후로 진화했다는 의미에서, 더 나아졌으며, 처음에 그것을 쓴 사람도있을 수 있으므로 그렇게 취급하십시오.
MPelletier

7
부록 # 3 : 6 분 후에 코드를 읽는 방법.
mpen

152

버전 관리 시스템에 익숙합니다. 모든 것이 될 필요는 없지만 모든 것에 적용 할 수있는 기본 개념을 알아야합니다.


그 개정 관리는 소프트웨어가 아닙니다
jrhicks

4
중앙 집중식 SCM (예 : Subversion, CVS)과 분산 SCM (예 : git, mercurial, bazaar) 사이에 상당한 차이가 있으므로 각각 하나를 배우는 것이 중요합니다.
직관

128

여기 내 10 비트가 있습니다 :

  • 겸손 해지는 법. 우리는 모두 배우기 위해 여기 있습니다. 당신은 다른 사람들보다 똑똑 할 수도 있지만, 많은 사람들이 당신보다 똑똑합니다.
  • 정보를 연구 / 소비하는 방법. 나는 당신에 대해 모른다. 그러나 나는 영원히 공부하고있다! 책, 인터넷 등 무엇이든!
  • 사전이란 무엇이며 사전을 사용하는 방법과 약어를 빨리 찾는 방법.
  • 거래의 기본 도구는 무엇이며 그 기능은 무엇입니까 (IDE, CVS et al).
  • 일반적인 용어와 그 의미를 이해하십시오 : 디자인 패턴, 유용성, 테스트 (ha!), 스택 등
  • OOP에 대해 이해하십시오.
  • 하나 이상의 언어로 "가능"하고 놀라운 것은 없으며 변수와 메소드를 식별하는 방법 등 만 알고 있습니다. 여기에서 FAST를 배울 수 있습니다.
  • 사람들이 궁극적으로 소프트웨어를 사용하고 사람들을 행복하게 만들고 싶어 한다는 것을 이해하십시오 .

38
이것은 8 진 게시물이어야합니다.
심지어 Mien

10
첫 번째 비트에 관해서는 ... "너무 겸손하지 마라.
Magnus

@TheOtherScott, 멋진 캐치 롤, 그러나 나는 실제로 2 비트를 말하고 있었다 : D;)

3
에 대해서는 포인트 3 : www.acronymfinder.com
재스퍼 벡커

1
@ jasper / intuited : Google에 약어를 입력하면 하나 또는 다른 것을 끌어 올릴 것입니다 ... 대답은 일반적으로 처음 10 개 결과 중 하나입니다. 클릭하면 더 많은 정보를 얻을 수 있습니다!
mpen

104

어쩌면 너무 미묘하지만 " 어떤 문제 를 해결 해야하는지 아는 것"이라고 생각합니다 . 많은 프로그래머들 (그리고 보통 사람들)은 그다지 중요하지 않은 것들을 해결하기 위해 엄청난 노력을 낭비합니다. 또는 추가 작업이 많이 필요한 솔루션을 만드는 데 필요한 것은 아닙니다.


4
더 많은 핵심 기능 대신 소수의 사용자 만 경험할 수있는 프린지 사용 사례 시나리오에 대해 걱정하는 것은 너무 흔한 일입니다! 나는 아직도이 방법을 어렵게 배웁니다 ...
Ian Robinson

전 팀 리더의 홈페이지로 귀하의 답변에 대한 링크를 넣어야합니다. 당신이 옳아 요.

4
"많은 프로그래머 (그리고 보통 사람들)":-)

95

긴장을 푸는 방법. 생산성의 비결입니다.

결국 의지력과 카페인으로는 충분하지 않습니다. 우리가하는이 지속적인 수축은 매우 해 롭습니다.

이것은 큰 문제입니다.


1
수축이란 무엇을 의미합니까?

4
@ 예 : 때로는 일할 때 완전히 편안하고 매우 생산적 일 수 있습니다. 나쁜 날에는 아드레날린과 카페인을 타서 몸에 엄청난 긴장감을 느낍니다. 주의를 기울이면 실제로 근육이 수축됩니다. 나는 항상 다른 사람들에게 이런 긴장감을 느낍니다. 불행히도 그것은 소진 및 심장병과 같은 모든 종류의 문제를 일으킬 수 있으며, 한정된 시간 동안 만 질주 할 수 있기 때문에 생산성의 순 손실을 초래할 수도 있습니다. 그것이 제가 말하는 수축입니다.
Brian MacKay

@ 계란, 그는 사용하지 않는 근육의 수축을 의미합니다.

2
커피와 수축에 대해 말하면, 커피가 뇌에 혈액을 공급하는 동맥을 수축 시킨다는 것을 알고 있습니까? 그로 인해 뇌가 깨어납니다. 커피는 결국 좋은 것이 아닙니다. tl; dr 음료수
Reno

83

기본 데이터 유형 및 알고리즘 이론. Big O 표기법, 배열, 대기열 등


웹 컨텐츠 관리 시스템 용 템플리트를 작성하는 것만으로는 전혀 도움이되지 않습니다.

3
글쎄, 요즘 표준 알고리즘은 라이브러리 / 프레임 워크에 구현되어 있지만, 어려운 알고리즘과 같은 사고 방식이 유용하지만 그다지 자주 사용되지는 않는다는 데 동의합니다.

7
그것들이 이미 구현되었다고해서 언제 무엇을 사용해야하는지, 복잡성 보장 등을 이해하지 않아도되는 것은 아닙니다. 이것이 알고리즘의 중요한 요소입니다.

3
그렉 로저스와 합의했습니다. 알고리즘을 구현해야 할 수도 있지만 복잡성과 장단점을 잘 이해해야합니다. 예 : 일부 알고리즘은 더 많은 메모리를 사용하지만 더 빠릅니다.

6
당신이 그것들을 이해하지 못하면 어느 것을 사용해야할지 모를 것입니다. 알고리즘은 매우 중요합니다.

60

올바른 작업에 적합한 도구를 선택하고 자신이 좋아하는 프로그래밍 도구에 대한 바보 같은 전쟁에 참여하지 않는 방법.


+1이므로 42에 머물지 않습니다 :)
CharlesB

54

글쎄, 여기 내 .02 $가 있습니다 :

  • 학습은 멈추지 않습니다. 아무리 자신이 좋다고 생각하더라도 항상 당신보다 나은 사람이 있으며, 자신에 대해 개선 할 수있는 것이 항상 있습니다. 학습을 중단하면 프로그래머로서 필연적으로 저하됩니다. 책을 읽으십시오. 블로그를 읽으십시오. 다른 프로그래머와 대화하십시오.
  • 여러 언어를 배우십시오. 그들 중 적어도 하나는 객체 지향적입니다. 또한, 배우는 언어와 관련된 다양한 기술에 대해 알고 있어야합니다 (예 : Java를 배우면 Spring에 대해 알고 있다면 좋을 것입니다.).
  • 리팩토링. 조만간 그 지식이 필요합니다.
  • 레거시 코드를 처리하는 방법에 대해 알아보십시오.
  • 단위 테스트를 작성하십시오. TDD에 대해 알아보십시오.
  • 팀에서 일하는 법을 배웁니다.
  • 우아하고 읽기 쉬운 코드를 작성하십시오. 이전의 말처럼 : "코드를 유지할 사람이 당신이 사는 곳을 알고있는 정신병 연쇄 살인범처럼 코드를 작성하십시오."
  • 게으르고 징계하는 법을 배우십시오. 훌륭한 프로그래머는이 두 가지 특성을 모두 갖추고 있습니다. 이상하게 보이면 서로 모순되지 않고 보완 적입니다.

.02 달러 또는 .02 센트입니까? 롤! :-D

"코드를 유지하려는 사람이 당신이 사는 곳을 알고있는 정신병 연쇄 살인범처럼 코드를 작성하십시오." +1
Ben

50

제품의 품질을 테스트 할 수 없습니다.


2
따라서 "품질 보증"전문가의 이름이 잘못되었습니다.

1
기술적으로 말하는 QA와 테스트는 같은 것이 아니지만 요즘에는 대부분의 조직이 실제로 그 차이를 연습할지는 잘 모르겠습니다.
Tall Jeff

5
최근에 만났고 "고착 된 결과는 품질이 아니라 지식"입니다.
peterchen

richdiet : SQA 전문가 James Bach는 SQA / QA의 "A"가 "Assistance"를 나타내야한다고 생각합니다. 나는 그의 의견과 진술에 강력히 동의합니다.

44

모든 프로그래머는 디자인 패턴을 이해해야 합니다 .


13
또한 주어진 디자인 패턴으로 모든 것을 구체화 할 수있는 것은 아니라는 점을 이해해야합니다.
tloach

10
또한 모든 프로그래머가 디자인 패턴을 이해해야하는 것은 아니라고 덧붙입니다. 머나 먼 땅에는 언어가 너무 강력해서 다른 기능이 너무 강력해서 생각이 프로그래머로부터 직접 그리고 프로그램으로 흘러 들어갑니다. 이러한 언어에서 의도적 인 패턴은 잘못된 방향입니다.
알리

2
디자인 패턴은 "프로그래머"가 아닌 대상자를위한 것입니다. 프로그래머는 자신이 "디자이너"가 될 때이를 알아야합니다

10
코딩에는 두 가지 유형이 있습니다. 코딩을 즐기는 사람들과 코딩을 선호하는 사람들이 있습니다. 디자인 패턴은 두 번째 그룹의 필수 요소입니다.
Bjorn Reppen

1
이러한 패턴은 언어의 한계를 극복하는 방법입니다. 프로그래머는 자신의 언어의 약점을 이해하고 극복 할 수 있어야하므로이를 이해해야합니다.

44

나는 이것에 조금 늦었지만 Edsger Dijkstra가 제시 한 지식과 함께 갈 것입니다.

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

좋은 단락을 쓸 수 없다면 좋은 코드도 쓸 수 없을 가능성이 높습니다.


8
그러나 일부 프로그래머가 자연어 쓰기에 사용하는 끔찍한 철자, 문법 및 문장 부호에 놀랐습니다. 철자 오류에 대한 관용이없고 유효하지 않은 구문을 사용하는 시스템에서 매일 작업하면 유익한 효과가있을 것이라고 생각할 것입니다.

1
@cheduardo는 대부분의 언어에서 프로그램을 컴파일하거나 실행하면 맞춤법, 문법 또는 문장 부호 오류에 대해 알려주기 때문에 쉽게 수정할 수 있기 때문입니다. 논리적 오류의 경우에는 그렇지 않습니다.
Inshallah

@Inshallah : 같은 일을하지 않는 한 if (BlowUpTheSystem = 1). 적절한 단위 테스트가 주어지면 시간을 절약 할 수 있습니다. 그러나 시간은 매우 중요합니다.
intuited

2
동의합니다. 흠 .. "네이티브 혀"부분을 빼면, 불행히도 우리 중 일부는 비 네이티브 혀에서 더 잘 / 명확하게 의사 소통합니다.

39

주어진 기술, 운영 체제 또는 언어에 너무 감정적으로 투자하거나 첨부하거나 종교에 의존하지 마십시오. 아무것도 완벽하지 않습니다. 장기적으로 자신이 만든 일품에서 자신 만의 일품 요리를 만들 수 있기를 바랍니다. 서로에 대해 좋아합니다.

자동차라고 생각하십시오-이전에 특정 자동차를 운전하지 않았을 수도 있지만 키, 스티어링 휠, 액셀러레이터 및 브레이크가 모두 포함되어 있습니다. 어디에 무엇이 있는지 분류하면 하나를 타고 빨리 빠져 나올 수 있어야합니다. OS와 언어를 비슷하게 취급하고 특정 인스턴스의 특정 내용에 진취가 있어도 기본 개념을 배우는 데 중점을 둡니다.

그리고 시간이 지남에 따라 다양한 기술의 조상, 유산 및 공통점을 이해하고 이해하여 관점을 유지하는 데 도움이됩니다. 예를 들어, 진화 트리가 활발하게 분기되고 막 다른 골목으로 가득 차 있지만 시간이 지남에 따라 기술은 '모범 사례'와 '규모의 경제'에 대해 반복적으로 수렴하는 경향이 있습니다 ( 예 : Mac이 요즘 후드 아래 PC ...).

마지막으로, 기술이 아무리 즐거워도 기술은 본질적으로 상상할 수있는 것과 실제로 생산하는 것 사이의 불완전한 렌즈를 나타냅니다. 최선을 다하고 배우는 법을 배우십시오.



35

학습을 중단 한 날은 더 이상 프로그래머가 아닌 날이어야합니다.


하나의 소원이 있다면 산타가 내 아버지 였을 것입니다.

산타니까 ...?

1
학습을 중단 한 날은 사망 한 날이어야합니다. :) 어쨌든 +1
ShdNx

그래서 영원히 살려면 항상 계속 배워야합니까? 이제 제가 승인 할 수있는 아이디어가 있습니다!
canadiancreed

34

단위 테스트 및 디버깅.


첫 번째는 두 번째가 필요하지 않습니다. ;-)

4
아니요, 단위 테스트가 실패하면 디버깅이 필요합니다. 두 사람이 함께갑니다.
Zan Lynx

이것을 충분히 강조 할 수 없습니다.
fastcodejava

33

이전에 언급되었지만 자체 답변이 필요하다고 생각합니다.


점점 더 많은 용도로 사용되며 여기 저기 조각을 집어 들지만 여전히 아마추어는 아닙니다.

완전히 동의 해. 이해하지 못하면 이상하고 어려워 보이지만 이해하면 같은 일을 수행하는 데 필요한 톤의 하위 문자열 / 인덱스 함수 호출보다 훨씬 쉽습니다. 나는 당신의 패턴이 잘 주석 처리되도록합니다.
Kibbee

9
어떤 사람들은 문제에 직면했을 때 "정규 표현을 사용할 것입니다."라고 생각합니다. 이제 두 가지 문제가 있습니다. - "Jamie Zawinski": jwz.livejournal.com , comp.lang.emacs
Bjorn Reppen

기본적으로 편집기를 사용하는 것은 불쾌한 핵심을 배우는 좋은 방법입니다. 필자의 경험은 사실상 표준 PCRE와 거의 비슷한 수준 인 vim에 관한 것이지만, 동일한 규칙이 emacs 세계에 적용된다는 인상을받습니다.
직관

1
어떤 사람들은 정규 표현에 직면했을 때“제이미 자윈 스키를 인용하겠습니다.”라고 생각합니다. 이제 두 가지 문제가 있습니다. .
Donal Fellows

29

아무도 소프트웨어를 사용하고 싶어하지 않습니다. 그들은 문제가 해결되기를 원합니다.


7
바로 그거죠. 개발자가 왜 무언가를 할 수 없는지에 대한 질문에 대한 답변으로 최종 사용자에게 데이터베이스를 설명하려고하는 것을 들었을 때 나는 울었습니다. 그들은 우리가하는 일을 알 필요가 없습니다. 그들은 단지 그것이 작동하기를 원합니다. 그리고 그렇게해야합니다.
Kevin Fairchild

사람들이 사용하는 즐거움을 찾는 소프트웨어를 작성할 수 있다고 생각합니다.

더 동의하지 못했습니다. 그러나 이것은 API에도 적용됩니다. 너무나 재미있어서 새로운 API를 배우려는 사람은 없습니다. 우리는 API가 나타내는 코드가 아니라 API의 기능을 원합니다.
Blub

케빈, 나는 우리의 "구현 프로그래머"(사람을 테스트하기위한 멋진 단어)가 그것을 읽고 이해하기를 바란다. 나도 책상 뒤에 앉아 루프에 대해 이야기하기 시작하고 최종 사용자를위한 if 문에 대해 이야기 할 때 세상이 그를 삼키기를 바라고있다.

27

커피와 IntelliSense 는 가장 친한 친구입니다.


나는 이것을 1 이상의 공짜로 줄 수 있기를 바랍니다!
Dinah

나는 더 많은 커피를 마시고 싶다! !!! ñ_ñ

나는 이것에 대해 다른 것에 더 동의한다.
Unkwntech

다음과 같은 경우 X 시간 내에 프로젝트를 완료해야하는 경우를 제외하고는 실제로 커피를 마시지 않습니다.
Blub

커피는 당신에게 에너지를주지 않습니다. 그것은 당신의 내부 준비금에서 일부를 짜냅니다. 나쁘고 건강하지 않습니다.
Andrei Rinea

18

큰 복잡한 물체를 관찰하고 다시 조립할 때 여전히 동일한 작업을 수행하는 작은 간단한 물체로 분해하는 방법.


18

사용자를 신뢰하지 마십시오 ( 특히 앱이 공개 된 경우). 종종 앱을 무너 뜨리기 위해 모든 작업을 수행합니다.

미래의 증거 및 확장 성 제공 – 몇 년 내에 확장해야 할시기를 알 수 없으며 잘못 작성된 코드를 다시 코딩하는 데 얼마나 많은 노력이 필요한지 알 수 없습니다.


1
이것은 너무 일반화되었습니다. 일부 실용주의도 좋습니다.
mafu

18

프로그래머가 모든 것을 알지 못하고 항상 새로운 언어 / 기술 등을 배우려고 노력해야합니다.


16

좋은 UI 디자인과 커뮤니케이션 (일명 그래픽) 디자인의 기초 .

디자인이 나쁘거나 사용성이 좋지 않아서 많은 앱과 프로젝트가 보입니다. 기본을 배우는 것만으로도 세상을 변화시킬 수 있습니다. 또한 시각적 문제 해결 기술 (즉, 개념을 시각적으로 전달하는 방법)은 새로운 보는 방식에 눈을 뜨고 결과적으로 코드에 영향을 미치는 자극적 인 도전입니다.

권장되는 책은 Robin Williams 의 비 디자이너의 디자인 북입니다.

Joel Spolsky가 말한 내용은 다음과 같습니다 .

와! 모두가 그래픽 디자인을해야하며, 모든 소프트웨어 팀이 전문 디자이너의 사치를 가진 것은 아닙니다. 이 훌륭하고 얇은 책은 페이지 레이아웃, 글꼴 등의 기본 원리를 파악할 수 있습니다. 좋은 소식은, 물이 차가워지기 전에 목욕에서 읽을 수 있고 다음날 대화 상자와 파워 포인트와 웹 페이지가 더 좋아 보이기 시작합니다.


1
두 번째로 '일상 사물의 디자인'에 대한 고개를 끄덕입니다. amazon.com/Design-Everyday-Things-Donald-Norman/dp/0385267746
Stimul8d

14

모든 프로그래머는 빨리 배우는 방법을 알아야합니다. 많은 시간을 당신이 직장에 와서 결코 사용하지 않은 기술로 개발하도록 요청받을 것입니다. 프로덕션 품질 코드를 작성하라는 요청을 받기 전에 일주일 정도 걸릴 수 있습니다 (운이 좋으면).


나는 처음으로 프로그래밍 작업을 시작했으며 일주일 안에 결국에는 생길 코드를 작성했습니다. 운 좋게도 나는 빠른 학습자이며 과거 프로그래밍 경험이있었습니다. 6 개월 안에 클라이언트-서버 연결을 재구성하여 성능을 3 배 향상 시켰습니다. 이것은 내가 전에 사용해 본 적이없는 언어였습니다.

14

버전 관리. 그리고 내 여자 친구를 인용하기 위해 : "나는 당신이 요리를하고 싶지 않아요, 당신이 그것을 좋아하기를 바랍니다 !"



10

내 머리 꼭대기에서 :

  1. 덧셈, 뺄셈, 곱셈 및 나눗셈을 넘어서는 수학이 필요한 프로그래밍 문제는 거의 없습니다. 미적분학을 사용하여 문제를 해결하려는 경우 대안을 철저히 조사하여 문제를 해결하십시오.

  2. 무언가가 어떻게 작동하는지 추측 할 때마다 잘못하고 있습니다. 텔레파시하는 것은 당신의 일이 아닙니다.

  3. 사양을 제공하는 사람은 해시 할 때까지 원하는 모든 것을 거의 알지 못합니다.

  4. 훌륭한 프로그래머가되는 것의 절반 이상이 인간을 대하는 데서 온다. 팀과 상호 작용하고, 관리자를 관리하고, 최종 사용자를 벌금을내는 것은 작업의 절반입니다.

  5. 좋은 코드는 컴파일러가 읽을 수있는만큼 사람들이 읽을 수 있도록 작성되었습니다.

  6. 모범 사례와 실제 현실은 프로그래머가 생각하는 것보다 갈등이 많지만 관리자가하는 것보다 적습니다. 그들이 갈등을 겪고있는 것처럼 보일 때, 갈등을 묘사하고 이해 한 다음 실용성을 부여하는 것은 당신에게 달려 있습니다. 미묘하고 영리한 솔루션은 추악하고 잔인한 솔루션보다 장기적으로 비용면에서 더 효과적입니다.

  7. 훌륭한 도구는 훌륭한 프로그래머를 만들 수는 없지만 나쁜 도구는 우리를 똑같이 끔찍하게 만듭니다.

  8. 기술을 내려다 보지 말고 항상 최상의 대안을 찾으십시오.

  9. 더 많은 언어를 알수록 사용하는 언어가 더 좋아집니다.

  10. 일상 생활에 프로그래밍 지향적 사고가 느리게 방해되어 방해받지 마십시오. 컴퓨터를 사용하지 않더라도 대역폭 제한으로 인해 작업 전환으로 인한 성능 저하가 발생하며 백업 스토리지에서로드해야합니다. 컴퓨터는 인간의 사고를 모방해야하며 아날로그는 어디에나 있습니다.


번호 10은 나를 웃게 만들었습니다. 그래서 여러 번 직장에서 문제를 해결하려고 노력하지만 오후 10시에 침대 에서야 결국 답을 얻습니다!

9

다른 사람들의 코드를 읽는 것이 두뇌를 망칠 것이 아니라 오히려 그렇게하지 않은 이유를 알아내는 것입니다.

이것은 당신에게 gedankenexperiment 프로그래밍을 제공 하고 때로는 무언가 더 나은 것을 구현하는 누군가를 발견합니다! 더 나은 방법으로.

이 답변은 자연스럽게 자신의 코드를 읽는 것으로 확장되므로 버전 제어 및 DIFF를 사용하도록 확장되어 42로 확장됩니다.

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