Skip to content

ALDS 5. Relationship between Algorithm and Dev Career

Migrated

This article is migrated from which I wrote on another website.

안녕하세요. 이번에 쓸 글의 주제는, "알고리즘과 취업의 상관관계" 입니다.


Algorithm is a very large domain

항상 이 주제를 가지고 온라인/오프라인에서 열정적으로 싸우시는 분들에게 말씀드리고 싶었던 점이 있었습니다. 그것은 바로 "알고리즘"이라는 도메인의 범위가 매우 넓다는 점입니다.

단순히 그래프에서 BFS/DFS 돌리는 것도 PS 분야 알고리즘이라 할 수 있고, 문자열에서 아호코라식 돌려서 그룹 매칭시키는 것도 PS 분야 알고리즘이라 할 수 있고, 무슨 괴상한 이세계 식들 가져와서 가지고 노는 것들도 PS 분야 알고리즘이라 할 수 있습니다.

img1

Caption

어떤 알고리즘 문제의 풀이입니다. 보기만 해도 어지럽죠?

보통 수학이 쓸모없다고 말하는 사람들은 본인의 영역에서 수학이 별로 필요하지 않은 경우가 많습니다. 상하차를 하는 데에는 수학이 별로 필요없습니다. 누군가는 회계 작성을 위해서 엑셀의 여러 함수들을 익힐 필요가 있겠죠. 누군가는 GPS를 기술적으로 굉장히 정밀하게 구현하기 위해서 물리학의 상대성 이론을 도입해야 할 것입니다.

알고리즘도 똑같습니다. 누군가는 프론트엔드처럼 알고리즘보다 다른 게 더 중요한 개발을 하고, 누군가는 게임엔진이나 과학 연산 라이브러리처럼 알고리즘이 깊이 필요한 개발을 하죠. 당연히 사람마다 목표하는 분야 혹은 범위가 다르고, 그래서 개개인의 가치관이 경우에 따라 극단적으로 달라지기도 하는 겁니다.

굳이 전체적인 비율을 따지자면 깊은 알고리즘을 파지 않는 개발이 훨씬 많겠지만, 본인이 맹목적인 평균이나 중간값을 쫓을 생각이 없다면 이 기준을 어느 정도 adjust할 필요가 있다는 얘기입니다.


Algorithms for hiring test

제 의견을 솔직하게 말씀드리겠습니다. 코딩테스트에서 보는 알고리즘은 99% 이상의 대부분의 경우에서 이상한 ten덕 알고리즘을 요구하지 않습니다. 넥슨 같은데서 Segment Tree가 나왔다 하는 말들도 있는데.. 그거 다 퍼펙트하게 풀어야만 면접 가는 건 아니잖아요?

간단한 정렬, BFS/DFS, 기초적인 DP, 이진탐색, 거기에다가 가끔 그리디 정도? DP나 그리디는 뺀다고 쳐도 남은 것들이라도 제대로 하는 지원자들이 얼마나 있나요?

저는 "평균적인 코딩테스트"에서 요구하는 수학/논리적인 사고의 수준이 그렇게 높다고 생각하지도 않지만, 그게 정말 높은 거라고 하더라도, 시장에서 개발자 인력에게 쏠리는 공급이 그 정도이기 때문에, 그래서 회사 입장에서는 결국 저렴한 가성비로 지원자들을 어느 정도는 입구컷을 해둬야 할 필요가 있기 때문에 나타나는 현상입니다.

과제테스트는 그 특성상 평가 비용이 많이 들어갈 수밖에 없어요. 코딩 컨벤션이라는 것을 정량적으로 자동화해서 평가하는 것은 굉장히 어려운 일이기 때문입니다. AI가 그런 걸 할 수 있을 때쯤 되면 기업들은 사람이 아니라 AI한테 일을 시키겠죠.


People attacking knowledges

디스코드나 카톡방에서 알고리즘 얘기 신나서 막 하다보면, 이게 코테에서 해야 한다라고 강요한 것도 아닌데 이런 말을 하는 사람들이 꼭 나옵니다.

Quote

"그런 거 배워서 뭐해요?"

"코테에 그런 거 나오지도 않잖아요."

"실무에서 그런 거 아는 게 쓸모있기는 한가요?"

그런 사람들은 수학을 마주해도 똑같은 소리를 하고, 물리학을 마주해도 똑같은 소리를 합니다. 그게 제가 돈 버는 거에 집중하는 마이너한 이유들 중 하나이기도 합니다. 그런 사람들도 차마 "돈 벌어서 뭐해요?" 같은 말은 못하거든요.

저는 사람들이 본인이 하는 재밌는 지적유희들을 저런 비판이 나온다고 기 죽어서 접고 그러지 않았으면 좋겠습니다. 그걸 이용해서 돈을 벌면(취업, 연구개발 등등) 더 좋고요.


읽어주셔서 감사합니다. 좋은 크리스마스 보내세요.