저는 프로그래밍 교육 스타트업, 코드스테이츠 를 운영하고 있습니다. 소프트웨어 엔지니어가 되기 위해서, 본인만의 웹, 앱 서비스를 만들기 위해서, 개발자와 협업하는데 도움이 되려고 등 다양한 이유로 프로그래밍을 배우려는 분들이 많아지고 있습니다.
오늘은 프로그래밍에 관심있는 분들에게 조금 더 동기부여가 될 수 있는 글을 하나 소개합니다. "Why I left the best job in the world" 라는 글을 코드스테이츠에서 번역했습니다.
---------------------------------------------------------------------------------------------------------------------------------------------
오늘은 Andreessen Horowitz에서의 마지막 날이었습니다.
Marc Andreessen과 Ben Horowitz, 그리고 Chris Dixon 같이 기술 분야에서 가장 똑똑한 사람들과 함께 일할 수 있었던 건 내게 있어서 엄청난 행운이었습니다. 기업가가 꿈을 실현하도록 돕는 a16z 임무를 수행하면서 많은 것을 배웠습니다.
그런데 왜 떠냐나구요? 제 대답이 당신에겐 좀 뜻밖일 수 있어요.
저는 소프트웨어 엔지니어가 되기로 했습니다.
저와 같은 배경을 가진 전문가에게 일반적인 선택은 아닙니다. 내가 미쳤거나 어리석은 사람이라고 생각할 수도 있죠. 그러나 글을 읽고 있는 당신이 어떤 결론에 도달하기 전에, 이것이 왜 엄청난 도약이었는지 설명하고 고위급 재무 직책의 실적 기록에서 벗어나 엔지니어링 세계로 뛰어들게 한 제 내면의 여정에 대해 공유하고 싶어요.
나와 비슷한 위치에 있는 누군가에겐 “명백할”선택과, 그런 선택을 추구하길 원치 않는 나만의 이유로, 이야기는 시작됩니다.
비즈니스 스쿨은 어떻습니까?
HBS와 GSB 졸업생들과의 많은 대화 후에, 비즈니스 스쿨은 학습 경험이 적고, 강력한 전문 네트워크를 구축하는 부분에선 더 부족하다는게 분명해졌습니다. 저의 경우에는 운이 좋게도, 가장 좋은 네트워크 중 하나인 Andreessen Horowitz에 속해 있었지만 말입니다.
이것이 사실이 아닐지라도, 제게 있어 비즈니스 스쿨의 주된 문제는 컨설팅과 재정으로 이어지는 분야입니다. 전 컨설팅에 참여하기를 원치 않았습니다. 그렇다면 실제 교육을 통해 스스로에게 제공 할 교육과 네트워크를 이미 확보 한 상태에서, MBA에 200,000 달러와 내 인생의 중 2년이나 투자해야 하는 이유는 무엇일까요?
a16z 포트폴리오 회사의 구인 제안은 어땠습니까?
이 질문은 설명하기 조금 까다롭네요. 저는 a16z에서 근무하면서 ‘성장부분을 관장하는 책임자(Head of Growth)’와 ‘파트너쉽 체결 및 운용 책임자(Head of Biz Dev / Operation)’를 포함한 몇 가지 흥미로운 역할을 할 기회를 얻었습니다. 그런데 전 모든 걸 뒤엎어버렸죠. 그들이 흥미로운 역할로 일하는 동안, 저는 더 기술적인 부분을 할 수 있기를 열망했습니다.
사실 , 산업 경영과 시스템 공학 분야의 학위를 받았음에도 불구하고 Goldman Sachs에 입사 할 수 있는 기회가 있었기 때문에, 졸업 후 실제로 재무에 관여 했습니다.
투자 뱅킹을 한 지 1개월 만에, 전 제가 그 분야에서 장기간 일하고 싶어하진 않는다는 걸 일찍 깨달았습니다. 매혹적이었지만, 대학에서 접한 엔지니어링 만큼 절 사로 잡진 못했어요. 어쨌든, 금융은 제가 그렇게 쉽게 그만두게 두질 않았습니다. a16z에서의 직책에 대한 기회가 생겼고, 저는 그 기회를 놓치는게 실수가 될거라는 걸 알고 있었습니다 .
다행히도, 이 모든 과정이 오늘날의 저를 존재하게 했습니다. 즉, 금융 분야에서의 성공적인 경험 끝에 마침내 엔지니어링 분야로 다시 돌아갈 준비가 되었습니다.
대학원은 어떤가요?
저는 특히 스탠포드, UC 버클리, MIT와 같은 훌륭한 학교에서 컴퓨터 사이언스, 데이터 사이언스 및 기계 학습에 관한 많은 프로그램을 제공했기 때문에 대학원을 매우 진지하게 생각했습니다.
Stanford, UC Berkeley, MIT 및 기타 여러 컴퓨터 사이언스 프로그램에 대해 많이 연구했습니다. 결국, 전 GRE를 위해 공부하고, 신청서를 작성하고, 2 ~ 4 년을 더 기다려서 학위를 받기 위해 여러 달을 보내며 인내심을 시험하지 않기로 결정했습니다. 차라리 그 시간을 실제 경험을 통해 이런 기술 주제들을 배우는 데 사용할 생각입니다. 저는 단순히 학위가 새로운 분야에 진입 할 수 있는 유일한 길이라고 믿지 않습니다.
소프트웨어 공학을 어떤 계기로 접했나요?
자, 이제 궁금하실겁니다. 왜 제가 그냥 전공 과목을 따라 편하게 산업 및 시스템 공학분야로 진출하지 않고, 제겐 완전히 새로운 컴퓨터 과학 분야로 뛰어 들었는지 말이죠. 솔직히, 만약 제가 대학시절에 좀 더 이런 분야에 대해 잘 알았더라면, 전 가능한 한 빨리 컴퓨터 과학으로 전향 했을 겁니다.
제가 그럴수 없었던 이유를 대자면, 어렸을 때 소프트웨어 엔지니어가 하는 일에 대한 제 인식이 완전히 이상했기 때문입니다. 인기가 없는(찌질한) 멍청이들로 가득 찬, 희미한 조명의 공장을 상상했습니다. 화면을 응시하며 코드를 쓰는 긴 하루를 보낸 후, 부모님의 지하창고로 돌아오는 그들을 말이죠. 나는 그 때 소프트웨어 공학이 창의적이고 열정적인 사람들의 것이라 생각하지 않았습니다. 간단히 말해서, 그건 날 위한게 아니었습니다.
심지어 저의 어머니도 제가 소프트웨어 공학을 하는 것에 반대했습니다. 전형적인 인도의 모든 부모처럼, 그녀의 꿈은 내가 의사가 되는 것이 었습니다.
그러나, 대학에 도착해서 실제 CS(computer science, 컴퓨터 사이언스)과 학생들을 만나는 것은 소프트웨어 공학에 대한 저의 선입견을 완전히 바꿔 놓았습니다. C + +과 관련된 두 과목을 들으면서 CS를 시작했고, 놀랍게도 저는 그 과목들을 정말로 즐기며 했습니다. 그러나 부전공을 전공으로 전환하는 것에 너무 큰 부담을 느꼈고, “안전한 길”에 대한 확신을 갖기 위해 Industrial & Systems Engineering 수업에 집중했습니다.
실리콘 밸리의 가려진 특장점 (Silicon Valley seals the deal)
요약하면, 저는 어렸을 때부터 컴퓨터를 수리 해 온 프로그래머 중 한 명이 아닙니다. CS(computer science)와 “운명적”이지 않았다는 뜻입니다. 제 이야기는 조금 다릅니다.
이야기는 제가 대학을 졸업하고 전 세계 기술의 수도인 실리콘 밸리로 이사 온 후부터 시작되었습니다. 그곳에서 저는 비즈니스에서 최고의 엔지니어들에게 둘러싸여있는 자신을 발견했습니다. 그들이 일한 것들과 그들이 해결한 문제에 대해 배우기 시작했고, 그 모든 것은 절 설레게 했습니다. 이 후 컴퓨터 학습, 컴퓨터 비전, 인공 지능, 로보틱스, 지식 표현과 같은 컴퓨터 과학 주제에 매료되어 더 많은 것을 배울 수 있었고, 그것들에 대해 배울 수 있는 모든 것을 읽었습니다. 소프트웨어 엔지니어, 데이터 과학자 및 기계 학습 연구자들의 지혜를 빌리고 일상적으로 하는 일에 대해 자세히 알기 위해 다가갔습니다. 그리고 내가 배운 것은 모두 기상천외할 만큼 흥미로웠으며, 그 과정중에 그들은 내게 있어서 엄청난 존경과 흠모의 대상이었습니다.
얼마 지나지 않아 저도 그들 중 하나가 되고 싶었습니다.
첫 시도
컴퓨터가 코드를 어떻게 읽습니까? 프로그래밍 언어가 처음에 어떻게 만들어 지나요? 어떻게 하면 “좋은”시스템 설계, 혹은 “나쁜”설계를 만드는 기계 학습 알고리즘을 구축 할 수 있습니까? 훌륭한 디지털 제품은 어떻게 구축됩니까? 저는 이러한 끝없는 질문을 던지면서 CS를 시작했습니다. 이 질문들과 함께 코드를 배울 필요가 생겼습니다. 그래서 저는 실행에 옮겼습니다.
“코드 배우기”를 시도한 첫 번째 날을 분명히 기억합니다. 2013 년 겨울이었고 부모님과 형제(자매)와 함께 크리스마스를 보내고 있었습니다. 처음엔 어떤 언어로 시작할지 연구하며 하루를 보냈습니다. 많은 포럼과 블로그 게시물을 뒤지면서 저는 파이썬에 정착했습니다. 그리고 Zed Shaw가 쓴 “Python을 어렵게 배워라”라는 책을 골랐고 연습을 시작했습니다. 그러나 슬프게도 이 결심은 딱 2주 지속되었습니다. 그것은 제게 어렵고, 불편했고, 좌절스러웠기에 매우 일찍 포기했습니다.
“도대체 누가 이런걸 좋아할까?” 생각이 들더군요.
정확히 1 년 후, 코드 학습에 대해 다시 관심이 생겼습니다. 저는 또 한번 도전하기 위해 스스로를 설득했고, 이번에는 지난번의 2배 가량 지속되었죠(한 달). 그러나 불행하게도, 저는 새로운 일을 막 시작했고 살기 좋은, 일과 생활의 균형을 찾기 위해 고심하고 있었습니다. 코딩은 춤이나 요가처럼 비교적 간편하게 시작 할 수 있는 새로운 취미 찾기와 다릅니다. “나는 코드를 작성하며 일에서 벗어나 휴식을 취할 거야”라고 말하는 사람은 거의 없듯이요. 저는 코딩의 핵심적인 부분에 대한 기초 지식이 충분히 높은 수준이 아니라 코드작성에 익숙함을 느낄 정도가 아니었습니다. 그래서 재미또한 느끼지 못했고, 다시 한번 구석에 밀어두게 되었죠.
“나중에 직장에 정착했을 때, 다시 시작해야지.” 라고 다짐했습니다.
자기 의심
저는 제 목표를 이루기 위해 계속 투쟁했었다기보단, 실패한 편입니다. 저는 부정적인 생각과 싸우는 동안 코딩을 1년 동안 제쳐두었고, 단 한가지 잘해낼 수 있었던 건 자기 증오에 대한 감정을 억누르는 것 뿐이라고 생각했습니다. 네, 자기 증오요. 전 스스로가 부끄러웠습니다. 이 세상에서 1천 8백만 명이 ( IDC에 따르면 ) 이 일을 할 수 있다면, 나에겐 도대체 무슨 문제가 있는 걸까? 왜 난 못하지? 사람들은 내가 항상 똑똑하다고 말해 주지만, 나는 그들이 틀렸다고 확신했어요.
저는 세계의 모든 프로그래머를 부러워하기 시작했고, “코드 쓰는 법”을 아는 사람들을 질투했습니다. 친구에가 우리가 함께 꿈꿔 왔던 응용 프로그램을 코드화하는 데 도움이 되기를 얼마나 원했는지 울며 얘기했습니다. 이 생각은 이 후에 코드 작성을 배우고자 하는 욕구를 참기 어려워질 때까지 계속되었습니다.
“Hello world”
결국, 저를 쓰러뜨렸던 첫번째 장애물을 극복하는 것에 있어 감정적인 한계점에 도달했습니다. 그때는 오전 5시였고, 한 시간 동안 러닝 머신에서 뛰고 있었으며, 제 머리 속의 코딩 딜레마에 대해 새로운 접근법을 생각했습니다. 그리고 어느순간 깨달았습니다. 코딩에 대한 안좋은 감정은 날 비참하게 만들었지만, 그것에 대해 죄책감을 느낀다고 해서 무언가 바뀌지는 않는다는 걸 말이에요. 그냥 하거나 아예 생각을 접는 것, 이 두 가지 선택사항 뿐이었습니다.
저는 그날 하루 직장을 쉬고 책을 읽었습니다. 이번엔 제대로 탄력을 받았고, CodeSchool 및 TreeHouse와 같은 논스톱 튜토리얼 및 온라인 코스를 1 주일 수강한 후, HTML / CSS로 첫 번째 웹사이트를 만들었습니다.
다음으로 JavaScript의 기초를 배우고 지난 2 주 동안 배웠던 모든 것을 맥락에 맞추기 위해 사이드 프로젝트를 시작했습니다. 또 다른 일주일 후, 제 첫 프론트 엔드 코딩 프로젝트 작업 (그러나 불완전한) 버전을 완성했습니다.
지금 되돌아보면, 그 작업물은 너무 대충 만들어졌고, 유지 관리가 어려웠으며 스파게티처럼 꼬인 코드가 당혹스럽습니다. 오늘 처음부터 다시 구축해야한다면 모듈화되고 유지 보수 가능하며 구조가 더 잘 짜여진 구조를 만들 수 있습니다. (주말 프로젝트 중 하나로 다시 작성할 계획입니다.) 그러나 요점은, 제가 그 일주일안에 만들었던 것이 무엇이냐, 혹은 얼마나 잘 만들 었는가가 아닙니다 .
요점은 실제로 코드를 사용하여 무언가를 만들었다는 것 입니다.
그리고 전 그 작업을 정말 좋아했습니다.
저는 미니 프로젝트의 열정에 힘입어, 늦은 밤까지 작업했고 예기치 않은 시험을 맞닥뜨렸지만, 결코 “일”처럼 느껴본 적이 없었습니다. 프로젝트를 디자인하고, 프로젝트를 설계하는 방법을 생각하고, 어떤 도구와 라이브러리를 사용할 것인지 생각해내는 모든 순간이 좋았습니다.
그리고 가장 멋진 건, 무엇보다 제가 원하는 방식으로 코드를 작동시키는 방법을 찾아 내려고 노력하는 동안, 내 두뇌를 고생시키는 것이었습니다. 전 마침내 사람들이 코딩에 그렇게 열정적인 이유를 알게되었습니다. 프로그래밍은 당신이 창조자가 되도록 하며 그건 과학이나 예술분야와 다를게 없습니다.
저는 그 모든 시간 동안 완전히 잘못 알고 있었습니다. 저는 프로그래밍을 배워야 할 필요성을 따지며 가져야 할 일련의 기술적인 측면으로 접근하고 있었기 때문에 ‘해야할 일’ 처럼 여기게 되었습니다. 그러나 이 프로젝트는 프로그래밍이 코딩 방법을 아는 것이 아니라 오히려 관심있는 것을 만들고 세상에 보여주고 싶은 것을 만들어내는 과정이라는 점을 깨달을 수 있게 해주었습니다.
프로그래밍은 자유롭고 힘을 실어주며, 이를 통해 여러분은 창조 할 수 있습니다.
제 열정에 불이 붙었고, 저는 곧 빠져버렸습니다.
밤과 주말에도 계속 배웠습니다. 곧, 코드는 제가 생각하는 유일한 것이 되었습니다. 그 밖의 모든 것들은 방해물 처럼 느껴졌습니다. 전 밤중에 막혔던 문제들을 머릿속에 떨쳐버렸다가, 낮동안 다시 연구했습니다. 그런 다음 직장에서 집으로 달려가 밤에 몇 시간 더 코드를 작성합니다. 이런 과정을 몇주간 반복하다 마침내 제 자신에게 이렇게 되물었습니다.
“이걸 하루 종일 할 수 있다면 어떨까?”
근황
이 시점에서 저는 애매모호한 행동을 멈추고 코딩에 전념하기로 결심했습니다. 그건 제가 지금까지 해 온 어떤 것보다도 가장 어려운 결정이었습니다. Andreessen Horowitz는 놀라운 곳이며, 저는 많은 것을 포기하고 간다는 것을 알았기 때문입니다.
말할 필요도 없이, 어머니는 완전히 반대하고 계세요. 그녀는 내가 이 엄청난 직장을 떠나고, 그간 저축 한 돈을 모두 사용하여, 구체적인 경험도 거의 없는 무언가를 한다는 걸 정말 멍청한 일이라 생각하죠. 업계에서 더 많은 경험을 가진 몇몇 사람들도 제가 CS 학위없이 Google이나 Facebook에서 일하기는 어려울 것이라고 말했습니다.
물론 스탠포드 또는 MIT에서 CS 학위를받지 못했습니다. 그리고 물론, 구글이나 페이스 북에서 일하지 않을지도 모릅니다. 그러나 제가 페이스북이나 구글에 입사했는지의 여부는, 내가 왜 이것을 하고 싶은지에 대한 요점이 아닙니다. 제 목표는 진실로 배우는 것 입니다.
제가 마음속에 품고있는 지침은 다음과 같습니다.
1. 프론트 엔드 vs. 백엔드, 모바일 vs. 웹, 가장 흥미있는 분야 : 기계 학습, 인공 지능, 로보틱스, 컴퓨터 비전 등 내가 가장 좋아하는 부분을 파악하세요
2. 정말로 잘해야합니다.
3. 그 기술을 사용해 세상을 변화시키세요. 그것은 세계적인 회사를 세우는 것 일 수도 있고, 또는 완전히 다른 것을 만드는 것을 의미 할 수 있습니다.
그렇습니다. 저는 Stanford에서 CS 학위를 받지 못했습니다. 하지만 그 가지지 못한 학위를 보완 할 수 있을 만큼, 제품을 제작하고 실질적인 경험을 쌓으며 가능한 모든 노력을 다할 것입니다. 이 길을 시작하며, 몇몇 채용 담당자, 관리자는 여전히 CS 학위가 없다는 이유로 나를 무시할 것이라고 생각합니다. 하지만 괜찮아요. 제 자신을 증명할 수 있는 기회를 줌으로써, 저를 신뢰할 사람이 적어도 한 명은 있을 것이라고 저는 확신합니다. 다행스럽게도 그것은 이 기술세계에서 항상 필요로 하는 부분이죠.
나는 기꺼이 맨 바닥부터 시작해서 내 길을 가려합니다. 금융에서 했던 것처럼 말이죠.다음 단계로 샌프란시스코에서 12주짜리 코딩 부트 캠프를 선택했습니다. 이것은 제 학습을 가속화하고 강력한 기반을 다지는 데 도움이 될 것이며, 또한 제가 개발자 역할로 채용되는 부분에 초점이 맞춰진 몇 가지 프로젝트를 진행할 수 있게 도와줄 것이기 때문입니다
전 이게 힘든 싸움이 될 것을 압니다. 초입 단계인 “코딩을 학습하는 법”은 끝났습니다. 이제 알고리즘과 데이터 구조와 같은, 깊은 CS 주제를 학습하기 시작했으며 점점 더 어려워지고 있습니다. 새로운 것을 배우며 벽을 허무는 단계는 결코 쉽지 않고, 절 좌절시키며, 종종 완전히 방향을 잃은 듯한 느낌을 받습니다. 때로는 장벽이 무너지기까지 몇 시간이 걸리고 때로는 몇일이, 때로는 몇주가 걸립니다. 전 자신감을 잃고 나의 역량에 의문을 제기했습니다. 아래 차트에서 저는 “내적 모순(inner contradiction)”의 시작단계에 있었죠.
출처 : http://www.eoslifework.co.uk/transprac.htm
그러나 이번에는, 내가 성장하고 배우며 점점 강해지는 것을 의미하기 때문에 이 모든 감정을 사랑합니다. 충분한 끈기로, 저는 그 감정들을 더 잘다루게 될 거에요. 더 단단해질 것이며, 투쟁을 즐기는 법을 배울겁니다. 제가 이 장벽들을 계속 밀고 나가는 한, 결국 그들은 길을 내줄 것입니다. 가끔 어렵게 느껴질지라도, 감당하기 힘들 만큼 어려운 일은 아니니까요.
기대하고 있는 것
이 모든 것 중 가장 말도 안되는 부분은, 장기적으로 바라봤을 때 결국엔 소프트웨어 엔지니어링을 좋아하지 않거나, 혹은 내가 바라던 높은 기술 수준에 도달하지 못하거나 혹은 그보다 더 나빠질 가능성- 코딩을 좋아하지 않고 나쁜 소프트웨어 엔지니어로 남는 것-이 있다는 것입니다. 솔직히 저는 이러한 결과를 “실패한”것으로 생각하지 않습니다. 내 마음 속에서 나는 세상을 변화시키는 데 한 걸음 더 다가서면서 인생에서 또 다른 기회를 잡을뿐입니다.자, 여기. 인생에 있어서 또 다른 기회를 얻고 더 많은 것에 도달하는 길이 있습니다. 저는 최고의 소프트웨어 엔지니어가 될 것이라고 약속 할 수는 없지만, 오늘 배운 것보다 앞으로 더 잘 할 것이라고 약속 할 수 있습니다. 나는 ‘실패’하지 않을 것이라고 약속 할 수 있습니다 — 전 그런 일이 일어나게 두지 않을꺼에요.이제 당신 차례입니다.당신을 속상하게 하거나 힘들게 해서 한켠에 밀어두었던 것을 찾고,첫 걸음을 내딛으세요.
Hi! I am a robot. I just upvoted you! I found similar content that readers might be interested in:
https://medium.com/code-states/%EC%9B%90%EB%AC%B8%EB%B2%88%EC%97%AD-why-i-left-the-best-job-in-the-world-%EB%82%B4%EA%B0%80-%EC%B5%9C%EA%B3%A0%EC%9D%98-%EC%A7%81%EC%9E%A5%EC%9D%84-%EB%96%A0%EB%82%9C-%EC%9D%B4%EC%9C%A0-d33699356ac4
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
국내에서 부트캠프를 운영하시는군요...
실리콘 밸리에서 부트캠프가 좀 사글어들고 있는 것 같은데, 국내 비지니스는 잘 되는지 궁금합니다.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
쉽지않지만 꾸준하게 운영하고 있네요. 보람있는 일이라서 더 잘 해보려고요 ㅎㅎ
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit