Search
📜

회고 - Computer Science Course

1. 학습방식 설정

읽고 들으며 익숙해지지 말고, 구현해보고 지식을 나누며 이해하자.

가. '단순 읽기'와 '강의 시청'에서 벗어나자

자료를 읽고 강의를 들으며 학습하는 것은 큰 효과가 없어요. 여러분 스스로 미션해결에 필요한 자료를 찾아보고 자신의 언어로 관련 내용을 정리하세요. - 마스터 호눅스
호눅스 말에 따르면 우리의 뇌는 '단순 읽기'와 '강의 시청'에 따라 효과적으로 기능하지 않는다. 그렇기 때문에 6개월 동안 유명한 강의를 듣고 여러 서비스를 클론코딩 했지만 정작 내가 주도해서 서비스를 설계하려고 하니 꽉 막혔던 것이다.
→ 호눅스의 말에 대한 출처를 찾아보니 아래와 같은 자료를 발견했다.

나. 익숙함을 넘어 이해로

정보의 익숙함에서 벗어나자. 앞서 말한 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. 아쉬운 점

가. 용기내서 질문해보자

이런 질문을 하면 남들이 나를 어떻게 볼까라는 생각에 사로잡혀 있다. 남들은 생각보다 나의 무지를 흉보지 않는다. 모른다면 예의를 갖춰서 질문해보자.

나. 적극적으로 활동하자

그룹활동에 적극적이지 못했다. 지식을 조금이라도 나눌 수 있는 기회가 있다면 적극적으로 나서보자. 지식을 공유하는 것은 최고의 학습방법이니까.

다. 코드로 말하자

지식을 이해하는데 집중하느라 미션해결에 소홀했다. ‘개발자는 코드로 말한다’는 말따라 보다 코드 작성에 시간을 할애하자.

참고) 용어정리

이해하다: 경험과 배경 지식에 기반을 두고 특정 정보를 정리하여 알게 되다.
익숙하다: 경험과 배경 지식에 기반을 두지 않고 특정 정보에 여러 번 노출된 상태에 있다.
학습방법: 학습이라는 목적을 이루기 위한 수단
학습방식: 학습방법의 일정한 흐름 또는 학습방법의 큰 틀
이해하다: 깨달아 잘 알다. → 깨닫다: 사물의 본질이나 이치 따위를 생각하거나 궁리하여 알게 되다. 익숙하다: 어떤 일을 여러 번 하여 서투르지 않은 상태에 있다. 방법: 어떤 일을 해 나가거나 목적을 이루기 위하여 취하는 수단 방식: 일정한 방법이나 형식 설정하다: 새로 만들어 정해 두다. 수정하다: 바로잡아 고치다. 출처: 표준국어대사전