diff --git a/2025/Becoming a Better Programmer/tttghost/Chapter24~32.md b/2025/Becoming a Better Programmer/tttghost/Chapter24~32.md new file mode 100644 index 00000000..ff5d74e6 --- /dev/null +++ b/2025/Becoming a Better Programmer/tttghost/Chapter24~32.md @@ -0,0 +1,162 @@ +# 더 나은 프로그래머 되는 법 24~32장 + +Overview +--- +## Part 03 개인적인 일로 받아들이기 +- 24장 배움을 사랑하며 살기 +- 25장 테스트 주도 개발자 +- 26장 도전 즐기기 +- 27장 부진 피하기 +- 28장 윤리적인 프로그래머 +- 29장 언어에 대한 사랑 +- 30장 프로그래머의 자세 + +## Part 04 일 끝내기기 +- 31장 더 열심히 보다는 더 현명하게 +- 32장 끝나야 끝나는 것 +- 33장 교훈 얻기 + +### 24장 배움을 사랑하며 살기기 + +`Summary` +- 프로그래밍 학습은 지속적인 여정이며, 새로운 기술과 도구를 익히는 것이 핵심입니다. +- 인지적 유능감의 4단계 + - 무의식적 무능 (할 줄도 모르면서 인지하지도 못함) + - 의식적 무능 (할 줄 모르지만 인지하고 있음) + - 의식적 유능 (할 수 있다는 것을 인지하고 있음) + - 무의식적 유능 (의식하지 않아도 자연스럽게 함) +- 4단계를 요약하면 : 무지 -> 자각 -> 연습 -> 숙련 +- 효과적인 학습을 위해 다양한 도구(Cursor)와 방법(단축키, 교차감각피드백)을 활용합니다. +- 팀워크와 협력을 통한 학습이 중요하며, 다른 사람들과의 소통에서 새로운 인사이트를 얻습니다. +- 실천을 통한 학습이 가장 효과적이며, 행동하면서 배우는 것이 기억에 오래 남습니다. + +`Topics` +- 여러분의 학습 스타일은 어떠신가요? 저는 우뇌형(패턴과 전체적 관점)과 외향적(토론과 협력) 성향입니다. +- 업무 중 어떤 교차감각피드백을 활용하시나요? 저는 빠른 필기와 개발용 음악 청취를 하고 있습니다. +- 개발자로서 인지적유능감이 어느단계에 있으신가요? 저는 2.5단계 입니다. + +### 25장 테스트 주도 개발자 + +`Summary` +- 숙달된 프로그래머는 손가락이 저절로 움직이는 인지적 유능감의 4단계로 진입합니다. +- 반면 미숙한 프로그래머는 카우보이식 코더가 되기 쉽습니다. +- 운전과 프로그래밍은 유사성이 깊다. +- 성공만 하는것은 안일함을 남길 뿐, 편집증 환자처럼 행동해야 살아남을 수 있다. +- +`Topics` +- 1. 프로그래밍과 운전면허시험 유사한부분이 무엇일까요? + - 테스트코드 작성으로 안정적인 코드를 배포하는 것은 운전면허 시험을 통해 안정적인 운전자를 배출해 내는 것과 같다고 생각합니다. +- 5. 자신의 기술에 투자하여 별도로 얻은 것이 있는가? + - CI/CD와 TDD를 학습하여 개발 지식과 의욕이 향상되었습니다. + +### 26장 도전 즐기기 + +`Summary` +- 개발자로서 지속할수 있는 힘은 도전 +- 도전은 동기부여가 있어야함 +- 늘 재미있고 새로운것만이 도전이 아니다. 지루한 반복일지라도 꾸준히 결과를 위해 쌓아올리는 것도 도전이라고 할수있다. +`Topics` +- 무엇을 위해 일하시나요? 부? 명예? 지식? 자유롭게 이야기하면 좋을 것 같습니다. +- 1. 실력을 키워주고 자극을 주는 프로젝트가 있나요? + - 작년에 진행했었던 멜토링 프로젝트 였습니다. +- 3. 일상의 업무와 흥미로운 도전 사이에 균형을 잘 맞추시나요? + +### 27장 부진 피하기 + +`Summary` +- 일이 편하고 쉽기만 한게 반복된다면 발전하고 있지 않다는 것입니다. +- 성장하기 위해선 지속적으로 불편한 상황에 놓여 새로운 도전과 학습의 기회를 만들어야 합니다. +- 자신의 기술은 가장 중요한 투자 대상입니다. 지속적인 성장을 위해서는 의도적으로 불편한 상황을 만들어 도전해야 합니다. +- 당장은 보상이 없어 보여도 장기적으로는 반드시 긍정적인 결과로 돌아올 것입니다. +- 다양한 도구와 방법을 활용하여 효율성을 높이세요: + - 개발 도구: 윈도우 툴, 다양한 OS 환경, 키보드 단축키 등 + - 업무 효율화: 시간 관리, 작업 자동화, 생산성 도구 등 + - 프로그래밍 외적 활동: 운동(헬스, 달리기), 취미(그림그리기) 등을 통한 균형잡힌 성장 +- 지속적인 학습은 고용 안정성을 높여주지만, 현재 직장의 유지를 꼭 보장하는 것은 아닙니다. 다만 새로운 기회를 찾을 때 더 유리한 위치에 있을 수 있습니다. +`Topics` +- 2. 마지막으로 배웠던 새로운 것은 무엇인가요? (개발적인 것 외) +- 5. 지금 적절한 직업을 지고 있다고 생각하시나요? 개발자가 적성에 맞으시나요? 5점만점에 몇점일까요? +- 개발에 직/간접적으로 도움이 되는 도구가 있을까요? 있다면 추천해주실수 있으실까요? 저는 Everything, QuickLook 이 있습니다. + +### 28장 윤리적인 프로그래머 + +`Summary` +- 프로그래밍은 개발자의 윤리의식과 가치관이 반영되는 창조적인 작업입니다 +- 윤리적인 프로그래머가 되기 위한 핵심 요소: + - 정직성과 투명성 - 코드와 결과물에 대한 책임감 + - 사용자 존중 - 개인정보 보호와 보안 + - 전문성 - 지속적인 학습과 품질 향상 + - 협업 정신 - 팀워크와 지식 공유 +- 너무 무리한 작업은 하지 마십시오 +- +`Topics` +- 전 직장 코드의 법적 소유권: 테세우스의 배 딜레마 + - 코드를 그대로 가져오면 저작권 위반, 로직만 기억해서 재구현하면 괜찮을까요? 어느정도 범위까지 괜찮을까요? + +### 29장 언어에 대한 사랑 + +`Summary` +- 다양한 프로그래밍 언어를 접하고 각 언어의 고유특성과 관습을 이해하려 노력하십시오. +- 여러 언어를 배우되, 주력언어에 대한 전문성을 키우는 것을 잊지 마십시오 +- 몰입하여 언어를 배우십시오 +- 좋은 의사소통을 하십시오. 좋은 프로그래머는 잘 말하고 작성하며 코딩하고 듣고 읽습니다. +`Topics` +- 2. 다른 언어나 도구를 배움에 있어 어느정도로 몰입하는 자세를 가지시나요? + +### 30장 프로그래머의 자세 + +`Summary` +- 진짜 개발자의 자세에 대한 이야기이다. +- 올바른 자세야 말로 지속적인 개발을 함에 있어 필수이다 +- 건강해야합니다. +`Topics` +- 거북목과 개발력은 비례한다고 생각하시나요? +- 좋은 스트레칭 기법이 있으면 공유해주실수 있으신가요? +- 책에 소개되지 않은 자세를 추천해주실수 있으신가요? (전 샤워실에서 아-! 하는 자세가 있습니다.) +- 작업시 편안하다고 느끼는 환경이 있을까요? +- +### 31장 더 열심히 보다는 더 현명하게 + +`Summary` +- 목표에 도달하기위한 더 쉬운 방법도 분명 존재합니다. 그 방법이 마음에 들지 않더라도(개발적으로) +- 직접 만들기보다는 있는 코드를 재사용 하고 그 시간을 다른곳에 투자하십시오 +- 테스트코드는 효율적으로 작성해야 합니다: + - MVP 패턴에서 우선순위: + 1. Model: 비즈니스 로직과 도메인 로직 테스트 + 2. Presenter: Model과 View를 연결하는 전이 로직 테스트 + 3. View: 단순 입출력은 테스트 필요성을 신중히 검토 + - View 테스트는 작성이 복잡하고 투자 대비 효율이 낮을 수 있음 +- 업무 관리 전략: + - TodoList: 작은 업무들은 모아서 일괄 처리 + - Issue: 중요 업무는 집중하여 개별 처리 +- 업무는 한번에 하나씩 처리하여 집중도와 생산성을 높이기 +- 한번이상 반복되는 일이 있다면 자동화 +- 번아웃 예방: 적절한 휴식과 업무 우선순위 설정 +- 건강관리와 취미생활로 균형잡힌 삶 유지 + +`Topics` +- 2. 작업 우선순위를 할당하는 데 익숙하신가요? 어떤식으로 하시나요? +- 현명하게 일하기 위해서 사용하는 강력한 도구가 있나요? + +### 32장 끝나야 끝나는 것 + +`Summary` +- 완료 라는 것을 정의해야 비로소 끝나는 것이다. +- 업무 시작 전에 완료에 대한 그림을 그려놓고 시작하라. +- 완료는 다음과 같다 + - 명확성: 명확하고 구체적 + - 가시성 : 모든 작업자들이 성공하는 기준에 대해 눈으로 확인 가능해야 한다 + - 실현가능성 : 완료 기준을 `주의깊게` 정읳다 + - +`Topics` +- 여러분은 작업이 완료되었다는 것을 어떻게 판단하시나요? + +### 33장 교훈 얻기 + +`Summary` +- 개발은 사람과 사람이 하는 협업이다 +- 페어 프로그래밍과 코드 리뷰를 통해 협업하면 어려운 문제도 해결할 수 있다 +- 혼자만의 고민은 적절한 선에서 멈추고 동료와 상의하라 +- 배운 지식을 공유하고 동료를 존중하라 +`Topics` +- 팀원들과의 티키타카는 어떤식으로 이루어지고 있으신가요? \ No newline at end of file