오이카와식 공부법
우선 제목을 보고 '오...'라는 생각이 들었다면 오이카와식 공부법이 뭐일지 찾아보지 마세요.
웃음이 먼저 나왔다면 그냥 모른척해주세요.
재능은 타고난 것일까?
보통은 타고난 능력을 재능이라고 하곤 한다.
그러면 반대로 재능은 타고났으니 재능이 없는 것 같다고 느껴지면 시작점이 낮은 것일까?
그럴 수 있다.
하지만 '시작점이 낮다' 혹은 '성장 속도가 느리다'는 걸로 가능과 불가능을 나눌 수 있을까? 그건 아니다. 물론 투자한 시간과 노력 대비 효율을 따진다면 가성비는 조금 떨어질 수 있다. 그렇지만 재능이 없다고 느낀다해서 그걸 핑계 삼아 합리화 시키는 행동은 좋지 않다고 생각한다.
(분야에 따라서, 타고난 정도에 따라서 당연히 재능의 영향이 매우 클 수도 있다는 걸 안다. 하지만 여기서 본인이 얘기하고 싶은 건 천재급과 그 정반대급의 극단적인 케이스를 제외한 경우라는걸 생각해주면 좋겠다.)
재능이란 건,
비유하자면 꽃봉오리, 혹은 씨앗 등이라고 생각한다.
누군가는 꽃봉오리일 수도 있고, 누군가는 씨앗일 수도, 누군가는 새싹일 수도 있다. 이 중 어떤 것이냐에 따라 꽃을 완전히 피우기까지 걸리는 시간과 들여야 하는 노력의 양은 각자 다를 것이다. 하지만 결국 꽃을 피울 것이다. 꽃의 모양도, 크기도, 색깔도 모두 다를지언정 그건 당연한 것이니, 비교하지 말고 어찌됐든 각자의 것을 피워보자. 솔직히 내 꽃은 아직 피지 못했다. 그리 대단하고 멋진 꽃이라고 기대하지도 않고, 빨리 피울 수 있을 것이라고도 생각하지 않는다. 그래도 재능은 꽃 피우는 것이라 하지 않았는가?(누가 그랬는진 MOLA^&^..) 결국엔 언젠간 피울 수 있다고 믿고 어떻게 피울지 궁리하는 것이 중요한 것 같다.
그 '어떻게'에 대한 고민을 요새는 많이 하는 것 같다. 이전에는 나는 개발자로서 재능이 없는 것 같다는 생각을 많이 했다면, 지금은 그런 쓸데없는 생각보다 실질적으로 어떻게 좋은 개발자가, 실력 있는 개발자가 될지에 좀 더 집중하기로 했다.
개블스 첫 번째 글에서 좋은 개발자가 되고 싶다는 이야기를 했다. 이쯤에서 다시 한 번 스스로 질문해보자.
좋은 개발자란 무엇인가?
머릿 속에 그리는 것을 문제없이 구현해내는 것도 중요하지만, 그보다 더 중요한 것은 '문제에 대해 적절한 방법으로 해결할 수 있느냐'인 것 같다. 그러기 위해선 문제를 정확하게 인식하고, 요구사항을 분석해내고, 해결 방안을 떠올려 구체적으로 설계하는 과정이 필요하다. 구현은 오히려 그 다음의 문제라는 의미이다. 개발을 처음 공부하다보면 특히 '구현'에 집착하는 경우가 많다. 구현만 잘 해내도 '그럼 된거 아닌가?'라는 마인드를 쉽게 갖기도 하는데, 이러한 과정들이 잘 선행되어야 구현도 잘 하게 되는 것이 아닐까 요즘은 생각이 든다.
요새 개발자들 면접을 보면, 코드는 잘 짜는데 "왜 이렇게 짰나요?" 물어보면 이유를 설명하지 못하는 사람이 굉장히 많다고 한다. 자기 코든데 설명도 못한다니, 생각해보면 제법 웃긴 일인데, 솔직히 웃을 수가 없는게 또 내 현실인 것 같다. 설명하지 못하는 이유는 뭘까? GPT가 짜줘서? 혹은 아무 생각 없이 손가락이 움직이는 대로 짜서?
뭐가 됐든 이런 현상은 정말 문제라고 생각한다.
개발에서 모든건 '선택'이라고 했다. 사소한 것 하나하나 당연한 것이 없고, 의미를 가진다는 의미이다. 모든 것이 선택인 상황에서 스스로 판단하고 결정하는 것은 분명 부담도 되고 쉽지 않은 일이다. 하지만 그럼에도 연습해보자.
세상에는 일명 '케바케'라는 만능 전제가 있다. 어떤 문제에 대해서도, 누구나 한번쯤 흔히 겪는 문제이고 그 문제에 대한 일반적인 해결방법이 있음에도, 그 방법이 내가 겪고 있는 문제에도 과연 fit한 방법일지 생각해보자. 구글링을 통해 남의 코드를 참고하는 것, gpt에게 물어 아이디어를 얻어보는 것 모두 다 좋다. 다만 '참고' 정도로만 해보고 최종적으로 어떤 방법이 좋을지는 스스로 고민하고 선택해보자. 이 과정을 지속적으로 반복하다보면 문제를 해결하는 힘이 생길 것이고, 이때부터는 어떤 문제를 마주하더라도 적어도 어떻게 바라보아야 할지 알 수 있을 것이다. 이 능력은 단기간에 얻을 수 있는 부분은 확실히 아닌 것 같다. 그만큼 너무 조급해하지 않고 꾸준히 이런 마인드로 공부를 하는게 맞는 것 같다. 시간과 성과에 너무 쫓기다보면 또 여태까지처럼 충분히 스스로 고민해보지 않고 코드를 짜게 될 확률이 다분해지기 때문이다.
이제는 냅다 화분에 물만 주는게 아니라 식물의 특성에 따라 물의 양과 빈도도 조절해주고, 햇빛을 적당히 쬐어주기도, 좋은 흙에 옮겨주기도 해보자. 그래도 자라는게 더디다고 느껴지면 하다못해 화분이라도 깨끗이 닦아주고 예쁜 말이라도 해줄만큼, 단순히 '해결'하는 것을 넘어보자. 그러다보면 어느새 눈부시게 성장해버린 나를 발견할지도? 노력에 숨겨진 재능충 소리를 들어버릴지도? ㄷ ㄷ