7. 개발자를 꿈꾸는 비전공자를 위한 글
비전공자들을 대상으로 프로그래밍 강의를 한 적이 있었다. 첫 수업에서 나는 학생들에게 두 가지 질문을 했다.
"왜 이 수업을 듣게 되셨나요?"
"이걸 배워서 뭘 하고 싶으신가요?"
첫 번째 질문에는 다들 어렵지 않게 대답했다. 취업, 창업, 흥미 등등 다양한 이유였다. 하지만 두 번째 질문에 대답하는 사람은 거의 없었다. 두 명 정도 될까.
수업과는 별개로 그들이 방향을 잡을 수 있도록 잔소리 아닌 잔소리를 많이 했다. 해야 했고, 하고 싶었다. 나 역시도 비전공자였고, 개발자가 되고 싶었지만 처음엔 아무것도 몰랐기 때문에 방향을 잡는 데만 2년이라는 시간이 걸렸다. 그들은 나처럼 먼 길을 헤메지 않았으면 하는 마음이었다. 그리고 지금은 좀 더 많은 비전공자들(프로그래밍이나 컴퓨터, 나아가 IT 분야에 대해 잘 모르지만 흥미가 있거나 해보고 싶어 하는 모든 사람들을 임의로 '비전공자'로 칭했다)에게 조금이라도 도움이 되고 싶은 마음에서 이 글을 작성한다.
이제 와서 보면 특별한 내용은 아니지만, 내가 개발자가 되고 싶었을 때, 구직을 시작할 때 알았더라면 훨씬 좋았을 거라 생각되는 이야기들이다. 다른 시리즈와는 다르게 프로그래밍에 관심 없는 사람들에게는 조금 지루한 글이 될 수도 있겠다. (그래도 어려운 말은 쓰지 않았다)
배우고자 하는 언어를 선택하라
개발 언어의 종류를 살펴보면,
Java, HTML, CSS, JSP, XML, C, C#, C+, C++, Swift, PYTHON, JavaScript, SQL, Android, UML, Ruby, Scretch, PHP, MATLAB, ...
등으로 정말 많은 언어들이 있다. 위에 나열한 것들은 극히 일부일 뿐이다. 엄밀히 말하면 언어라 칭할 수 없는 것도 있지만 우선 그 부분은 생략하도록 하겠다.
프로그래밍 언어가 다 거기서 거기라고 생각할 사람들도 있겠지만(내가 그랬다), 쓰임새 자체가 다르다. 그렇다면 각 언어마다 어디에 쓰이는지를 알아야 할 텐데, 언어가 저리도 많으니 하나하나 알아보는 것은 무리가 있다. 내가 프로그래밍을 배워서 '무엇'을 하고 싶은지를 먼저 생각해 보는 게 빠르겠다.
어디에 쓸까
'앱을 만들고 싶다', '게임을 만들고 싶다' 하는 것과 같이 취미나 관심에 의한 목표가 있다면 방향을 잡기가 훨씬 수월하다. 하지만 내가 만나본 비전공자들의 대부분은 '취업'이 목표였다. '일단 뭐든 배워놓으면 취업이 쉽겠지'하는 생각으로 수업을 신청하고 듣는다. 아닐 것 같지만 이걸 배워서 어디에 쓸 수 있는지 정확히 아는 사람은 하나도 없다.
웹, 응용 소프트웨어, 시스템, 데이터베이스, 네트워크, 보안, 서버, 솔루션, 게임, 빅데이터, AI, VR, AR, 블록체인, ...
찾아보면 개발의 종류도 이렇게나 많다. 응용 소프트웨어는 다른 말로 앱이라고 한다. 이렇게 단어조차 통일이 안되니 입문자에겐 프로그래밍이 그저 별나라 이야기로 느껴질 뿐이다. 나도 내가 해본 것 말고는 위에 나열한 개발자들이 무슨 일을 하는지는 대략적으로만 알뿐이다. 개발자가 되기를 희망하고 있다면, 이 중에서라도 몇 개를 뽑아 구체적으로 어떤 일을 하는지를 살펴봐야 한다. 그리고 나면 어떤 언어를 공부해야 할지 가닥이 좀 잡힌다.
어느 회사를 가야 하나
여전히 어떻게 시작을 해야 할지 막막하다면, 우선 희망하는 회사를 먼저 생각해 보는 것도 도움이 된다. 가고자 하는 기업의 종류에 따라 준비 방식도 달라지기 때문이다. 나는 보통 두 가지 방향으로 기업을 분류한다. 첫 번째는 규모에 따른 분류다.
1. 대기업 - 대학 학점, 어학 점수, 수상 경력 등의 기본적인 스펙이 밑바탕이 되어야 지원 자격을 가진다. 첫 번째 관문을 통과하면 인적성 검사라는 이름의 시험이 기다리고 있다. 소프트웨어 개발 능력은 중요하지 않으며, 전공자가 아니어도 자유롭게 지원할 수 있다.
2. 중소기업 - 대기업에 비해 커트라인이 다소 낮다. 회사에서 필요로 하는 기술을 어느 정도 가진 사람을 선호한다.
3. 스타트업 - 스펙의 중요도가 가장 낮다. 실력을 중시하기 때문에 포트폴리오가 있다면 많은 도움이 된다. 또한 다양한 직무를 경험해 볼 수 있다.
두 번째로는 기업 성격에 따라 분류해 봤다.
1. 전문 SW(소프트웨어) 기업 - 삼성 SDS, LG CNS, SK C&C, 네이버, 카카오 등의 대기업 계열의 회사와 안철수 랩, 이스트소프트, 제니퍼소프트 등의 중견/중소 업체 등의 SW 전문 기업들이다. 실력을 중시하는 곳도 있지만, 자체 교육 커리큘럼이 짜여 있는 곳이 많아서 비전공자도 도전해 볼 만하다.
2. SW 아웃소싱 기업 - 본사 직원을 다른 업체에 파견을 하거나 프리랜서를 관리하는 기업이다. 인력만 관리하는 회사도 있지만, 자체 솔루션이 있어서 파견식으로 운영하는 경우도 있다. 파견직이다 보니 사수가 없는 것이 일반적이어서, 비전공자에겐 힘든 시작이 될 수도 있다.
3. 게임 회사 - 일반 소프트웨어나 솔루션을 다루는 회사와는 성격이 확실하게 구분되어 게임회사를 따로 분류하게 됐다. 엔씨소프트, 넥슨, 스마일게이트 등이 있다. 어떤 게임을 만들고 싶은지, 게임의 어느 부분을 구현하고 싶은지에 따라 배워야 하는 언어가 달라지니, 꼭 확인할 것!
4. 외국계 기업 - 페이스북, 구글, 마이크로소프트, 오라클, 유니티 등의 외국계 회사들이 있다. 복지가 좋은 것으로 유명하지만, 국내에는 개발직보다는 기술영업, 마케팅 등의 부서의 비중이 높다. 링크드인이나 외국계 기업 전문 헤드헌터 등을 활용하여 구직할 수 있다.
무엇을 준비해야 할까: 포. 트. 폴. 리. 오.
목표가 정해졌다면 독학이든 학원이든 기본 지식을 쌓는 것이 우선이다. 요즘은 무료로 강의를 제공하는 사이트도 많아서 마음만 먹으면 얼마든지 배울 수 있다. 공부하다가 모르는 것도 검색하면 웬만한 건 다 나온다. 전문 서적을 보기보다는 튜토리얼 영상이나 코드를 보며 직접 실습해보는 것을 추천한다.
기본기를 어느 정도 쌓았다면, 다음으로 강조하고 싶은 것은 포트폴리오다. 구직을 하다 보면 '비전공자가 하면 얼마나 하겠어'라는 편견을 자주 마주하게 된다. 그렇기 때문에 '내가 이런 언어를 해봤고 할 줄 안다'는 것으로는 부족하다. 좀 더 구체적으로 증명할 수 있는 것이 필요하다. 공부했던 것도 좋고, 튜토리얼을 보며 따라 만든 게임이나, 앱도 좋다. 무언가를 만들었다면 무조건 문서화를 하라고 말하고 싶다. 그것이 포트폴리오다. 화면을 캡처하고 프로젝트에 관한 간략한 설명, 사용한 기술 등을 적는 것만으로도 그럴듯해진다. 그리고 무엇보다 포트폴리오가 있으면 면접에 갔을 때도 뻔한 질문과 답변 이외의 이야깃거리가 오갈 수 있기 때문에 여러모로 도움이 된다.
처음부터 포트폴리오를 위한 프로젝트를 만들고자 한다면 아래의 샘플을 따라 만드는 것도 괜찮은 방법이다.
[1.분석설계]에 들어갈 스토리보드나 유스케이스를 만드는 과정을 거치면 프로젝트를 전체적으로 설계하는데 도움이 많이 된다. 양식은 인터넷에 검색해서 다운로드할 수 있다.
[2.최종산출물] 폴더에는 내가 만든 프로젝트를 통째로 넣어놓고,
[3.발표자료]에는 위에 말했던 캡처 화면을 포함한 설명을 넣은 PPT와 프로그램을 직접 시연하는 영상을 찍어서 넣어 놓는다.
최종적으로 이 폴더들을 한데 묶어 USB에 담아 놓거나, 구글 드라이브 등에 올려놓고 링크를 공유하여 포트폴리오를 전달하면 된다.
이번 편은 '이직이야기'라기보다는 취업 가이드에 가까운 글이 되었다. 하지만 다른 직무를 하다가 개발자가 되고 싶은 사람도 분명 있을 테니 이직이야기라고 쳐도 될 것 같긴 하다.
오늘 하루도 열심히 버티고 있는 모든 직장인들을 응원하며, 당신의 성공적인 이직/취업을 기원합니다☆