아래 글은 <더 나은 프로그래머 되는법>을 읽고 요약한 내용이며 개인적인 생각이 담겨있습니다.
한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.
Ch24.배움을 사랑하며 살기
지속적으로 배우는 상태를 유지하라. 배울만한 새로운 무언가를 항상 찾아봐라.
배움을 즐기는 것을 배워라.
배울때 재미있을만한것을 조사하는데 우선시간을 들여라. 그런후 흥미를 끄는것을 선택하라.
새로운 기술을 습득하라.
새로운 기술적 기법을 배워라.
사람들과 함께 일하는 것을 배워라.
새로운 문제 영역에 대해 배웡라.
어떻게 배워야할지 배워라.
완전히 다른것을 배우라.
배울때 종종 너무 좁게 초점을 맞춘다. 더 넒은 분야에 대해 참고하라. 많은 분야에서 영감을 얻어라.
능력의 4단계
-의식적 무능력 : 무엇인가에 대해 모를수 있다. 무지하다는것을 이미 알고 있다.
-의식적 능력 : 무언가를 알고 있다. 자신이 알고 있다는것도 이미 알고 있다.
-무의식적 능력 : 훌륭하게 습득하여 두번째 천성으로 만들어졌다. 기술을 사용하고 있단 사실을 의식하지 않고, 두번 생각할 필요없이 실행하기만 하면 된다.
- 무의식적 무능력 : 위험한 상황. 어떤것에 대해 모른다는것을 알지 못한다. 무지에 대해서 무지하다.
어떤 주제에 대해 잘 이해하고 있다고 착각하고,얼마나 잘못알고있는지를 꺠닫지 못할 가능성이 있다. 지
전통적으로 우뇌형 으로 분류되는 사람들이 어떤 주제를 패턴과 전체적인 관점으로 표현할때 가장 잘 배울수 있다.
좌뇌형 사람들은 주제를 논리적이고 선형적으로 표현할때 잘 배울수 있다.
배우는동안 잘 사용하지 않는 뇌의 부분을 자극하라.
일하는 동안 음악을 들어라.
생각하는 동안 낙서를 하라.
무엇이든 만지작거려라.
일하면서 말하라.
배움에 대해 긍정적인 태도로 일관하는것이 기억력을 강화시킨다.
배우기 위해 가르쳐라. 어떤 주제를 잘 배우기 위해 가르쳐보라.
자신의 학습에 책임져라. 더 나아가라. 배워야할 주제를 정하고, 배우기 위한 계획을 세워라.
Ch25.테스트 주도 개발자
운전과 프로그래밍은 흥미로운 유사성이 있다. 기술과 연습을 요한다.
충분한 역량을 얻기 위해서 많은 노력과 연습을 해야한다.
운전 시험을 막 통과한 초보운전자는 의식적 능력단계이다. 운전할수 있다는걸 알고 있다.
하지만 경험을 거치고 나면 자동적으로 반응하게 된다. 다만 길 자체나 끊임없이 나타나는 결정사항에 대해서는 아직 알지 못하고 집중한다.
개발자가 언어와 도구에 통달하고 나면 더 큰그림을 본다.
사고가 발생하는 대다수는 운전가의 잘못에 의한것이다. 코드 문제의 대다수 또한 개발자의 잘못으로 일어난다.
좋은 운전자가 되기 위해서 안일함을 극복해야한다. 그렇지 않으면 문제아가 된다.
개발자도 신경을 쓰지 않으면 코드재앙을 불러일으킨다. 부주의한 코드는 생명에 지장을 준다.
의식적 능력 단계에 도달했을때, 안일해지지 않도록 주의해야한다. 자신의 머리로 코드에 항상 집중하고 위험성 높은 오류를 피하라.
Ch26.테스트 주도 개발자
자극적이거나 도전적이거나 즐거움을 느끼게 하는 무언가에 열중하는 행위가 동기부여가 될 수 있다.
도전적인 문제에 적극적으로 임하는 자세는 더 배우고 발전할수 있도록 장려하고 흥분시킬 것이다.
개인적인 도전은 사이드프로젝트를 통해서만 얻을수있다.
프로그래밍의 어떤 부분에 흥분하는가? 당장 작업해보고 싶은것은 무엇인가?
온종일 지루한 업무를 수행하느라 바쁜 와중에
오히려 그 안에 흥미로운 도전을 끼워넣어 균형을 맞추는게 더 나은 프로그래머가 되기 위한 길이다.
역시 빨리 사이드 프로젝트를 시작해야겠다.
왜이렇게 갈망하나 했더니 자극받을만한게 없던것이다.
Ch27. 부진 피하기
안전지대는 유해한 영역이다. 함정이다. 더이상 발전이 없는것을 의미한다.
안전지대에 있다는 것은 정체되었다는 뜻이다. 퇴보로가는 지름길이다.
안전지대에 빠져들어 자신도 깨닫지 못하는 사이에 개발자로서의 경력이 타성에 젖어버리기란 쉬운 일이다.
어떤것을 배운 마지막 시점?
능력이상을 해낸 마지막 시점?
일에서 불편함을 느낀 마지막 시점?
즐겁게 하는것을 발견한 마지막 시점?
자신이 초라하게 느껴져 그들로부터 배우려는 의욕이 고무된 시점?
다행히도 모든 질문에 대한 대답이 기억도 잘 나지 않아서 완전한 극락의 영역은 아닐것같다..휴
하지만 지금 안전지대로 가는 과정인건 맞는것 같다. 아니 안전지대임을 깨닫고 이제서야 빠져나오려고 하는 과정이다.
자신의 기술을 유지하기란 어려운일일다. 스스로 불편한 상황에 두어야하고 많은 노력을 쏟아 부어야한다.
많은 사람들은 기술발전을 추구하려고 하지 않는다. 친숙하고 편한 방향으로 가는것은 자연스러운 일이다.
하지만 그래서는 안된다.
의식적으로 자신의 기술에 투자해라. 그리고 그 결정을 지속해라.
힘든일이라 생각하지 말고, 도전안에서 즐거움을 느껴라.
자신이 더 나은 프로그래머, 더 나은 개발자가 되기 위해 투자하고 있음에 감사해라.
넵.아멘. 믿습니다.
안전지대 밖으로 자신을 밀어내고 변화시키는 방법
- 동일한 도구만 사용하는 습관 멈추기.
- 동일한 프로그래밍 언어 사용하는거 멈추기.
- 다른 OS사용해보기
- 다른 텍스트 편집기 사용해보기
- 키보드 단축키 알아보기
- 새로운 주제에 대해서 알아보기
- 개인 프로젝트 시작하기
- 프로젝트의 새로운 부분 담당하기
- 새로운 언어 배우기
- 책상위 재배치
- 새로운 활동 시작해보기. 취미에 더 많은 시간 들이기
- 운동 시작하기
- 더 많은 사교활동하기
- 식단조절하기. 일찍 자기
의식적으로 알고 행동던 부분에 대해선 초록색 표시를, 알고 있지만 아직도 행동하지 못했던 부분 노란색 표시를 했다.
새삼 이것저것 새로운 걸 시도해보는걸 좋아하는 성향이라 꽤 다행이다.
그리고 노란색 표시가 많은걸보아 나는 여전히 안전지대에서 벗어나려고 발버둥 치지만 행동하기 어려운 상태이다.
Ch28. 윤리적인 프로그래머
코더들의 질은 기술적 기량보다 태도에 따라 결정된다.
읽을 수없거나 불필요하게 뛰어난 코드를 작성하는 방법으로 자신이 없어서는 안될사람이라는것을 부각시키지 말라.
윤리적인 프로그래머는 가능한 최고의 코드를 만드는것을 목표로 한다.
가장 적절한 도구와 기술을 이용하여 최상의 결과를 이끌어낸다.
소프트웨어 저작권을 준수하라.
이직시 코드나 기술을 빼내서 새로운 회사에 적용시키지 말라.
코드에 대한 좋은 태도는 곧 다른 프로그래머에 대한 태도이다.
모든 사람들과 적절히 대화하라. 소문과 뒷담화에 연루되지 말라.
윤리적인 프로그래머는 가장 공정하고 투명한 방법으로 어려운사람을 대한다.
또한 어려운상황을 해결하려고 하고, 불필요한 충돌을 피하는 방향으로 일한다.
윤리적인 프로그래머는 지쳐 나가떨어질만큼 무리하게 일하지 않는다.
개인적인 손해일뿐만 아니라 팀 전체에도 나쁜 영향을 줄 수 있다.
지나치게 열심히 작업하는것이 영웅처럼 보일지라도 비현실적인 기대감으로자신을 축내는것은 좋지 않은 방법이다.
Ch29. 언어에 대한 사랑
좋은 프로그래머가 되기 위해서는 지속적으로 새로운 도전을 접하고, 배우며, 새로운 문제를 해결하고 새로운 기술을 사용해야한다.
다양한 해결방안을 내놓을수 있도록 여러 언어를 배워라.
함수형 언어는 풍부한 아이디어의 원천으로써 배울점이 많다.
프로그래밍 언어로 작업하는 것은 매일매일의 노력이 필요한 관계와 같다.
그 어떤 언어라도 숙달되러면 몰입해야한다. 대부분 노력을 들이는것을 싫어하거나 뭔가 잘못되었을때 쉽게 실망한다.
자신의 언어를 사랑하라. 즐길수 있는 언어로 작업하라.
하나의 언어로 좋은 코드를 작성하려면 자신의 스타일을 고집하기 보다 언어의 고유방식과 관습에 몰입해야한다.
의사소통은 필수기술이다. 말하는것만큼 듣는것도 중요하다.
Ch30. 프로그래머의 자세
마인드나 태도를 의미하는 자세인줄 알았는데 진자 피지컬적인 자세를 말하는것이였다. 하하
'Book & Lesson' 카테고리의 다른 글
[책] 더 나은 프로그래머 되는법 부록.국내 개발자 8인의 이야기 (0) | 2024.05.17 |
---|---|
[책] 더 나은 프로그래머 되는법 Part5. 사람의 일 (0) | 2024.05.16 |
[책] 더 나은 프로그래머 되는법 Part4. 일 끝내기 (공감x100) (1) | 2024.05.15 |
[책] 더 나은 프로그래머 되는법 Part2. 연습을 통해 완벽해진다 (0) | 2024.05.13 |
[책] 더 나은 프로그래머 되는법 Part1. you.write(code); (2) | 2024.05.12 |
[강의] 유데미 Spring Boot 강의추천 (Spring 개념, Ioc/DI/Beans/Component/Autowired) (1) | 2024.05.04 |