Community

개발자 99% 커뮤니티에서 수다 떨어요!

← Go back
[TIL] 실용주의 프로그래머를 위하여 - EP01
#pragmatic
2년 전
1,071

오늘 TIL 3줄 요약

좋은 코드는 좋은 소설처럼

  • 깨끗한 코드는 주의 깊게 작성한 코드다

  • 독자를 생각하며 코드를 쓰자

TIL (Today I Learned) 날짜

2022.05.15 (코드는) 당신의 인생이다.

오늘 읽은 범위

1장.

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

10p “(코드는)당신의 인생이다.” 이말 은 우리 코드베이스에서, 우리 직업에서 우리 경력에서 우리가 가진 힘을 상기시킨다

  • life time 에 대해 쉽게 이야기하기 어렵습니다. 그런데 이렇게 쉽게 이야기 하기 또한 쉽지 않을거라 생각합니다.

15p “내가 어떤 단어를 쓰면,” 험프티 덤프티가 조금 깔보는 투로 말했다.”그것은 내가 선택한 의미만 가지는 거야, 그 이상도 그 이하도 아냐.”

  • 이것은 이해하고 넘어가기에 어려운 부분이였습니다. 단어에 대한 고민이 없었기때문이라고 아직은 생각하고 있습니다.

20p 무엇이 실용주의 프로그래머를 만드는가?

  1. 얼리어댑터 또는 새로운것에 빨리 적응 하는 사람

  2. 호기심이 많은 사람

  3. 비판적인 사고의 소유자

  4. 현실주의자

  5. 다방면에 능훅한 사람

18p 프로그래밍은 기예다. 아주 간단하게 생각해보면 프로그래밍이란 컴퓨터에게 여러분이 원하는 일을 하게 만드는 또는 여러분의 고객인 사용자가 원하는 일을 하게 만드는-것이다.프로그래머로서 여러분은 어떤면으로는 듣는 사람이고      어떤 면으로는 조언하는 사람이며, 통역하는 사람이기도 하고, 명령을 내리는 사람이기도 하다. 애매모호한 요구사항을 포착해서 단순한 기계를 최대한 활용할 수 있도록 구현하려고 노력한다.

자신이 한것을 바탕으로 다른사람이 또 다른것을 만들 수 있도록 자신의 작업을 설계하고 노력한다. 이뿐 아니라 쉬지 않고 똑딱대는 프로젝트 일정 시계에 맞추어 이 모든일을 해내기 위해 노력한다. 여러분은 매일 작은 기적을 만드는 것이다.

21p TIP1.자신의 기예(craft)에 관심을 가져라

  • craft는 “기술”로 번역하기도 하는데, 그 의미는 손재주에 더 가깝다. 통상 추상적이고 이론적인 연구에 대비하여 직접 코드나 시스템을 만지는 기술을 일컫는다.

  • 생각을 하면서 느끼는 부분은 Craft 보다 더 Deep 한 부분 이 있을것이다. 라는 생각을 하였습니다.이것에 대해 어떠한 측면으로 느끼던지는 자유라고 생각합니다.

21p TIP2.자기 일에 대해 생각하라.

  • 모든 개발 과정에서 매일, 여러분이 내리는 모든 결정을 끊임없이 비판적으로 평가해야 한다. 절대 기계적으로 일하지 말라. 언제나 일하면서 동시에 생각하고, 자기 일을 비평하라.

27p 나는 당신의 기대대로 살기위해 이 세상에 있는게 아니고, 당신도 내 기대대로 살기위해 이 세상에 있는게 아니다 - Bruce Lee

28p TIP3 당신에게는 에이전시가 있다.

  • 당신에게는 스스로의 행동을 직접 결정할 수 있는 힘이 있다. 업무환경이 엉망인가? 하는 일이 지루한가? 문제를 고치기 위해 노력하라. 하지만 너무 오랫동안 노력하지는 말라. 마틴파울러가 말했듯이 “당신은 당신의 조직을 바꾸거나, 당신의 조직을 바꿀 수 있다”

29p 납품이 늦어진다. 예상치 못했던 기술적 문제가 발생한다. 이런일이 일어나면 우리는 가능한 한 전문가 답게 처리하려고 노력한다. 이는 정직하고 솔직해져야 한다는 것이다. 우리는 자신의 능력에 자부심을 가질수 있지만, 실수나 무지 같은 단점도 인정해야만 한다.

31p TIP4.어설픈 변명말고 대안을 제시하라.

32p 여러분이 “잘 모르겠어요”라고 말했다면, 꼭 바로 이어서 “하지만 알아 볼게요”라고 말하라. 모른다는것은 인정하더라도 전문가 답게 책임을 지는 좋은 방법이다.

34p TIP5. 깨진 창문을 내버려 두지 말라

  • “깨진 창문”을 고치지 않을 채로 내버려 두지 말라. 나쁜 걸계, 잘못된 결정, 혹은 형평 없는 코드 등이 모두 깨진 팡문이다. 발견하자마자 바로 고쳐라. 적절히 고칠 시간이 없다면 일단 판자로 덮는것만이라도 하라. 불쾌한 코드를 주석처리하거나, “아직 구현되지 않았음”이라고 메세지를 표시하거나, 가짜 데이터로 대치해 놓거나 하라. 더 이상의 손상을 예방하기 위해 어떤 조치든 취하고 여러분이 상황을 잘 관리하고 있음을 보여줘라.

38p TIP6. 변화의 촉매가 되라

  • 큰무리 없이 요구할 수 있을만한 것을 찾아라. 그리고 그걸 잘 개발하라. 일단 무언가 생기면 사람들에게 보여주고 그들이 경탄하게 하라. 그러고는 “물론 …를 추가하기만 하면 더 나아질 수도 있겠죠”라고 말하면서 그다지 중요하지 않은척 가장하라. 물러나 앉아 여러분이 애초에 원했던 그 기능을 추가해 달라고 사람들이 부탁하기 시작할때까지 기다려라. 계속되는 성공에 합류하기란 쉽다. 미래를 살짝이라도 보여주면 사람들은 도와주기 위해 모여들 것이다.

39p TIP7. 큰 그림을 기억하라.

  • 큰 그림에 늘 주의를 기울여라. 당장 하고 있는 일에만 정신을 쏟지말고, 주변에서 무슨일이 벌어지는지 늘 살펴보라.

42p TIP8. 품질을 요구사항으로 만들어라

  • 오늘의 훌륭한 소프트웨어는 많은 경우 환상에 분과한 내일의 완벽한 소프트웨어보다 낫다. 사용자에게 뭔가 직접 만져볼수 있는 것을 일찍 준다면, 피드백을 통해 종국에는 더 나은 해결책에 도달 할 수 있을 것이다.

44p 기능블로트란 소프트웨어가 여러분이 쓰는 기능에 비해 훨씬더 많은 기능을 가지고 있는데, 기능이 많은 만큼 버그나 보안 취약점이 생길 가능성도 넓은것을 말한다.

46p TIP9. 지식 포트폴리오에 주기적으로 투자하라.

지식 포트폴리오 만들기

  1. 주기적인 투자

  2. 다각화

  3. 리스크 관리

  4. 싸게 사서 비싸게 팔기

  5. 검토 및 재조정

47p 지식 포트폴리오의 목표

  1. 매년 새로운 언어를 최소 하나는 배워라

  2. 기술서적을 한달에 한 권씩 읽어라

  3. 기술서적이 아닌책도 읽어라

  4. 수업을 들어라

  5. 지역 사용자 단체나 모임에 참여하라

  6. 다른 환경에서 실험해보라

  7. 현재 흐름을 놓치지 말라

50p TIP10. 읽고 듣는것을 비판적으로 분석하라.

  1. 왜냐고 다섯번 묻기

  2. 누구에게 이익이 되나

  3. 어떤 맥락인가?

  4. 언제 혹은 어디서 효과가 있을까

  5. 왜 이것이 문제인가?

53p TIP11. 한국어든 영어든 하나의 프로그래밍 언어 일 뿐이다

  1. 청중을 알라

  2. 말하고 싶은게무언지 알라

  3. 때를 골라라

  4. 스타일을 골라라

  5. 멋져보이게 하라

  6. 청중을 참여 시켜라

  7. 경청하라

  8. 응답하라

  9. 문서화

58p  TIP 12 무엇을 말하는가와 어떻게 말하는가 모두가 중요하다

60p  TIP 13 문서를 애초부터 포함하고 나중에 집어 넣으려고 하지 말라

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

  • 이상이 책에서 기억하고 싶은 내용입니다.

    여기서 느끼는 감정은 단순히 소프트웨어를 만드는것이 아니라,

    소프트웨어를 만드는것에 대하여 책임을 가지고 만드는것 이였습니다.

    그리고 본인이 Challenge 하는 만큼 느끼는것(소감)이 본인을 더 많이 Soaring 해줄것이라는 믿음 입니다.

    저는 아직까지 실무가 좋고 실제에서 구현해 내고, 새로운것(생산성과 커뮤니케이션)에 대해 관심이 많다고 생각했습니다만,

    위의 책 내용을 생각을 하면서 느낀것은 코드보다는 좀더 메타적인것이였습니다.

    그리고 그것이 좀더 구성원으로 하여금 Soaring 하게 외쳐줄수 잇는 한다미 말이였던것 같습니다.

궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.

  • 많았습니다. 그런데 끝까지 읽어보고 다시 보완하겠습니다. 저도 제가 모르는게 뭔지 잘 모르니까요.

오늘 읽은 다른사람의 TIL

  • ㅎㅎ... 걍 제가 작성 했습니다