더북(TheBook)

뜻밖일 수 있지만, 프로그래머도 사람이다. 다른 일반 사람들이 소프트웨어 개발에 가지고 있는 인지적 편견을 그들도 똑같이 가지고 있다. 타입을 사용하지 않아도 되고, 정확한 데이터 구조를 신경 쓰지 않아도 되며, 알고리즘이 라이브러리 개발자에게만 중요하다고 가정할 때의 이점을 매우 과대평가한다.

여러분도 예외는 아니다. 얼굴에 미소를 띄우면서도 질 좋은 결과물을 제때 내놓아야 한다. 프로그래머는 커피를 입력받고 소프트웨어를 출력하는 유기체라는 농담이 있을 정도다. 가능한 최악의 방법으로 코드를 작성하고, 복사-붙여넣기를 사용하고, 스택 오버플로에서 찾은 코드를 사용하고, 데이터 저장을 위해 일반 텍스트 파일을 사용하고, 만약 여러분의 영혼이 아직 NDA1에 얽매여 있지 않다면 악마와 거래를 할 수도 있다. 오직 여러분의 동료만이 여러분이 어떻게 일을 하는지 신경 쓸 뿐, 다른 사람들은 모두 그저 잘 작동하는 제품을 원한다.

컴퓨터 과학 이론은 압도적이고 연관성이 없다고 느낄 수 있다. 또한, 알고리즘, 데이터 구조, 타입 이론, 빅오(Big-O) 표기법, 다항식 복잡성은 복잡하며 소프트웨어 개발과 무관해 보일 수도 있다. 기존 라이브러리와 프레임워크는 이러한 내용에 이미 최적화되고 잘 테스트된 방식으로 이 작업들을 처리한다. 특히 정보 보안이나 마감일이 촉박한 상황에서는 알고리즘을 처음부터 구현하지 않는 것이 좋다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.