부제: 미국 취업을 위한 전공 선택 (CS, EE, or CE)
미국에서 IT 기업에 엔지니어로 취업하기에 제일 좋은 전공은 무엇일까? 한마디로 말하면 CS(Computer Science, 전산 혹은 컴퓨터 과학)다. 하지만 이와 비슷한 영역에 있는 EE(Electrical Engineering, 전기 및 전자공학), 그리고 CE(Computer Engineering, 컴퓨터 공학)도 미국에서 IT 엔지니어로 일하기에는 아주 유리한 전공이다.
하지만 왜 하필 CS일까? 다른 전공을 졸업한 많은 한국 유학생들도 미국 현지에서 직장을 잡고 있지만 CS를 전공한 사람이 취업 시장에서 가지는 이점은 무엇일까? 다음과 같이 정리해 볼 수 있겠다.
1. 영어를 쓰는 의사전달 능력보다는 소프트웨어 개발에 대한 엔지니어의 능력이 중시된다.
소프트웨어 엔지니어는 문과 전공과는 다르게 프로그래밍이라는 국가, 문화, 언어를 초월한 도구를 어떻게 활용하는지가 취업 시장에서의 그 사람의 가치를 말해준다. 즉, 영어를 유창하게 잘하지는 못해도 소프트웨어 개발을 잘할 수 있다면 취업할 때 제약사항이 많이 없는 것이다. (하지만 좀 더 높은 레벨의 일을 하거나 중요한 일을 하려면 커뮤니케이션 능력이 더 요구된다). 반면에 문과인 학과의 경우(심리학과, 경영학과, 경제학과, 사회학과 등)은 영어를 자기 생각을 잘 표현하고 글로 표현하는 능력이 무척 중요하다. 즉 그 학과의 공부에 상당한 재능이 있어도 미국에서 언어적 능력이 부족하다면 역량을 발휘하는데 상당한 시간이 필요하다는 뜻이다.
2. 외국인이 미국 내에서 일할 기회가 상당히 많이 주어진다.
CS의 경우 영어 문제가 큰 걸림돌이 되지 않으므로 외국인들이 일할 수 있는 기회가 상당히 많다. 또한 CS에서 수학이 특히나 많이 필요한데 이 분야에 보통 미국인들과 비교하면 외국인들이 뛰어난 경우가 많아 공학, 이학 분야의 취업 시장에서 경쟁력을 가지게 된다. 미국의 IT 회사에 가보면 인도 사람들이 엔지니어로 상당히 많이 일하는 것을 볼 수 있다. 언어적 제약이 있는데도 수학과 공학 부문에 뛰어난 이 사람들이 지속적으로 일하고 있는 것은 분명히 회사에 큰 기여를 하고 있기 때문이다. 그래서 외국인이라도 계속 일자리를 주고 기회를 주는 것이다.
3. 일할 수 있는 범위가 다른 전공에 비해 상당히 넓고 갈 수 있는 회사도 상대적으로 많다.
본인이 미국에서 처음 직장에 지원할 때 Software라는 단어가 Job Description에 있으면 무조건 지원했다. 필요한 언어가 C/C++이든 Java든 대부분의 프로그래밍 언어는 CS 전공자로서 기본은 알고 있었고 부족하면 나중에 회사에 들어가서 열심히 공부하면 되기 때문이었다. 사실 CS를 전공하고 열심히 공부했다면 시스템 소프트웨어, 리눅스 및 윈도즈 애플리케이션 소프트웨어, iOS 또는 안드로이드 프로그래밍, 그리고 웹 프로그래밍에 이르기까지 하기 힘들다고 생각되는 것이 별로 없다. 기본적인 소프트웨어 개발에 대한 마인드와 프로그래밍 경험이 있으면 새로운 언어라고 상당히 빠른 시일 내에 배울 수 있는 것이 CS 전공자들이다.
4. 능력이 뛰어날 경우 연봉 수준이 다른 전공에 비해 높다.
우선 미국에서 각 전공에 따른 연봉 수준을 알아보자. 2014-2015 College Salary Report를 보게 된다면
여기서 비교해 보는 것은 CE, ECE, EE, CS 전공자들이다. 정확한 숫자를 보자면
Major | Degree Type | Early Career Salary | Mid-Career Salary |
Computer Engineering (CE) | Doctorate | $108,100 | $150,000 |
Electrical & Computer Engineering (ECE) | Doctorate | $103,200 | $145,100 |
Electrical Engineering (EE) | Doctorate | $99,100 | $141,400 |
Computer Science (CS) | Doctorate | $110,800 | $140,600 |
이 수치상으로만 보자면 CE, EE, CS 전공자의 경우 커리어 초반과 중반의 차이는 그렇게 많이 차이는 나지 않는다. 그런데 여기서 이 숫자들은 박사 졸업생들을 기준으로 한 것이다.
그렇다면 미국 학사 졸업생들의 경우는 어떠할까? 다음 표를 보자.
이제 다시 CS, CE, EE 학사 전공자들만의 평균 예상 연봉 수치를 보면
Major | Degree Type | Early Career Salary | Mid-Career Salary |
Computer Engineering (CE) | Bachelor | $67,300 | $108,600 |
Electrical & Computer Engineering (ECE) | Bachelor | $66,500 | $113,000 |
Electrical Engineering (EE) | Bachelor | $65,900 | $107,900 |
Computer Science (CS) & Engineering | Bachelor | $66,700 | $112,600 |
여기를 봐도 사실 CS, EE, CE의 학사 학위 졸업자들의 경우 연봉 차이를 그렇게 못 느끼게 된다. 대충 봐도 그 숫자들이 비슷하기 때문이다. 그렇다면 이제 CS학과의 학교별 졸업자 평균 연봉 수준을 알아보자.
이제 정확하게 숫자로 예상 연봉 수준을 한번 보자.
여기서 확연하게 경력 초기 연봉 차이가 난다. CS학과 졸업생의 평균 예상 연봉은 66k정도이지만 Stanford나 UC Berkeley 졸업생의 경우 평균 예상 연봉이 97k, 95k정도에 달한다. 이것은 평균 예상 연봉이지만 실제로 실리콘 밸리에서 일하는 이 탑스쿨 CS 전공자들의 경우 최소 10만불 이상에서 13만불 사이를 연봉 베이스로 받고 스톡 옵션과 보너스까지 합하면 13-17만불까지 육박한다. 즉 탑스쿨 CS학과를 졸업하고 실력이 갖춰져 있을 경우 평균 CS전공자 연봉을 훨씬 뛰어넘는 연봉을 받을 수가 있는 것이다.
관련 사항 검색을 하다가 재밌는 통계를 볼 수 있었다. 다음은 UC Berkeley의 Career Center에서 전공에 따른 졸업자들의 2014년 통계를 제공하고 있는 것이다.
여기서 관심이 가는 EECS 졸업자들의 통계를 보게 된다면 평균 연봉이 $108,911에 달하고 대부분의 졸업자들이 소프트웨어 엔지니어라는 직업을 택한 것을 볼 수 있다. UC 버클리는 전통적으로 전자와 전산의 탑스쿨인데 여기서 EECS학과 졸업자들이 대부분 소프트웨어 엔지니어가 되는 것을 택한 것을 보면 지금도 CS가 더 강한 대세라는 것을 볼 수 있다.
그렇다면 왜 CS 전공자들의 연봉이 편차가 심한 것일까? 이는 소프트웨어 개발의 생산성이 개인차가 많이 나기 때문이다. 하드웨어와 달리 소프트웨어는 장비와 부품에 큰 구애를 받지 않고 소프트웨어 엔지니어들이 능력이 있다면 빠른 시간 내에 구상한 아이디어를 실제 제품으로 만들어 낼 수 있다. 그리고 모든 물건을 생산해야 하는 제조업과 달리 소프트웨어는 인터넷을 통해서 거의 비용이 들지 않고 재생산해 낼 수 있으므로 뛰어난 소프트웨어 제품이 나온다면 그 파급 효과는 엄청난 것이다. NHN Next에서 만들어진 다음 동영상이 앞서 말한 개념을 잘 설명해 주고 있다.
그럼 왜 비슷한 세가지 전공(CS, CE, EE)으로 나눠져 있을까? 세가지 전공에 대해서 한번 알아보자.
요즘에는 학부제가 유행하고 학과가 합쳐지는 경향이 많아서 EECS(Electrical Engineering and Computer Science) 학과, 그리고 ECE(Electrical and Computer Engineering) 학과도 많이 생기고 있다.
본인이 카이스트를 다닐 때는 학과명이 전자공학과(EE)였다. 하지만 본인이 졸업할 때쯤이 되니 학과명이 전자전산학과(EECS)로 바뀌었다. 산업에서 점점 전자와 전산의 경계가 모호해지고 어떤 시스템이라도 하드웨어와 더불어 소프트웨어도 대등한 위치를 갖게 되니 시대의 흐름에 따른 결정이 아니었을까 생각한다. 사실 본인도 지금 일하는 회사에서 소프트웨어 엔지니어로 일하고 있지만 바이오스(BIOS, Basic Input/Output System)라는 특수 소프트웨어가 하드웨어와 깊은 연관을 가지고 동작하는 프로그램이다 보니 하드웨어를 속속들이 이해하고 상호 작용을 잘 제어하는 것이 필요하다. 또한 요즘에는 반도체 칩도 소프트웨어를 통해서 디자인되곤 한다. VHDL(VHSIC Hardware Description Language)이라는 하드웨어를 디자인 하는 프로그래밍 언어를 가지고 칩 내부의 로직을 만드는 것이다. 굳이 내부의 수천, 수만, 수억개의 트랜지스터 동작을 이해하지 않아도 단순히 C언어를 짜는 기분으로 칩을 만드는 것이다.
그럼 이 세가지 전공들의 차이는 무엇일까? 쉽게 말하면 CS는 소프트웨어를 공부하는 학문이고, EE는 하드웨어를 공부하는 학문이다. 그리고 CE는 중간에 끼여서 소프트웨어와 하드웨어를 같이 융합하는 학문이다. 하지만 요새는 그 경계가 상당히 모호해져서 EE를 공부한 사람도 소프트웨어 개발을 하고 있으며 CS를 공부한 사람도 하드웨어와 깊이 연관된 개발을 하는 경우도 많다. 하지만 CS를 공부한 사람은 소프트웨어를 하는 경향이 많고 EE를 공부한 사람은 하드웨어에 가까운 개발을 하고 있는 경향이 많은 것은 사실이다.
ACM과 IEEE에서 발행된 Computing Curricula 2005를 보게 된다면 CS, CE, EE를 비교 설명하는 항목이 나온다.
1990년대 이전에는 EE와 CE는 하드웨어를 다루고 CS는 소프트웨어를 다루고 있었지만, 1990년 이후에는 교차하는 부분이 생기고 그 역할을 CE가 담당해 주고 있다. 하지만 점점 시간이 갈수록 이 구분이 점점 모호해지는 현상이 나타나고 있다. 앞에도 언급했지만 소프트웨어에도 하드웨어와 밀접한 지식이 필요한 경우가 생기고 하드웨어를 소프트웨어만으로 만드는 경우도 생기기 때문이다.
Wikipedia에서는 다음 세 전공을 다음과 같이 설명하고 있다.
CS: “…the scientific and practical approach to computation and its applications.”
“연산과 그 응용에 대한 과학적이고 실용적인 접근법”
CE: “…a discipline that integrates several fields of electrical engineering and computer science required to develop computer hardware and software.”
“컴퓨터의 하드웨어 소프트웨어를 개발하기 위해서 요구되는 전자공학과 전산의 여러 분야를 통합하는 원리”
EE: “…a field of engineering that generally deals with the study and application of electricity, electronics, and electromagnetism.”
“전기, 전자, 전자기에 대한 학문과 그 응용을 다루는 엔지니어링의 한 분야”
CS는 사실 미국에서 수학과로부터 파생된 분야이다. 반도체가 발명되고 이를 이용한 컴퓨터가 개발되고, 연산이라는 주제에 대해서 수학적인 접근방법이 요구되게 되면서 알고리즘과 데이터 구조 같은 개념들이 형성된 것이다. EE는 물리와 화학을 기반으로 해서 전기, 전자, 전자기와 관련된 학문 및 그것을 응용하는 기술을 연구하는 분야인데 상당히 폭넓은 세부 분야가 있다. 많은 사람들이 잘 알고 있는 반도체부터 시작해서 광섬유, 레이저, 초고주파, 네트워크, 정보통신, 음성 및 영상 처리, 컴퓨터 비전 등 전자공학이 다루는 분야는 상당히 많다.
가장 큰 혼란을 일으키는 것이 CS와 CE의 차이점이다. Lewis University에 올라온 다음 글이 CS와 CE의 차이점을 잘 설명해 주고 있으니 한번 읽어보기 바란다.
“Computer Engineering is the marriage of Computer Science and Electrical Engineering. It focuses on computing in all forms, from microprocessors to embedded computing devices to laptop and desktop systems to supercomputers.
…computer engineers are electrical engineers who specialize in software design, hardware design, or systems design that integrates both.”
“CE는 CS와 EE의 만남입니다. 그것은 마이크로프로세서부터 시작해 임베디드 기기, 랩톱, 데스크톱톱, 그리고 슈퍼컴퓨터에 이르기까지 모든 형태의 연산작용을 다루고 있습니다.
…컴퓨터 공학자들은 소프트웨어 디자인, 하드웨어 디자인, 그리고 그것을 통합하는 시스템 디자인을 전문적으로 하는 전자공학도입니다.”
University of Buffalo에서 나온 다음 글과 Duke 대학에서 나온 글도 이 두 전공의 차이를 이해하는 데 도움이 되니 필요하면 읽어보기 바란다.
이제 결론을 한번 내려보자.
미국에 외국인이 와서 정착을 시도하는 경우 직장을 우선 얻어야 하는데 이때 언어적 장벽이 가장 낮은 분야가 공학, 이학 분야이다. 그중에서 산업의 수요가 많고 가장 대우가 좋은 직업이 컴퓨터 분야의 엔지니어인데 개인의 능력이 출중할 경우 평균적으로 가장 대우를 잘 받는 분야가 그중에서도 소프트웨어인 것을 통계를 통해서 볼 수 있었다. 그럼 소프트웨어 분야에서 일하려면 무엇을 전공하는 것이 제일 좋은가? 바로 CS이다.
(물론 CE, EE 분야를 전공한다고 해도 소프트웨어 분야에서 일을 못하는 것이 아니다. 다만 본인의 경험에 비추어 볼 때 소프트웨어 분야는 CS 학위를 가진 엔지니어를 선호하는 경향이 있고 소프트웨어 엔지니어의 Job Description을 보더라도 CS 학위 전공자는 빠지지 않는다)
cs 전공에도 수학적 지식이나 능력이 꽤 요구되나요?
CS 전공은 기본적으로 수학과 밀접한 관련이 있다고 생각합니다. 데이터구조와 알고리즘 같은 과목들은 수학적 사고를 많이 요구합니다.
반면에 웹 개발과 같은 경우에는 그렇게 수학과 많은 관련은 없습니다. 관련 기술을 많이 알고 적용해 본 경험이 있으면 그 분야에서 계속 성장할 수 있습니다.
좋은 정보 감사합니다. 제 블로그에 공유해도 될까요?
네 공유하셔도 됩니다. ^^
안녕하세요 좋은 정보 감사드립니다 !
뭐좀 여쭤보고싶은데요
현재 켈리포냐 커뮤니티 칼리지에서 공부중이고 올해 cs 혹은 ee로 uc나 ucs cal poly slo 이 셋중에 한개로 편입생각중인데요
외국인으로 미국에서 잡 구할때 회사측에서는 당연히 좋은대학에 좋은 gpa을 선호하겟지만 극단적인예로 유씨버클리 gpa 2.5
Cal poly slo gpa 3.5로 보면 어느쪽이 취업에 유리한가요 ? 그외적인 부분은 같다고 가정하구요
그리고 제가 듣기론 아무리 uc가 순위가 높아도 베첼러 디그리고 잡구할려면 사립대학교나 스테이트 계열의 ( cal poly slo) 대학이 유리하다던데 실제 필드에서는 어떤가요? 대학교 선택에 고민이 많이되서요..
좋은 글 잘 읽었습니다. 도움이 많이 되서 구독을 하게 되었내요ㅎㅎ
저는 한국에서 경영학으로 다음학기 학부 졸업예정인 대학생입니다.
미국 CS전공 대학원 진학을 희망합니다만, 경영학 학부생 신분으로
이렇게 진학이 가능한가 여쭙고 싶습니다.
만약 사실상 불가능 하다면 CS전공으로 학부를 한번 더 다녀야하나 싶기도 하내요. 읽어주셔서 감사합니다.
학부가 최소한 공학을 전공하시거나 자연계(수학과 계통)이면 가능하겠지만 경영학 학부 출신으로 CS 대학원을 간다는 것은 현실상 힘들지 않을까 싶습니다. 혹시나 진학한다고 해도 기초가 없는 상태에서 수업 커리큘럼을 따라가기는 무척 힘들 것입니다. 하실 수 있다면 CS를 복수 전공 하실 것을 권해봅니다
좋은 글 정말 감사합니다. 미국 학부 EE4학년인데 진로때문에 고민이 많네요. 좋은 글 잘 읽고 갑니다.
안녕하세요. 미국 대학에서 ME 전공으로 졸업 예정인 학부 4학년 학생입니다. 공부하다보니 CS쪽에 관심이 많아서 CS쪽으로 석사 과정을 하려고 하는데 학부에서 CS를 하지 않은 사람이 CS 석사과정 진학하는거에 대한 제약이 심한가요?
불가능한 것은 아니지만 제약이 어느 정도는 있습니다.
저는 EE를 전공하고 CS로 진학을 했지만 회사에서 소프트웨어 엔지니어로 계속 일했고 CS에 대해서 어느 정도 공부를 한 상태였습니다. EE와 CS는 어느 정도 공유하는 것이 있어서 어느 정도 이해는 해주지만 ME는 조금 더 제약이 있을 수 있습니다. 하지만 회사에서 소프트웨어 개발을 하신 경험이 있으시면 좀 더 용이할 수 있을 것이라고 생각합니다.
저는 처음에 벤처 기업에 들어가서 하드웨어 개발을 하게 되었는데 거기서 소프트웨어 개발로 나중에 전향했습니다. 우선 하드웨어 개발에 비해서 단 시간에 많은 성과를 낼 수 있고 컴퓨터 하나로만 할 수 있는게 많아서 소프트웨어 개발을 해야겠다고 생각했습니다. 그리고 소프트웨어를 공부하면 할수록 내가 상상하는대로 필요한 도구를 만들어낼 기회가 많아서 그 매력에 CS를 나중에 전공해야겠다고 생각했습니다.
좋은 글이네요..잘 읽었습니다. ^^
저는 현재 미국에 CS학부로 입학허가를 받은 유학준비생(?) 입니다.
그런데 제가 몇가지 궁금한 점을 여쭤봐도 될까요??
네. 이 게시판이나 메일 stan@stanstory.com으로 연락주세요.
안녕하세요 cs에관해서 물어보고싶은게잇는데 이메일을 어떻게 보내면되나요?
블로그의 Contact에 가시면 저에게 이메일을 보낼 수 있는 폼이 있습니다. 거기를 통해서 보내주시면 됩니다.
안녕하세요?
제가 미국유학을 하려고 하는데 과에 대해서 조언 좀 구할 수 있을까요??
메일 주세요.