📚 <함께 자라기>
- 프로그래밍 언어 배우기의 달인
- 1) 튜토리얼을 읽을 때 뭘 만들지 생각하고 읽는다.
- 다음 작성할 프로그램을 염두에 둔다는 점입니다. 그래서 튜토리얼을 읽다가도 이 정도면 그 프로그램을 작성할 수 있겠다는 생각이 들면 그 자리에서 읽기를 멈추고 코딩을 시작합니다.
- 이런것을 “적극적 읽기”라고 합니다.
- 2) 공부할 때 표준 라이브러리 소스코드를 읽는다.
- 하지만 프로그래머가 실제로 업무를 할 때에는 코드를 읽는 시간이 쓰는 시간을 압도합니다. 좋은 코드를 읽어봐야 좋은 코드를 쓸 수 있기도 하고요.
- 표준 라이브러리는 보통 해당 언어 발명자가 직접 작성하거나 적어도 해당 언어의 스타일을 따르는 소수의 사람들이 작성합니다. 가장 그 언어 다운 코드들의 말뭉치이지요.
- S님은 튜토리얼을 공부하는 것만으로는 그 언어의 숙어와 패턴, 스타일을 배우기 불충분하다는 것을 알고 있는 것이죠.
- 3) 공부 중 다른 사람의 코드에 내가 필요한 기능을 추가한다.
- S님은 튜토리얼을 읽어 나가면서, 실질적인 사용 예를 스스로 만들어 내는 것 같ㄱ습니다. 튜토리얼에는 장난감 코드에 가까운 것들이 나오는 경우가 흔한데, 실질적인 사용 예를 통해 실제 코드의 감(읽고 쓰기)를 익히는 것이죠.
- 더욱 인상적인 부분은 처음 이 언어를 공부하기 시작한 시점부터 다른 사람이 완성한 프로그램에 자신이 필요한 기능을 추가하기까지 걸린 시간이 길지 않았다는 점입니다. (며칠 이내)
- 이런 방식을 통해 자신이 튜토리얼을 읽으며 이해한 내용을, 실제로 살아 있는 코드를 수정하고 돌려보고 하는 등 실험하면서 피드백 받을 수 있었습니다. 더 나아가, 해당 오픈소스 커뮤니티와 교류를 통한 피드백 받기도 가능했겠지요.
- 전문성을 효과적으로 뽑아내는 전문가가 되기
- 그렇다면 어떻게 해야 할까요? 한 가지 비결은 전문가가 “구체적인 사건에 대해 말하도록 유도”하는 겁니다. 경찰에서 증인을 효과적으로 심문하기 위해 쓰는 기법도 이와 비슷합니다. 전문가에게 굉장히 구체적인 기억들을 상기하도록 합니다.
- ‘전문가가 빨리 되기’위해서는 ‘전문가에게서 전문성을 효과적으로 뽑아내기’에 대해 전문가가 되어야겠지요. 그 첫걸음은 “전문가를 (직간접적으로) 만나는 것”이고, 그 다음은 “구체적 사례를 듣는 것”이 되겠죠.