국비지원, 코딩부트캠프 없이 개발자로 취업하기
미술학원에 가려고 서울대입구역에서 내렸는데 웬 뱃고동 소리가 났다. 알고보니 어느 코딩부트캠프의 광고였다. 최근 신입 개발자 연봉이 크게 뛰면서 개발자 취업에 대한 사람들의 관심이 높아졌다. 그런 이유로 코딩 부트캠프도 많이 늘었고, 국비지원학원을 알아보는 사람도 많아졌다.
나 역시 비전공자이지만 국비지원 학원이나 부트캠프를 다니지 않고 6개월 간의 독학으로 지금은 3년 차 개발자가 되었다. 이 글에서는 내가 독학으로 공부한 방법과 포트폴리오에 어떤 것을 쓸 지 풀어보려 한다.
> 비전공자 개발자 취업: 국비지원, 코딩부트캠프 없이 독학으로 공부한 이유
자기계발편에서 말했듯이 취업에서도 목표를 정하면 좋다. 연봉을 얼마 이상으로 주는 기업으로 가겠다든지, 자신이 관심 있어하는 서비스를 개발하는 기업으로 가겠다든지 하는 목표가 있다면 무엇을 공부할지도 가닥이 잡힌다. 나는 원래 창업과 웹 개발에 관심이 있어서 웹 서비스를 운영하는 스타트업에 가고 싶었다.
당시 나는 Python을 배웠기 때문에 웹 개발을 하는 스타트업에서 주로 사용하는 Django라는 프레임워크를 공부했다. 요즘은 백, 프론트를 함께 개발할 수 있는 Javascript, Typescript와 백엔드 프레임워크로는 Nestjs, 프론트 리액트 프레임워크로 NextJs 등이 많이 쓰이는 듯하다. 그러나 다 그런 것은 아니니 자신이 가고 싶어하는 회사의 채용 공고를 보고 어떤 기술을 사용하는지 참고하면 좋다.
인터넷 강의
아예 처음이라면 생활코딩과 인프런을 추천한다. 생활코딩은 전부 무료고 초보자가 배우기 매우 쉽게 설명한다(여유롭게 말씀하시기 때문에 1.5배속으로 들으면 좋다). 인프런은 유료 강의도 저렴한 편인데다가 무료 강의 중에서도 괜찮은 강의가 많다. 만약 좀 더 정통으로 공부하고 싶다면 ‘코드스피츠’를 추천한다. 언어나 기술에 관련해서 좀 더 근본적으로 배우기 때문에 탄탄한 기본기를 쌓기에 좋다.
해외에서는 Udemy나 Coursera 등이 있다. Udemy도 종종 이용하는 편인데 가격이나 강의 질이 나쁘지 않았다. Coursera도 간혹 유료 강의가 있지만 커리큘럼이 괜찮은 편이다.
스터디
- 왜 해야할까?
취미와 다르게 취업할 때는 다른 개발자와의 협업 경험이 필수적이다. 따라서 실무자가 아니라면 스터디를 통해 함께 프로젝트를 해봐야 한다. 초반에는 스터디를 하면서 다른 개발자도 만나보고, 협업하는 경험도 길러야 한다. 그리고 스터디와 프로젝트 진행 사항을 notion이나 블로그에 남기는 것도 중요하다. 개발자에게 기록은 필수다. 나중에 포트폴리오에 한줄이라도 쓸 수 있으니 말이다.
- 무엇을 기록할까?
어떤 것을 기록해야할까? 무엇을 배웠는지, 어떤 기술을 썼는지, 왜 썼는지, 스터디를 진행하면서 힘들었던 점, 어떻게 해결할 수 있을지, 어떻게 극복했는지 등을 서술해야 한다. 기술과 협업, 두 가지 측면에서 쓰면 된다. 프로젝트는 나중에 면접에서 물어볼 수 있기 때문에 정리해놓으면 좋다.
- 어떤 스터디를 해야할까?
스터디 중에서도 이론만 진행하는 스터디는 취업에 별로 도움이 되지 않는다. 게다가 공부는 혼자 하는거지, 당일날 모여 다른 사람들과 공부하는 건 의미가 없다고 생각한다. 그리고 기왕이면 잘하는 사람과 함께 해야한다. 이와 관련해서는 ‘비전공자 코딩 공부 - 자기계발편’에 자세히 써두었다.
프로젝트
프로젝트는 개인 프로젝트와 팀 프로젝트 두 가지로 나눌 수 있다.
개인 프로젝트는 처음에 인터넷 강의나 공식문서의 튜토리얼을 따라해보고 응용하는 식으로 만들면 좋다. 예를 들어 TODO 앱을 만드는 방법을 배웠다면 비슷한 커피 주문 앱을 만들면 된다.
팀 프로젝트는 팀원들이 담당하는 분야가 나뉘기 때문에 맡은 역할에 따라 프로젝트에서 자신의 실력이 가려질 수 있다. 따라서 자신이 맡은 역할이 크지 않다면 어떻게 협업하는지, 프로젝트를 어떻게 진행하는지 배운다는 목적으로 임하면 된다.
git으로 코드 버전관리도 해보고(솔루션은 github, gitlab, bit bucket 등 다양하지만 github를 사용하는 곳이 압도적으로 많으므로 github을 사용하자. svn은 SI에서 주로 사용하므로 예외.) PR(Pull Request)도 올려보고 코드 충돌도 해결해보자.
협업을 할 때는 코드 컨벤션이 중요하다. 코드는 책을 쓰듯이 다른 사람이 봐도 알아볼 수 있게 써야 한다. 다른 사람들이 봐도 알아볼 수 있게 쓰려면 사용하는 기술(라이브러리, 프레임워크)의 코드나 공식문서를 참고하면 된다.
또한, github action이나 jenkins, circle ci, travis ci 등 다양한 CI/CD(Continuous Integration/Continuous Delivery) 툴을 사용해 테스트나 릴리즈, 배포 등을 자동화하는 경험을 해보면 실무에서 도움이 될 것이다.
개인 프로젝트와 팀 프로젝트 둘 다 중요한 건 그 프로젝트로 창업할 게 아닌 이상 최소한의 기능을 갖춘 서비스(MVP, Minimum Viable Product)로 개발해야한다는 것이다. 기획부터 너무 거창하면 실력이 못따라가서 도중에 포기하기 쉽다. 처음에는 간단하게 개발하고 그 후에 살을 붙이는 게 좋다.
개발자 행사 참여
python 행사 파이콘, 자바스크립트 컨퍼런스 jsconf, 프론트엔드 컨퍼런스 feconf 등 개발자 행사에 가보자. 각종 기업이 부스를 운영하고 있을 것이다. 채용을 목적으로 행사에 기부한 기업들이다. 관심있는 기업의 부스에 가보고 채용에 관련된 설명을 직접 들어보면 좋다.
2019 파이콘에서는 오픈소스에 기여하는 스프린트 서울에 참여할 수 있었는데 이런 행사에도 참여하면 오픈소스의 메인테이너(오픈소스 관리자)와 직접 만나볼 수도 있고 잘하는 개발자분들께 한수 배울 수도 있다(스프린트 서울은 지금은 운영하지 않는다).
개발자 포트폴리오에서는 해커톤, 기술블로그, 깃허브 활동, 오픈소스 기여, 프로젝트 경험 등을 보여주어야 한다. 그리고 자신이 어떤 기술과 분야에 관심이 있는지 자신을 보여주는 자기소개까지 따로 들어가 있다면 좋다.
참고로 내 포트폴리오(이력서)는 노션 페이지로 만들었다. 궁금하면 들어가보시라.
프로젝트 경험
서비스 배포 주기가 빠른 기업이나 초창기 스타트업일 수록 바로 실무에 투입 가능한 인력을 뽑기 때문에 실력을 중요시 여긴다. 만약 자신이 가고 싶은 기업이 그렇다면 프로젝트를 통해 자신이 회사와 관련된 기술을 사용해본 경험이 있고, 능숙하게 다룰 수 있음을 보여주어야 한다.
해커톤
나는 창업과 개발에 관심이 있어서 창업경진대회, 해커톤, 메이커톤, 알고리즘 대회 다양한 대회에 나갔다. 교내든 교외든 참여할 수 있는 대회에 많이 나가보면 좋다. 보통 길어봤자 무박 3일이고 무박 2일이 대부분이다. 바빠도 주말에 시간 내서 나가면 된다. 밤새면서 서비스를 개발하는 일은 앞으로도 많이 겪을 일이지만, 생판 처음보는 사람들과 밤을 새며 기획하고 개발하는 일은 흔치 않다. 게다가 상금까지 타면 일석이조이다.
기술 블로그 / 깃허브 활동
이제 막 개발을 시작한 비전공자가 블로그에 쓸 수 있는 글은 많지 않다. 대신 깃허브 1일 커밋처럼 매일 TIL을 작성해서 성실하게 공부해왔다는 걸 보여줄 수 있다. 인프런 CTO 이동욱 개발자 님은 2016년부터 5년간 꾸준히 1일 커밋을 해오고 계신다. 이렇게 열심히 활동하시는 분들을 깃허브에서 팔로우 해놓고 그분들이 어떤 활동을 하는지 어떤 프로젝트에 관심을 갖고 계신지 눈여겨 보는 것도 좋다.
기술블로그는 medium.com이나 velog.io, tistory를 보통 많이 사용한다. 또는 notion을 oopy로 퍼블리싱해서 사용할 수 있다. 현재 내 기술블로그가 notion으로 되어있는데 노션 자체가 메모장 같은 느낌이 커서 앞선 매체들보다 더 가벼운 느낌으로 적을 수 있다.
예전에는 네이버 블로그나 jekyll이나 hexo 등 static site generator를 사용해 블로그를 직접 개발하기도 했다.
내 네이버 블로그: 쉬어가는 블로그 (2018~2019)
내 지킬 블로그: 유혹하는 개발하기 (2018~2019)
사실 무엇으로 블로그를 만드냐보다는 안에 있는 내용이 얼마나 알찬지가 중요하다. 가능한 개발을 하며 자신이 공부한 것, 활동한 것을 모두 적는 게 좋다. 채용담당자와 함께 일할 개발자들이 나에게 호기심을 갖게 만들어야 한다.
오픈소스 기여
개발자들 사이에서는 오픈소스에 기여하는 활동을 매우 존중하고 대단하다고 여긴다. 매년 10월에는 개발자들의 오픈소스 기여를 장려하는 ‘헥토버페스트’라는 이벤트도 열린다. 따라서 관심 있는 프로젝트에 기여한 경험은 채용 담당자에게 좋은 인상을 남길 수 있다.
가고 싶은 회사가 오픈소스를 운영하고 있다면 회사의 오픈소스에 이슈를 남기거나 기여해보는 게 좋다. 해외에서는 프로젝트를 공개해서 오픈소스 생태계에 기여하고, 기여자들을 채용하는 경우가 많다. 국내에서도 네이버, 당근마켓, 배달의민족 등 유명 기업들이 오픈소스를 공개해 운영하고 있다.
나는 2018년도 파이콘이라는 파이썬 행사에서 참여한 스프린트 서울을 시작으로 몇몇 프로젝트에 기여한 경험이 있다. 처음부터 대단한 것으로 기여하지 않아도 된다. 오타를 수정하거나 공식문서를 번역하는 것도 좋다. 나는 처음에 데브시스터즈 개발자(현재는 당근마켓에 계시는) 김혜성 개발자 님의 글을 참고해 오픈소스 활동을 했다. 꼭 읽어보길 추천한다. 그리고 비할 바가 못되지만 내가 오픈소스를 통해 성장한 이야기도 읽어보길 추천한다. 훗.
많은 선택지를 제공하기 위해 최대한 많은 활동을 적어보았다. 중요한 것은 성실하게 공부하고 성실하게 코드를 쓰는 것이다. 많은 활동을 하는 것도 중요하지만 경험만 많고 실무에서 코드 한 줄도 못쓰면 안된다. 비전공자이고 공부를 늦게 시작했다해도 전공자, 실무자를 따라잡겠다는 마음으로 열심히 해보자.
야, 너두 할 수 있어! (야나두 직원 아님)