여러분, 어려운 문제만 고집할 필요가 없어요 🛠️
예전 글이지만 최근에 다시 읽어보니 공감되는 부분이 많아서 의역/요약본 공유해요. 원글: https://www.benkuhn.net/hard/ --- 2012년 - 인턴십 공채 시즌 "인터십에서 얻고자 하는 것은 뭔가요?" "엔지니어링적으로 어려운 문제들을 풀어보고 싶어요" 인터십 내내 복잡한 수학 공식을 푸는 함수를 최적화 했습니다. 그리고 개선 사항을 자랑스럽게 레쥬메에 넣었죠. 대학교 - 전공을 정해야 하는 시기 수학 빼고 모든 과목이 재미없었습니다. 왜인가 생각해보니 지루함을 느끼지 못할 정도의 복잡함을 자주 접했기 때문이었죠. 2014년 - 첫 직장 수학도 결국엔 지루해졌어요. 그래서 4학년 때 휴학을 하고 "힙한" 머신러닝 스타트업에서 일하게 됩니다. 논문을 읽고 모델을 최적화하는데 대부분의 시간을 할애했어요. 하지만 회사는 세일즈를 하지 못해 성장하지 못합니다 2015 ~ 16년 - Wave 사기 방지를 위한 간단한 로지스틱 회귀 모델을 구현했고 이는 회사에 큰 영향을 줬어요. 다음년 도에는 정말 볼품없지만 간단한 Postgres 쿼리와 트위터 Bootstrap UI로 누군가 남기고 간 일을 땜빵했더니 회사가 직면한 문제를 해결할 수 있었어요. 대학교를 거친 많은 엘리트들이 "엔지니어링적으로 어려운 문제를 푸는 것"이 인생의 목표 중 하나라고 생각하게 됩니다. 물론 모두 다 그렇지 않겠지만, 해커뉴스나 채용공고, 인터뷰 질의응답 등을 살펴보면 종종 접할 수 있죠. 왜 그럴까요? - 아마 지난 15년 간 어려운 문제를 푸는 것만이 최대 보상으로 이어졌기 때문일 거에요. 학교에서 접하는 문제들은 명확하고 어떻게 보면 정해져 있어요. 문제 해결 능력은 학점이라는 1차원적인 방식으로 평가되고 다른 사람에게 미치는 임팩트 역시 낮죠. 즉, 계속해서 보상을 얻으려면 "더 어려운 문제", "더 어려운 과목"을 선택할 수 밖에 없습니다. 하지만, 실제 현업에서 접하는 문제들은 그렇지 않죠. 오히려 아예 상극이라고 봐도 무방합니다. 문제 정의도 명확하지 않고 성과는 다방면으로 측정되며 여태까지 "어려운 문제"를 풀면서 배웠던 방식은 무용지물일 가능성이 커요. 이런 괴리감 때문에, (저를 포함한) 많은 졸업생들이 현업에서 실제로 중요한 일이 무엇인지 깨닫지 못하는 경우가 허다합니다. 어쩌다 중요한 일이 주어진다고 해도, 그게 중요한지 깨닫지 못할 가능성이 크고 문제 역시 애매하게 정의되어 있는 편이죠. 결국, 저희는 더 어려운 문제를 찾아서 푸는데 혈안이 됩니다. 즉, 쉬운 문제도 더 어렵게 만들어버리면서 쓸데없이 일을 복잡하게 만들게 됩니다. 저도 갓 졸업했을 때, 지루한 회사에 들어가면 금방 번아웃이 올 것만 같았습니다. 하지만, 다행히도 다른 차원으로 "최적화"하는 방법을 배웠어요. "어려운 문제를 푸는 것"에 집착하는 대신, 쉬운 문제를 보다 빠르게 풀거나, 쉬운 문제들 중 가장 임팩트가 있는 문제를 찾거나, 나보다 더 빠르게 이 쉬운 문제들을 찾아서 풀 수 있는 팀을 고용하는 방식으로요. 심지어 이 방식이 더 흥미로웠어요. 결국 전 "어려운 문제를 푸는 것"이 아니라 제 능력을 십분 활용해서 보다 나은 세상을 만드는게 궁극적인 목표였거든요. 학교에서는 어려운 문제 대신 쉬운 문제를 선택하게 되면, 어려운 문제를 풀 수 있는 능력이 낭비되지만 현업에서는 다른 방면으로 그 능력을 발휘할 수 있어요. 그래서 전 "어려운 문제"를 푸는 제 능력이 보다 나은 세상을 만드는 것에 이바지할 수 있는 최적의 방향으로 변한 것 같아요. 설령 그게 단순한 CRUD 앱 만드는 것을 도와주는 일이라고 할지라도요. --- 저도 그렇고 대부분의 저연차 엔지니어 분들과 이야기하다 보면, "큰 틀에서 하는 일이 똑같다. 반복적이다. 재미가 없다. 성장하지 못하는 것 같다"라는 말을 많이 듣는데 엔지니어링적으로 어려운 문제를 푸는 것만이 성장/재미를 얻을 수 있는 유일한 방법은 아니겠구나 라는 생각도 들고 작업하면서 불필요하게 복잡하게 하는 것은 없는지 다시 되돌아보게 되는 글입니다 🤔