왜 선배들은 Hello World를 찍으라할까?

1,727 단어·4 분·원문(.md)

선배들에게 기술적인 역량을 증진시키기 위한 방법에 대해 자문을 구하면 자주 듣는 조언중에 하나가 바로 Hello World을 찍어보라는 조언일 것이다.

물론 Hello World를 찍고 땡이라는 말은 아니겠지만, 시작이 반이라는 것을 의미하면서도 또 가지각색의 의미를 담고있는 조언이라고 생각한다. 나 또한 누군가가 나에게 어떤 기술을 익히고 싶은데 어디부터 시작해야할지 막막하다고 묻는다면 어떠한 방식이든 Hello World를 출력하라고 해볼것이다.

터미널에 띄우게 할수도 있고, 메모리에 저장해볼수도 있고, 디비에 저장해볼 수도 있고 가지각색이다. 그 이후에는 input/output 기능을 활용해보고 조금 더 고도화 시키는 것을 (형체가 어떻든) 연산에 행위를 직접적으로 트리거시켜 보는것과 아닌것은 매우 큰 이해도 차이를 만들어 낼 수 있다고 생각한다.

물론 직접 출력해보는 것 자체가 큰 차이를 만드는 것은 아니지만, 직접 해봄으로써 또 색다른 궁금증들이 만들어질 수 있을것이라고 생각하고 이 궁금증들은 그 다음 스텝의 학습으로 이어지게 해줄 수 있다고 생각한다.


output 기반의 학습 #

보통의 학습이라 함은 수많은 input을 일단 집어놓고 보는 학교식 시험대비 공부방법을 많이들 할거라고 생각한다. 왜냐면 우리 대한민국에서 교육과정 (초-중-고-대(tbd)) 커리큘럼을 따라왔다면 더더욱 그럴것이다. 그곳에서는 시험 점수에 대한 룰이 절대적이며 평가된 점수로 등수를 매기고 인정받기 때문이라고 생각한다.

개발을 공부할때도 일단 input들을 많이 때려박는것이 좋다고 생각하는가? 여기에 yes라고 대답하는 개발자들은 거의 없을것이다. (적어도 자격증 시험을 제외하고 본질적인 개발에 대한 것이 목표라고 하면 말이다.) input만 넣는것은 비효율적이다라는 명제는 개발이라는 분야에서만 속하는 것이 아니기도 하다.

소프트웨어 개발은 형체가 존재하지 않는 무언가를 만드는 것이고, 형체가 존재하든 어떤 방식이든 무언가를 개발해내고 세상 밖으로 내보내 혁신하려고 하는 사람들은 모든 것을 다 알기가 힘들것이다. 속도가 너무 느리고 빠르게 변화하는 시장에서도 적응하기 힘들 수 있다.

그렇기에 mvp든 애자일이든 여러가지 방법론들이 나오고 있으며, 학습또한 마찬가지로 output 기반으로 진행하는 것이 좋다. 일단 무언가를 만들어보게 목표를 세팅해두고 이 목표를 이 output을 만들기 위해서는 어떤 방향으로 걸어가야하는지에 대한 input들을 그때가서 효율적으로 탐색할 수 있다.

브루트포스로 모든 지식에 대한 학습을 하다보면 모든 지식들의 가중치가 1로 동일하여 어느것이 중요한지 알수없으며, 눈에도 잘 안들어온다. 가중치가 적을수록 중요하지 않다고 생각해 뇌가 기억하지 않으려고 하거나, 아니면 모든 것이 중요하다고 생각해 뇌에서 인지부하로 인해 진행하기가 힘들것이다.

output 기반은 그렇지 않다. 일단 어떤 방식이로든 정답은 없지만 핵심적으로 필요할 거같은 input들이 보일것이다. 뭐가 필요한지 어떻게 보이냐고? 만들다보면 막히지 않겠는가. 스스로 물음표를 띄우지 않겠는가. 스스로에 대한 물음표가 당신이 필요한 input중에서 가장 가중치가 높은 지식으로 식별하면 된다.


Hello Wolrd #

자 다시 돌아와서 Hello World라는 의미는 일단 output을 만들라는 의미와도 같다. 즉 물음표들을 많이 만들어 특정 input에 가중치를 두라는 의미다. output이 많아질수록 내가 필요한 input들도 많아진다. output이 없으면 필요한 input이 존재하지 않는다.

결론은 Hello Wolrd를 찍어보라는 조언 그 자체는. output을 많이 만들라는 뜻이다. 개발적으로 표현하면 당신의 검색엔진이 지금 어떤것이 목표인지 알고리즘이 학습되어 있지 않으니 명확한 output을 세팅해 튜닝시켜라. 스스로 학습하게 만들어라. 스스로 생각하고 그때그때 필요한 지식을 담아 놓아라 라는 뜻이다.

그리고 어느정도 output이 많이 쌓였다면, 그렇지만 더 깊숙한 개념들이 궁금할때가 올것이다. 그때 input을 한번 크게 올려서 좀더 넓은 범위로 책을 보거나 문서를 정독하는 공부법을 진행해보아라. 그럼 이미 이해되는 내용들은 빠르게 넘길 수 있을것이고 새로운 지식에 대한 희열감과 재미에 당신은 폭발적으로 성공할 것이다.

튜닝은 어느 하나가 극단적이면 비효율적이다. 컴퓨터 자원도 그렇지만, 당신의 전략도 마찬가지다. 당신의 뇌도 마찬가지다. 그렇기에 정확한 output/input 비율로 당신의 학습 엔진을 튜닝시키고 효율적으로 학습해보자. 정신차린 순간 당신은 전문가가 되어있을 것이다.

Essentials/helloworld.md