나는 중학교 (그리고 아마도 선임) 소프트웨어 엔지니어가 만든 일반적인 오류와 잘못된 가정에 대해 연구하고 있습니다.
당신의 가장 오래된 가정은 결국 수정 되었습니까?
예를 들어 정수의 크기가 표준이 아니며 언어와 대상에 따라 다릅니다. 상태가 조금 당혹 스럽지만 거기에 있습니다.
솔직 해지십시오. 당신은 어떤 확고한 믿음을 가지고 있었으며 대략 얼마나 오랫동안 가정을 유지 했습니까? 알고리즘, 언어, 프로그래밍 개념, 테스트 또는 프로그래밍, 프로그래밍 언어 또는 컴퓨터 과학에 관한 다른 것이 될 수 있습니다.
답변
오랫동안 나는 다른 모든 사람들이 모든 프로그래밍 개념 (디자인 패턴, 최신 새로운 언어, 계산 복잡성, 람다 식, 당신이 그것을 명명)의 슈퍼 마스터리를 가지고 있다고 가정했습니다.
블로그, 스택 오버플로 및 프로그래밍 서적을 읽으면 항상 모든 프로그래머가 직관적으로 알아야 할 사항에 대해 내가 생각하는 것처럼 보였습니다.
나는 시간이 지남에 따라 내 지식을 단일 개인이 아닌 많은 사람들의 집단 지식과 효과적으로 비교하고 있다는 것을 깨달았습니다. 현실 세계의 대부분의 프로그래머는 자신의 업무를 수행하는 데 필요한 지식을 보유하고 있으며 약하거나 완전히 무지한 영역이 몇 개 이상 있습니다.
답변
사람들은 그들이 원하는 것을 알고있었습니다.
내가 사람들과 이야기 할 것이라고 생각한 가장 긴 시간 동안, 그들은 문제 나 작업 흐름을 설명 할 것이며 그것을 코드에 넣고 자동화 할 것입니다. 그들이 일어날 때마다 그들이 원하는 것은 실제로 그들이 원하는 것이 아니라는 것이 밝혀졌습니다.
편집 : 나는 대부분의 의견에 동의합니다. 이것은 기술적 답변이 아니며 질문자가 찾고 있던 것이 아닐 수도 있습니다. 프로그래밍에만 적용되지는 않습니다. 나는 그것이 나의 가장 오래 전의 가정이 아니라고 확신하지만, 내가 이것을하고있는 짧은 10 년 동안 내가 배운 가장 놀라운 것입니다. 나는 그것이 순전히 순진한 것이 확실하지만 내 두뇌가 연결되어있는 방식과 비즈니스 세계에 들어가기 전에 내가했던 가르침과 경험은 내가 대답 한 것을하고 있다고 믿게했다. 사람들의 문제를 해결하기 위해 코드와 컴퓨터를 사용할 수 있다는 것입니다.
이 대답은 프로그래머가 아닌 사람들이 내가 말하는 것에 대해 이해하고 돌보는 것에 대한 Robin의 대답과 비슷하다고 생각합니다. 민첩하고 반복적 인 대화식 프로세스로 비즈니스를 배우는 것입니다. 프로그래밍 코드 원숭이가되는 것과 소프트웨어 개발자가되는 것의 차이점을 배우는 것입니다. 그것은 둘 사이에 차이가 있으며 현장에서 실제로 훌륭하다는 것을 깨닫는 것입니다. 단순한 구문과 타이핑 속도가 아닙니다.
편집 :이 답변은 이제이 답변에 사람들을 화나게하는 커뮤니티 위키입니다.
답변
성능 문제가 프로파일 링없이 어디에 있는지 알고
답변
함수 / 메소드에서 하나의 종료 점이 있어야합니다.
답변
프로그래머가 아닌 사람들은 내가 말하는 것을 이해합니다.
답변
그 버그없는 소프트웨어가 가능했습니다.
답변
해당 개인 멤버 변수는 클래스가 아닌 인스턴스 전용이었습니다.