1. 학습방식 설정
읽고 들으며 익숙해지지 말고, 구현해보고 지식을 나누며 이해하자.
가. '단순 읽기'와 '강의 시청'에서 벗어나자
자료를 읽고 강의를 들으며 학습하는 것은 큰 효과가 없어요. 여러분 스스로 미션해결에 필요한 자료를 찾아보고 자신의 언어로 관련 내용을 정리하세요.
- 마스터 호눅스
•
호눅스 말에 따르면 우리의 뇌는 '단순 읽기'와 '강의 시청'에 따라 효과적으로 기능하지 않는다. 그렇기 때문에 6개월 동안 유명한 강의를 듣고 여러 서비스를 클론코딩 했지만 정작 내가 주도해서 서비스를 설계하려고 하니 꽉 막혔던 것이다.
→ 호눅스의 말에 대한 출처를 찾아보니 아래와 같은 자료를 발견했다.
image from https://news.joins.com/article/22191682
나. 익숙함을 넘어 이해로
•
정보의 익숙함에서 벗어나자. 앞서 말한 6개월 삽질의 결과는 일부 웹 개발 정보에 그저 익숙해진 것이다.
•
커리큘럼의 각 과정의 학습목표에 따라 관련 지식을 이해하자. 커리큘럼에서 제공하는 소중한(?) 미션을 직접 해결해보며 학습목표를 달성해보자. 지식을 공유할 기회가 있다면 적극적으로 나서보자.
→ CS10 과정까지는 아는 것이 없어서 지식을 공유하지 못했지만 자바 과정부터는 보다 적극적으로!
2. 학습방법 수정
인터넷 검색으로는 한계가 있다. 입문서를 바탕으로 지식의 톱니바퀴를 얻자.
가. 학습방법에 심각한 문제가 있다...
•
CS과정에서 요구하는 지식이 제대로 쌓이지 않았다. '학습목표'와 '배경지식'에 제시된 키워드를 중심으로 인터넷으로 검색하며 공부했다. 그런데 미션을 해결하기는 커녕 관련 분야에 대한 감조차 잡히지 않는 경우도 있었다.
•
4주차, '비동기프로그래밍'에서 좌절감은 극에 달했다. 아무리 관련 키워드에 대한 여러 블로그의 글을 보아도 도저히 비동기프로그래밍의 관점에서 미션을 해결하기 위한 실마리가 보이지 않았다.
•
같은 그룹원인 'K'가 눈에 들어왔다. 'K'는 비동기프로그래밍에 대해 처음으로 공부하는 상태라고 밝혔음에도 불구하고 90명 중 6번째로 미션을 해결하고 결과를 제출했다!?
나. 'K'는 책을 읽더라?
•
'K'(이하 그)와 나의 학습방법에 어떤 차이가 있는 지 생각했다. 가장 먼저 떠오르는 것은 '책'이었다. 그는 호눅스가 추천하는 책을 수시로 읽는다고 했다. 그를 따라서 마스터가 추천하는 책 중에서 기본서를 다수 구매했다. CS 주제를 처음 접하면 검색이 아니라 책을 보고 관련 내용을 정리하기 시작했다. 특히 입문서(자바의 정석, 데이터베이스 첫걸음 등)를 많이 참고했다.
•
유레카!! 인터넷 정보에 생략되어 있는 지식의 최소 구성요소들이 입문서에 있구나!
다. 입문서의 힘
•
자바의 정석
→ before: 그룹원들의 코드를 읽고 코멘트 주고 싶지만 코드가 읽히지 않았다... 모르는 단어가 너무 많아서
→ after: 코드가 읽힌다. 적절한 객체나 메소드를 추천할 수 있고 그 이유를 설명할 수도 있다.
•
객체지향의 사실과 오해
→ before: 객체지향이란 실세계의 구성요소를 클래스로 구현하는 것
→ after: 객체지향의 목표는 실세계 모방이 아니라 새로운 세계를 창조하는 것. 그 수단은 메시지에서 기능과 구조를 뽑아내는 것
•
데이터베이스 첫걸음
→ before: 무엇을 모르는 지 모르는 상태
→ after: RDBMS가 짱이야. 왜냐하면 Record의 단일성을 보장하는 설계 노하우가 발달해 있고, 높은 수준의 트랜잭션을 제공하기 때문이지
•
HTTP Network Basic
→ before: 무엇을 모르는 지 모르는 상태
→ after: 나와 당신이 어떤 원리로 카톡(옛 버전, https 사용)을 주고 받을 수 있는지 OSI 7계층 모델을 통해 설명할 수 있다.
3. 아쉬운 점
가. 용기내서 질문해보자
•
이런 질문을 하면 남들이 나를 어떻게 볼까라는 생각에 사로잡혀 있다. 남들은 생각보다 나의 무지를 흉보지 않는다. 모른다면 예의를 갖춰서 질문해보자.
나. 적극적으로 활동하자
•
그룹활동에 적극적이지 못했다. 지식을 조금이라도 나눌 수 있는 기회가 있다면 적극적으로 나서보자. 지식을 공유하는 것은 최고의 학습방법이니까.
다. 코드로 말하자
•
지식을 이해하는데 집중하느라 미션해결에 소홀했다. ‘개발자는 코드로 말한다’는 말따라 보다 코드 작성에 시간을 할애하자.
참고) 용어정리
•
이해하다: 경험과 배경 지식에 기반을 두고 특정 정보를 정리하여 알게 되다.
•
익숙하다: 경험과 배경 지식에 기반을 두지 않고 특정 정보에 여러 번 노출된 상태에 있다.
•
학습방법: 학습이라는 목적을 이루기 위한 수단
•
학습방식: 학습방법의 일정한 흐름 또는 학습방법의 큰 틀
이해하다: 깨달아 잘 알다.
→ 깨닫다: 사물의 본질이나 이치 따위를 생각하거나 궁리하여 알게 되다.
익숙하다: 어떤 일을 여러 번 하여 서투르지 않은 상태에 있다.
방법: 어떤 일을 해 나가거나 목적을 이루기 위하여 취하는 수단
방식: 일정한 방법이나 형식
설정하다: 새로 만들어 정해 두다.
수정하다: 바로잡아 고치다.
출처: 표준국어대사전