관리 메뉴

제뉴어리의 모든것

[Section1] Learn How To Learn 본문

코드스테이츠/정리 블로깅

[Section1] Learn How To Learn

제뉴어리맨 2022. 6. 23. 16:55

[Section 1]
[학습 방향] Learn How To Learn

 

  • 의사코드 (pseudo code) 작성

의사코드란 프로그래밍 코드로 작성하기 전에 먼저 사람의 언어로 논리적으로 과정을 정리 작성하는것.

 

작성 예)

 

- 문제

"덮여진 전화번호부에서 "홍길동" 이란 사람의 전화번호를 찾아서 전화를 거는 알고리즘을 작성해보아라" 란 문제가 주어진다면 (사람의 직감으로 전화번호부의 끝에 있으니까 찾아보는 방법 말고 컴퓨터에게 작업을 맡길 경우 적용 가능한 알고리즘을 말한다)?

여러 알고리즘이 있을것이다.
처음 부터 한장한장 찾아보는 기본적인 방법도 있고 그외의 여러 방법이 있겠지만 나는 전화번호부를 대충 반으로 펼치고 해당 페이지에서 "홍길동"이란 사람의 이름을 확인해볼것이다. 그리고 없다면 해당 페이지의 자음, 모음 상태를 확인하여 반을 기준으로 오른쪽의 반인지 왼쪽의 반인지를 확인할것이다. 그리고 만약 오른쪽의 반이라면 왼쪽의 반은 이제 찾아볼 필요가 없기에 제외 시킨다. 그리고 다시 그 오른쪽의 반을 또 반으로 나눠 위에 과정을 반복한다.
그렇게 "홍길동"이란 사람을 찾을 때까지 반복하는 방법이 있을 것이다.
이것을 의사코드로 표현하자면,

 

1 : 전화번호부를 든다
2 : 전화번호부의 반을 펼친다.
3 : "홍길동"이란 이름을 찾는다
4 : 만약  "홍길동"이란 이름 존재하다면 
5 :     전화를 건다. 
6 : 만약 "홍길동"이란 이름이 왼쪽의 반쪽에 있다면
7 :     오른쪽 반쪽을 버리고 1번으로 이동한다
8 : 만약 "홍길동"이란 이름이 오른쪽의 반쪽에 있다면
9 :     왼쪽 반쪽을 버리고 1번으로 이동한다
10 : 만약 모든 경우에 속하지 않는다면
11 :     포기한다

 

이 정도로 표현 할 수 있을 것이다.
코드로 작성하는것이 아니라 그냥 사람의 언어로 번호를 찾는 과정을 체계화 하는것이다.
이렇게 설계된 내용을 각 언어에 맞게 코딩을 해주면 되는것이다.
코드를 짜보기 전에 내 스스로 루틴이 정립되어 있어야 하기 때문에 매우 효율적인 방법인것 같다. 

 

  • 학습전략

- 필요성 :

학습에 필요한 시간이 절대적으로 부족하거나, 각자의 이해 능력이 다르기 때문에 한정된 시간안에 학습내용을 숙지 하기 위해서는 본인만의 효율적인 학습 방법이 필요하다.

 

- 학습 전략의 예
TIL이란? Today I Learned. 오늘 내가 학습한 것들을 기록하는 방법.

여러 방법이 있겠지만 블로그에 작성하는 방법이 가장 편리한 방법일 것이다.

 

- 블로그 작성 방법

1. 내일 배울 내용 리스트업 
    리스트 내용들의 주요한 항목들을 추려낸다.
2. 세부 개념
     학습에 들어가기 앞서서 학습과정 혹은 학습 목표에서 리스트업 한
     내용별로 중요 내용들을 리스트업 항목에 세부적으로 적는다.
3. 체크하기
    학습하며 세부적으로 적은 항목들을 제대로 이해하였는지를 체크한다

4. 체크 안된 부분 공부하기
    1 단계 : 다시 읽는다
    2 단계 : 검색
    3 단계 : 질문  


5. 위에 과정을 거쳤음에도 해결 되지 않은 부분을 넘어간다
    안풀린 부분에 멈춰 있지말고 다음 진도로 넘어가며 학습하되 부족한 부분을 따로 시간을 내 학습한다.