Home

[Develop] 훌륭한 프로그래머 되는 법 [ Part 5. 사람의 일 ]

훌륭한 프로그래머 되기

훌륭한 프로그래머 되는 법

날짜: 2019.12.13 ~ 2019.12.17

Part5. 사람의 일

목차

  1. 사람의 힘
  2. 생각이 중요하다
  3. 말하기!
  4. 선언문
  5. 코드찬가
  6. 태도가 핵심이다

사람의 힘

  • 코드베이스에서 협업하는 사람들에 의해 코드의 형태가 만들어지게 되듯이, 자신의 모습도 함께 일하는 사람들에 의해 만들어진다. 그렇기 때문에 훌륭한 프로그래머들 사이에서 일하는 것이 중요하다
  • 훌륭한 프로그래머들이 있는 환경에 스스로를 담금으로써 다음과 같은 결과물을 얻을 수 있다

    • 확산되는 열정
    • 영감을 주는 동기 부여
    • 전염되는 책임감
  • 훌륭한 프로그래머들을 찾아 그들과 함께 일하라. 그들과 함께 설계하고 그들과 함께 페어프로그래밍하라. 그들과 어울려야 한다
  • 훌륭한 프로그래머들과의 접접은 찾았다면 그들이 어떤 방식으로 일하고 생각하는지를 관찰하라. 다음과 같은 부분을 주의 깊게 관찰하라

    • 문제에 대해 어떻게 생각하고 해결하는가?
    • 문제의 원인을 찾아가는 경로를 어떻게 계획하는가?
    • 어려운 상황에서 어떤 태도를 취하는가?
    • 특정 문제에 집중할지 여부를 어떻게 파악하는가? 언제 쉬는가? 다른 접근법을 시도할 때는 언제인가?
    • 자신만 모르는 그들만의 특별한 코딩 기법이나 기술은 무엇인가?

생각이 중요하다

  • 작업의 품질(코드 품질)을 보증하기 위해 다른 프로그래머들에 대한 의무감을 가지면, 코드 품질을 환상적으로 높일 수 있다
  • 이러한 의무감이 좋은 것이라는 것에 모든 구성원의 동의해야 하며, 이러한 의무감을 구축하기 위해서는 다양한 방법이 존재한다, 페어 프로그래밍, 코드리뷰, 설계 회의 등등
  • 다른 사람이 자신의 작업을 본다는 거을 인지하게 되면, 적당히 하려는 심리에 대한 저항심을 키우고 전반적인 코드 품질을 높일 수 있다.
  • 의무감을 갖기 위해서는 일정 수준 이상의 용기가 필요하며 비판을 기꺼이 받아들여야 한다.

말하기!

  • 프로그래머라는 직업은 모든 부분에서 의사소통과 관련이 있다. 의사소통의 품질에 따라 성공과 실패가 결정된다 해도 과언이 아니다
  • 코드를 작성하는 행위는 여러 대상과 의사소통의 한 행위이다. 기계, 사람. 도구 등등

    • 코드는 컴퓨터와의 의사소통이다. 명확하고 애매모호함이 없어야만 의도대로 명령이 수행될 것이다
    • 코드는 (자신을 포함한) 다른 사람들과의 의사소통이다. 명백하고 애매모호함이 없어야만 다른 사람들이 코드를 유지 보수 할 수 있다. 코드는 알기 쉬워야 한다. 알고리즘을 노출하고, 로직을 가리지 않으며, 다른 이들이 쉽게 수정 할 수 있어야 한다. 코드는 작성이 아닌 읽기에 최적화 되있어야 한다
  • 사람과 의사소통을 하는 방법은 여러가지가 있다. 메일, 전화, 1 ON 1 등등. 이렇게 여러 형태의 의사사통 수단을 터득하고 각각의 대화에 적합한 수단을 사용하라
  • 적절한 사람들과 적절한 단어를 사용하다록 하자
  • 좋은 의사소통에 의해 좋은 코드가 만들어진다. 의사소통의 형태가 코드의 형태를 만들어줄 수 있다

선언문

  • 세상에는 수 많은 선언문이 존재한다. ( GNU 선언문, 리팩토링 선언문, 애자일 선언문 등등) 그 중에 주요 선언문들은 알아두는게 좋다. 그리고 각각의 선언문에 대해 자신만의 의견을 가져보자
  • 납득할 만한 개발 선언문들을 지지하라. 하지만 맹목적으로 따르거나 독단적으로 다루지는 말아야 한다
  • 괜찮다면 자신만의 선언문을 만들어 보자

코드찬가

  • 애자일팀은 대단하며 깔끔한 코드는 최선이다. 하지만 이를 실현하기 위해서는 코드가 아니라 팀을 개선해야 한다
  • 보통, 소프트웨어 개발과 관련해 까다로운 부분은 기술적인 측면에 있자 않다. 결국 사람이 문제이다
  • 프로그래머가 업무를 이해ㅐ하지 못한 것처럼 보이고 상황을 더 악화시키고 있음을 이해하지 못한다면, 그에 대해 반드시 반응해주어야 한다
  • 코드에 신경 쓰지 않는 코더에게 둘러싸여 있다면, 자신만이라도 건전한 태로를 유지하라. 삼투압 현상에 의해 나쁜 습성을 흡수하지 않도록 주의한다

태도가 핵심이다

  • 좋은 프로그래머와 나쁜 프로그래머를 구분하는 요소는 ‘태도(attitude)’다. 이것이이야말로 훌륭한 프로그래머와 흔해빠진 이들을 구분 짓는 기준이다
  • 당신의 코드가 ‘좋은’것인지, 그리고 당신이 함께 일하기 좋은 사람인지를 결정하는 기준은 바로 당신의 태도
  • 프로그래머의 태도가 스스로의 개인적 성장을 가로막거나 혹은 복돋아줄거이다. 더 나은 프로그래머가 되기 위해서는 적절한 태도를 취해야 한다
Loading script...