ⓒ 셔터스톡영어가 편하거나, 영어 강의를 듣는데 큰 거부감이 없다면 Udemy라는 강의 사이트(
링크)에서 강의를 검색해서 들으면 좋고, 만약 한국어 강의를 찾고 싶다면 Inflearn이라는 사이트(
링크)를 활용해보는 것도 좋다. 앞의 두 강의 사이트는 굉장히 실용적인 내용을 다루는데, 안 좋게 말하면 이론을 건너뛰고 단순히 어떻게 하면 되는지 따라치기만 하는 일이 생기기도 한다. 만약 이론 중심의, 조금 더 대학교 강의 스타일의 강의를 찾고 싶다면 Coursera(
링크)에서 세계 각지의 대학교 수업을 들어보는 것도 방법이다. 필자는 취업 준비할 때보다 취업한 뒤, 다양한 기술을 배우기 위해 온라인 강의를 활용했다. 주로 출퇴근 시간과 새벽 시간을 활용해 새로운 기술을 공부하고 회사 업무에 적용하는 방식으로 일했다.
자격증, 따야할까요?
개발을 준비하는 사람도 자격증을 따면 취업에 도움이 될까 궁금해 한다. 나 역시 국비지원 교육을 받던 중 추천을 받아 ‘정보처리기사’ 자격증을 취득했다. 하지만, 지금껏 단 한 번도 정보처리기사가 개발자로 일하는 데 도움이 된 적은 없다. 물론 이 자격증 학습이 비전공자가 놓치기 쉬운 기본적인 컴퓨터 공학 지식을 다루기 때문에, 기본을 다진다는 측면에서는 나쁘지는 않다. 다만 개발자로 경력을 전환하는 것을 목표로, 짧은 시간을 최대한 효율적으로 써야하는 사람이라면 그다지 추천을 하고 싶지 않다.
개발자로 일하다 보면 개발자가 자격증을 따는 데 큰 관심이 없는 이유를 알 수 있다. 개발자 업무는 본인이 제대로 이해하지 못하면 처리할 수 없는 경우가 허다하다. 그러므로 면접 지원자에게 질문 몇 가지를 해보고, 코딩 테스트를 통해 실제로 얼마나 효과적으로 코드를 짜는지 직접 확인해보면 된다. 굳이 외부 자격증에 의존하지 않고도 충분히 채용할 수 있다.
면접 준비하기
우선 먼저 언급하고 넘어가고 싶은 부분은 회사마다 다양한 면접 방식이 존재한다는 점이다. 가장 기본이 되는 면접 준비 방식은 자료구조/알고리즘 코딩 테스트를 준비하고, 지원 분야에 자주 나오는 질문을 정리하고, 마지막으로 포트폴리오를 만드는 것이다. 채용 프로세스가 잘 갖춰진 대기업이나 어느 정도 개발팀 규모가 있는 스타트업과 면접을 진행한다면 위와 같은 면접 프로세스를 경험하게 될 가능성이 높다. 그런데 만약 규모가 크지 않은 개발팀 면접을 본다면, 굉장히 간소한 면접을 보거나 지엽적인 부분의 질문을 받게 될 수도 있다. 처음 개발자 면접을 보러 다닐 때 어떤 회사에서는 코딩 테스트를 본다고 진땀을 뺀 반면, 어떤 회사에서는 이렇게 사람을 뽑아도 되나 싶은 곳도 있었다.
그러니 가장 중요한 점은
만약에 꼭 가고 싶은 회사가 있다면 어떤 인터뷰 과정을 통해 채용이 이뤄지는지 확인하고 거기에 맞게 준비하는 것이 필요하다. 내부에 개발자로 일하는 사람을 건너서라도 알 수 있다면 금상첨화다. 이런 준비가 없다면, 면접까지 들어가 좋은 기회를 놓치게 될 수 있다. 물론 기본 실력이 어느 정도는 받쳐줘야하지만, 필자는 개인적으로 면접도 별도의 스킬이라고 생각한다. 미리 면접의 형태를 파악하고 알맞은 준비를 해야만 만족스런 결과를 얻을 수 있다. 추가적으로, 필자는 꼭 가고 싶은 회사의 면접은 조금 뒤로 미뤄 두고 다른 면접을 통해 충분한 경험치를 쌓은 후 지원하라고 추천하는 편이다.
자료구조/알고리즘 공부하기
사실 자료구조와 알고리즘은 컴퓨터 공학을 전공한다면 어느 정도 기본적으로 다룰 수 있다. 수업에서 과제나 시험으로 자료구조나 알고리즘을 실제로 구현하는 것을 다루기 때문이다. 그러나 비전공자에게는 그런 기회가 흔치 않다. 이 두 가지는 커리큘럼에서 중요한 부분이므로 반드시 개별적으로 준비해야 한다.
코딩 테스트를 준비하기 위해 다양한 자료와 사이트가 있는데, 만약 단 하나의 사이트만 골라야 한다면 리트코드(
링크)를 제안한다. 그 외에도 해커랭크(
링크), 한국어 사이트로는 백준(
링크)이 유명하다. 첫 개발자로 취업을 준비하는 경우라면, 개인적으로 리트코드 기준으로 Easy 문제를 최소한 50개 정도는 풀 것을 추천하고 있다.
이제 막 자료구조/알고리즘 공부를 시작한 사람, 심지어 현재 개발자로 일하며 이직을 준비 중인 실무자도 이 공부에 대해 의문을 가지곤 한다. 물론 소프트웨어 개발을 위한 도구들이 계속 발전하면서 내가 짠 코드가 컴퓨터에서 어떤 과정을 통해서 실행되는지 알지 못해도 훌륭한 결과물을 만들 수 있다.
다만 개발자 경력이 쌓일수록 중요한 것은 남들이 풀지 못하는 문제를 해결해나가는 것인데, 컴퓨터 작동 원리나 근간이 되는 프로그래밍 원리를 이해하지 못하면 시니어로서 일을 하기 어려워진다. 개발자로 커리어를 길게 본다면 틈틈히 실력을 쌓아두자.
자주 나오는 질문 준비하기
개발에도 분야가 다양하다. 그렇기 때문에 취업 준비를 본격적으로 시작하는 과정에서 뚜렷한 방향을 잡고 면접을 준비하는 것이 중요하다. 아마도 첫 개발자 취업이라면 백엔드, 프론트엔드, 모바일 개발자 정도가 가장 일반적인 코스일 것이다. 세 가지 분야에 대한 상세한 내용은 다음 장을 참고하면 된다.
예를 들어, 프론트엔드 개발자 취업을 준비 중이라면, 구글에 ‘frontend interview questions’라고 검색해보자. 자주 나오는 인터뷰 질문이 뜰 것이다. 그 중 가장 신뢰할 수 있는 사이트 몇 곳을 선택해 몰랐던 내용을 공부해가며 인터뷰를 준비하는 과정이 필요하다.
알고리즘과 자료구조가 컴퓨터 작동 원리와 관련이 깊다면, 사용하는 기술과 연관된 다양한 깊이의 질문이 나오는 경우가 많다. 아무리 코딩 테스트를 잘 풀더라도 이런 분야별 질문에 잘 대답하지 못한다면, 충분히 코딩을 해보지 않았거나 짜는 코드를 이해하지 않고 대충 복사-붙여넣기를 했다고 평가 받기 쉽다.
포트폴리오 만들기
마지막으로 중요한 것은 포트폴리오다. 중요하게 알아야 할 점은 면접관은 당신의 포트폴리오가 완벽할 것이라고 기대하지 않는다는 점이다. 포트폴리오를 만들기 위해 기획과 개발에 엄청난 시간을 쏟는 사례가 많은데, 사실 경력직 이직의 경우 포트폴리오를 요구하는 경우가 거의 없다. 따라서 포트폴리오를 만드는 데 긴 시간을 들이지 않도록 주의하자.