brunch

You can make anything
by writing

C.S.Lewis

by 박재성 Aug 09. 2021

개발자를 꿈꾸는 취업 준비생에게

오늘 아침 운동으로 어깨 운동을 했는데 유난히 힘들었다. 분명 잠도 잘 잤는데 집중이 잘 되지 않았다. 역시나 아침에 중량 운동은 힘들다. 점심으로 햄버거 먹으려고 주문하고 자리에 앉았다. 내 사전에 식사 대용으로 햄버거는 목록에 없었는데 어느 순간 잘도 먹는다. 이 모든 것이 코로나로 인한 재택 때문이다. 아내 눈치를 덜 보기 위한 자구책이다. 자리에 앉아 페북을 보고 있는데 6개월이면 개발자 만들어준다는 코딩 학원 광고, 현실은 중소기업 ‘코딩 노예’라는 제목의 기사가 눈을 사로잡는다. 조선비즈라 무시하려다 내가 처음 프로그래밍을 시작할 때가 생각나 자연스레 손이 움직인다. 내가 이 글을 쓰는 이유는 우연히 읽은 저 기사 때문이다.


라떼는 말이야 - 2000년

1990년대 후반. IMF 외환위기를 극복하기 위한 일환으로 초고속 통신망이 깔리면서 벤처 붐이 일었다. 자연스레 개발자 품귀 현상이 발생했다. IMF 외환위기로 인해 일자리가 부족했던 사람들, 벤처 성공 신화에 감동받은 사람들이 개발자의 길을 걷기 위해 도전했다. 여기저기 우후 죽순처럼 프로그래밍을 가르치는 학원이 등장했다.


나는 1990년대가 지나고 서서히 벤처 붐이 저물어가던 2000년 여름 프로그래밍 공부를 시작했다. 더운 여름 도서관에 앉아 C 언어 책을 봤던 기억이 난다. 개발자에 도전하려는 사람이 많다 보니 C 언어로 사전 테스트를 거쳐 통과해야 해당 과정을 수강할 수 있었다. 6개월 과정이라고... 나는 3개월 자바 전문가 과정을 마친 후 개발자의 길을 걷기 시작했다. 6개월도 아닌 3개월이다.


개발자의 길을 걷는 과정이 어떠했을지 말하지 않아도 뻔하다. 3년 동안은 정말 힘들었다. 모르는 것이 너무 많아 대부분의 시간을 프로그래밍 학습에 투자했다. 취업하기 전에 이미 결혼을 했고, 아내의 뱃속에는 지금의 첫 째 아이도 자라고 있었다. 회사 생활, 가족, 학습을 병행하기 너무 힘들었다. 가족에게 써야 할 대부분의 시간을 프로그래밍 학습에 투자했다. 지금도 아이들이 어릴 때 많은 시간을 함께하지 못한 것이 항상 미안함으로 남아 있다. 군대를 제대하고 바로 개발자의 길을 걷기 시작했기 때문에 체력이 좋았다는 것이 그나마 다행이라면 다행이었다.


지금은 말이야 - 2021년

6개월이면 개발자 만들어준다는 코딩 학원 광고, 현실은 중소기업 ‘코딩 노예’ 기사의 내용을 보면 2000년의 사회 상황과 내가 경험했던 과정이 너무 닮아 있다. 꼭 기사의 내용을 통해 확인하지 않더라도 지인들을 통해 전해 듣는 이야기도 같다. 단, 2000년에 비해 달라진 점이라면 개발자에 대한 인식과 처우가 상당히 좋아졌다는 것이다. 물론 현재는 일부 좋은 회사들에 국한된 이야기일 수 있지만 시대의 흐름인 만큼 앞으로 더 좋아지면 좋아졌지 나빠지지는 않을 것이라 예상한다.


분명 주변 상황은 좋아지고 있고 앞으로 점점 더 좋아지리라 생각한다. 이런 상황에서 굳이 2000년에 내가 경험했던 과정을 반복할 필요는 없지 않을까라는 마음으로 이 글을 쓴다.


개발자 취업. 어떻게 준비할 것인가?

이 글에서 제안하는 과정은 주변 상황을 고려하지 않고 최대 2년 정도의 시간을 프로그래밍 학습에 투자할 수 있다는 가정 하에 작성했다. 이 글의 대상은 비전공자를 기준으로 작성했다. 자신의 여유 자금 상황, 재직 여부, 학생 여부, 나이 등의 다양한 상황에 따라 조정하는 것을 추천한다.

비전공자가 개발자로 취업하기 위한 준비 기간은 최소 1년에서 2년은 계획하고 도전할 것을 추천한다. 최소 1년이라고 했지만 1년도 절대적으로 부족하다. 경제적, 시간적으로 여유가 있다면 최소 1년 반에서 2년은 투자할 필요가 있다.


많은 학원에서 광고하는 6개월이라는 시간은 절대적으로 부족하다. 물론 개발자의 길을 걷을 수 있다. 하지만 취업 후의 여정이 너무 힘들고, 제대로 된 대우를 받기 힘들다. 위 기사의 글처럼 이용만 당하다 포기할 가능성이 높다. 학원을 활용하는 것은 좋고, 추천한다. 하지만 학원의 3개월, 6개월 과정만 마친 후 취업하겠다는 욕심을 버리고 자신이 필요한 시점에 학원을 활용할 것을 추천한다.


시작 및 탐색 단계 - 3개월 ~ 6개월

개발자 취업을 위해 바로 학원의 문을 두드리기보다 스스로 준비하는 시간을 가지면 좋겠다. 프로그래밍이라는 것이 무엇인지, 내가 개발자에 대한 간절함이 있는지 확인하는 시간이다. 개발자에 대한 막연한 환상을 가지고 도전하는 경우가 많은데 자신이 그런 막연한 환상을 가지고 있지는 않은지 검증하는 시간이 될 수도 있다.


시작은 따라 하기 식의 동영상이나 책을 활용해 프로그래밍으로 무엇인가를 만들어보는 경험을 한다. 따라 하기 식의 경험을 마친 후 자신이 만들고 싶은 소프트웨어를 스스로의 힘으로 구현해볼 것을 추천한다. 

아들과 함께 프로그래밍하기 동영상이 프로그래밍을 시작하는 단계에서 도움이 될 것 같아 공유한다. 내가 아들과 함께 프로그래밍 학습을 시작할 때 접근했던 방식이다.

준비 기간에 가장 중요한 것은 프로그래밍을 맛보고, 프로그래밍을 통해 무엇인가를 만들어 보는 재미를 느껴보는 단계이다. 따라 하기 단계에서 한발 더 나아가 스스로의 힘으로 2 ~ 3개의 소프트웨어를 만드는 것이 생각보다 쉽지 않다. 이 정도의 열정이 있다면 다음 단계로 도전해도 좋을 것이라 생각한다.


개발자의 길을 걸어도 되겠다는 약간의 확신이 든다. 학원과 같은 교육 과정에 참여하는 것이 좋겠다는 생각이 든다. 물론 이 단계에서 바로 교육 기관에 참여하는 것도 좋다. 하지만 나는 이 기간을 2 ~ 3개월 더 지속할 것을 추천한다. 2 ~ 3개월을 투자해 몇 개의 소프트웨어를 만들어본다고 프로그래밍 언어 활용이나 사고에 익숙해지는 데는 한계가 있다. 3개월 또는 6개월의 교육 과정은 짧은 기간 동안 너무 많은 내용을 다루기 때문에 내용을 이해하고 따라가는 데 어려움이 크다. 이때 특히 어려움을 겪는 것이 프로그래밍 언어를 사용할 수 있는 역량이라 생각한다. 어떤 프로그래밍 언어든지 상관없다. 최소 한 개의 프로그래밍 언어를 활용해 변수, 배열, 조건문, 반복문, 함수 정도는 자유롭게 사용할 수 있는 수준이 되어야 한다. 프로그래밍을 처음 경험하는 비전공자의 경우 이 정도의 역량을 쌓는데도 최소 3개월에서 6개월 정도의 시간을 투자해야 한다고 생각한다.


이 정도의 역량을 갖춘 상태라 해도 학원과 같은 교육 과정을 소화하는데 어려움이 있다. 대부분의 6개월 교육 과정은 1개월(길어야 2개월) 정도에 프로그래밍 언어 하나를 완료하는데 아무런 경험도 없는 비전공자에게 말도 안 되는 커리큘럼이다. 시작 단계에서부터 어려움을 겪으면 이후에 학습하는 과정 또한 따라가기 힘들고, 프로그래밍에 대한 흥미를 느끼기도 힘들 가능성이 높다.


시작 단계는 독학으로 진행할 것을 추천한다. 하지만 아무것도 모르는 상태에서 독학으로 도전하기는 힘들 수 있다. 이런 상황이라면 동아리 활동이나 취업 준비 스터디를 활용하는 것도 좋은 선택이 될 수 있다. 이도 저도 안된다면 3개월 또는 6개월 교육 과정을 두 번 수강하는 것도 선택지가 될 수 있다. 하지만 비용 부담도 크고, 과정에 참여하면서 스트레스도 많이 받기 때문에(개인적으로 독학보다 더 많은 스트레스를 받을 가능성이 높다고 생각한다.) 그리 추천하고 싶은 방법은 아니다.


교육 기관 활용 단계 - 6개월 전후

앞의 과정을 무사히 마쳤다면 다음 단계로 학원과 같은 교육 기관을 활용할 것을 추천한다. 독학으로 뛰어난 프로그래머로 성장하는 사람도 있지만 예상보다 극히 드물다. 프로그래밍 학습에 대한 방향성을 잡고, 같이 학습할 동료를 만드는 목적으로 활용하는 것도 좋은 방법이다. 아무래도 독학으로 이 어려운 과정을 헤쳐나가는 데는 어려움이 많기 때문이다.


교육 과정에 참여할 때 프로그래밍 역량을 쌓는 것도 물론 중요하다. 하지만 약간의 여유가 생긴다면(앞 단계계를 잘 거쳐왔다면 약간의 여유는 생길 수 있다.) 다른 사람들과 협업하고, 소통하고, 협력 학습을 하는 것에도 관심을 가지면 좋겠다. 최근에는 협업, 소통에 대한 중요성이 높아지고 있기 때문에 이 부분에 대한 깊이 있는 경험을 할 수 있는 좋은 기회라 생각한다.


심화 학습 단계 - 6개월 전후

앞의 단계를 거치며 프로그래밍 학습에 대한 대략적인 방향성을 잡을 수 있다. 앞의 과정을 잘 소화했다면 추가적으로 학습해야 할 내용이 정말 많다는 것을 느끼는 시점이 이 시점이다. 대략 1년의 시간을 투자했는데 지금이 끝이 아니라 지금이 본격적인 시작이라는 느낌이 든다.


교육 과정을 마친 대부분의 사람들이 이 시점에 취업을 한다. 물론 취업을 선택하는 것도 한 가지 선택이다. 취업을 하면 일하면서 성장하고 배우는 것도 정말 많다. 한, 두 단계 성장하기 위해 취업을 선택할 수 있다. 하지만 이 상태에서 취업할 경우 성장과 배움보다 열악한 환경(낮은 연봉과 잦은 야근 등) 때문에 학습에 투자할 시간이 없을 가능성이 높다. 100% 그렇다는 것이 아니라 확률적으로 그렇다는 것이다.


나는 프로그래밍 학습에 1년 정도 투자한 시점이 끝이 아니라 개발자의 길을 걷기 위해 본격적으로 학습에 시간을 투자해야 할 시점이라 생각한다. 2021년, 대한민국 소프트웨어 기업 환경은 신입 개발자가 배우고 성장할 수 있는 기회를 주는 환경이 아니다. 이미 갖추어진 역량을 사용하는 것에 관심이 있지 개발자 육성에는 관심이 덜한 것 같다. 이런 환경에서 바로 취업한다는 것은 험난한 길을 걸을 가능성이 높다는 것이다. 물론 개인의 노력 여하에 따라 회사 일과 학습을 병행하는 것이 가능할 수 있겠지만 내가 지금까지 만나본 재직자들의 극히 일부분만 가능했다.


이 기간은 앞의 교육 과정에서 소화하지 못했던 내용을 보완하고 온전한 나의 것으로 체득하는 시간으로 만들어야 한다. 즉, 지금까지 다양한 부분에 대해 얕은 학습을 했다면 이 단계부터 특정 기술 하나하나에 대해 깊이 있는 학습을 할 필요가 있다. 개발자들과의 네트워킹 데이 때 질문으로 나온 특정 기술에 대해 깊이 있게 파고드는 학습 방법은? 에 대한 답변이 도움이 되었으면 한다.

나는 웹 애플리케이션 서버, 프레임워크의 동작 원리가 궁금하거나 컴퓨터 사이언스의 이론적인 지식이 궁금하다면 이론적인 학습보다는 직접 구현해 보면서 이론적인 지식과 동작 원리를 이해하는 것을 선호한다. 이 방법이 책이나 동영상을 통해 학습하는 것보다 시간이 많이 걸리겠지만 훨씬 더 깊이 있는 이해를 할 수 있으며, 재미있다고 생각한다.


나의 이런 학습 방법 때문에 아들에게 컴퓨터 동작 원리를 가르칠 때도 컴퓨터, 가상 머신, 컴파일러, 운영체제를 직접 구현해 보는 경험을 하도록 했다. 아들과 함께한 과정은 아들과 함께 프로그래밍 5 글에서 볼 수 있다. 아들과 함께 프로그래밍 5 글에서 볼 수 있듯이 의지만 있다면 무엇인가를 만들면서 학습할 수 있도록 가이드하는 책들이 의외로 많다. 운영체제 만들기, 데이터베이스 만들기 등등등...


이렇게 심화 학습을 하다 보면 점점 더 자신감이 생긴다. 사람에 따라 자신감이 떨어지는 경우도 있는데 이런 경우 빨리 취업해야 한다는 조바심이 크기 때문이 아닐까 생각한다. 조바심은 큰데 역량은 빠르게 늘지 않다 보니 점점 더 재미도 떨어지고 자신감도 떨어지지 경우를 종종 본다. 우리 인생은 길다. 약간은 여유를 가지고 프로그래밍에 대한 즐거움을 느끼는 것에 집중해 보면 어떨까? 물론 쉽지 않다. 누구나 도전할 수 있지만 누구나 통과할 수 없는 과정이기 때문에 도전해볼 만한 가치가 있지 않을까?


취업 단계 - 심화 학습 단계와 병행

심화 학습 단계를 진행하면서 약간의 자신감이 생기면 회사에 지원을 시작한다. 프로그래밍을 학습하는 친구들을 보면 사회로 나가는 것에 대한 두려움 때문인지 역량이 부족하다는 핑계로 학습을 계속 이어 나가는 경우가 있다. 프로그래밍 학습을 1년 이상 지속하다 보면 지친다. 내가 무엇을 위한 공부를 하고 있는지, 제대로 된 방향으로 공부하고 있는지 막연하다. 이럴 때 동기 부여할 수 있는 좋은 방법이 회사에 지원하고 면접을 보러 다니는 것이다. 면접을 보면 현장에서 요구하는 역량이 무엇인지, 내가 부족한 역량이 무엇인지 파악할 수 있다. 따라서 심화 학습 단계를 진행하면서 학습에 대한 동기 부여가 떨어지는 시점이나 약간의 자신감이 생기는 시점에 면접에 도전해볼 것을 추천한다.


마치며...

앞에서도 잠시 언급했지만 개발자가 되는 취업 과정을 일반화하기는 힘들다. 각자의 상황이 있기 때문에 상황에 따라 다른 과정으로 도전할 수 있다.


그럼에도 불구하고 한 가지 강조하고 싶은 점은 6개월이라는 짧은 교육 과정을 통해 처우가 좋은 소프트웨어 개발 회사에 취업하겠다는 환상은 버리면 좋겠다. 물론 일부 가능한 사람도 있겠지만 거의 불가능한 일이다. 그런 환상을 가지고 도전하기보다 2년 정도는 프로그래밍 학습에 몰입하겠다는 마음으로 도전하면 좋겠다.


이 과정이 길고 힘들다고 중간에 포기하지 않으면 된다. 포기하지 않고 도전을 지속한다면 누구에게나 개발자의 길은 열려 있다. 그렇게 개발자의 길을 몇 년 걸어보다 이 길이 내 길이 아니면 다른 길을 걸으면 된다. 다른 길을 걸을 때도 프로그래밍 역량은 충분히 많은 도움이 될 것이다. 컴퓨터 하나만 있으면 내가 원하는 무엇인가를 만들 수 있다는 것. 그 하나만으로도 매력적인 일 아닐까?

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari