요새 봉사활동 지원하신 분들과 얘기할 기회를 가지게 되어서, 주니어 분들이 어떤 고민을 하시는지 들어봤는데요, 많은 분들이 하신 질문이 이겁니다: "넓게 팔까요, 깊게 팔까요?"
즉, 이것저것 해보는게 나은건지, 기초를 파고 드는게 좋은건지를 물어보시는 분들이 많았습니다. 혹은, 다른 버전의 비슷한 질문인데, "실무에서 쓰는 기술을 팔까요, 기초를 팔까요?" 도 많았고요. 오늘은 여기에 대한 답을 쓰겠습니다.
0. 왜 파세요?
스스로에게 이 질문을 잘 안던시더군요. 파시는 목적이 무엇인가요?
그냥 먹고 살려고요, 라면 사실... 어떻게 하시든 상관이 없습니다. 생각보다 "뭔가를 파는" 사람 자체가 세상에 별로 없습니다. 사람 뽑을 때 가장 힘든 것도 이거구요. 그냥, 기초든 응용이든 뭐든 그냥 파세요. 그러면 먹고 사는데는 지장이 없습니다.
만약에 목적이 좋은 프로그래머가 되는 것이라면 사실... 둘 다 해야합니다. 기초도 중요하고 실전도 중요합니다. 넓게 파야 깊게 팔 수 있고, 깊게 파야 넓게 팔 수 있는, 닭과 달걀의 관계입니다. 사실 이건 꼭 기술이 아니어도, 인생이 이렇습니다.
즉, 왜 파는지를 생각해보기만 해도 이 질문 자체가 의미없는 질문인 것을 바로 알 수 있습니다. 그냥 하시면 되고, 생각보다 사람들은 기술에 진지하지 않아서, 꾸준히 파기만 하면 언젠가는 기술로 인정 받을 수 있습니다. 대부분의 분들은 여기서 뒤로 가기를 누르시면 됩니다.
1. 월드 클래스의 엔지니어가 되려면 어떻게 해야할까요?
손흥민 선수 아버님은 반대하시지만, 손흥민 선수는 월클이라는걸 우린 모두가 알죠. 월클이 되려면 타고나거나, 노력을 피나도록 해야만 어쩌다 가능한걸까요?
우리는 스포츠를 하는게 아니라, 그냥 일을 하는겁니다. 일을 할 정도만 똑똑하고, 일을 할 정도만 능력이 있으면, 회사의 용어로 바꿔서 "예측 가능한 사람이면" 회사는 그만큼의 용역에 대한 대가를 최적으로 지불하고 고용합니다. 회사의 목표를 이루기 위해서요.
월클이 되려면 어떻게 해야할까요? 아주 간단합니다. 세계로 나가야 합니다. 세계로 나간다는 것의 의미는 다음과 같습니다.
- 고용 안정을 위한 법적인 신분의 문제의 해결. 즉, 비자 문제.
- 동료들과의 소통을 위한 소통 능력. 즉, 영어 실력 및 비지니스를 위한 소프트 스킬.
- 세계 수준의 엔지니어링에 코드를 얹을 수 있을 정도의 실력. 즉, 코딩 능력.
하나씩 알아보죠.
2. 비자 문제
비자 문제는 가고 싶은 국가에 따라 난이도가 천차 만별입니다. 여러 길이 있는데, 그건 궁금하면 구체적 상황 (어느 나라에서 어떤 회사에 가고 싶다)을 가지고 이민 변호사를 만나는게 제일 정확합니다.
3. 영어 및 소통 능력
영어는 참 어렵습니다. 저도 완벽하지 않고요. 하지만 확실한건, 여기서는 밑지고 들어가는 건 맞다는겁니다. 비자 문제가 해결이 되고, 심지어 영어를 완벽하게 하더라도 그들과의 문화 차이에서 오는 것으로 인한 "신분"의 한계가 존재합니다. 특히 인도인이나 중국인들처럼 집단이라도 크면 모르겠는데, 한국인들은 해외에서 서로 사적으로만 친하지 공적으로는 모른척합니다. (정말 왜 그럴까요?)
즉, 이 부분은 그냥 기대치를 정하시는게 좋습니다. 구글에 들어가는 것만 생각하신다면, 그냥 미국 석사 받으면서 알고리즘 공부 열심히 하면 구글 갈 확률이 높습니다. (그게 아니라도 스타트업 다니다가 경력 쌓고 비자문제 해결 된 다음 가면 구글 갑니다. 구글을 천재들만 가는게 아니라는걸 알아주세요.)
구글에서 매니저가 되고 싶나요? 일단 구글을 들어가세요. 매니저들이 어떻게 매니저가 됐나 보세요. 그 경험을 해보지 않으면, 어디까지를 정할 수가 없습니다. 영어는 그냥 잘하면 잘할수록 좋은데, 문화적 배경 때문에 한계는 존재하는 것 같다는게 제 결론입니다. (이건 제가 잘못생각하는 것 일수도 있습니다.)
4. 코딩 능력
이게 참... 과대 평가 되어있습니다. 확실히 말씀 드리죠. 구글에서 일하기 위한 코딩 능력이 궁금하시면, github.com/google 가서 보세요. 애플이요? github.com/apple 가서 보세요. Microsoft? github.com/microsoft 가서 보세요.
그냥 빅테크 가서 코딩 잘하는 사람들이 어떤 코드를 짜나는, 회사 기밀이라서 유출 안되는거 빼고는 다 나와있습니다. 그냥 그 코드들 보고 내가 가서 저 코드 짤 수 있나 자문해 보면 됩니다. 짤 수 있으면 갈 수 있는거고, 못짜면 못갑니다. 너무 심플합니다.
5. 그러면 어떻게 하면 저런 코드를 짤 수 있나요?
저의 경우를 말씀 드리면, 저는 FAANG, MAGA에 해당하는 회사에 가고 싶어서 박사과정 때 그 회사 깃헙에 PR 많이 보냈습니다. 에러 찾고, 그 사람들 귀찮아 하는 일 열심히 해줬습니다. IRC든 slack이든, 미팅 참여 할거 다 하고, 걔네가 사내 컨퍼런스 열면 내 쌩돈 300만원 내서 비행기타고 가서 컨퍼런스 가서 그거 만든 사람들 만났습니다.
물론 알고리즘 문제 많이 풀고, CS 기초 공부하고, 면접 준비 잘 하고, 학벌 좋고... 중요할 수도 있는데, 사실 그건 있으면 좋은거지 "취업"을 하기 위한 최소 요구 조건과는 어느정도의 거리가 있습니다.
분명한건, 아마 이건 미국에서 일하는 사람들 다 공감할텐데, "채용 공고가 올라온 후에 지원하면 늦습니다".
보통 채용공고는 어떤 빵꾸가 났거나 신사업을 하는거고, 채용공고를 내는거 자체가 회사에서 할 때 귀찮아 하는 일이기 때문에 일단 사원들의 지인 추천이나 다른 사업부 사람들을 가지고 우리나라말로 전배를 시키던 뭘 하던 합니다. 즉, 어떤 공석이 나는지 이미 알고 있는 사람들이 그 공석을 차지할 확률은 그렇지 못한 사람들보다 훨씬, 몇십배 이상 높을 수 밖에 없습니다.
왜 제가 네트워킹 인맥 얘길 계속 할까요. 님들이 공부를 하지 말고 인맥이나 쌓으라는 말이 아닙니다. 실력 열심히 쌓고, 주변에 좋은 사람들을 계속 두다보면, 필요하면 일단 인맥을 쭉 BFS 하면서 괜찮은 사람을 찾아서 추천해서 채용 시킵니다. 심지어 추천 채용해서 합격하면 나도 보상금을 받아요. 그 사람이 와서 일 잘하면 내 평판도 올라가고요. 왜 잘하는 사람이 주변에 있는데 추천을 안하겠습니까.
6. 그래서 어쩌라는거냐?
저라면, 최대한 내가 이미 아는 사람 말고, 잘 모르는 사람들하고 모여서 스터디를 열심히 할 것 같습니다. 그리고 그 스터디 열심히 굴리면서 좋은 사람들 계속 데려오고, 나중에 지속이 오래 되면 개발자는 너무 귀하고, 열심히 하는 개발자는 그것보다 훨씬 더 귀하기 때문에 꾸준히 한다는 사실만 열심히 알려도 누군가 그곳에 찾아올겁니다. 그 누군가가 너 내일부터 출근할래? 하면 출근이 가능한게 IT 업계입니다. (솔직히 저라도 꾸준히 돌아가고 있는 스터디 모임 있으면 좀 가서 뽑고 싶습니다...)
현실을 말씀 드리면, 대부분 꾸준히 잘 돌아가는 스터디 모임은 이미 잘하는 사람들로 가득한 경우가 많고, 이미 자기 직장에 만족해서 다른 곳 옮길 생각 없는 경우가 대부분입니다.
추천합니다. 스터디 그룹 만들고, 있는 그룹 참여하고, 꾸준히 돌리세요. 진짜 3년 동안 꾸준히 했는데 네카라쿠배 못가면, 저한테 연락 하세요. (huhahahot@gmail.com) 제가 추천해드릴게요. 아니면 저희 회사 오세요. 연봉 많이 드릴게요.
꼭 이 과정에서 공부의 재미를 얻으셨으면 좋겠습니다.