당신이 개발자 취업을 못하는 이유
여러분 안녕하세요. 꿈꾸는 개발자입니다. 개발자로 취업을 하는데 잘 안되는 분들 계시죠? 사람에 따라서 다르겠지만 아마 대부분 은행 계좌의 잔고가 없어지는게 눈으로 보이거나 주위 부모님이나 친구들 영향으로 점점 마음의 압박을 받고 계시는 분들이 많이 계실 거에요. 혹은 개발이 좋아서 시작했는데 요즘 개발자 취업 잘 안된다고 하니깐 겁을 먹고 계시는 분들도 계실거구요. 그리고 실제로 이력서를 넣어도 아마 한번에 붙는 경우는 거의 없을 거에요. 그리고 그러한 시간이 장시간 지속되다 보면 ‘나는 이렇게 해서 네카라쿠베 합격했다’ 뭐 이런 영상이나 블로그를 보고 계실 거예요. 그런 여러분들을 위해서 준비했습니다. 이번 포스팅은 이렇게만 하면 100% 개발자 취업이 가능하다! 이런 내용이 아니고 왜 개발자 취업에 실패하는지 그 이유에 대해서 다루려고 해요. 이유를 알면 방법만 찾으면 되죠? 취업에 실패하는 이유는 이유를 몰라서 실패하는 경우가 60%고 방법을 몰라서가 30%입니다. 근데 사실 이유만 제대로 알아도 방법은 찾은거나 마찬가지에요. 단지 나 스스로가 자각을 하지 못해서 그런거예요. 개발자로 취업하고 싶어서 이력서를 계속 넣는데 잘 안되시는 분, 그냥 막연하게 불안하신 분은 이번 포스팅이 도움이 되실거에요. 이러한 포스팅이 도움이 되신다면 지금 제 youtube채널에 오셔서 좋와요와 구독을 꼭 눌러주세요. 여러분의 클릭 한번에 큰 힘을 얻고 영상제작을 할수 있습니다.
바로 본론으로 들어가서 취업을 하려고 하는데 왜 잘 안될까요? 이유는 정말로 여러가지가 있는데 제가 제일 첫번째로 말씀 드리고 싶은 이유는 운입니다. 좀 허무하죠? 근데 이게 정말 무시 못해요. 제가 정말로 솔직하게 말씀드리는 겁니다. 그냥 운이 나빠서 취업에 실패하는 거예요. 이렇게만 말하면 이 포스팅을 끝까지 보지 않을 것 같으니 제가 사례를 말씀드릴께요. 제가 면접관으로 여러 개발자들을 입사 면접을 했을 때 많지는 않지만 괜찮은 후보를 몇명 만난적이 있었어요. 그래서 이 지원저를 채용해야겠다 라고 생각했는데 같이 1차 면접을 들어갔던 제 상사가 이 지원자는 탈락시켜야 겠다고 하는거에요. 너무 좋은 지원자였는데 탈락시켜야겠다고 해서 이유를 물어봤죠. 이유를 들어보니 지원자가 이 회사에 들어오기 너무 아깝다는 이유였어요… 이게 말인지 방구인지.. 당시 지원자가 어린나이인데도 하고자 하는 열정이 컷고 실력도 사실 아깝지 않았기에 제가 다시 말을 했죠. 이 지원자는 뽑아야 할거 같아요. 지금까지 10명 넘게 면접을 진행했는데 이런 지원자가 없었잖아요. 이렇게 말을 했죠. 하지만 제 당시 상사는 제 말을 듣지 않았어요. 여기보다 더 좋은 회사에 들어갈 수 있는 지원자이니 놓아주자고… 제가 제 귀를 의심했어요. 그럼 나는? 그리고 여기있는 다른 직원들은 어차피 좋은회사 못들어갈거 같으니 받아줬다는 건가? 이런 생각이 들더라구요. 어처구니 없게 들리겠지만 지금 말씀드린건 전부 사실입니다. 그리고 더 충격적인건 이때 저의 상사는 도쿄대학을 졸업하고 세무사 자격증을 2달만에 딴 괴물같은 천재였다는 사실이에요. 아마 그 지원자는 본인이 뭔가 부족해서 탈락한줄 알고 있을거에요. 지금까지도…
제가 지금 극단적인 예를 들긴 했지만 크고작은 에피소드로 탈락을 시켰던 경우가 종종 있었습니다. 그 이유는 실력이 부족한 경우보다 회사의 상황에 지원자와 맞지 않아서인 경우였어요. 혹은 앞서 말씀드렸던 사례처럼 이해가 안되는 이유인 경우도 있었구요. 때문에 취업이 안된다고 해서 처음부터 좌절할 필요는 없다는 말씀을 드리고 싶었어요. 그냥 타이밍이 안 좋았던 것 뿐이에요. 어쩌면 오히려 떨어져서 다행이라고 말할 수도 있구요. 제가 예전 포스팅에서도 몇번 말씀드렸지만 우리 한국 개발자들은 실력이 높은편이에요. 때문에 실력때문에 떨어질 일은 거의 없다고 봐요. 주로 그 외의 이유로 떨어지는 경우가 많죠. 그중에 하나가 바로 운이구요. 제가 취업을 못하는 이유로 제일 처음 운을 말씀드리는 이유는 우리가 제어할 수 없는 무언가가 있다는 것을 각인 시키고 싶어서에요. 많은 사람들이 내가 더 잘하면 좋은 곳에 취직할 수 있어라고 생각하는데 현실은 그렇지 않아요. 지금 이 포스팅을 보고계시는 많은 개발자님들이 지금까지 대충대충 살지 않았잖아요. 다들 열심히 공부했고 꿈을 이루려고 다들 열심히 노력했어요. 만약 열심히만 하면 좋은데 취직할 수 있다면 대한민국에서 대기업 못들어갈 사람은 많지 않을거라고 생각해요. 그럼에도 취업이 어려운데는 우리가 컨트롤 할 수 없는 영역이 있다는거에요. 때문에 이력서를 넣는 종종 떨어진다고 너무 좌절하지 마시고 조금 더 좋은 회사에 갈 수 있는 확률이 높아지고 있다고 생각하시길 바랍니다. 이건 응원을 하려고 한게 아니라 그냥 사실이에요.
그럼 운 말고 개발자 취업에 자꾸 실패하는 이유는 뭐가 있을까요? 여러가지가 있겠지만 바로 세일즈에 문제가 있기 때문입니다. 나라는 상품을 어떻게 파는지 몰라서 떨어지는 경우에요. 많은 개발자분들이 취업에 실패하는 이유가 개발실력만 높이면 취업이 잘 될줄알아요. 하지만 저는 예전 포스팅에서도 말씀드렸지만 개발자로서 취업을 하는데 있어서 실력은 당연히 높으면 높을수록 좋지만 그게 다가 아니에요. 실력은 그냥 베이스이고 그 실력은 갖춘 나를 어떻게 잘 어필해야하는지를 알아야해요. 그냥 이력서에 react할 줄 알아요. DB도 다룰줄 알고 효율적인 코드 작성할수 있어요… 뭐 이런 식으로 적혀있으면 면접관은 얘는 뭐하는 애지? 이렇게 생각하고 다음 지원자 서류를 보게됩니다. 이렇게 본인이 할줄 아는 것만 어필하면 마치 나는 망치질도 할줄 알고 톱도 다룰줄 알고 니스 칠하는 법도 알아요… 이런 말과 같아요. 하지만 면접관 입장에서는 이런 내용이 궁금하죠. 그래서 너가 망치질도 할 줄 알고 톱이나 니스 칠도 할수 있는건 알겠는데 배는 만들어 본적 있어? 만들어 봤다면 어떤 배를 만들어 봤지? 그 배를 왜 만들어 봤는데? 그 배로 어디까지 갔다와봤지? 그 배의 문제점이 뭐였어? 이런게 궁금하단 말이에요. 근데 많은 지원자들이 이 내용을 안적거나 말을 안해요. 이게 경험이 없어서가 아니라 그냥 몰라서 말을 안하는 케이스가 90%였어요. 실제도 면접때 물어보면 각자 공부하면서 여러가지 에피소드가 있어요. 근데 스스로 말을 못하는 경우가 너무 많았어요. 그리고 말하는 연습을 해본적이 없다보니 자신의 에피소드를 상대방이 알기 쉽게 전달하는데 많이 힘들어하는 경우도 많았구요. 다시말해서 개발 공부만 해서는 안되고 취업을 염두해 두고 있다면 그때그때의 에피소드를 잘 정리해서 바로바로 아웃풋이 될 수 있게끔 준비도 같이 해야한다는 거에요. 이게 바로 퍼스널 데이터베이스에요. 말로 설명하기 힘들면 블로그로 정리를 해도 되고 간단하게 메모를 해도 되요. 중요한건 어딘가에 기록을 해 놔야 아웃풋이 쉽다는 거에요.
그럼 이렇게 잘 정리한 에피소드를 어떻게 해야할까요? 이제는 나를 어필하는 도구로 만들 줄 알아야 합니다. 이제는 더이상 망치질이나 톱질 잘한다고 어필하는게 아니라 배를 만들어 봤고 악세서리를 만들어 봤고 가구를 만들어 봤습니다 라고 어필할 수 있어야 해요. 그리고 그 증거도 같이 보여주면 더욱 좋겠죠. 여기서 메니지먼트 역량을 어필하고 싶다면 몇명의 대장장이들과 같이 배를 만들었고 어떤 문제점이 있었고 어떻게 해결해서 이 배를 만들었습니다. 이렇게 어필 할 수도 있겠죠. 포인트는 작은단위의 스킬을 어필하는 것 보다 큰 스케일의 에피소드를 말하고 문제를 해결했던 스킬을 어필하는게 면접관에게 나를 각인 시키는 가장 효율적인 방법이라는 거에요. 참고로 회사에 따라 다르겠지만 서류전형을 통과하고 대면 면접을 진행할 때 생각외로 여러분의 스킬을 보는 비중은 상당히 줄어듭니다. 스킬에서 걸렀다면 60% 정도는 서류에서 필터되니까요. 이를 바꿔 말하면 이력서를 넣을 때는 내가 무엇을 할 수 있는지를 강하게 어필할 수 있어야하고 면접때는 내게 얼마나 많고 디테일한 에피소드가 있는지를 어필할 수 있어야 해요. 어떤 지원자님은 면접 때 처음부터 끝까지 본인의 스킬을 어필하는 분들이 종종 계세요. 물론 일본 분들이신데 제가 이해를 못하는건 아니에요. 정말로 개발에 미쳐서 개발이 너무 좋다보면 자신의 개발 스킬을 자연스럽게 어필하게 되요. 나는 뭘 할 수 있다… 이것도 할 수 있다.. 저것도 할 수 있다.. 이런식이요. 그리고 신기술의 대한 학습력을 어필하는 분도 계시구요. 하지만 회사는 그런 지원자는 원하지 않아요. 제가 정말로 정말로 입이 닳도록 말씀드리지만 회사는 본인의 자아를 실현하는 곳이 아니에요. 이익을 창출하는 집단이에요. 채용을 할때는 철저하게 회사에 이익이 되는지 안되는지만 봐요. 이익이 안된다고 판단되면 그냥 탈락이구요. 여러분, 회사에서 한사람을 채용하는데 몇천만원을 태운다고 하면 믿으시겠나요? 안믿기시죠? 근데 사실이에요. 회사에 이익이될 한사람을 찾으려고 몇천만원을 태우는게 회사에요. 그런 회사가 자아실현하고 싶어하는 사람을 채용한다는게 말이 안되죠. 그렇게도 안하구요. 때문에 스스로를 어필할 때는 이러한 회사의 입장을 잊지 말고 있어야해요. 이 부분만 잊지 않는다면 여러분들은 자연스럽게 나를 왜 뽑아야 하는지를 어필하게 될거에요. 그리고 그 이유에 여러분들의 지금까지의 에피소드를 잘 녹여낸다면 취업에 성공할 확률은 급격하게 높아질 거구요.
또 한가지 취업에 실패하는 경우가 있는데 그건 바로 실력이 부족해서 입니다. 한국도 마찬가지지만 일본도 최근 코딩테스트를 하는 곳이 조금씩 늘어나고 있는데 보통은 대기업에서 코딩테스트를 많이 진행하더라구요. 코딩테스트의 난이도는 회사마다 다른데 체감상 3개월에서 6개월정도 백준같은데서 연습을 하면 문제없이 해결할 만한 것들이 많아요. 개인적으로 일본에서 취업을 준비하고 계신 분들이라면 가급적 일본어 독해실력도 늘릴 겸 일본 코딩테스트 사이트를 이용하시기를 추천드려요. 유명한데로는 tracks(https://tracks.run/products/test/)나 paiza(https://paiza.jp/works/)등이 있는데 이런 사이트에 회원등록을 하고 코딩테스트 연습을 열심히 해서 랭크를 높이면 이 서비스와 연계된 회사에서 스카웃 제의가 온다는 메리트가 있습니다. 말 그대로 이력서의 말빨 실력보다 진짜 코딩 실력만 보겠다는 거죠. 저도 이런 사이트에 등록해서 스카웃 제의받고 면접을 본적이 있어요. 나중에 더 좋은 회사가 붙어서 스카웃 제의받은 회사는 포기했었는데 실력이 낮다면 이런데서 실력을 높이고 취업의 찬스도 가져가는것도 방법입니다. 중요한건 실력으로 떨어진거라면 스스로 노력해서 실력을 높이는 것 만이 유일한 방법이라는 거에요. 개발자로서 실력이 부족한건 그럴수 있다하지만 실력을 높이려고 노력하지 않는다면 취업성공보장 할아버지가 와도 소용이 없어요. 실력은 높이는 것은 개발자로서 당연히 해야하는 거니 혹시나 코딩테스트를 보는 회사에 지원하신다면 최대한 준비를 많이 하셔서 꼭 붙으시기를 바랍니다.
하지만 회사에서 실력을 평가하는 또한가지 방법이 있는데 바로 페어 프로그래밍이에요. 사실 페어프로그래밍이 낮선 분들도 계실텐데 두세사람이 한 조가 되서 한사람은 코드를 짜고 다른 한사람은 조언, 혹은 지시를 하고 만약 한사람이 더 있다면 그사람은 보통 옵저버 역할을 합니다. 페어 프로그래밍을 할때는 어떤 과제가 주어지는데 정해진 시간안에 그 과제를 수행하는 식으로 진행됩니다. 주로 지원자가 코드를 짜고 면접관이나 실제 개발자가 페어로 참가합니다. 지원자는 과제를 수행하는데 있어서 모르는게 있으면 페어 개발자에게 질문을 할 수 있지만 실제 타이핑은 지원자가 해야합니다. 그리고 페어 개발자는 어드바이져 역할만 하고 답을 알려주지는 않아요. 저도 페어 프로그래밍을 해봤는데 상당히 긴장되서 평소에 잘 되던것도 누가 보고있으면 잘안되고 그래요. 괜히 열심썼던 코드 지우고 다시 작성하고… 평소에는 신경도 안썼던 함수나 변수 이름도 신경쓰게되고… 그러다보니 시간은 점점 흘러가게 되죠. 우리가 보통 코드를 짤때 누군가와 수다떨면서 짜지는 않잖아요. 그러니깐 실제 페어프로그래밍을 할때도 아무말 없이 타이핑을 할 때가 있어요. 근데 이 페어프로그래밍의 진짜 목적은 다른데 있어요. 이 지원자가 정말로 실력자인지를 판단하기도 하지만 다른 개발자들과의 커뮤니케이션이 얼마나 원만하게 이루어지는지를 확인하기도 합니다. 다시말해서 실력이란 단순히 코드를 잘 짜는지 못짜는지를 말하는 것이 아니라 같이 일하는 동료와 얼마나 대화가 통하는지도 실력이라는 거죠. 근데 이게 사실 일리가 있는게 실제 현업에서 개발을 하다보면 코드리뷰라는 것도 하게되고 또 모르는게 있으면 서로 질문도 하고 그러거든요. 근데 대화가 안통한다? 그때부터는 일이 진행이 안되는거에요. 그럼 회사의 이익을 위해서 채용했던 사람이 회사의 골치덩어리가 되는거죠. 그런 문제를 미연에 방지하려고 패어프로그래밍을 하는거구요. 이때는 과제를 해결하는것 보다 과제를 해결하는 과정을 더 중요시 보기때문에 최대한 페어 개발자와 많이 대화를 해야합니다. 문제가 쉬워보여도 대화를 해야해요. 왜냐하면 제가 아픈 과거가 있어서 그렇거든요.
예전에 1차 면접 전에 페어 프로그래밍이 있어서 30분정도 진행을 했는데 주어진 과제가 생각보다 쉬운거에요. 그래서 10분만에 코드짜고 그래도 시간이 남아서 리펙토링까지 했는데도 시간이 10분 15분 남은거에요. 그래서 문제 다 풀었다…이제 그만해도 될거 같다라고 페어 개발자에게 말했죠. 그랬더니 그 페어 개발자가 더 궁금한거 없냐구 묻더라구요. 그래서 없다고 했죠. 아니 과제가 이렇게 쉬운데 질문 할게 있어야죠. 그랬더니 내가 더 도울건 없냐고 다시 묻더라구요. 솔직히 제가 생각하기에는 딱히 도와줄것도 없었는데 자꾸 물어보니깐 됐다고 하기도 그래서 코드를 짜긴 짰는데 혹시 모르니 리뷰를 해달라 부탁을 했죠. 그랬더니 어차피 테스트니 리뷰는 안해도 되고 딱히 할말 없으면 테스트는 여기서 종료하겠다고 하더라구요. 그리고 바로 1차 면접을 들어갔죠. 그리고 바로 물어오는 면접관의 첫 질문이 이러더라구요. 아까 테스트할 때 왜 대화가 없었죠? 저는 순간 아차 싶었어요. 생각해보니깐 애당초 저의 코딩실력을 파악하고 싶었다면 그냥 URL 하나 던져주고 문제 풀어라 하면 그만이잖아요. 근데 일부러 현장에서 뛰고 있는 개발자 한명을 면접때 데리고 와서 페어 프로그래밍을 시켰단 말이에요. 근데 나는 아무말도 안하고 그냥 묵묵히 코드만 짰으니 페어 개발자 입장에서는 어이가 없었겠죠. 예상대로 저는 그 회사 떨어졌습니다. 이건 회사가 어떤 인재를 뽑고 싶은지 파악하지도 않고 그냥 눈앞에 과제만 풀었던 거에요. 그래서 제가 말씀드리고 싶은건 실력이란 단순히 코딩을 잘 하는 능력을 말하기도 하지만 회사에 따라서는 커뮤니케이션도 실력으로 보기도 한다는 점입니다. 지금와서 느끼는 거지만 페어프로그래밍을 할때는 페어 개발자에게 단간한 것도 질문을 해서 상대방으로 하여금 계속 말을 하게끔 유도해야한다는 거에요. 그리고 키보드 두드리기 전에 페어 개발자에게 이 과제를 어떻게 해결할건지 로직을 설명하고 페어 개발자의 의견을 들어야 해요. 함수나 변수명을 상의해서 정하는것도 좋은 방법이구요. 함수나 변수명 같은 건 회사마다 정해진 룰이 있거든요. 예를 들면 이런거죠. 나는 지금 이 함수명을 handleEvent라고 하고 싶은데 개발자님은 어떻게 생각하세요? 이렇게요. 그럼 페어 개발자가 단순히 Event라고 하면 너무 포괄적이니 좀더 구제적으로 handleEventClick은 어떤가요? 뭐 이런식으로 역제안을 할 수도 있단 말이에요. 이렇게 대화가 오가면서 상대방의 생각과 나의 생각을 교환하고 잘못된 부분이 있다면 고쳐나가는 모습을 보여준다면 페어 프로그래밍을 통해서 충분히 스스로를 어필했다고 볼수 있어요.
이렇게 취업이 안되는 이유를 세가지로 말씀드렸는데 이 외에도 물론 여러가지 이유가 있을 수 있어요. 하지만 대부분은 이 세가지 이유에 걸리게 될거에요. 그리고 이번 포스팅에서는 그 세가지 원인에 대해서 어떻게 대처해야하는지도 말씀드렸구요. 취업이 어려운 시기라서 쉽지는 않겠지만 조금이나마 도움이 됬으면 하는 마음에서 이 포스팅 준비했습니다. 물론 일본에서의 개발자 취업문은 한국보다는 열려있으니 개발자 취업을 하는데 있어서 조금 더 글로벌한 시각으로 준비하시면 더욱 좋을 듯 합니다. 제가 준비한 포스팅은 여기까지이고 이 포스팅이 도움이 되셨다면 제 youtube채널에 오셔서 좋아요와 구독을 눌러주시고 저는 더 좋은 포스팅으로 여러분들을 다시 찾아뵙겠습니다. 감사합니다.