4주차가 이미 지나고 다음 코스를 위한 마지막 평가를 남겨둔 현 시점에서, 과정 회고를 남기는 것이 여태껏 해왔던 것처럼 몇 단락의 글을 더 쓰는 것 뿐인데 왜 이렇게 망설여지는지 모르겠네요. 아마도 2주차가 지났을 때는 느끼지 못했지만 프리 코스를 마칠 때 쯤이면 조금이라도 더 성장한 자신의 모습을 기대했었는데 현실은 그렇지 않은 것처럼 느껴지기 때문인 것 같습니다.

그나마 위안이 되는 것은 많은 과제들과 씨름하고 페어프로그래밍을 통해 자신의 수준이 어느 정도인지 좀 더 객관적으로 알 수 있게 되었고, 그런 자극을 통해 한 뼘이라도 더 성장한 것은 분명하다는 사실입니다. 이에 덧붙여 과제 해결하느라 많은 말을 나눌 수 없었지만 같이 페어가 되었던 동기 분들에게 이 글을 빌어 감사를 드립니다.

프리 코스를 시작하기 전과 지금을 비교하여 달라진 점을 느낀 순간은 바로 평가 준비를 하면서 예전에 풀었던 코드 문제들을 다시 접했을 때였습니다. 딱 맞아 떨어진다고 할 수는 없지만 몇 가지 예시를 들어 설명해 보도록 하겠습니다.

첫번째는 나무보다 숲을 먼저 볼 수 있게 되었다는 점입니다.

해당 문제를 간단히 요약하면 정수들을 요소로 갖는 배열과 임의의 정수가 주어졌을 때, 임의의 정수를 기존의 배열에 포함시키고 정렬할 경우 임의의 정수가 위치하는 인덱스 값을 구하는 문제입니다.

  • 처음 접근 방법은 아래와 같았습니다.
1. 임의의 정수를 배열에 포함시키기.
  - push()
2. 배열 정렬하기.(조건상 for, while loop 사용 금지)
  (1) 정렬된 배열을 위한 빈 배열 준비
  (2) forEach() 이용 반복
    - 최소값 구하기: Math.min()
    - 최소값 빈 배열에 추가: push()
    - 최소값을 제외한 배열로 기존 배열 갱신: filter()
3. 정렬된 배열에서 임의의 정수 인덱스 찾기.(조건상 sort, indexOf 사용 금지)
  (1) forEach() 이용 반복
    - 요소의 값이 임의의 정수와 같은지 비교
4. 찾은 인덱스 값 반환하기.
  • 다시 풀면서 접근 방법은 아래와 같았습니다.
0. 임의의 정수를 포함한 배열이 정렬되었다고 상상하고 상황 설명하기.
  - [ 0, 1, n, 3, 4] : n보다 작은 정수가 '2'개 있을 경우 3번째(인덱스 '2')에 위치
1. 배열 내에서 주어진 임의의 정수보다 작은 수들의 갯수 구하기.
  (1) 갯수를 나타내는 변수 count 선언
  (2) count 계산: forEach() 또는 reduce()
2. 계산된 count를 인덱스 값으로 반환하기.

두번째는 문제 해결에 대한 접근 방법을 단계별로 나누어 생각할 수 있게 되었다는 점입니다.

해당 문제를 간단히 요약하면 임의의 요소들을 갖는 2차원 구조의 배열에서 모든 숫자들의 합을 구하는 문제입니다.

  • 처음 접근 방법은 아래와 같았습니다.
1. 누적합을 나타내는 변수 sum 선언하기.
2. nested array내의 요소들에 접근하기.
  (1) 이중 for loop 이용 반복
    - 각 요소 데이터 타입 확인: typeof
    - 조건에 따른 실행: if
    - 데이터 타입이 숫자이면 누적하여 합
3. 누적합 결과값 반환하기.
  • 다시 풀면서 접근 방법은 아래와 같았습니다.
1. 2차원 배열 풀기: flat()
2. 데이터 타입이 숫자인 요소만 골라내기: filter()
3. 누적합 구하여 반환하기: reduce()

마지막 세번째는 혼자 중얼거리며 설명하면서 코딩하는 습관이 생겼다는 점입니다.

종종 무의식 중에 중얼거리다가 그런 자신을 인지하고 피식거리곤 하는데 별 것 아닌 것 같아도 은근히 집중력도 생기고 몰입감도 높아지는 것 같습니다.

최근 본 어느 영화에서 언어를 배운다는 것은 그 언어를 사용하는 이들처럼 사고하고 행동하게 되는 중요한 요인이라고 했던 것이 기억납니다. 결국 영화 말미에서 지구에 왔던 외계인들도 한 언어학자에게 자신들의 언어를 가르쳐주고 떠나게 되는데요.

언젠가 다시 지금을 돌아보면서 Computational Thinking을 위한 첫 단계로 썩 괜찮은 시작이였음 느낄 수 있는 날이 오길 바랍니다.

0개의 댓글