티스토리 뷰

읽은 책

실용주의 프로그래머 (1장)

숨_쉬듯 2022. 5. 15. 01:41

TIL (Today I Learned) 날짜

2022.5.14 (토)

오늘 읽은 범위

서문 ~ 1장. 실용주의 철학

책에서 기억하고 싶은 내용을 써보세요.

추천사

  • 좋은 습관을 기르고, 나의 도구를 이해하자 
  • 코딩과 함께하는 인생 여정은 새로운 세계에 들어가는 것처럼 느껴졌다.
    • 새로운 이웃을 사귀고, 장 볼 슈퍼를 고르고, 마음에 드는 카페를 찾아야 했다.
    • 지형지물을 파악하고, 최단 경로를 알아내고, ㅏ가 밀리는 도로를 피하고, 언제 가장 길이 막히는지 알게 되는 데에는 꽤 시간이 걸렸다. 
    • 날씨도 달라서 새 옷을 사야 했다.

서문

  • 우리는 이 팁들을 매일 지키며 산다. 
  • 책을 읽다가 모르는 단어와 마주친다면 그냥 건너뛰지 말고 검색해보기.
  • progmatic = 일에 숙달된 = ~을 하는 
  • 프로그래밍 = 손재주(craft)
  • 프로그래머 = 듣는 사람 + 조언하는 사람 + 통역하는 사람 + 명령을 내리는 사람 
    • 따라서 어떤 특정 기술에 매이면 안 된다. 개별 상황마다 그 상황에서 좋은 해결 방안을 고를 수 있도록 충분한 배경 지식과 경험을 쌓아야 한다.
      • 훈련할 수 있는 방법  
        • 컴퓨터 과학의 기본 원리를 이해 (배경 지식 획득)
        • 다양한 종류의 프로젝트를 수행 (경험 획득)
  • 절대 기계적으로 일하지 말라. 언제나 일하면서 동시에 생각하고, 자기 일을 비평하라. 
  • 잔디 다듬듯이 꾸준히 조금씩 지금 하고 있는 기술을 다듬고, 본인의 기술 목록에 새로운 도구들을 추가하라.

실용주의 철학

  • 문제와 해결에 접근하는 태도, 방식, 철학에 집중
  • Topic 1 : 우리는 스스로의 행동을 직접 결정할 수 있는 힘이 있다. 
    • 조직에 대해 불평, 불만을 말하기보다는 바꾸려고 노력해보기.
    • 안되면 다른 조직으로 옮겨가기 
  • Topic 2 : 나와 나의 행동에 대해 책임 지기 
    • 나의 행동 = 경력  개발, 나의 학습 및 교육, 프로젝트, 일상 업무 
    • 전문가는 정직하고 솔직하다.
      • 자신의 경력에 대해 책임을 진다. 
      • 실수나 무지를 주저 없이 인정한다.
    • 변명말고 대안을 제시하기
      • 안된다고 하지 말고 상황을 개선하기 위해 무엇을 할 수 있는지 설명하기 
    • 어설픈 변명을 하지 말자
      • 어설픈 변명을 늘어놓기 전에 그 변명거리를 없애려고 노력해보기
    • 모를 때는 모르겠다는 사실 + 알아보겠다고 말하기. 
      • 모르는 것을 인정하더라도 전문가답게 책임을 지는 게 좋다. 
  • Topic 3 : 깨진 창문을 고치지 않은 채로 내버려 두지 말라. 깨진 창문은 없어야 한다
    • 깨진 창문에 해당하는 상황
      • 나쁜 설계
      • 잘못된 결정
      • 형편없는 코드
    • 개선 방법
      • 리팩터링
    • 동료들의 생각을 조사하여 팀을 더 튼튼하게 만들기
      • 깨진 창문을 두세 개 고른 다음, 동료들과 함께 무엇이 문제고 그걸 고치기 위해 무엇을 할 수 있을지 토론하기 
  • Topic 4 : 변화의 촉매가 돼라.(돌멩이 수프 이야기)
    • 큰 무리 없이 요구할 수 있을 만한 것을 찾아서 잘 개발하라. 
    • 사람들에게 보여주고 그들을 감탄하게 만들어라. 그리고 그다지 중요하지 않은 척 가장하라. 내가 원했던 기능을 추가해 달라고 사람들이 부탁할 때까지 기다려라. 
    • 미래를 살짝이라도 보여 주면 사람들은 도와주기 위해 모여들 것이다. 
  • Topic 5 : 적당히 괜찮은 소프트웨어
    • '적당히 괜찮은'의 조건
      • 사용자의 요구 사항 충족
      • 기본적인 성능, 개인 정보 보호, 보안 기준 충족
    • 품질을 요구사항으로 만들어라
      • 사용자에게 직접 만져볼 수 있는 것을 일찍 준다면, 피드백을 통해 더 나은 해결책에 도달할 수 있다. 
      • 완벽해지기란 불가능하다 
  • Topic 6 : 지식 포트폴리오
    • 포트폴리오 만들기
      • 주기적인 투자 : 방해받지 않을 수 있는 시간과 장소를 정기적으로 이용할 계획을 마련하라.
        • 매년 새로운 언어를 최소 하나는 배워라.
        • 기술 서적을 한 달에 한 권씩 읽어라. 
          • 깊이 있는 지식은 긴 글 형식의 책에 있다. 
          • 현재 사용하는 기술을 완전히 익혔다면, 가지를 쳐서 공부 범위를 넓혀라.
        • 소프트 스킬을 위해 기술 서적이 아닌 책도 읽어라. 
        • 수업을 들어라
          • 온라인 대학, 기술 세미나, 콘퍼런스에서 흥미로운 강좌를 찾아봐라. 
        • 지역 모임에 참여해라.
          • 고립은 나쁘다.
          • 회사 밖에서 사람들이 어떤 일을 하는지 알아보라. 듣기만 하지 말고 적극적으로 참여하라. 
        • 다른 환경에서 실험해 보라
          • 윈도우 / 리눅스 
        • 요즘 흐름을 놓치지 말라
          • 다른 기술을 다루는 뉴스와 온라인 게시물을 읽어라. 다른 사람들이 그에 관해 어떤 경험을 했는지, 사용하는 전문 용어가 무슨 뜻이기 배울 수 있다. 
        • 투자는 지속적으로 하는 게 중요하다. 한 기술의 새로운 용어나 기능에 익숙해지면 다음으로 나아가라.
        • 이력서에 올려놓지 않아도 상관없다. 학습 과정에서 사고가 확장될 것이다. 
      • 다각화 : 더 여러 가지를 알수록 자신의 가치는 더욱 높아진다. 더 많은 기술에 익숙하다면 변화에 더 잘 적응할 수 있을 것이다. 
      • 리스크 관리 : 기술 달걀을 모두 한 바구니에 담지 말라. 
      • 싸게 사서 비싸게 팔기 : 새롭게 떠오르는 기술이 인기를 끌기 전에 미리 알고 학습하기 = 저평가된 주식 찾아내기.
      • 검토 및 재조정 : 산업에서 해당 지식에 어떤 변동이 있는지 파악하기.
    • 학습의 기회 
      • 모르는 걸 만나면 답을 찾기 위한 개인적은 도전으로 생각하라.
        • 주변에 물어보거나 웹에 검색해보기.
        • 문서뿐만 아니라 학술 자료도 찾아보기. 
        • 스스로 담을 찾지 못하겠거든 답을 찾아줄 수 있는 사람을 찾기
    • 읽고 듣는 것을 비판적으로 분석하라. 
      • 비판적 사고에 대해서 최대한 많이 읽고 공부하기
      • 비판적 사고를 할 수 있는 팁
        • 왜냐고 다섯 번 묻기. 질문하고 답을 구하기. 더 깊게 파고 들어가기
        • 누구에게 이익이 되나? 
        • 어떤 맥락인가? 전제 조건과 그 결과의 단지/장기적 여파에 대해 생각해라. 기억하라. 만병통치약은 존재하지 않는다. 
        • 언제 혹은 어디서 효과가 있을까? 다음에는, 그 이후에는 어떤 일이 일어날지 일어날지 생각해보기 
        • 왜 이것이 문제인가?
    • 추천하는 책 공부 순서
      • 실용주의 프로그래머 -> 새 책 한 권 읽기
        • 상세한 구현과 코딩 가능하다면 설계와 아키텍처에 대한 책 읽기
        • 고차원 설계를 하고 있다면 코딩 테크닉 다루는 책 읽기 
    • 밖에 나가서 열정을 공유할 동료를 찾아보라
  • Topic 6 : 소통 : 무엇을 말하는가와 어떻게 말하는가 모두 중요하다.
    • 청자의 요구, 관심, 능력을 이해하자. 
      • 청중이 누구이고, 내가 말하려는 것이 무엇인지 생각하기. 나중에 청중이 원하는 것에 대한 나의 판단이 얼마나 정확했는지 그들에게 확인해 보라.
    • 피드백의 중요성: 의사소통을 원활하게 하려면 질문을 기다리지 말고 먼저 물어보라. 
    • 무엇을 말할지 미리 계획하라. 개요를 작성하고 자문하라. 
      • '이렇게 하면 내가 표현하고 싶은 것을 듣는 사람에게 잘 전달할 수 있을까?' 그렇게 될 때까지 다듬어라.
    • 때를 골라라. 말하는 내용만큼 말하는 시점도 중요하다. 
      • 그들이 무엇을 듣기 원하는지 이해하려면 청자의 우선순위를 알아야 한다. 
      • '지금이 ~에 대해 이야기할 좋은 때일까?'
    • 상대에 따라 의사소통 스타일을 변경해라.
      • 사실만 전달할 건지, 아니면 다방면의 이야기를 나눌 건지
    • 아이디어를 청중에게 멋져 보이게 전달하라 (맞춤법 체크, 멋진 스타일, 레이아웃 활용하기)
    • 문서 작성에 청중을 참여시켜라 : 가능하면 문서 초안에 참여하도록 하라. 
    • 경청하라 
    • 언제나 응답하라
      • '다음에 답해 드리겠습니다.' 이더라도 응답하다. 
      • 늘 사람들에게 응답해 주면 때 때로 저지르는 실수에 대해 훨씬 더 관대해질 것이다. 
    • 의사소통 Tip
      • '보내기'을 버튼 누르기 전에 검토하라.
      • 형식을 간단하고 명확하게 하라.
      • 맞춤법 체크하라. 
    • 의사소통 추천 책
      • 맨먼스 미신
      • 피플웨어 
      • 파충류의 뇌 

오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요

나는 이제 막 개발자로 일을 시작했기 때문에 사실 전문가라는 단어가 멀게만 느껴졌다. 그렇지만 오늘 책을 읽으면서 전문가에 대해 좀 더 생각해볼 수 있었고, 지금 주니어인 나도 전문가의 태도를 가질 수 있다는 생각이 들었다. 내가 작업을 진행하는 방식에 대해 되돌아보면서 어떤 점을 개선할 수 있는지 알아보는 시간을 가질 수 있어서 좋았다. 

타입 스크립트 강의를 더 집중해서 들어야겠다. (책에 따르면) 나는 지금 그냥 강의가 듣는 게 아니라 새로운 언어를 배우는 중이니까! 그 의미에 대해 생각하면서 공부를 해야겠다.

문서화할 때 이 문서로 무엇을 할 것인지, 문서의 위치는 적당한지, 문서의 구조는 적당한지 문서를 사용자를 고려하면서 작성하자. 

책을 읽고 바로 실천할 작은 액션 리스트

  • 주기적인 투자를 가능하게 할 구체적인 계획과 시간 정하기.
  • 나의 진행사항을 공유할 동료 찾아보기.
  • 회사에서 의사소통 Tip 실천하기.
    • 어느 부분이 어려웠는지 금요일에 회고하기. 

실용주의 프로그래머 책 추천 참고 

https://pragprog.com/

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함