🌈 사람과 컴퓨터가 다르다는것을 인지하자.
사람은 직관적으로 생각하는 습성이 있다. 사람은 어떠한 질문을 받을 때 직관적으로 떠오른 것을 대답한다.
같은 문제를 낼 때 컴퓨터(또는 컴퓨터 프로그램)라면 안다와 모른다를 1초 안에 답할 수 있을까?
성능이 매우 뛰어난 컴퓨터가 아니라면 어렵다. 컴퓨터는 자신이 이 단어를 아는지 모르는지 판단하기 위해 컴퓨터에 저장된 단어를 모두 찾아봐야 한다. 이렇듯 사람과 컴퓨터는 사고하는 방식이 다르다.
예시를 하나 더 들어보자. 자주 가는 동네 편의점에서 물건을 산 뒤에 핸드폰을 보며 집으로 돌아갈 때, 핸드폰에 집중하다가 정신을 차려 보니 어느덧 자신의 집 앞임을 알아차릴 때가 있다. 사람이 이렇게 할 수 있던 것은 무의식의 도움이거나 몸이 기억하기 때문이다.
'편의점에서 나와 100m 직진하고 우회전해 200m를 가서 다시 좌회전해 50m를 가면 집이 나온다'라는 정확한 명령이 없어도 사람은 무의식에 의존해 집에 도착 할 수 있다.
컴퓨터도 사람과 같은 방식으로 집에 도착할 수 있을까? 컴퓨터에는 무의식이 없으므로(물론 의식도 없다) 무의식적으로 원하는 것을 수행할 수 없다. 컴퓨터에 명령을 내리려면 명확한 절차와 순서를 알려줘야 한다. '편의점에서 나와 100m 직진하고 우회전해 200m를 가서 다시 좌회전해 50m를 가라'고 구체적으로 명령을 입력해야 한다. 설령 컴퓨터가 길을 기억하고 있다 하더라도 적어도 '저장된 길을 찾아서 그대로 가라'는 명령이라도 입력해야 컴퓨터는 집에 도착할 수 있다.
이렇듯 사람은 대부분 직관적으로 생각하고 무의식적으로 행동하는 경우가 많지만, 컴퓨터는 알아서 할 수 없다. 현존하는 최고의 인공지능도 이 수준에는 다다르지 못했다(요즘은 모르겠다..). 아직도 대부분 프로그램은 정확한 명령과 절차를 통해 작동한다. 문제는 대부분의 사람이 컴퓨터에 정확하게 명령하기는 커녕 자신이 평소에 하는 행동조차 어떠한 절차로 이뤄지는지 제대로 설명하지 못한다는 것이다.(나..임)
따라서 나는 나의 행동이나 프로그램이 수행하길 원하는 행동을 명확한 순서와 절차로 설명할 수 있게 꾸준히 연습할 것이다. 행동의 순서와 절차를 명확하게 설명 할 수 있게 된다면 나는 프로그래밍 사고력을 갖추게 된 것이다.
참고: 렛츠기릿 자바스크립트 (저자: 조현영)