프로그래머의 학습법

2024-10-10 hit count image

프로그래머가 새로운 언어를 배울때, 할 수 있는 학습 방법에는 어떤 것이 있는지 알아보도록 하자.

다음은 프로그래머가 새로운 언어를 배울 떄 사용하면 좋은 방법이다.

뭘 만들지 생각하며 튜토리얼을 읽는다

새로운 언어의 튜토리얼을 읽을 때, 구체적인 프로그램을 염두해 두고 읽다가, 프로그램을 작성할 수 있겠다는 생각이 들면 읽기를 멈추고 해당 프로그램을 코딩한다. 현재 읽은 튜토리얼로 작성이 가능한 부분을 완성하면 읽기를 멈춰섰던 곳으로 돌아와 다시 읽는다. 물론 이때도 작성할 프로그램의 다음 부분을 염두해 두면서 읽는다.

예를 들어 ‘할일 목록 만들기’, ‘단어 개수 세기’ 등과 같이 구체적인 프로그램을 목표로 두고 튜토리얼을 읽는 것이다. 이렇게 목표를 세우고 튜토리얼을 읽으면 ‘이 언어에서는 루프는 어떻게 작성하지?’, ‘출력은 어떻게 하지?’ 등과 같은 질문들을 갖고 적극적으로 읽게 된다.

이런 읽기 방법을 적극적 읽기라고 한다. 적극적 읽기는 구체적인 질문이나 목적을 가지고 읽는 방법을 말한다. 교육학에서는 수동적으로 읽는 것보다 적극적으로 읽는 것이 이해도나 기억력 등에 긍정적인 효과를 보인다고 한다.

SQ3R 독서법

이런 적극적 읽기 방법중 가장 대표적인 방법은 SQ3R(Survey, Question, Read, Recite, Review) 독서법이다. SQ3R은 미국의 교육심리학자 로빈슨(Francis P. Robinson)이 효과적 공부법(Effective Study, 1946)에서 처음 소개한 방법이다.

SQ3R 독서법은 다음과 같은 단계로 진행된다.

  1. 개관하기(Survey)

개관하기(Surbey)란 책을 읽기 이전에 책 전체와 각 장의 내용을 전체적으로 빠르게 훑어보고, 주요 개념들 사이의 관계를 파악하는 것을 말한다. 개관하기는 아래와 같은 방법으로 진행된다.

  • 공부할 장(chapter)의 대제목을 기억한다.
  • 그 장의 소개, 개요, 학습목표 등을 재빨리 읽는다.
  • 중제목과 소제목, 도표 제목에 주목한다.
  • 굵은 글씨, 기울인 글씨, 밑줄친 부분 등 중요 개념을 보여주는 단서를 찾는다.
  • 장별 요약을 읽는다.
  • 주요 개념 목록을 살펴본다.
  1. 질문하기(Question)

질문하기(Qustion)란 개관하기를 바탕으로 질문을 던지는 것을 말한다. 질문하기 방법은 다음과 같다.

  • 제목에 나온 개념의 정의에 대한 질문을 던진다: ⚪︎⚪︎이란 무엇인가?
  • 개념의 특성에 대한 질문을 던진다: ⚪︎⚪︎의 특성은 무엇인가?
  • 개념들 사이의 관계에 대한 질문을 던진다: ⚪︎⚪︎과 △△사이의 관계는 무엇인가?
  • 제목의 표현을 활용한 질문을 던진다: 제목 - ⚪︎⚪︎의 필요성 → 질문 - ⚪︎⚪︎의 필요성은 무엇인가?
  • 자신의 배경지식에 대한 질문을 던진다: 나는 ⚪︎⚪︎에 대해 얼마나 알고 있는가?

질문하기는 이렇게 책을 읽으면서 질문을 하는 것이다. 이렇게 책을 읽으면서 질문한 내용을 별도로 적어두고 학습 중에 확인하는 것 또한 좋은 방법이다.

  1. 정독하기(Read)

정독하기(Read)란 1단계와 2단계를 바탕으로 본문을 읽음으로써 자신이 던진 질문에 대한 해답을 찾아가는 과정을 말한다. 질문에 대한 답을 찾기 위해 책을 읽음으로써, 책을 읽은 후에 내용을 좀 더 오래 기억할 수 있게 된다. 이는 시험 대비에 있어서도 내용을 더 정확하게 기억해내는 데 큰 도움이 된다.

  1. 암송하기(Recite)

암송하기란 읽은 내용에 대한 망각을 예방하기 위한 중요한 과정이다. 암송하기는 자신이 안다고 생각하는 것을 직접 적어봄으로써 자신이 실제로 내용을 얼마나 이해하고 있는지 확인하는 방법이다. 암송하기는 아래와 같은 방법으로 진행된다.

  • 자신이 만들었던 질문을 살펴본다.
  • 책을 보지 않고 그 질문에 대한 자신의 답을 크게 낭송하거나 종이에 적는다.
  • 답은 최대한 완전하게 적도록 하며, 이해를 돕기 위해 개요, 도표, 도식, 공식의 형태로 적어볼 수도 있다.
  • 책이나 필기와 비교하여 답을 확인한다.
  1. 복습하기(Review)

복습하기(Review)란 학습한 내용을 정기적으로 그리고 종종 다시 암송하는 것을 말한다. 복습하기는 특히 시험을 대비하는 데 있어서 매우 효과적인 방법이다. 복습하기는 아래와 같은 방법으로 진행된다.

  • 본문과 필기를 다시 읽으면서 중요한 부분을 확인한다.
  • 어려운 부분은 별도로 암기 카드를 만드는 등의 방법을 이용하여 기억한다.
  • 복습한 내용을 테스트해서 이해 정도를 확인한다.
  • 배운 부분에 관해 자신만의 목차와 개념 지도를 구성해 본다.

공부할 때 표준 라이브러리의 소스 코드를 읽는다

좋은 코드를 작성하기 위해서는 좋은 코드를 읽어봐야 한다. 표준 라이브러리는 보통 해당 언어를 발명한 사람이나 해당 언어의 스타일을 따르는 사람들이 작성한다. 그래서 표준 라이브러는 가장 그 언어다운 코드들로 구성되어 있으며 이런 코드들을 통해 해당 언어의 문화와 스타일을 익힐 수 있다.

이런 문화와 스타일을 따르는 것은 프로그램의 기능 차이는 가져오지 않을 수 있지만 프로그램 작성 비용과 유지보수 비용을 줄일 수 있다.

공부중 다른 사람의 코드에 내가 필요한 기능을 추가한다

자신이 공부하고 있는 언어로된 오픈 소스에 자신이 필요한 기능을 붙여 본다. 실제 사용중인 코드를 수정해 봄으로써 해당 언어를 잘하는 사람들에게 피드백을 받을 수 있으며 오픈소스 커뮤니티와 교류할 수 있다.

전문성을 효과적으로 뽑아내는 전문가 되기

전문가로부터 비결을 전수 받아 그 비결을 실행해 본다. 주변 전문가들의 전문성을 뽑아내고 적용하는 것이 자신의 전문성을 빨리 높일 수 있는 방법이다. 전문가들에게 비결을 물을 때 ‘프로그래밍 언어를 빨리 배우는 비결은 뭔가요?’라고 물으면 그다지 유용한 대답을 얻어 낼 수 없다. 전문가들은 이런 질문을 받으면 일반적인 답을 하거나 실제 자신의 행동과 다른 이론적인 답을 하는 경향이 있다.

이때, 인지적 작업 분석을 활용하면 전문가의 전문성을 뽑아 낼 수 있다.

인지적 작업 분석을 활용하여 전문가들에게 비결을 물을 때는 구체적인 사건에 대해 말하도록 유도해야 한다. 가장 최근에 학습한 언어가 무엇인지, 그 언어를 학습하기 위해 시간때 별로 한 행동은 무엇인지 등을 물으면서 암묵적인 의사 결정과 상황 판단이 무엇인지 파악하는 것이다.

뭔가 잘하고 싶다면 이미 잘하는 사람을 관찰하고 인터뷰하는 것이 큰 도움이 될 것이다.

완료

이번 블로그 포스트에서는 프로그래머가 할 수 있는 학습 방법에 대해서 알아보았습니다. 혹시 새로운 언어를 학습 중에 있거나, 프로그래머가 되기 위해 노력하고 있는 분들이 있다면 이 글을 참고하여 공부해 보시기 바랍니다.

제 블로그가 도움이 되셨나요? 하단의 댓글을 달아주시면 저에게 큰 힘이 됩니다!

앱 홍보

책 홍보

블로그를 운영하면서 좋은 기회가 생겨 책을 출판하게 되었습니다.

아래 링크를 통해 제가 쓴 책을 구매하실 수 있습니다.
많은 분들에게 도움이 되면 좋겠네요.

스무디 한 잔 마시며 끝내는 React Native, 비제이퍼블릭
스무디 한 잔 마시며 끝내는 리액트 + TDD, 비제이퍼블릭
[심통]현장에서 바로 써먹는 리액트 with 타입스크립트 : 리액트와 스토리북으로 배우는 컴포넌트 주도 개발, 심통
Posts