비전공자인데 개발자가 되고 싶다면?
요즘 개발자 인력난으로 인해 개발자 몸값이 치솟고 있고, 그로 인해 SW와 관련된 전공을 하지 않은 분들이 개발자를 희망하는 경우가 많은 것 같습니다. 그로 인하여 몇몇 메일도 받았고, 관련되서 질문 주시는 분들도 많아서 오늘은 비전공자가 개발자 커리어를 쌓아나가는 방법에 관해 써보겠습니다.
개발자가 되기 위해서 SW전공이 필수인가? 라고 물어보시는 분도 있었는데, 당연히 아닙니다. 비전공자도 뛰어난 개발자가 된 케이스가 얼마든지 많고 조금만 찾아봐도 많이 찾으실 수 있습니다. 제 주변에도 많구요. 특히나 요즘같이 지식이 오픈된 세상에서는 대학 교육이 필수도 아니며, 더 양질의 교육도 받을 수 있습니다. 하지만 통계적으로 보면 당연히 전공자들이 더 좋은 커리어를 쌓아 나가는 것은 사실이고, 그렇다면 어떻게 비전공자들이 개발자 커리어를 더 잘 쌓아나갈 수 있을까요?
요즘 보면 MOOC이나 부트캠프 등 좋은 교육과정들이 많기 때문에 대학 교육은 필요 없다고 말하는 경우도 많습니다. 물론, 본인만 잘한다면 대학교육이 필요 없을 수 있습니다. 고등학교만 나왔지만 굉장히 뛰어난 실력을 가지고 많은 회사에서 뛰어난 실력을 뽐내는 개발자분들도 많기 때문입니다. 하지만 저는 대학 교육에 부정적이지는 않습니다.
이건 제가 SW와 관련된 전공을 했기 때문일 수도 있습니다. 저는 대학원까지 갔고, 학부와 대학원에서 받은 교육들은 굉장히 만족스럽고 사회에서 커리어를 쌓아 나갈 때 많은 도움이 되었기 때문에 다시 돌아가더라도 동일한 전공을 공부하고 커리어를 쌓아 나갈 것 같습니다. 결과적으로 저는 대학 교육에 만족했었고, 일반적으로 말하는 "대학 졸업생들을 실무에 바로 투입할 수 없다!" 라고 말하는 것은 대학 교육만으로는 부족하기 때문이지, 잘못되었기 때문은 아니라고 생각합니다. (물론 특정 수준 미달의 대학들에서는 배울 것이 없을 것이고, 그런 학교에서 교육받는건 시간낭비일수 있습니다. 이건 논외로 합시다)
정리하면, 대학교육이 잘못되었다기보다는 실제 회사에서 하는 것에 비하면 부족한 점이 많은 것 뿐입니다. 하지만 이것은 대학이 돌아가는 방식을 생각 해 본다면 당연하다고 볼 수도 있는데, 대학은 academic한 기관이기 때문에, 이와 관련된 실적을 쌓은 사람들이 교수가 되는 것이고 그렇다보니 industry 와는 거리가 있는 것들을 주로 배울 수밖에 없습니다. 대학은 직업인 양성소가 아니기 때문입니다. (물론 현실과 너무 괴리가 많이 벌어져 있기 때문에 대학에 혁신이 필요하다는 의견에는 전적으로 동의합니다)
그리고 취준생들이 가고싶어하는 좋은 회사들은 전공자를 선호하는데, 그 이유는 학원에서는 잘 배우지 않는, 주로 대학에서만 배울 수 있는 공학적인 사고방식이나 SW 기초지식 등을 대학 교육에서는 필수적으로 가르치기 때문일 것입니다.
그렇다면, 비전공자들은 그런 부분을 보완하면 될 것입니다.
제 주변에는 SW를 전공하지 않았지만 개발 실력이 뛰어난 분들이 있었는데요, 대부분의 경우에 이 분들은 대학에 갈 필요가 없기 때문에 SW를 전공하지 않은 것 뿐입니다. 즉, 어릴 때부터 프로그래밍을 경험했거나, 그냥 혼자 스스로도 잘하는 스타일이라서 알아서 공부할 리소스를 잘 찾아서 공부한 후 혼자 기술과 경험들을 습득한 케이스입니다. 이런 경우에는 이 글을 읽을 필요가 없습니다. 혼자서도 알아서 잘 할 것이기 때문입니다.
하지만, 그렇게 SW가 적성에 맞다는 걸 금방 알 수 있는 사람은 별로 없습니다. 따라서 많은 비전공자가 개발자 처우가 굉장히 좋고 취업이 잘 된다던데, 4차 산업혁명이나 인공지능이 핫하다던데, 나도 개발자나 해볼까? 라고 생각하고 개발자가 되고 싶어하는 경우가 많은 거 같습니다.
개발자들을 가르쳐 본 경험에 비추어 보면, 개발이 적성에 맞다면 비전공자도 충분히 뛰어난 개발자가 될 수 있지만, 적성에 안 맞다면 힘들다고 봅니다. 그래서 먼저 적성에 맞는지 안맞는지 부터 알아보는 것이 좋습니다. 적성에 맞는지는 교육을 받아보면 어렵지 않게 알 수 있습니다.
요즘같은 시대에는 MOOC, 유튜브 강의들도 너무 잘되어 있고 책들도 좋은 책들이 너무 많고, 좋은 블로그나 아티클들도 너무 많아서 돈이 부족해서 교육을 못받는 시대가 아닙니다. 세계 최고의 교육과정을 가진 MIT나 Stanford 에서는 많은 수업들을 온라인에 공개합니다. 온라인에 공개하는 것이다 보니 퀄리티도 정말 좋습니다. 웬만한 대학 교육과정보다 훨씬 양질의 강의들을 완전히 무료로 볼 수 있는 것입니다. 다만, 이런 좋은 컨텐츠들이 많지만 어디서부터 시작해야 될 지 모르는 분들이 많을 것 같아서 몇가지로 정리를 해보겠습니다.
가장 쉽게는 국비지원 학원을 떠올릴 수 있습니다. 경제적으로도 부담이 없고, 나쁘지 않은 방법이긴 합니다. 근데 본인이 정말 열심히 하지 않는 이상 소규모 SI 업체 이상은 가기가 힘듭니다.
많은 이들이 가고싶어하는 네카라쿠배 등과 같은 회사들에서 국비지원 학원만 나온 사람들을 채용할까요? 정말 운 좋은 케이스로 1000명중에 한명정도 가능할 수도 있습니다만, 일반적으로는 힘들다고 보면 됩니다.
그 이유는 몇가지가 있습니다.
1. 국비지원 학원 자체가 정부의 눈먼 돈을 타내려는 목적만으로 만들어져 있는 경우가 있습니다. 정부가 하는 것이 항상 그렇듯이 질보다 양으로 평가되며 비효율적입니다. 학원 입장에서는 그냥 수료한 교육생 숫자로 돈을 받기 때문에 교육에는 관심이 없습니다. 취업의 질은 중요하지 않고 정부에서도 이 분야를 잘 모르기 때문에 교육이 제대로 될 가능성이 적습니다.
2. 개중에는 그나마 제대로 된 학원도 있습니다만, 그냥 비정상이 아닌 거 뿐이지 학원 운영도 빠듯한데 실력 뛰어난 강사를 섭외하기는 힘들기 때문에 강사의 수준이 떨어집니다. 이건 국비지원 학원 강사분들 비하하는게 아니라, 확률적으로 그렇다는 이야기입니다. 열정적이고 실력 좋고 뛰어난 분들도 드물게 있습니다만, 그 수가 적다는 데 문제가 있습니다. 그리고 예전 글에서 말했듯이, 실력 좋은 개발자는 업계에서 가만 놔두지 않습니다. 실력 좋은 개발자는 서로 데려가려고 합니다. 물론 개발 실력과 잘 가르치는 것은 별개의 문제라고 볼 수도 있지만, SW 업계에서 신입에게 가장 중요한 것은 사수를 잘 만나는 것이라는 말이 왜 있는지를 생각해 본다면, 가르치는 사람의 실력이 왜 중요한지 알 수 있습니다.
3. 커리큘럼 자체도 엉망인 경우가 많습니다. 정부에서 지정한 커리큘럼 대로만 강의해야 되는 경우가 많은데, 전혀 현실과 동떨어진 커리큘럼인 경우가 꽤 있습니다. 교육 사업을 하는 기업에서는 최대한의 효율을 내야 하며 졸업생들을 좋은 회사에 취업시켜야 하기 때문에 최적의 커리큘럼을 열심히 고민하지만, 국비지원의 경우 정부의 입김이 들어가는 순간 비효율이 많아지고, 그에 따라 많은 것들이 엉망이 됩니다.
물론 그냥 학원 수강만 하는 것이 아니라, 개인적으로 추가 공부를 하고 프로젝트를 하는 등 자기 자신만 열심히 노력한다면 좋은 회사에 가는 것도 가능합니다. 다만, 올바른 방향으로 해야 할 것입니다.
요즘 부트캠프 과정이 많은데, 파트너쉽 맺은 회사들도 많기 때문에 이것은 그나마 괜찮은 회사에 들어갈 수 있는 확률이 높습니다. 저도 회사에서 부트캠프 출신 이력서를 많이 받아봤었는데요, 채용이 된 케이스는 없습니다. 부트캠프 프로그램 자체가 6개월 정도로 길지 않기 때문에 간단한 것은 가능하겠지만, 조금만 문제가 어려워지면 풀기 힘들어 하기 때문입니다.
일반적으로 부트캠프 프로그램을 보면 프론트엔드에 집중되어 있습니다. 그 이유가 뭘까요? 백엔드나 머신러닝, 데이터 엔지니어링 등은 더 오랜 기간의 수련이 필요하기 때문에 6개월로는 택도 없습니다. (부트캠프에서 Node나 DB도 배우기 때문에 백엔드 배운다고 하는 분이 있을까봐 미리 말씀드리는데, 겨우 그거가지고 백엔드 엔지니어라 할 수 없습니다. 마찬가지로 웹페이지의 프론트/백을 혼자 다 만들 수 있다고 해서 풀스택이라 부르는 것은 잘못되었다고 생각합니다.)
참고로, 프론트엔드도 사실 깊이 하려면 6개월 가지고는 택도 없습니다. 프론트엔드 분야도 깊이 들어가면 정말 배울 게 많고, 수 많은 기술들의 복합체입니다. 다만, 그리 복잡하지 않은 웹페이지 만드는 건 6개월 정도로도 충분히 가능합니다. 회사에서 이 정도 일을 하는데 비싼 프론트엔드/백엔드 엔지니어 리소스를 투입하기에는 아깝기 때문에 간단한 것은 부트캠프 출신을 채용해서 맡기게 됩니다.
정리하면, 부트캠프는 그나마 뛰어난 강사들, 효율적인 커리큘럼의 장점이 있기 때문에 비용이 좀 나가더라도 국비지원보다는 장점이 더 많습니다.
제가 위에서 안 좋은 단점만 말한 것 같은데요, 국비지원이든 부트캠프든 자기 자신만 올바른 방향으로 노력한다면, 원하는 회사에 들어갈 수 있을 것입니다. 이거는 대학 전공자도 마찬가지입니다.
어떠한 교육과정이든 취업준비생들이 가장 가고싶어하는 회사들이 만족할 만한 실력을 가진 개발자를 양성하기는 힘듭니다. 결국 교육과정 외에도 자기 자신이 얼마나 개발에 흥미가 있고 추가적인 노력을 기울이느냐가 중요합니다.
그래서 제가 생각하기에 가장 가능성 있는 커리어패스는 다음과 같습니다.
국비지원 학원이든, 부트캠프든 교육을 받음
-> SI업체나 스타트업에 취업
-> 꾸준히 공부를 하고 경력을 쌓아서 한 단계 높은 서비스회사에 취업
-> 최종적으로 원하는 회사로 이직
너무 뻔하고 당연한 내용이라구요? 근데 지름길은 없습니다. 노력을 해야만 하는게 현실입니다. 그리고 몇 년만 노력하면 원하는 커리어를 쌓을 수 있는데, 노력을 안 할 이유도 없습니다.
참고로, 교육과정 외에도 어떤 것들을 공부하고 꾸준히 기술 습득하면 좋을 지, 제가 다른 글들에서도 써 놓았는데요, 잘 모르는 상태에서 읽으면 무슨 말인지 잘 모를 수도 있을 것 같습니다. 그래서 많은 요청을 받아서 주변의 뛰어난 개발자들과 이런 문제들을 해결하기 위한 교육 과정을 준비 중입니다. 이 부분은 준비가 되면 다시 한번 소개를 해보겠습니다. 그 전에 교육과정에 대해 궁금하신 분들이나, 이 글에서 말한 것들에 대해 질문이 있으신 분들은 이메일 주시면 최대한 답변 드리겠습니다.