코딩 할 때 머리가 복잡해 진다는 것은 문제를 define 못했다는 뜻

hur-kyuh-leez·2022년 5월 9일
0

계속 해서 새로운 것을 배워야 하니,
코딩을 할 때 머리를 최대한 적게 쓰려고 해야 한다.
머리를 최대한 적게 쓰기 위해서는 문제를 가장 작은 단위로 쪼개야 한다.
흔히 말하는 divide and conquer 이다.

좋은 코드에 한가지 함수에 한가지 문제를 넣어야 하는 것 처럼.
우리도 한가지 머리에 한가지 문제를 가지고 풀어야 한다.
이것, 저것 "메모리"에 넣어 두고 풀려고 하면 머리만 복잡해진다.
(맞다, 머리가 복잡 하다는 것은 cpu가 버벅 거리는 것 보다, "메모리"가 과부하가 와서 그렇다. 이럴 때는 자서 중요 메모리를 하드로 옴기고 메모리 리셋을 해줘야 한다. cpu가 과부화 될 때는 신체적으로 머리에 피로가 쌓였거나 당이 떨어져서 그렇다. 그래서 이해력이 떨어지게 된다.)
나는 그래서 trello / 종이노트에서 내가 지금 풀어야 할 문제를 define 하는데 많은 시간을 할애 한다.

코드를 읽을 때도 마찬가지 이다.
짤막, 짤막하게 코드를 읽을 때는 쉽다.
짤막 짤막한 코드를 다 연결하여 한번에 떠올리기는 물론 어렵다.
그러나, 짤막 짤막하게 이미 코드를 이해했기 때문에 가능하다.

반대로,
한꺼번에 코드를 이해 하려고 하면 정말 어렵다.

그러니 divide and conquer를 잊지 말자.
프로그래머는 지식을 쌓아 재사용 하는 걸 목적을 두는게 아니라
문제 푸는 과정에서 지식이 쌓일 뿐이고,
본 목적은 풀이 과정 즉, 알고리즘을 배우는 것 라는 것을 잊지 말자.

profile
벨로그에 생각을 임시로 저장합니다. 틀린건 틀렸다고 해주세요 :) 그래야 논리 학습이 강화됩니다.

0개의 댓글