보이지 않는 미래의 위험

• Part 1. 보이지 않는 미래의 위험 (본문)
• Part 2. 스펙 클론의 습격
• Part 3. 이력서resume의 복수
• Part 4. 새로운 희망, 리크루팅 시즌
• Part 5. 인터뷰 제국의 역습
• Part 6. 자존감의 귀환

옛날 옛적 츄바카 담배피던 시절

2014년 8월. 미국으로 건너와 대학생활을 시작했다. 전공은 물리였는데, 고등학교 때 성적 좋았어서 별생각 없이 정한 것이다. 당연히 아버지처럼 대학 졸업하면 석사를 하고, 석사를 하면 박사를 해야 되는 건 줄 알았다. 커리어에 대한 걱정은 서른쯤 할 계획이었다.

첫 번째 학기를 무사히 마치고, 딱히 들을 게 없어서 졸업 과목인 기초 프로그래밍 수업을 미리 듣기로 했다. 프로그래밍의 ‘프’자도 몰랐던 나에겐 미지의 세계였다. 처음이라 진입장벽은 있었지만, 막상 터득을 하니 따분하게 외워야 되는 것이 많은 다른 이과 수업들보다 훨씬 재밌다고 느꼈다. 프로그래머가 되겠다는 결심이 서서히 생기기 시작했다.

원래 전공을 버리고 프로그래머의 길로 떠나는 아나킨 스카이워커

Computer Science로 전공을 바꾸었다. 전공 수업들은 쉽지 않았다. 스펙이나 경험이 딱히 있는 것이 아니라서 2학년 때 인턴십을 못 구했다. 결국 3학년이 끝나는 여름, 한국에 들어와 직원이 3명 있는 작은 스타트업에서 간단한 어플을 만들었다. 계약서를 쓰지도 않고 열정페이였지만 나름 이력서에 쓸 수 있는 첫 인턴직이었다.

아직 졸업이 준비가 된 거 같지 않아 한 학기 휴학을 했다. 그 사이 인턴십을 통해 경험을 더 쌓은 다음, 많은 시행착오 끝에 미국 테크 회사에 풀타임 소프트웨어 개발자로서 취직을 하게 됐다.

4년 전 이렇게 프로그래머가 된다는 건 상상하지 못했다. 그래서 나는 모두가 가능성을 열어두고 프로그래머로써 커리어를 한번 고민해봤으면 한다. 그 고민에 도움이 되었으면 하는 마음에 내 취업기를 글로 남겨보려고 한다. 치열했던 취업 과정을 거치면서 배웠던 것들을 다양한 주제로 (스펙 쌓기, 이력서 만들기, 회사 리서치, 인터뷰, 협상 등등) 정리할 예정이다.

많은 사람한테 도움이 되었으면 하지만, 그저 한 사람의 경험담이란 걸 잊지 않았으면 한다. 공대 성향이 강한 미국 대학교에서 프로그래밍을 시작하고 미국에서 취업을 목표로 한 대학생의 경험담이다.

취업 정면돌파로 도전해보자

첫 번째 주제는 프로그래밍 입문. 이미 프로그래밍을 시작한 사람들은 스펙편으로 건너 뛰는 것을 권장한다.

프로그래밍은 일찍 시작할수록 좋은 걸까?

알파고와 이세돌의 경기, 비트코인이 휩쓸고 간 지난 몇 년 사이 주변에서 프로그래밍에 관심을 보이는 사람이 부쩍 많아졌다. 하지만 제대로 접해보지 못한 컴퓨터 언어를 배우기에는 너무 늦은 것 같아 망설여하는 것 같아 보인다.

나만 출발 못하고 뒤쳐져 있는 것 같은 이 기분

코딩을 옛날부터 쭉 해오고 각종 대회 참여 경력이 있는 친구. 고등학교 시절 잠깐 코딩을 배워서 할 줄 아는 친구. 그리고 대학교 와서 코딩을 처음 배운 친구. 내가 본 바로는 대학교 전에 프로그래밍 경험이 있냐 없냐가 크게 프로그래머서로의 “성공” 여부가 되지 않았다. 프로그래밍을 일찍 배우는지, 늦게 배우는지는 중요하지 않다는 것이다.

늦게 출발했음에도 불구하고 1등 한 아나킨

물론 컴퓨터 사이언스 커리큘럼이 탄탄한 학교를 다녔기에 그렇게 느꼈을 수도 있다. 하지만 아래와 같은 상황의 작용이 클 것이다.

예습을 하기엔 테크 세상은 너무 빠르게 바뀌고 있다.

테크는 아주 빠르게 바뀌는 필드이다. 경험이 많은 사람들도 새로 나오는 기술들을 계속 습득해야 한다. 프로그래밍을 배운다는 건 단순히 기술적인 것을 배우는 게 아니다. 다양한 알고리즘과 언어들을 익히면서 (1) 문제를 다양한 시선으로 바라보고 (2) 새로운 것을 끊임없이 학습할 수 있는 역량을 키우는 것이다. 이러한 자세가 없다면 아무리 능숙한 경험자도 뒤쳐질 수밖에 없다.

테크 회사들은 다양한 배경의 사람들을 원한다.

실리콘밸리의 테크 회사들은 단순히 프로그래밍을 오래 해 온, 표준화된 개발자만을 원하지 않는다. 다양한 지역, 다양한 배경을 가진 사람들이 모여야 건강한 커뮤니티를 만들 수 있다고 믿기 때문이다. 나는 인턴십을 하면서 정말 다양한 사람들을 만났다. 패션계에서 디렉터로 일했다가 UI/UX 디자이너가 된 사람, 옥수수를 만드는 회사에서 매니지먼트를 하다가 소프트웨어 개발자가 된 사람, 유럽 여행을 하며 재즈 기타 공연을 하다가 하드웨어 개발자가 된 사람도 만났다. 어차피 프로그래밍을 단기간에 터득할 수 있다면, 대학교 오기 전에 중요한 시간들을 마냥 프로그래밍에 쏟아붓는 것보다 이들처럼 유니크한 경험을 쌓는 게 더 중요하지 않을까?

테크 회사에서 흔히 볼 수 있는 다양성diversity

30년 동안 컴퓨터 사이언스과 학생들을 지도하신 교수님은 어떻게 생각하실까?

조금 더 객관적인 의견을 듣고 싶어서 나의 지도교수를 찾아갔다. 미국 공대에서 1989년부터 지금까지 Computer Science (CS)분야 학부생을 지도하신 분이시다. 예상과 달리 중립적인 의견을 내주셨는데, 중요한 부분을 간단하게 요약해본다.

Q) 여기 CS전공 학부생들만 보았을 때, 대학교 이전의 코딩 경험이 “성공”여부에 영향을 미친다고 생각하시나요?

CS전공 신입생 중에서도 3~4분의 1 정도는 프로그래밍 경험이 충분치 않아 입문 수업을 듣는다. 그런 학생들보다 바로 심화과정에 들어간 학생들의 졸업률이 더 높다. 하지만 이것을 학생의 코딩 실력을 미리 키워두지 않아서라고 보기 힘들다. 단지 컴퓨터 사이언스가 어떤 필드인지 이해가 부족하고, 깨달은 뒤 자기가 좀 더 원하는 필드로 가서 일어나는 현상이라 생각한다.

Q) 개발자가 될 생각이 없어도, 모두가 대학교 이전에 코딩 교육을 받아야 된다고 생각하세요?

나쁠 건 없다. 하지만 현실적으로 아직 제대로 된 프로그래밍 수업을 모두에게 지원하기 힘들다. “Computing”을 가르친다고 하면서 엑셀사용법을 가르치는 곳을 본 적도 있다. 테크가 워낙 포괄적인 만큼 무엇을 가르쳐야 하는지에 대한 경계가 모호하다.

다른 것을 떠나서, 프로그래밍이 얼마나 우리에게 자유롭게 창조할 능력을 주는지 모두가 알았으면 한다. 코딩을 하면서 직접 무언가를 만들기 전까지는 이것을 깨닫기 힘들다. 하나 더, 설령 코딩을 할 줄 모른다고 해도, 프로그래밍의 범위와 한계가 어느 정도인지 알았으면 한다. 해킹, 인공지능, 자율주행이란 단어가 뉴스에 뜰때 이것을 어떤 악마의 주술이 아니라 인간의 산물로 여기며, 우리가 얼마큼 컨트롤할 수 있는지 알아야 될 의무가 있다.

그래서 대학 전까지는 준비할게 아무것도 없는 걸까?

앗, 전혀 없다고 하기엔 망설여진다. 대학에서 코딩을 배우기 시작한 사람 모두가 프로그래머가 되는 것은 아니다. 이는 프로그래머가 되기 이전에 어떤 학습 방법을 했는지와 연관이 있다. 대학 이전에 어려운 프로그래밍 언어(기술적인 것)를 배우기 보다는 논리적인 사고방식에 익숙해지는 연습을 하도록 하는 것이 좋다.

아무래도 이과 성향이 강한 사람들이 프로그래밍을 쉽게 터득한다. 이과생이 아니더라도 일상생활에 논리적인 사람들, 혹은 문제 해결을 좋아하는 사람들이라면 프로그래밍이 잘 맞을 것이다. 하지만 내가 내리고 싶은 결론은 이것이 아니다. 손재주가 없어도 그림 그리는 것을 좋아할 수 있고, 귀가 밝지 않아도 음악을 좋아할 수도 있다. (나는 0개국어지만 지금 이렇게 글을 쓰고 있다)

위 지도교수님이 말했던 것처럼 프로그래밍은 디지털 세계 안에서 자유로운 창조능력을 준다. 그것으로 좋은 책을 빠르게 배송하는 웹사이트를 만들 수 있고, 사람들이 열광하는 3D 게임을 만들 수 있고, 시각장애인들의 편리를 위한 모바일 어플을 만들 수도 있다. 결국 내가 많은 가능성들 중 프로그래밍을 택한 이유는 프로그래밍을 통해 할 수 있는 일이 흥미롭고 뜻깊다고 느꼈기 때문이다. 모든 사람들에게 프로그래밍을 한번 도전해 보라고 권하고 싶다. 프로그래밍이 나의 인생을 바꾸어 놓을지는 아무도 모르는 것이다.

하지만 프로그래밍은 결코 쉬운 길이 아니다

프로그래머가 되기로 결심했다면… 그다음은?

이전 글에서 말한 대로 프로그래머가 되기 위해 오랜 시간이 필요한 것은 아니다. 하지만 학생에서 개발자로서 사회에 나가는 것은 하루 아침에 일어나는 것은 아니다. 프로그래머가 되기로 결심을 했다면 앞으로 맞닥뜨리게 될 일들을 훑어보자.

취업이라는 확실하고 단기적인 목표가 생긴다.

2018년, 카네기멜론 대학의 경우 (조사에 응한) 컴퓨터 사이언스 학과 졸업생 170명 중 80%가 취업을, 16%가 대학원을 택했다. 버클리대학의 경우 컴퓨터 사이언스 학과 졸업생 331명 중 79%가 취업을, 11%가 대학원을 택했다.

미국에서 프로그래밍을 공부하는 대학생들의 목표는 대부분 비슷하다. 4년 안에 미국의 좋은 테크 회사, 소위 실리콘밸리에 취직하는 것이다. 나 역시 다음과 같은 이유로 일찍 사회로 나가는 것이 더 값진 경험이라 생각했다.

  1. 실용적이고 “트렌디한” 경험을 할 수 있다. 회사 내부 프로젝트에서는 실제 사용자와 좀 더 밀접한 관계를 갖는다. 그리고 치열한 자본주의에서 살아남기 위해 새로운 기술들을 받아들일 의지와 쏟아부을 돈이 많다.
  2. 좋은 환경을 제공한다. 미국 회사들은 대학을 갓 졸업한 프로그래머를 일찍 스카우트하려고 많은 시간과 돈을 투자한다. 덕분에 높은 연봉과 유연한 근무환경을 제공받는다. 사립대학교들의 교육비용이 점점 높아지면서 학자금 대출 갚기 위해 일찍 취업을 선택을 하는 케이스도 많다.
  3. 대학원이 소프트웨어 개발자 커리어에 필수조건이 아니다. 대학원을 간다면 관심 있는 리서치를 탐구하거나 인공지능과 같은 세부적인 기술을 심층적으로 다룰 수 있다. 하지만 일반 소프트웨어 개발자의 경우, 대학원의 경험이 없어도 안정적인 커리어를 시작하기 충분하다.
어린 나이에 취업을 위해 인터뷰를 하는 아나킨 스카이워커

학점과 스펙, 두 마리 토끼를 잡아야 한다.

빠르게 확장하고 있는 테크에 처음 발을 들이게 되면 배워야 할게 정말 많아 보인다. 알고리즘, 백엔드, 프런트엔드, 데이터베이스, 웹, 네트워크, 모바일, 수십 가지 프로그래밍 언어들과 수많은 전공과목 수업들. 이걸 어느 세월에 다 배워야 할까? 하지만 궁극적인 목표가 취업이라면 스펙도 열심히 만들어야 한다. 숙제를 대충하고 학점이 낮아도 학교 밖 프로젝트에 주력해서 좋은 직장에 취직한 학생들이 꽤 있다.

결론은 학점과 스펙 쌓기, 둘 다 포기할 수 없다. 배워야 할 것도 많고 만들어야 할 것도 많다. 취업을 위해서 이 4년만큼은 치열하게 살아야 한다.

학점과 스펙 쌓기 vs 취업. 앞으로는 이렇게 2대 1로 싸워야 한다.

내가 정말 원하는 것에 대해 고민하게 된다.

프로그래머 커리어의 장점은 일에 대한 다양한 선택권이 주어진다는 것이다. 대기업에서 안정적으로 일할 수 도 있고, 스타트업에서 청춘을 바쳐 치열하게 일할 수 도 있고, 심지어는 프리랜서로 세상을 여행하면서 일할 수 도 있다. 또 테크는 다른 필드와 교차점이 많다. 불투명한 의료시스템이나 금융시스템을 개선하려는 서비스, 교육에 더 많은 사람이 접근할 수 있게 하는 서비스, 고객의 개인정보를 안전하게 보호하는 서비스. 이러한 다양한 테크 생태계 속에서 내가 기여하고 싶은 것은 무엇인지 고민하기 시작할 것이다.

자기 인생에 대한 깊은 고민의 빠진 요다

이것으로 취업을 준비하는 프로그래머의 길을 훑어보았다. 이제 본격적으로 취업에 관한 얘기를 해보자.

다음 편에서 만나요!

--

--

Sean D Kim
스타워즈 덕후가 쓰는 미국 테크회사 취업기

Software Engineer @ Microsoft Azure Compute / "To be or not to be. That's not really a question." - Godard