포기를 모르는 정대만이 농구하는 것처럼...!

28장. 윤리적인 프로그래머

필자는 코더들의 질이 기술적 기량보다는 태도에 따라 결정됨에 대해 자주 설명한다.

결국 사람이 하는 일이기 때문에 무엇보다도 태도가 중요하다. 기술적인 측면에서도 그렇다. 개인적으로 2~3년차에는 돈에 많은 관심을 가지고 기술적인 성장을 전혀 신경쓰지 않았다. 오히려 최근인 6년차에서야 관심을 가지게 되었고, 가장 많이 성장하였다. 개발의 세계에서는 연차보단 태도와 마음가짐이 훨씬 중요하다고 생각한다.

윤리적인 프로그래머는 가능한 한 최고의 코드를 만드는 것을 목표로 한다.

전의 포스팅에서 언급했던 유지보수하기 어렵게 코딩하는 방법에 나오는 것 처럼 직업을 보장받기 위해 개발해서는 안된다. 불필요하게 높은 복잡도는 코드의 엔트로피를 높인다. 엄청난 것을 개발하라는 것이 아니라, 항상 최선을 다하라고 책은 이야기한다.

코드에 대한 좋은 태도는 곧 다른 프로그래머에 대한 좋은 태도다.

가능한 한 최고의 코드를 만드는 것에 이어지는 이야기이다. 최고.... 최선이 더 좋은 표현같다. 최선의 코드를 만드는 것이 같이 일하는 동료들에게 하는 가장 큰 배려다. 즉 나쁜 코드를 만드는 것은 타인에 대해 배려심이 떨어지는 사람이다. 6개월 뒤에 이 코드를 다시 보게될 미래의 본인조차 배려하지 않는 것이다.

대접 받고 싶은 대로 대접하라.

동료 또는 주니어가 무례하게 군다면 기분이 좋지 않을 것이다. 그런데 과연 그는 왜 그렇게 행동한 것일까? 원래 그렇게 성질 더럽고 까칠한 사람인가? 본인의 행동과 태도를 돌아볼 필요가 있다.

히포크라테스 선서

히포크라테스 선서는 의사가 환자를 치료 할 때 환자에게 최대 이익이 되도록한다는 선서인데, 책의 저자도 비슷한 선언을 하여 여기에 그대로 옮겨본다.
나는 개인적인 이득을 위해 그리고 작업상의 이득을 위해 코드나 비즈니스에 해를 끼치지 않겠다고 맹세한다. 능력껏 최선을 다해 주어진 일을 충실히 수행하며, 팀 내에서도 적절히 조화를 이루도록 하겠다. 다른 사람들에게 진실될 것이고, 프로젝트와 팀을 최대한 효율적이고 가치 있게 만드는 방향으로 일할 것이다.

29장. 언어에 대한 사랑

외국어를 모르는 사람은 모국어도 알지 못한다.

괴테의 말인데, 특히 프로그래밍 언어는 언어마다 패러다임이 다르다. 객체지향의 Java, 절차지향의 C, 함수형언어인 Haskel, 멀티 패러다임인 C++ 등등 수많은 언어가 있다. 이런 와중에 오래된 이야기이지만 Java는 1.8 버전부터 스트림을 사용한 람다 펑션을 사용할 수 있다. 각자 메인 패러다임이 있는 와중에 각자의 단점을 극복하기 위해 다른 언어들의 개념을 차용해 적용하고 있다. 자바에 왜 함수형을 지원하는 걸까? 를 알기 위해선 함수형 언어를 해보는 것이 중요하다 생각한다.

좋은 의사소통은 고품질 소프트웨어 개발자에게 요구되는 필수 기술이다.

코드를 작성하는 것이 타인을 위해 중요한 것처럼, 타인이 작성한 코드를 읽는 것도 중요하다. 의도를 명확하게 이해하여야 하며 서로 실수를 잡아주고 더 나은 방향을 제시하며 보완해야한다.

30장. 프로그래머의 자세

많은 프로그래머가 자신의 건강에 충분히 신경 쓰지 않고 있다.

30장은 여태껏과 다르게 정말 물리적인 자세에 대해 설명하고 있는데... 읽으면서 엄청 웃었지만 사실 정말 중요한 문제이다. 건강은 잃으면 다시 찾기 어렵다. 건강에 신경써야 한다. 30대가 되면 몸이 망가지기 시작한다....

다시 한 번 강조하지만 자신을 보살피라!

책에서 강조하여 한 번 더 인용한다.

profile
집사없는 개발 고양이

0개의 댓글