새로운 도전 – 웹프로그래밍

한동안 블로그에 글을 쓰지 못했다. 회사 일이 너무 바쁘기도 했었고 아이들을 기르면서 시간이 따로나지 않아서 글을 적을 여유가 없었던 탓이다.

미국 회사에 다니는 덕분에 가족과 많은 시간을 보낼 수 있지만 아이 양육에 있어서 양가 부모님이나 친척의 도움을 전혀 받을 수 없어서 양육을 온전히 다 담당해야 한다. 작년에는 와이프가 둘째를 임신하고 우리 가족이 회사에서 1시간 이상 떨어진 곳으로 이사를 간 탓에 출퇴근에 걸리는 시간 문제로 많은 고민을 해야만 했다. 아침에 회사를 가면서 딸을 데이케어에 보내고 회사 일을 끝내고 오는 길에 다시 데리고 오면서 하루에 거의 3시간 이상을 길에서 보내고 나니 집에 와서는 다른 무엇을 할 여유를 쉽게 가지지 못했다. 회사 일을 하고 가족을 돌보기만도 벅찬 2015/2016년이었다.

회사에서는 이례적으로 Enterprise Rotation Program(ERP)라는 것을 시행하고 있었다. 운좋게도 본인이 속한 그룹에서 이 프로그램에 참여하는 7명 중에 한명이 되는 행운을 누렸다.이 ERP 프로그램은 매년마다 팀을 바꿔가면서 엔지니어로서의 다른 역할들을 경험하게 되는 것이다. 사실 미래에 매니저를 염두에 두고 있는 나로서는 내가 일해왔던 BIOS/UEFI 같은 로우레벨 시스템 펌웨어 분야뿐만 아니라 델에서 하는 다른 분야의 엔지니어링도 경험해 보고 싶었다. 매년마다 본인이 지원할 수 있는 잡 리스트가 나오는데 자신이 제일 가고 싶은 3가지 팀을 골라서 지원할 수 있다. 그리고 그 팀에서 짧으면 10개월 길게는 14개월까지 보내면서 새로운 일을 배우는 것이다.

본인도 3개의 새로운 일을 지원했지만 그 일들을 얻지는 못했다. 제일 우선 순위였던 일은 로테이션 프로그램에 뽑힌 사람들이 대부분 지원해서 최종 선발에서 고배를 마셨고 두번째 우선 순위였던 일은 첫번째 우선 순위였던 일과 같은 팀이었는데 이미 한명을 뽑았기 때문에 그 팀에서 추가적으로 한 명을 더 뽑을 수 없다는 답변을 들었다. 새번째 일은 본인에게 제안이 들어왔는데 너무 잦은 출장 때문에 본인이 거절했다(한달에 한번씩 실리콘밸리에 출장을 가야했다. 당시 육아라는 사정도 있었고 와이프가 임신해서 가족을 돌보기 힘들 것 같았다). 결국 로테이션 프로그램을 담당하는 커미티에서는 나에게 시스템 엔지니어라는 지금까지와는 전혀 다른 직군의 일을 주었다.

시스템 엔지니어로 일하는 1년 동안 프로그래밍과는 거의 담을 두고 쌓았다. 본인은 맡은 일은 PCIe SSD라고 SSD에 PCIe Interface를 다이렉트로 연결해서 전송 속도를 획기적으로 개선한 스토리지

Read More...

인재의 이동

예전에 전자신문에서 신년 기획으로 “돌아오지 않는 두뇌들“이라는 제목으로 기사가 나온 적이 있다. 여기 기사를 보게 된다면 미국에서 박사 학위를 받은 한국인의 63%가 한국으로 돌아가지 않고 미국에 잔류하겠다고 희망하는 것을 볼 수 있다. 그중에 이공계 박사들의 한국행 기피는 더 심각하다고 한다. 통계에 따르면 다른 분야에 비해 이공계 박사는 더 높은 비율로 미국에 남고 싶어 하는 것을 볼 수 있다.

왜 이런 현상이 벌어질까? 결론은 미국에서 자기 전문 분야의 연구를 하고 일을 하는 것이 한국에서 일할 때보다 훨씬 많이 벌고, 그러면서도 훨씬 편안한 생활을 할 수 있기 때문이다.

한국에서 약 4년 정도 일하면서 중소기업과 대기업들이 어떻게 일을 하는지 많이 봐왔다. 그중에서도 IT 분야의 엔지니어들이 어떤 대우를 받고 어떤 식으로 일하는지를 보면서 나 자신부터 이 같은 삶을 지속할 수 있을지 끊임없이 고민을 해왔다. 내가 내린 결론은 “관두자”였다. 병역특례로 중소기업에서 일하는 동안 긴 업무 시간과 끊임없이 계속되는 프로젝트로 인해 심신이 많이 지쳐갔다. 다만 운이 좋았던 것은 인격적으로 대해주셨던 좋은 상사분들을 만나서 사회 생활의 많은 부분을 배울 수 있다는 것이었다. 하지만 내가 투자하는 시간과 노력에 비해 보상을 받지도 못하고 사회적으로도 크게 인정받지도 못하는 일이라는 것을 조금씩 깨달아가면서 내가 과연 이 일을 계속해야 되는지 의문이 들었다.

재능이라는 것은 정말 모르는 것이다. 내가 어떤 것을 시도해보기 전에는 내가 어느 쪽에 적성이 있고 어떤 쪽을 잘하는지 절대 알 수 없는 것이다.

나는 컴퓨터와 전자기기를 어릴 때부터 좋아해서 대학에서 전자공학을 전공했고 나중에 소프트웨어에 흥미를 느껴 소프트웨어 엔지니어로서의 길을 조금씩 닦아왔다. 공부를 열심히 해서 좋은 성적을 받아왔고 좋은 고등학교, 대학교를 열심히 공부해서 졸업했으니 여기에 적성이 있고 또 잘한다고 생각했다. 하지만 웬걸 대학을 졸업해서 회사 일을 하다 보니 내가 길을 잘 못 선택한 것이 아닐까 하는 생각이 들었다. 한 달을 죽도록 일하고 잠도 못 자면서 노력했는데 왜 월급은 파트 타임으로 과외 몇 개를 하는 것보다 적은 것일까? 물론 중소기업이라서 그럴 수도 있다. 만일 삼성이나 LG에 들어갔으면 물질적 보상은 훨씬 나았겠지만 업무 강도가 더 나아졌으리라 생각되지는 않는다. 내가 좋아하는 일이라서 하고 있지만 그에 따른 보상을 받지 못하는 것에 대해서 나는 내 삶과 미래에

Read More...

전산학 공부 및 프로그래밍 공부에 유용한 책 목록 및 링크들

저는 대학에서 전산을 전공하지 않았기 때문에 미국에서 소프트웨어 엔지니어로 취업 준비를 하면서 개인적으로 따로 프로그래밍 공부를 하고 전산학 공부를 해야 했습니다. 소프트웨어 엔지니어로 테크니컬 인터뷰를 보는데 필수적인 알고리즘을 수강하지도 않았고 데이터 구조론은 거의 10년 전에 들은 것이라서 머리 속에 남아 있는 것이 거의 없었습니다. 그리고 외도해서 경영학 공부를 한다고 프로그램 세계와는 거의 4년 정도 떨어져 있다보니 제가 다시 소프트웨어 프로그래밍을 할 수 있을지도 의문이 들었습니다.

아무튼 되든 안되든 예일에 와서 전산학 수업을 들으면서 프로그래밍을 다시 시작해보게 되었습니다. 사람의 뇌라는 것이 참 신기한 것 같습니다. 손을 놓은지 4년이나 지났는데 이상하게 예전에 배웠던 것들이 조금씩 기억이 나고 시간은 좀 걸리지만 책을 찾아보면서 프로그래밍을 다시 할 수 있다는 것을 깨닫게 되었습니다. 사실 이와 비슷한 경험을 한 것은 몇가지 있습니다. 고등학교와 대학교 때 농구를 좋아해서 농구장에서 시간을 많이 보냈는데 거의 5년이 지나서 다시 농구를 해보니 체력은 딸리지만 몸이 기억해서 그 때 자주 쓰던 여러가지 동작들을 할 수가 있었습니다. 예전에 탁구를 좋아해서 학교에서 탁구 수업을 듣고 또 탁구장을 몇 개월동안 다니면서 열심히 배웠습니다. 미국에 와서 탁구 칠 일이 없어 몇 년동안 탁구를 치질 않았는데 2년 전인가 회사에서 탁구 대회가 열렸는데 한명씩 제치다 보니 우승까지 할 수 있었습니다. 그때 느낀 것이 몇 년동안 탁구를 치질 않아도 몸이 예전에 연습한 것을 기억하고 있는 것을 알 수 있었습니다.

이런 일련의 경험들은 저에게 삶에 대한 태도를 다시 일깨워 주게 됩니다. 지금 하는 것이 재미가 있고 또 열심히 한다면 나중에 반드시 도움이 되리라는 것입니다. 중간에 다른 많은 일들이 생겨서 중단할 수도 있지만 지금 흘린 땀들은 나중에 다시 이 일에 도전하게 되면 처음 도전하는 것보다 훨씬 빠르게 성장하고 또 다음 단계로 올라갈 수 있게 해주리라고 믿습니다.

저는 월요일에서 금요일은 거의 매일을 프로그래밍 코드를 보면서 삽니다. 하지만 예전에 배웠던 C/C++, Java 등의 문법과 제가 따로 공부했던 알고리즘, 데이터 구조를 다 기억하고 있냐고 물어보시면 제 답은 NO입니다. 매일 쓰는 프로그래밍 언어가 아니다보니 예전에 공부했던 것을 대부분 잊어버렸고, 지금 제일 많이 쓰는 어셈블리어와 C언어도 제가 자주 쓰는 부분이 아니면 책을 다시 찾아봐야 합니다. 그리고

Read More...

미국에서 소프트웨어 엔지니어가 되고 싶은 CS 비전공자들에게

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

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

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

한 예를 들어보자.

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

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

서울대에서 경영학을 공부하면서 좋았던 것은 우선 공대보다 공부할 양이 적다는 것이었다. 다만 경영대에서 잘하기 위해 요구되는 스킬은 매우

Read More...

왜 Computer Science가 미국 취업을 위한 최적의 전공인가?

 부제: 미국 취업을 위한 전공 선택 (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 전공자로서 기본은 알고 있었고 부족하면 나중에 회사에 들어가서 열심히 공부하면 되기 때문이었다. 사실

Read More...

미국 취업을 위한 Computer Science 유학 프로그램 선택 (1년 석사 vs 2년 석사)

예일에서 마지막 학기를 마무리하면서 끊임없이 직장을 찾아 헤매었다. 예일의 Computer Science 석사 프로그램은 1년에서 4년까지 할 수 있는 유동성이 있는 프로그램이다. 만일 1년에 마칠 역량이 된다면 1년에 끝내도 되고, 시간이 안 되고 역량이 부족하다면 4년까지 지속할 수 있다. 졸업을 하기 위해서는 학점 평균이 High Pass이상이어야 되고 Honor 학점도 최소 하나가 있어야 한다. (예일은 특이하게 A, B, C 식의 학점이 아니고 Honor, High Pass, Pass, Fail 식의 학점을 준다. 그리고 Honor 학점을 받는 것은 무척이나 어렵다) 그리고 그 당시1년에 $32,500에 달하는 학비는 결혼해서 바로 유학 온 본인의 가족에게 큰 부담이었다. 그 상황 속에서 할 수 있는 최선은 첫 번째가 1년 안에 졸업하는 것, 그리고 두 번째가 졸업 후 바로 취업이었다.

사실 예일에 입학하기 전 석사 프로그램이 2년인 것으로 잘 못 알고 있었다. 학과 홈페이지에 가면 모든 신입생들이 읽어야 하는 가이드 같은 것이 있었는데 귀찮아서 읽지 않고 있다가 나중에 입학하고 나서 읽으니 석사 프로그램이 그렇게 돌아간다는 것을 뒤늦게 깨달았다. 하지만 그때는 이미 다른 선택을 하기가 늦은 시기였다.

본인처럼 가고자 하는 학교의 세부 정보를 잘 읽어 보지 않으면 입학하고 나서도 당황할 일이 많이 생긴다 (출처: Yale CS Dept. website)

본인처럼 가고자 하는 학교의 세부 정보를 잘 읽어 보지 않으면 입학하고 나서도 당황할 일이 많이 생긴다 (출처: Yale CS Dept. website)

석사 유학을 가기 위해 학교 정보를 알아보는 시기가 있는데 이 때 자신이 가고자 하는 프로그램이 1년 프로그램인지 아니면 2년 프로그램인지를 알아보자. 그리고 중요한 것이 2년 프로그램이라도 논문을 쓰는 프로그램인지 아니면 그냥 수업만 들으면 졸업할 수 있는 프로그램인지 알아보는 것도 중요하다. 한번은 델에서 같이 일하던 한 친구가 석사학위를 3년동안 한 것을 알게 되었다. 그 이유인즉 석사 논문 때문에 졸업이 늦어지게 되었다는 것이다. 수업을 다 들었고 졸업 가능 학점이 되어도 논문을 필요로 하는 석사 프로그램의 경우 석사 논문이 교수님들의 승인을 받지 못하면 졸업하지 못하는 것이다. 미국 취업이 목적이고 만일 석사 논문이 옵션이라면 논문을 쓰지 말 것을 권한다. 취업 준비를 해야 될 시간에 석사 논문에 발목이 잡힐 수 있기 때문이다.

미국에서 공부를 하는 것은 많은 비용을 수반하는 자신에 대한 투자 기간이다. 그리고 대부분 장학금을 받지 못하는 석사 프로그램의 경우 프로그램의 기간과 성격에 따라서 개인적 예산 책정을 잘해야 되고 경우에 따라 불가피하게 1년을 더하는 경우도 생긴다. 본인도 마지막 학기에 다행히 원하는 성적을 받았기에 다행이지 하마터면 추가로 한 학기를 더 할 가능성도 있었다.

기간에 따른 미국 석사 프로그램의 장점과 단점을 알아보자.

우선

Read More...