자 그럼 미국 소프트웨어 엔지니어 취업을 염두에 둘 때 학부에서 Computer Science를 전공하지 않았다면 어떻게 할까? 미국에서 소프트웨어 엔지니어로 일할 수 없는 것인가?

결론은 아니다. 개인의 노력과 역량에 따라 다르겠지만 미국 대학원에서 CS, EE, CE 셋 중의 하나를 공부하면 미국에서 소프트웨어 엔지니어로 일할 때 큰 문제는 없을 것이다 (하지만 이전 글에서도 언급했듯이 소프트웨어의 영역에서만 보자면 가장 넓은 범위에서 일할 수 있는 것이 CS이고 취업 시장에서도 제일 매력적인 전공이 CS이다). 본인도 학부에서 CS를 전공하지 않았기 때문에 이 부분에 대해서 많이 고민했고 다른 많은 분도 비슷한 고민을 하고 있을 것으로 생각한다.

한국에서 특정 전공을 했다고 해서 미국 유학을 가서도 꼭 그 전공을 선택할 필요는 없다. 어쩌면 연관되는 (아니면 아예 연관되지 않는) 다른 전공들을 여러 개 공부하는 것이 다양성을 중시하는 미국 사회에서 더 선호될지도 모른다.

한 예를 들어보자.

본인이 서울대 경영학과에 편입하고 나서 경영학을 새로 공부하면서 느낀 것은 경영 수업과 공학 수업이 서로 요구하는 것이 매우 다르다는 것이다.

우선 카이스트에서 전자공학을 전공할 때는 공대에서 공부할 양이 너무 많아서 몸이 너무 힘들었다. 2년 동안 들어야 하는 전자공학 실험은 보통 5-10장에 달하는 예비 리포트와 15~30장에 달하던 결과 리포트를 매주 써야 하고, 일주일에 두 번 정도 실험실에서 밤을 새워야 했었는데 그것 때문에 전자과를 선택하지 않는 사람들도 많았다 (최소한 본인이 다니던 시절에는 전자과는 카이스트 학부에서 제일 힘든 과정을 가진 학과였다고 자부한다). 전자과 실험은 보통 오후 4시에 실험실에 들어가는데 밤새 고생하다가 새벽 4시에 기숙사로 돌아오면 정말 다행이라고 생각했다. 한 과목에서 보통 한 학기에 원서를 한 권 끝내고 시험을 보는데 일반적으로 시험 시간은 3시간으로 정신없이 문제를 고민하면서 풀다 보면 시간이 금방 간다. 보통 5문제(물론 여기에 자잘한 세부 문제들이 있다) 이상에서 10문제 이하로 나오는데 어떨 때는 7시간 이상 시험을 본 적도 있다. 시험이 몇 문제 되지 않지만 난이도는 왜 그렇게 높은지… 원서를 여러 번 보고 연습 문제도 다 풀어 봤는데도 깜깜한 경우가 많았다. 그리고 한 번 시험을 보고 나면 진이 빠져서 아무것도 손에 잡히질 않았다.

서울대에서 경영학을 공부하면서 좋았던 것은 우선 공대보다 공부할 양이 적다는 것이었다. 다만 경영대에서 잘하기 위해 요구되는 스킬은 매우 다르다. 주어진 자료를 읽고 빠른 시간 안에 이해 해야 하며, 잘 분석해서 리포트로 표현해야 한다. 그리고 대중 앞에서 발표를 잘 해야 한다. 또한 영어 수업이 많은 경영학과의 경우 외국어 능력이 특출나다면 (특출 나다기보다는 외국에서 살다 온 경우가 더 맞겠다) 더 많은 이점을 누릴 수가 있다. 그래서 경영학과에 적응하기 위해서는 본인의 공부 모드를 다르게 바꿔야 했다.

공대 수업은 책을 읽는 속도가 현저하게 느리다. 공식과 관련되는 사항을 잘 이해해야지 단원의 뒤에 나오는 Exercise나 Problem Set을 풀 수 있기 때문이다. 공대 수업을 공부하면서 어떨 때는 2~3페이지를 가지고 그 과정과 수학적 공식을 이해하기 위해서 온종일 고생한 적도 있다. 하지만 경영대 공부는 최대한 빠른 시간 안에 책을 보고, 다시 반복하는 식으로 공부했다. 요점 사항을 정리하고 시험이 다가오면 그 요점 사항을 반복해서 암기하는 식으로 공부해서 전공 시험에서 좋은 성적을 받을 수 있었다. 그리고 경영대는 거의 대부분 과목에서 한 학기에 한 번 정도는 사람들 앞에서 발표한다고 생각하면 된다. 케이스 스터디나 기말 프로젝트가 주어지면 조를 짜서 분업해서 조사하고 같이 발표 준비를 하면서 스트레스받는 조 모임이 시작된다 (아는 분들은 아실 것이다. 조사 안 해 오는 사람, 이런저런 핑계 대면서 빠지는 사람, 엉망으로 해 오는 사람 등등 별의별 사람들이 다 있다). 공대에 있을 때는 거의 개인플레이라서 조모임이나 프리젠테이션을 많이 해보지 않았는데 경영대 수업을 하면서 남들 앞에서 발표하는 연습을 많이 한 것 같다.

공대 공부와 문과 공부를 해보면서 느낀 점은 두 공부가 개인의 다른 역량을 개발하는 데 큰 도움이 되었다는 것이다. 우선 전자과 공부를 하면서 공부의 양과 들이는 시간이 엄청나니 끈기와 인내력이 길러졌다. 한 문제를 가지고도 며칠을 고민하면서 풀고, 많은 어려운 문제들을 접하다 보니 수학적/논리적 사고 능력이 많이 성장한 것을 느낄 수 있었다. 경영대 공부를 하게 되면서는 글 쓰고 남들 앞에서 말하는 기술, 그리고 정보를 빨리 습득해서 알기 쉽게 정리하는 능력이 길러질 수 있었다. 사실 이런 문과적 능력은 개발자로 일하든 세일즈 엔지니어로 일하든 어떤 회사를 가서도 중요한 능력이다. 특히나 높은 자리로 올라가고 임원이 될 때는 이런 능력이 결정적인 요소로 작용하는 경우가 많을 것이다. 이렇게 전혀 다른 성격의 전공 2개를 공부하는 것은 상호보완적인 역할을 한다. 하나의 전공을 공부하면서 결여될 수 있는 다른 부분을 보완해주는 것이다.

나는 학부 때 전산을 제대로 배우지 않았다. 어릴 때부터 로봇에 관심을 두고 학부생일 때도 로봇 축구에 빠져서 대학원 실험실에 출근하면서 앞으로 제어 분야를 전공해야겠다고 생각해 왔었다. 하지만 대학교 3학년 때 신생 벤처 기업의 초창기 멤버로 합류하게 되면서 소프트웨어 개발에 대해서 깊은 관심을 두고 개인적으로 공부하기 시작했다. 하드웨어 팀에 있었지만 학부생이 새로운 하드웨어를 개발하고 제품으로 내놓는 것은 한계가 있다는 것을 서서히 깨닫게 되었다. 하드웨어는 사실 많은 경험이 필요하다. 마이크로 콘트롤러 및 전자 부품을 이용해서 전체 회로를 디자인하는 일은 관련 일을 해본 경험이 필요하고, 캐드 프로그램 사용 및 PCB 제작 과정 등에 대해서 이해가 필요하며 저항, 노이즈 등 예상치 못한 일들에 대해서 대비할 수 있는 노하우가 필요하다. 하나의 하드웨어를 제작하려면 적게는 수십 개의 부품들의 스펙을 다 읽어보고 또 샘플을 제공 받아야 하며 혹시나 첫 프로토타입이 잘 못 나온다면 PCB를 다시 제작하고 부품들을 납땜해서 조립해야 하는 과정이 제품 연구 개발 과정에 상당히 많은 제약을 준다. 그것만으로 끝이 아니다. 기업의 경우 전자 제품이 시장에 나오기 전에 전자파 검사(EMI) 테스트를 거쳐야 하는데 비용도 많이 들고 회로를 디버깅하는 것도 상당히 어려운 일이다. 하지만 소프트웨어의 경우 너무나 간단하다. 컴퓨터와 컴파일러만 있으면 된다.

카이스트 시절, 낮에는 학교에 다니고 밤에는 벤처 기업에 출근해서 일하곤 했는데 그 당시에 같이 코딩하던 동료들을 보면서 소프트웨어가 주는 단순함에 매료되었던 것 같다. 단순함이라는 것이 일이 쉽다는 것이 아니라 핵심 로직에만 집중해서 일할 수 있다는 것이다. 수많은 부품과 많은 프로세스 및 경험을 요구하는 하드웨어 개발 과정보다는 로직을 코드로 표현하고 컴파일을 거쳐 동작하는 소프트웨어… 나는 그 단순함의 매력에 빠져서 프로그래밍 공부를 시작했던 것 같다.

프로그래밍 공부의 필요성을 깨닫고는 C/C++부터 시작해서 나중에는 윈도우즈 프로그래밍(Visual C++)까지 개발에 참여했었는데 수많은 전산과 친구들 틈에서 특히나 힘들어했던 것 같다. 간단한 프로그램 로직도 잘 이해를 못 해서 시간이 오래 걸리고, 특히나 프로그래밍 언어에 익숙하지 않으니 수없이 컴파일을 반복하면서 막무가내로 소프트웨어 개발을 했던 것 같다. 그래도 1년이 지나니 어느 정도 C/C++언어에 대해서 이해하게 되고 유닉스/리눅스를 잘 쓰게 됐으며 윈도우즈 프로그램을 어느 정도 개발할 수 있게 되었다. 사정이 생겨서 1년 반 뒤에 회사를 관두고 다시 전자과 수업을 듣게 되었는데 프로그래밍 능력이 갖춰지니 3, 4학년 과목을 들으면서 기말 프로젝트를 할 때는 정말 천군만마를 얻은 것 같았다. 소프트웨어를 다룰 수 있는 능력이 생기니 할 수 있는 것이 너무 많았다. 이게 바로 프로그래밍의 매력이었다.

학부에서 전산을 전공하지 않았을 때 미국 유학을 좋은 학교로 가기는 상대적으로 어렵다. 우선 전산과 수업의 핵심 과목들(알고리즘과 데이터구조)을 듣지 않았기 때문에 미국 대학원의 입학사정관 입장에서 보면 지원하는 사람이 전산학과 대학원 수업을 잘 따라갈 수 있을지에 대해서 우선 의문이 들고, 프로그래밍에 많은 경험이 없으므로 나중에 취업 시장에서 강한 경쟁력을 가질지 의구심이 들기 때문이다. 그러므로 학부에서 전산을 전공하지 않았으면 어드미션 과정에서 마이너스를 먹고 들어가게 되는 것이다. 그리고 전산은 현재 미국 내에서 상당히 인기가 많고 경쟁이 치열한 전공이다 (그래도 의대, 치대, 법대, 경영대에 비할 정도는 아니다). 페이스북, 구글 등의 영향으로 전산을 전공하려는 미국 사람들도 상당히 많아졌고 전 세계의 내로라하는 천재들이 미국에 와서 공부하고 싶어 하는 과목이다.

그럼 한국 학부에서 CS를 전공하지 않은 경우 미국에서 소프트웨어 엔지니어로 일하려면 어떻게 해야 할까? 본인의 생각은 다음과 같다.

  1. 미국 대학원 석사를 랭킹에 상관하지 말고 CS로 가려고 노력한다.
    우선 한국 학부에서 CS를 전공하지 않았기 때문에 학부 시절에 연관 학과(EE 혹은 CE)에서 성적이 좋지 않은 한 탑 랭킹의 CS 대학원에 가는 것은 현실적으로 어렵다. 하지만 지금 우선의 목적은 미국에 가서 소프트웨어 엔지니어가 되는 것이다. 좋은 학교가 아니라도 가서 열심히 해서 소프트웨어 엔지니어로서 실력을 잘 쌓는다면 미국 취업에는 희망을 품어도 될 것이다. 그리고 운이 좋다면 나중에 남들이 부러워하는 구글, 페이스북 등의 직장에 갈 수도 있을 것이다.
    유학 지원을 할 때 꼭 CS로 지원하기 바란다. 소프트웨어 엔지니어가 되기 위해서 가장 연관된 분야를 배우게 될 것이고 EE 혹은 CE보다 소프트웨어 쪽에서는 좀 더 폭넓은 선택을 할 수 있을 것이다.
  2. 한국에 있을 때 학원에 다니든 회사에 일하든 프로그래머로서의 경험을 가진다.
    소프트웨어 엔지니어로서의 경험이 없고 한국에서의 시간이 어느 정도 있다면 학원에 다니든, 회사에서 인턴으로 일하든 소프트웨어 개발에 대한 경험을 가지길 바란다. 실제 일한 경험이 있는 것과 없는 것은 천지 차이가 난다. 요즘은 비트컴퓨터 같은 단기간 집중 프로젝트 중심의 프로그램도 있고 관련 학원도 많으니 시간이 허락한다면 꼭 한번 수강하길 바란다.
  3. 가능하면 CS 과목 대학교 수업을 들을 것을 권한다 (방통대, 온라인 대학 등)
    유학을 가려고 미국 대학원의 CS 학과에 지원했지만 CS 과목은 데이터 구조를 제외하고는 들은 것이 없어 방송통신대에 등록해서 한 학기 과목들(알고리즘, 운영체제 등)을 수강하려 하였다. 하지만 그 당시 가족의 사업을 몇 달 동안 도와야 했고 결혼 준비로 여러모로 바쁠 때여서 나중에는 그 수업들을 다 취소할 수밖에 없었다. 하지만 만일 그 과목들을 우선 수강했다면 학부 CS 비전공자로서 나중에 미국 대학원에서 CS를 공부하면서 많은 도움이 되었고 취업 인터뷰를 준비하는데도 많은 기여를 했으리라고 생각한다.
  4. 시간이 날 때 틈틈이 CS 기본서 공부를 한다 (알고리즘, 데이터 구조)
    미국에서 소프트웨어 엔지니어로 취업을 준비하면서 아무리 강조해도 지나치지 않는 것이 있다. 그것은 바로 데이터 구조와 알고리즘이다. 조금만 과장해서 얘기하자면 이것 두 개만 열심히 공부한다면 웬만한 기업의 프로그래밍 인터뷰는 통과할 것이다. 지금까지 많은 인터뷰를 봐 왔지만 대부분이 이 두 가지 과목에 기초한 프로그래밍 인터뷰를 한다.
  5. 영어 원서에 익숙해지고 회화 연습을 꾸준히 한다.
    미국에서 일하기 위한 영어 공부의 중요성은 아무리 강조해도 지나치지 않다. 미국에서 일하게 된다면 매일매일을 영어의 홍수 속에서 살게 될 것이다. 본인도 한국에서는 영어를 잘한다고 생각했다. 경영대에서 영어 수업을 꽤 들었고 영어로 된 발표도 도맡아서 하면서 영어에 대한 자신감이 꽤 있었던 것이 사실이다. 미국에서 여름방학 2달 동안 영어로 된 수업을 듣고 발표도 했으며 한 학기 동안 독일에서 교환 학생을 하면서 거의 매일 영어를 쓰면서 살았다. 유학 생활을 하고 취업 인터뷰를 보는 것도 어느 정도 열심히 준비하니 부족한 영어가 커버가 되었다. 유학 생활은 처음에 힘들었지만 정해진 교과서를 열심히 공부하고 시험 준비를 열심히 해 가니 수업도 나중에는 꽤 잘 따라갈 수 있어서 2학기부터는 좋은 성적을 받았다. 미국 회사 취업 인터뷰도 처음에는 힘들었지만 나름대로 스크립트를 만들어서 달달 외우다 보니 나중에는 아주 마음 편하게 인터뷰를 볼 수 있었다. 하지만 후에 힘들었던 것이 회사에 다니면서이다. 실제 회의에 들어가서 사람들이 말하는 것을 잘 알아듣기 힘들었다. 말이 너무 빠르기도 빠르거니와 외국인을 배려하고 말하는 것이 아니라서 쉬운 농담도 알아듣기가 나에게는 너무 힘들었다. 사람들은 다 웃고 있는데 나는 알아듣지를 못해서 어안이 벙벙했던 적이 한두 번이 아녔다. 아무래도 미국에서 태어나고 자라나지 않은 이상 언어적 능력의 제한은 있는 것 같다. 하지만 시간이 갈수록 점점 개선되는 것은 확실한 것 같다. 아직도 고민하고 있는 것은 이렇게 시간이 간다면 내가 미국 사람들만큼 말을 잘할 수 있을까 하는 것이다. 그래서 지금 이렇게 미국에 살고 있지만 오늘도 영어를 잘 하기 위해서 노력하고 있는 것이다.

이제 결론을 한번 지어보자. 미국의 소프트웨어 엔지니어가 외국인에게 아주 좋은 직업인 것은 분명하다. 영어가 유창하지 않더라도 다른 전공들에 비해서 좀 더 쉽게 미국 직장에 안착할 수 있고 수용도 많아서 좋은 대우를 받으면서 일할 수 있다. 그래서 미국에 가기 위해 소프트웨어 엔지니어가 되고 싶은데 만일 한국에서 Computer Science나 관련 학과를 전공하지 않았다면 어떻게 해야 되는 것인가? 관련 전공자가 아니더라도 꼭 포기하지 말기 바란다. 개인의 적성은 자신이 정말 그 일을 해보기 전까지는 알 수 없는 것이다. 나는 그 일에 맞지 않을거야 라는 생각보다는 실제로 그 일에 뛰어 들어 보고 자신의 적성을 판단하기 바란다. 관련 학과가 공대나 자연대라면 Computer Science를 새로 공부하는데 그렇게 많은 걸림돌이 없겠지만 혹시나 인문 관련 전공이라도 열심히 한다면 충분히 몇 년 후에는 미국에서 소프트웨어 엔지니어가 될 만큼 실력을 쌓을 수 있다고 생각한다. 포기하지 말고 꼭 가능한 길을 찾아보기 바란다.

(Visited 10,792 times, 6 visits today)
Share This