프로그래머가 자신이하고있는 일이 잘못되었다고 어떻게 생각하십니까?
가능하다면 ... 어떻게 개선해야합니까?
프로그래머가 자신이하고있는 일이 잘못되었다고 어떻게 생각하십니까?
가능하다면 ... 어떻게 개선해야합니까?
답변:
그들이 실수와 동료 리뷰로부터 배우지 못하는 경우.
우리는 어느 시점에서 모두 녹색입니다. 그러나 나아지지 않거나 나아지려고하면 나쁜 프로그래머가됩니다.
자신이 모르는 것을 모르고 전혀 관심이없는 프로그래머.
큰 경고 신호는 그들이 "카고 컬트 (cargo cult)"프로그래머라면, 그들이 일을하지만 왜 그런 일을 하는지 모르는 것입니다 (단지 "마법"입니다). 에릭 Lippert의에 의해 위대한 포스트 여기 .
기사에서 :
코드의 기능을 이해하지만 코드의 기능을 이해하지 못하는 프로그래머
저에게 큰 팁은 그들이 당신이나 다른 프로그래머들에게 질문을 할 때 스스로 알아 내기 위해 전혀 노력을 기울이지 않았다는 것을 분명히 보여줍니다.
결과는 그들이 정보를 내재화하지 않았 음을 나타내는 동일한 프로그래밍 질문을 여러 번 요청할 때입니다.
FizzBuzz 문제를 해결하는 데 시간이 오래 걸립니다.
새로운 기술 / 언어를 배우기를 거부하고 이미 알고있는 것을 고집하는 프로그래머.
부록 : (의견에서 대시가 아래에 말한 것을 추가)
이것의 확장은 일부 기술의 기능 중 일부를 알고 있지만 그것에 대해 더 배우고 싶지 않은 사람들입니다. 프로그래밍 언어, 편집기, 기타 도구 ...
팀원이 부정적인 생산 개발자 인 경우 .
|# Lines Written| - |# Lines of bugs introduced| - |# Lines of rework required| < 0
즉, 나머지 팀은 나쁜 개발자로 인해 더 많은 작업을 수행해야합니다. NNPP
개인적으로 필자는 얼마 전에 작성한 코드를보고 문제가없는 프로그래머는 좋지 않다고 생각합니다. "한동안"은 경험에 따라 확장 될 수 있습니다 ... 몇 주에서 최대 1 년 정도라고 말하고 싶습니다.
내가 작은 가게에서 팀장을 지냈을 때, 내가 재지 정해야했던 사람들이 몇 명 있었는데 (나 또는 직접 감독자에게 많은 빨간 테이프 와 문서가 없어도 종료 기능 이 없었거나) 계약 갱신이 없었습니다. 현재 참여가 끝날 때 열거 된 유형 중 일부는 다른 팀 리더에게도 적용되었으며 거의 동일한 견해를 보였습니다. 사람들을 저의 책에서 "나쁜 프로그래머"범주에 넣은 것 :
이것들은 내가 함께해야했던 나쁜 캐릭터 중 일부입니다 ....
/ s / BezantSoft
지식 / 능력의 명백한 부족과는 별도로, 프로그래머는 코드가 읽기 및 / 또는 유지하기가 어렵다면 나쁜 것입니다.
아무도 그의 코드를 읽을 수 없을 때. 얼마나 밝아도 상관 없습니다. 어떤 프로그래머도 섬이 아닙니다.
나를 위해 프로그래머에는 솔로와 팀의 두 가지 범주가 있습니다.
나쁜 솔로 프로그래머들은
나쁜 팀 프로그래머는 다음을 포함하여 나쁜 솔로 프로그래머 범주에 속하는 사람들입니다.
나는 당신이 나쁜 프로그래머인지 알 수 있습니까? 응답을 작성하면서 다른 주제가 종료되었습니다. 내 대답은 다른 질문자가 표현한 질문을 더 직접적으로 다루며 이해하면 더 잘 읽을 것입니다.
한숨! 내 일부는 이미 바쁜 주제에 추가하고 싶지 않았지만 다른 부분은 이겼습니다! 왜 이겼습니까? 왜이 특정 다자간에 더 많은 단어를 추가하려고합니까? 글쎄, 어느 정도까지, 나는 이전의 많은 주석가들과 약간 다른 견해를 가질 수 있기 때문입니다.
이진은 컴퓨터에서 훌륭하게 작동합니다. '1'또는 '0', "on"또는 "off"입니다. 우리는 유명한 두 가지 상태를 사용하여 많은 정보를 추상화하고 인코딩 할 수 있습니다. 그러나 "좋은"또는 "나쁜", "정신"또는 "미친", "좋은"또는 "사악한", "스마트 한"또는 "멍청한", "뚱뚱한"인간의 경우에는 잘 작동하지 않는 경향이 있습니다. 또는 "얇은", "살아있는"또는 "죽은?" 이런 종류의 양극화 된 평가는 항상 돌보는 인간이 나를 만족시키지 못하도록 내버려 두었습니다. 어떤 측정 방식을 적용하든, 나는 일반적으로 그러한 뚜렷한 대비에 대한 답이 실제로 한쪽 끝이 아닌 다른 쪽 기둥 사이의 연속체를 따라 어딘가에 있다는 것을 알았습니다.
나는 지금까지 한동안 양극화 경향에 맞서 싸웠고, 개인적 해결책은 그러한 평가에 세 단어를 적용하는 것이 훨씬 더 유용하다는 것입니다 : " 어느 정도!"
따라서 귀하의 질문에 대한 나의 대답은 당신이 그 말을 다시 말하고 다음과 같이 자문 해 보라고 제안하는 것입니다. 또는 다른 방향으로 물어 보는 것이 더 좋습니다. "저는 어느 정도 좋은 프로그래머입니까?" 진실을 추구한다면 아마도 "나쁜"프로그래머와 "좋은"프로그래머의 연속체를 따라 어딘가에있을 것입니다. 그런 다음이 경로를 따라 대략적인 위치를 찾으면 "좋은"쪽에 가까운 지점, 즉 가까운 미래에 자신을 찾을 지점을 식별 할 수 있습니다.
해당 지점을 너무 멀리 설정하지 않으면 후단이 기어로 들어가 해당 방향으로 움직일 수 있습니다. 이 간단한 휴리스틱 알고리즘을 여러 번 반복하면이 질문에 다시 질문하기에 너무 바쁜 프로그래밍이 곧 발견 될 수 있습니다! 아, 그리고 가능한 빨리 그리고 자주 키보드로 코드를 두드리기 시작하면 더 빨리 진전을 보일 것입니다. 그리고 잠시 휴식을 취하면 동료들이 작성한 고품질 코드를 읽으십시오! 요즘 역동적 인 오픈 소스 개발에서 배울 수있는 자유롭고 정교한 코드가 부족하지 않습니다!
그래서, 나는 당신이 "어느 정도까지"나의 작은 세 단어를 시도하고 그들이 당신을 데려 갈 수있는 좋은 방향으로 얼마나 멀리 있는지를 강력히 추천합니다!
"할 수 없다"고 말하는 사람.
제 생각에는 문제 해결에 관한 것입니다. 도구는 실제로 작업을 수행하는 것보다 관련성이 적어야합니다. MS-Access 또는 어셈블리 언어를 사용하여 문제를 해결해야한다면 시간과 비용 문제가 아니라 "수행 할 수 없습니다"라는 문제가 아닙니다.
경고 표시는 학업적이고 "적절한"일을하는 방식에 너무 집중되어 있고 일을 완수하는 데 초점이 맞지 않습니다.
그가 언어의 구문 만 알고 알고리즘의 기본 개념을 모른다면.
즉각적인 인식 신호는 "왜 작동하지 않는지 이해하지 못합니다. 모든 것을 올바르게했습니다."라고 말하는 사람이 있습니다.
나쁜 프로그래머와 초보자 프로그래머를 구별하는 한 가지는 자신이 좋아하는 시스템을 어떤 언어와 API로든 구현하려는 완고한 주장입니다.
이전 개발자가 Java로 대규모 사용자 정의 dbf 액세스 라이브러리 위에 계층화 된 Ashton Tate DBase III + API 세트를 다시 구현 한 시스템을 한 번 상속했습니다. Java 콜렉션 프레임 워크가 사용되지 않았습니다.
그래서 그는 DBase III + (또는 클리퍼) 앱처럼 보이고 작동하는 Java / 스윙 앱을 작성할 수있었습니다.
이 시스템에서 그가 작성한 앱에는 라이트 바 메뉴가 있으며 라이트 바를 옵션으로 탐색 할 때 맨 아래에 버튼 행이있는 전체 창 양식이 열립니다. 1980 년대의 작은 타임머신이었습니다.
남자는 분명히 숙련 된 개발자였습니다. 그는 프로젝트 전체의 기간 내에 전체 시스템을 직접 작성할 수 있음을 충분히 알고있었습니다. 또한 다른 내부 시스템에서도 재사용 할 수있었습니다.
그러나 그는 자신의 코드가 자신이 작업 한 시스템의 기능을 잘못 사용했기 때문에 끔찍한 프로그래머였습니다. 그는 Java / Swing / SQL을 배우는 것보다 모호한 혜택의 사용자 정의 라이브러리에 3 개월을 더 기꺼이 투자했습니다.