이번주에는 제대로 공부하지 못했다. 회사에서 공부할때 집중력있게 학습하지 못했다.
의식의 분산이 쉽게 일어나는 환경에서의 학습에 대한 전략이 부족했다는 생각이 든다. 단기적 목표를 평소 공부할때보다 더 잘게 나누어서 수행해야 집중력을 유지할 수 있을 것 같다.
이번주 목표로 아침부터 TIL 을 작성하기가 있었다. 일주일 중 5일 작성했다.
알고리즘 문제 풀이에서 한문제를 풀때 시간이 오래 걸리면서, 다른 계획들이 말려들어갔다. 자연스럽게 TIL 도 안쓰게 되었다.
이직을 위해 프로그래머스의 문제들을 풀어보고 있다. 지난주부터 시작했는데, 지난주에는 문제 하나를 하루 종일 붙잡고 있었다. 이번주에도 헤매다가 주말에 와서야 좋은 방법들을 찾으면서 풀이 효율이 상승했다. 좋았던 점과 개선할 점을 적어보자.
풀이 이후에 피드백이 부족했다. 코드를 다시 읽어보면서 좀 더 매끄럽게 읽히도록 고쳤지만, 스스로의 접근방법에 대한 평가나, 관련 알고리즘 개념에 대한 이해도를 평가하고 기록하는 측면이 부족했다. 문제를 많이 풀어서 잘하게 되는 것도 가능하지만, 그건 더하기적 사고 방식이다. 너무 느리다. 곱하기로 가려면 하나의 경험이 많은 변화를 일어나게 하도록 해야한다.
문제의 요구사항을 README 에 정리했다. 구하는것, 주어진것, 조건 이렇게 세가지 항목을 문제마다 작성했다. 코딩도장을 시작할때 부터 계속해오던 일이지만, 사실 기계적으로 하는 느낌이 강했다. 이번주부터는 항목을 작성하고 다시 읽어보면서 해당 정보를 이해하고 작성한것인지를 평가했다. 불명확한 부분이 있다면 문제에서 정보를 좀 더 찾아서 채웠다. 특히 조건항목은 문제에 난이도에 따라서 충분히 정리된 문제의 경우 적지 않았고, 정리가 안된 경우에만 적었다. 이렇게 적으면서 자연스럽게 셀프 피드백이 일어났고 문제의 정보를 효율적으로 학습할 수 있었다.
문제의 예시와 핵심 개념을 노트에 요약했다. 문제에서 나오는 개념을 몇단어로 간단하게 표현하기 위해 노력했고, 예시를 최대한 명확하게 그림으로 나타냈다. 예시를 직접 그려서 답을 찾아보는 과정이 엄청 유용했다. 동적 프로그래밍등 효율성을 평가하는 문제를 개인적으로 어려워하는데, 예시를 그려보면서 효율적으로 해결할 수 있는 방법을 자연스럽게 찾을 수 있었다. 추가적으로 REPL 을 많이 사용했는데, 문법적인 부분이나 구현 상세에 대한 피드백을 얻고 싶다면, 테스트 보다도 REPL 이 더 빨라서 좋다. 구현을 확인하려는 용도로 테스트를 사용하는것을 자제하자. REPL 과 테스트의 역할을 분리시키자.
나는 더하기가 아닌 곱하기 사고를 하는 사람이다. 자주 곱하기 위해 최선을 다하는 사람이다.