드디어 마지막 패턴. 이번에 읽은 챕터는 '끊임없는 학습'과 이 책의 마지막 챕터인 '학습 과정의 구성' 이다. 개인적으로 지난 챕터인 '정확한 자기 평가'는 집중이 잘 안됬는데, 이번 두 챕터는 몰입해서 읽었던것 같다. 소프트웨어 장인이 되기 위하여 어떻게 학습해야 할 것인가에 대한 생각보다 깊은 내용을 들을 수 있었다.
이번에 읽은 패턴
능력의 폭을 넓혀라
연습, 연습, 또 연습
부숴도 괜찮은 장난감
소스를 활용하라
일하면서 성찰하라
배운 것을 기록하라
배운 것을 공유하라
피드백 루프를 만들어라
실패하는 법을 배워라
독서 목록
꾸준히 읽어라
고전을 공부하라
더 깊이 파고들어라
익숙한 도구들
연습, 연습, 또 연습
나를 포함한 대부분의 사람들은 한 번의 학습 과정을 거치면 다시 그 과정을 다시 보려고 시도하지 않는 경향이 있다. 우리는 우리에게 알맞은 연습 과제를 부여해줄 멘토가 있더라면 좋을텐데, 개발자로 일하면서 운이 좋지 않은 이상 그러한 멘토를 만나기 쉽지가 않다. 나도 이제 3년차에 들어서는데, 1년은 나 혼자 일했고, 반년은 내가 프로젝트의 리더급 개발자로 개발을 진행해나갔다. 그러면서 프로젝트를 위해 새로 도전할 일들이 있기도 했었지만, 매번 '의식적인 연습'을 할 생각은 못했다. 그래서인지, 그동안 개발자로써 크게 성장하지 못했던것 같다.
대부분은 혼자고, 좋은 멘토가 있더라도 혼자 자신의 능력을 발전시켜야 할 때가 있다. 혼자 무엇을 해야할지 모를 때 자신을 발전시킬 수 있는 좋은 테크닉 중 하나는, 내가 이전에 했던 것을 조금 더 어렵게해서 계속해서 연습하는 것이라 생각한다. 이와 관련되서 나의 연습문제면 그래픽스와 관련된 문제들을 해결해나가고 싶다. 기본적인 윈도우만 구현된 상태에서 위키피디아 문서만 보고 이전에 구현했던 기능 다시 구현해보기. 이를 응용해서 더 멋진 무언가를 만들어보기. 이런 식으로 학습한다면 나의 실력이 크게 늘어나겠지. 이번에 그래픽스 강의를 듣고 있는데, '조금 더 어렵게해서 연습해보기'는 지금 당장 실천하고 있는 패턴이다. 내 생각대로 기존 코드를 바꿔보면서 내가 잘못 이해한 점을 깨닫기도 하고, 그를 통해서 머리속에 내가 무엇을 하고 있는지 확실히 그려지는게 느껴진다. 이런식으로 공부해서 생각한것보다는 시간이 더 걸리고 있지만, 한번 하는 김에 제대로 해야지. 그래야 다음에 또 다시 할때 길을 덜 헤멜것이고, 장기적으로 봤을땐 시간적 이득이다.
이 챕터와 관련되서, 내가 한국 개발자 커뮤니티에서 본 안좋은 마인드를 가진 사람들의 특징이 있는데, 모든 것을 한번 배워서 끝내려는 경향이 있다. 마치 공무원 시험을 보듯이 개발자를 위한 지식을 단기간에 몰아서 벼락치기하듯이 생각하는 사람들이 많았다.
꾸준히 읽어라
올해 목표는 지금까지 개발자로 일하면서 말로만 읽고싶다고 한 책들을 하나씩 독파해나가는 것이다. 원래는 책을 정말 많이 읽는 편이였지만, 개발 공부를 시작하게 되면서 책과 급속도로 멀어지게 되었다. 그때가 잘못됬다기 보다는 개발자로 일을 시작하고 지금에 오기까지 강의를 들으며 코드를 작성하는게 최고 효율의 공부방법이였던것 같기는 하다. 처음 개발공부를 시작할 때 '객체 지향의 사실과 오해' 같은 책을 읽으면 머리에 들어올까. 이제 2년차를 넘어가는 나에게는 이러한 책들이 필요하게 된 시기가 온 것 같다. 이제 정말 꾸준히 읽을 타이밍인것 같다.
공부를 위해서는 다양한 매체가 있다. 블로그, 강의, 논문, 책 등등.. 정말 다양한 매체들이 있지만 특정 분야에 대한 폭넓은 인사이트와 많은 생각을 하게 하는 용도로써는 책이 최고인 것 같다. 나는 개발 패턴과 객체지향 프로그래밍, 안전한 프로그래밍이란 무엇인가에 대해 넓은 지식을 얻고 깊이 생각해보기 위해 관련된 책을 읽어보고자 하고있다.
현재 읽고자 하는 독서목록으로는 객체지향의 사실과 오해, 오브젝트가 나를 기다리고 있다. 이 두 책을 읽은 이후에는 다시 전문분야로 넘어와서 레이트레이싱과 관련된 책을 읽을 것 같다.
고전을 읽어라
개발자로 일하면서 입문자에서 초보급으로 급이 올라가니까 특정 패턴에 대해 이야기하고, 코드를 볼때 패턴을 보라는 이야기를 많이 듣는다. 면접을 위해 특정 패턴만 익혀간 나로써는 다양한 패턴을 적재적소에 활용하긴 커녕 코드를 봐도 이게 무슨 패턴인지 이해하기가 힘들었다. 현재 회사 프로젝트에서는 팀원들이 자주 쓰는 패턴은 익혀두어 어느정도 이해하고 흉내낼 수는 있지만, 처음에는 따라가기 힘들었다. 미리 제대로 공부하고 구현해봤다면 쉽게 적응했을텐데.
얼마전에도 같이 개발자로 일하며 공부를 하고 있는 친구를 만났는데 '이 책 읽어봤어요?' '이거 알아요?' 물어봤는데 다 알지만 안읽어본 책들이었다. 그 중 하나는 그 유명한 클린코드. 이 책도 읽어봐야지. 읽어봤다면 그에 대한 더 깊은 이야기를 할 수 있었을텐데, 개발자로써가 아닌 사람대 사람으로써도 더 좋은 시간을 보낼 수 있었을텐데 하는 아쉬움이 있다.
실제로 성공적인 견습생들은 '수명이 긴 책'에 접근하는 경향이 있다고 한다. 기술이 빨리 변해가는 IT 분야에서도 오랫동안 사람들이 추천하는 책이 있다면, 그러한 이유가 있을 것이다. 현대에 와서 그 책이 개인의 발전을 위한 최고의 선택이 아니라고 해도 주변 사람들의 생각을 이해하고 용어를 통일시키기 위해서는 고전을 하나씩 읽어가는것이 최선의 선택이 될 수 있으 것이다.
'공부 > 개발 독서' 카테고리의 다른 글
역할, 책임, 협력 - 객체지향의 사실과 오해 (0) | 2022.10.02 |
---|---|
이상한 나라의 객체 - 객체지향의 사실과 오해 (0) | 2022.09.24 |
정확한 자기 평가 - 프로그래머의 길, 멘토에게 묻다 (0) | 2022.08.28 |
가장 뒤떨어진 이가 되라 - 프로그래머의 길, 멘토에게 묻다 (0) | 2022.08.21 |
깊은 쪽으로 - 프로그래머의 길, 멘토에게 묻다 (0) | 2022.08.14 |