나쁜 프로그래머의 징후 (Signs that you are a a bad programmer)

Source

  • Evernote/Technote scraps/Signs that you are a bad programmer (Bad Programmers).md

Summary

이 문서는 프로그래머의 역량을 저해하는 주요 징후와 그 해결책을 다룹니다. 핵심은 1) 코드 실행 흐름을 머릿속으로 추론하지 못해 불필요한 코드(Voodoo code, YoYo code 등)를 작성하는 문제, 2) 사용 중인 언어의 프로그래밍 모델(OOP, 함수형 등)을 제대로 이해하지 못해 모델에 맞지 않는 방식으로 코딩하는 문제, 3) 플랫폼의 내장 기능에 대한 연구 부족으로 재발명하는 문제 등을 지적합니다. 해결책으로는 디버거를 활용한 코드 흐름 추적 연습, 컴파일러 오류를 통한 학습, 그리고 프로그래밍 모델의 개념을 단계적으로 이해하여 ‘의도(Intent)‘를 표현하는 데 집중하는 것을 제안합니다.

Key Points

  • 코드 추론 능력 부족: 코드 실행 경로를 따라가지 못해 중복 코드, 무의미한 초기화, 불필요한 변환(YoYo code) 등을 생성함.
  • 프로그래밍 모델 오해: OOP, 함수형, 선언형 등 언어의 핵심 모델을 이해하지 못해 절차적 스타일로 회귀하거나 모델에 반하는 패턴(예: Manager 클래스 남용, DB를 객체 저장소로 취급)을 사용함.
  • 해결 전략: 디버거를 이용해 변수 상태 변화를 추적하며 코드 흐름을 머릿속으로 그릴 수 있도록 훈련해야 함.
  • 학습 방법: 새로운 프로그래밍 모델은 실제 프로젝트를 통해 적용해보고, 개념을 단계적으로(예: OOP의 캡슐화, 함수형의 지연 평가) 이해하여 구현 세부사항이 아닌 의도(Intent)를 표현하는 데 집중해야 함.
  • 플랫폼 지식 부족: 내장 라이브러리나 프레임워크 기능을 조사하지 않고 직접 구현하는 경향을 경계해야 함.