개발자로서 공부한다는 것
우리는 거의 20년을 학교에서 보낸다. 정해진 항목을 모두 통과하면 성공할 수 있다고 약속하는 시스템을 따른다.
“이것과 저것을 해내면, 그에 맞는 보상이 따라와야 한다.”
하지만 현실은 그 약속대로 움직이지 않는다. 대학 시절 창업의 세계를 경험해 보지 않았다면, 학교에서 얻은 지식과 학위의 가치가 교실 밖에서는 생각보다 제한적이라는 사실을 너무 늦게 깨닫기 쉽다.
금융업을 떠나 컴퓨터과학 석사과정을 시작한 뒤, 대학 수업만으로는 실무에 필요한 깊이를 채우기 어렵다는 사실을 빠르게 알게 됐다. 기초는 반드시 필요하다. 다만 많은 내용이 이미 오래됐고, 오늘날 기술 산업이 요구하는 속도를 따라가지 못한다.
대학의 잘못이라고 탓하며 논쟁할 수도 있다. 하지만 누구의 책임인지 따지는 것만으로는 달라지는 것이 없다.
그렇다면 왜 코딩을 하는가?
인터넷에는 최신 React 프레임워크와 인기 있는 알고리즘, 코딩 면접 통과법을 가르쳐 준다는 유료·무료 강의가 끝없이 쏟아진다.
성공적인 개발자가 되려면 지식을 많이 쌓고 여러 도구를 능숙하게 다루는 것이 전부라고 생각하기 쉽다.
어느 정도는 맞는 말이다.
하지만 코딩의 핵심은 비즈니스의 요구를 해결책으로 바꾸는 일이다.
코드의 가치는 다른 사람의 실제 문제를 해결할 때 비로소 생긴다. 내 문제만 해결하는 것으로는 충분하지 않다.
누군가 비즈니스 문제를 직접 건네주기를 기다릴 필요는 없다. 다만 코딩의 본질이 문제 해결과 비판적 사고에 있다는 태도는 필요하다.
나 역시 어디에도 이어지지 않는 작은 프로젝트만 반복해서 만들던 때가 있었다.
이것저것 조금씩 배우면서도 그다음 단계로 나아가는 법은 제대로 알지 못했다.
그래서 배우는 방식을 바꿔야 했다.
배움은 암기를 넘어선다. 왜 이것을 공부하는지 스스로 납득할 수 있어야 동기도 오래간다.
개인적인 목표나 해결하고 싶은 문제와 연결하면 공부가 훨씬 현실적으로 다가온다.
- 먼저 큰 그림을 이해한다.
- - 이 개념은 왜 중요한가?
- - 더 큰 맥락에서 어디에 놓이는가?
- 그다음 작은 부분으로 나눈다.
- - 각 조각이 전체와 어떻게 연결되는지 확인한다.
어려운 부분을 만나면 곧바로 답을 찾지 말고, 먼저 해결해야 할 문제로 바라본다.
- 충분한 시간을 들여 직접 생각한다.
- 해답을 찾아볼 때도 무엇이 정답인지보다 왜 그렇게 되는지에 집중한다.
AI 시대에 가치 있는 사람이 되려면
AI는 소프트웨어 엔지니어와 연구자가 맡아 온 단순하고 반복적인 업무를 점점 더 대신하게 될 것이다.
다른 사람과 차이를 만들려면 최신 연구를 꾸준히 읽고 이해하는 일이 그 어느 때보다 중요하다.
arXiv는 최신 연구 논문을 찾는 검색엔진과도 같다.
올해 초 AI 엔지니어인 친구가 이런 말을 했다. 최신 연구 논문 15편만 제대로 읽고 완전히 이해해도, 시장에서 대부분의 사람이 생각하는 것보다 훨씬 가치 있는 사람이 될 수 있다고.
그런데 왜 더 많은 사람이 그렇게 하지 않는지 궁금해진다.
-- david