본문 바로가기

DM ML AD

데이터 과학자가 되고 싶어요.

데이터 과학의 스펙트럼이 워낙 다양해서 이것, 이것, 이것만 순서대로 하시면 됩니다 라고 말하기 어렵다. (구분이 좀 무의미하지만) 새로운 알고리즘 개발에 집중하는 연구자도 있고 다양한 문제 상황에서 알고리즘/기술을 적재적소에 활용하는 응용가도 있고 빠른 실행 속도나 쉬운 이용 등을 위해 코드 최적화에 뛰어난 프로그래머도 있고 때론 결은 조금 다르지만 데이터 과학/인공지능에 특화된 하드웨어를 개발하는 이들도 있다. 여러 분야를 두루두루 다 잘하는 만능/천재 데이터 과학자가 되면 좋겠지만...(ㅠㅠ) 일반인들이 흔히 생각하는 데이터 과학자를 가정하고 글을 적는다. 하지만 각자는 '나는 어떤 데이터 과학자가 되고 싶다'를 명확히 해서 테크트리를 밟았으면 하는 바람이다. 종종 비슷한 류의 질문을 받는데 다양한 경우를 종합해 보고 싶었다. 글에서 커버되지 않는 자신만의 특수한 케이스가 있다면 따로 자신의 처지를 자세히 설명하고 질문하면 그에 맞는 답변을 따로 하겠다.

이 글은 데이터 과학자가 되는 테크트리를 설명하는 게 아니라, 현재 내가 초등학생인데 데이터 과학자가 되고 싶으면 어떻게 하지? 현재 내가 비전공 직장인인데 데이터 과학자가 되려면 어떻게 하지? 등에 대한 글이다. 그리고 미리 주의하는데 매우 심한 어그로로 일부 표현은 불쾌할 수도 있을 거다.

초등학생.

벌써 데이터 과학자 (또는 개발자)가 되고 싶다는 생각을 가졌다면 한편으론 대견하지만 아직은 모든 가능성을 열어두라고 조언하고 싶다. 아주 오랫동안 깊이 고민해서 얻은 결론이 데이터 과학자가 되는 거라 하더라도 초등학생에게 이런 걸 미리 준비하라고 할 만한 게 없다. 그냥 더 많은 친구를 사귀고 더 많이 뛰어놀아라고 조언한다. 다른 직업들도 마찬가지지만 극히 일부를 제외하면 언제든 스트레스를 받게 될 테고 그때는 친구를 만나거나 스포츠 등의 야외활동만 한 해소법이 없다. 스트레스에서 벗어날 수 있는 다양한 활동을 어릴 때부터 몸에 익히는 게, 데이터 과학자가 되기 위한 어떤 공부나 활동에 집중하는 것보다 낫다고 본다. 집에서는 게임이나 유튜브는 적당히 조절하고 다양한 분야의 많은 책을 읽었으면 좋겠다. 책으로 지적 호기심을 채우고 놀이로 활력을 얻기 바란다. 상상력도 결국 몸에서 나온다. 지금은 생각하는 방법과 재미를 찾는 능력을 익힐 때지, 스스로 자신의 미래를 제한할 때는 아니다. 지금은 데이터 과학과 인공지능이 인기지만 10년, 20년 후에는 지금과 같지 않을 거다. 재미로 프로그래밍/코딩을 배우는 것을 말리지는 않겠지만 개발자가 되기 위해서 벌써부터 그럴 필요는 없다고 본다. 코딩보다 논리적으로 -- 그리고 자유롭게 -- 사고하는 법을 먼저 익혀야 한다. ... 데이터 과학자가 되고 싶은 초등학생이 있다면 직접 만나서 1:1로 대화해보고 싶다는 생각은 든다.

중학생.

중학생이 됐다고 해서 더 특별한 조언은 없다. 그저 수포자는 되지 말고 영어를 멀리하지 말라는 말은 해주고 싶다. 굳이 여건이 된다면 어떤 프로그래밍 언어든 하나를 택해서 미리 개념을 익히고 코딩하는 연습을 해봤으면 한다. 데이터 과학자가 목표라고 해서 굳이 파이썬을 익히겠다는 생각은 안 해도 된다. 파이썬보다는 좀 더 범용 언어 (C/C++, JAVA, GO 등)을 익혀두는 게 낫지 않을까 하는 생각이다. 그렇다고 너무 빠져들지는 말고 적당히 개념과 친해져라는 얘기다.

고등학생.

고등학교에서 배우는 웬만한 수학은 데이터 과학자가 되면 자주 사용한다. 물론 대학에서 몇 가지를 더 배워야 하지만, 고등학교에서 배우는 미적분이나 확률통계 등에 소홀하면 끝이다. 데이터 과학의 스펙트럼이 넓어서 수학을 덜 사용하는 경우도 더러 있겠지만 수포자라면 다른 길을 알아보는 게 좋다. 물리 등의 과학도 등한시하지 않았으면 한다. 요즘 말하는 인공지능 또는 머신러닝의 많은 개념이나 기법들은 자연현상을 모사하면서 만들어졌다. 몰라도 필요할 때 배우면 되지만 원래 잘 알고 있었다면 그때 편하다. 

두 번째는 가능하면 대학을 진학해라. 코세라, 유다시티 등의 MOCC도 다양하고 유튜브에 많은 강의 자료가 있어서 독학하는 것도 가능하지만, 때론 반강제로 주입시켜주는 게 더 효과적이다. A라는 알고리즘/기법을 익히기 전에 필요한 사전/배경/기초 지식을 쌓기에는 그래도 정규 커리큘럼만 한 것이 없다고 본다. 컴퓨터공학이 가장 관련도가 높겠지만, 최소한 이공계로 진학해야 한다. 아래에도 적겠지만 다른 거 공부하다가 데이터 과학을 하겠다고 하면 불가능하진 않지만 어렵다. 물론 방황 후에 목표가 더 명확해진다면 방황과 일탈이 전혀 나쁜 건 아니다. 컴공과, 산공과, 수학/통계, 전자과 등 뭐가 됐든 -- 아직 프로그래밍 경험이 없다면 -- 최소한 컴퓨터로 코딩해서 문제를 해결하는 과목이 하나라도 있는 학과를 선택해라. 나도 지역에 있는 대학교를 나왔지만 가능하면 서울에 있는 (또는 최소 그 지역에서 최고로) 좋은 대학으로 진학해라. 가급적이면 연구실/대학원이 잘 된 대학교로 가라. 학부 졸업 후에 다른 대학교의 연구실로 가는 것도 방법이지만, 자대 대학원으로 가는 게 여러 모로 편하다. (물론 자대와 타대로 가는 것의 장단점은 있다.) 석박사로 진학하지 않더라도 어쨌든 대학원/연구실이 제대로 있는 대학교로 가야 좀 더 제대로 배울 가능성이 크다.

당장 고3이 아니라면 프로그래밍 언어 하나 정도는 익혀두면 좋다. 졸업 후 바로 취직하는 게 아니라면 굳이 고등학생 때부터 캐글 같은 데는 기웃거리지 않았으면 좋겠다. 선무당이 사람 잡듯이 기본기가 없이 요령만 터득하는 나쁜 버릇을 들일 수 있다. 최소 20대 중후반까지는 기초를 다지며 자신의 성장에 초점을 둬야 한다.

이공계 대학생.

지금 컴공과 대학생이라면 어차피 학부 때는 데이터 과학이나 머신러닝을 깊이 배우지 않는다. 컴사/컴공의 기초를 다지고 머신러닝 등의 알고리즘을 연구하거나 활용하는 연구실/대학원을 진학해라. 머신러닝 연구실이 없다면 이미지 처리, 자연어 처리, 음성인식 등을 연구하는 연구실이면 머신러닝을 빡세게 하고 있을 테니 그쪽으로 가면 된다. 물론 교수님, 연구실, 그리고 기존 석박사 선배들의 평판 등의 사전 조사는 충분히... (인터넷에 대학원생을 놀리는 짤이 그냥 나오는 게 아니고, 술에 취했을 때만 개가 되는 건 아니다.) 지금 컴공과가 아니라면 복수전공을 하면 좋겠지만 청강이든 뭐든 어떤 방법을 동원해서라도 지금 (졸업 전에) 많은 컴공과 과목을 들어둬라. 졸업 후에는 비싸게 내고 학원에 가거나 힘들게/지루하게 MOCC 등을 직접 찾아가면서 들어야 한다. 30대가 넘으면 책을 읽어도 오래 기억되지 않는다.

그렇다고 현재 학과의 과목을 등한시하라는 얘기는 아니다. 소위 IT 회사에 가서 일반적인 (데이터) 개발자가 되는 게 아니라면 지금 배우는 과목들이 데이터 과학자로 성장하는데 좋은 자양분이 될 거다. 예를 들어, 생명과를 나온 A와  컴공과를 나온 B가 어찌어찌해서 같은 제약회사에 들어가서 바이오인포매틱스를 하고 있다고 가정하자. 같은 업무 (바이오 데이터 분석)을 한다면 누가 더 잘할까? (물론 전공과 무관하게 똑똑한 사람이 더 잘한다.) 최소 두 가지의 가능성이 있다는 걸 얘기하는 거다. 전공 (응용분야)에 기본기가 탄탄한 상태에서 머신러닝 지식을 더하는 것이 프로그래밍만 잘하고 도메인 지식이 빈약한 사람보다 나을 수 있다는 얘기다. 물론 케바케 사바사다. 비컴공과 학부 + 컴공과 대학원도 충분히 매력적인 테크트리다. 그리고 굳이 대학원을 간다면 박사까지 마칠 것을 권하지만 (유학 포함) 모두가 연구자의 길로 가는 게 아니니 박사는 자신의 성향(그리고 교수님의 좋은 인품)이 맞으면 학위를 마칠 것을 권한다. 석사만 하고 마칠 거라면 최소 2년 동안은 놀지만 말고 제대로 기본기를 익혔으면 한다. (사실 석사는 학부생과 큰 차이가 별로 없다. 일찍 취직해서 현장 경험을 쌓는 게 오히려 나을 수도 있다. 물론 사수를 잘 만나야...)

비 이공계 대학생.

일단 한숨부터 쉬고 시작한다. ... 지금 진학한 인문학에 수학, 통계, 컴퓨터를 결합해서 새로운 걸 만들 수 있는가? 그렇지 않다면 당장 컴공과를 포함해서 다른 이공계로 전과든 다른 대학으로 편입해라. 만약 지금 분야에 데이터나 IT를 접목할 수 있다면 가능하면 컴공과를 복수 전공하고 그렇지 않다면 최소한 청강이라도 많이 해라. 내가 나온 대학교는 청강 등이 매우 쉬웠는데, 다른 대학교 얘기를 들어보면 다른 학과의 수업을 거의 듣지 못하도록 막아뒀다는 얘기를 많이 들었다. 타과생들에게 강의가 열려있어서 수강 신청하는 게 어려우니... 지금 다니는 (비이공계) 학과가 진짜로 마음에 들고 미래를 맡길 거라면 (그리고 컴공과 복수전공이나 청강이 어렵다면) 빡세게 독학해야 한다. 유튜브나 MOCC를 통해서라도 수학, 확률통계, 프로그래밍, 데이터 구조, 알고리즘, 데이터 분석, 머신러닝 등의 과목을 마스터해라. 생각만 해도 어렵겠다는 생각이 들 거다. 그러니 당장 공대로 전과해라. ... 어그로를 끌었지만, 만약 이 경우라면 진짜 진지하게 자신의 미래를 생각하고 단호히 선택해야 한다. 

개발자 직장인.

언젠가 관련해서 글을 적을지도 모르겠으나 개인적으로 프로그래밍만 하던 개발자가 어설프게 데이터 과학자로 전직하는 걸 별로 좋게 보지 않는다. 간혹 괜찮은 사례도 있지만, 상당히 많은 나쁜 사례를 자주 봤기 때문에 적당히 업무에 필요한 범위까지만 데이터 과학 관련 기술을 익히고 그냥 계속 개발자로 남았으면 하는 게 솔직한 심정이다. 프로그래밍 스킬은 데이터 과학자에게 상당히 중요한 능력이지만, 프로그래머로서의 마인드세트로 데이터 과학을 하지는 않았으면 하는 바람이다. 좀 다르다. 굳이 이렇게까지 적는 이유는 신중하고 하려면 제대로 하라는 거다. ... 사회 초년생이라면 가능하면 유학을 포함해서 관련 대학원에 진학하면 좋겠다는 조언을 하겠지만, 대학에 돌아가는 경우를 주변에서 별로 못 봤다. 회사를 계속 다니면서 데이터 과학자로 전직하려면 일단 기본적이더라도 데이터나 알고리즘을 다루는 업무를 담당하거나 그런 팀에 들어가는 게 가장 좋다. 업무에 필요한 데이터 과학 관련 강의나 자료를 찾아서 공부하다 보면 어느 순간 데이터 과학자가 돼있을 거다. 그리고 굳이 데이터 업무를 담당하거나 협업하지 않더라도 주변/회사 내에 데이터 과학자들과 접촉해서 조언을 구했으면 한다. 일면식도 없고 콘텍스트도 잘 모르는 나 같은 나부랭이한테 조언을 구하고 듣는 것보다는 같은 회사 내에서 데이터 과학을 오래 한 분들에게 조언을 구하는 게 더 현실적인 얘기를 들을 수 있을 거다. 주변에 조언을 구할 사람이 없다면 자세한 사연을 알려주면 가능한 범위 내에서 설명해줄 요량은 있다. 이 글에 언급된 다른 모든 사람들에게는 추천하지 않지만, 프로그래밍에 자신 있는 개발자라면 단기간에 속성으로라도 데이터 과학을 가르치는 학원이나 과정을 등록해서 감을 익히는 것도 나쁘지 않다고 생각한다. 비개발자들에게는 이런 학원이나 과정을 별로 추천하고 싶지 않다. 

주변에 관련 업무를 담당하는 데이터 과학자와 친하게 지내면서 다양한 조언을 구하고, 가능하면 관련된 팀에 들어가거나 업무를 맡으면서 데이터 감각을 익히고, 유튜브를 보든 책을 읽든 꾸준히 기초 지식을 쌓고, 필요하다면 단기속성 과정을 이수해서 데이터 과학을 익혔으면 한다. 무엇보다도 기술적인 것뿐만 아니라, (여기서 딱히 뭐라고 설명하기 어려운) 데이터 과학자의 마인드 세트를 터득하는 게 필요하다.

비개발자 직장인.

또 한 번 더 깊은 한숨... 진짜 데이터 과학자가 되어야 하나요? 그 길이 맞는 거예요? 이제껏 이룩한 모든 걸 포기하고 새로운 길을 가는데 후회는 없는가요? ... 그렇다면 일단 파이썬부터 익혀서 프로그래밍에 흥미를 느끼고 데이터를 가지고 노는 것에 익숙해져라. 일단 초보 개발자가 됐다면 바로 위의 개발자 직장인 항목을 다시 읽어봐라. 할 거면 최대한 빨리... 30대 초반이 넘었으면 그냥 현재 하는 직무에 더 충실했으면 하는 생각이다. 물론 케바케므로 당신에게 해당되지 않을 수도 있다.  ... 단기 속성 학원/과정을 추천하지 않는 이유는 데이터 과학의 일부 테크닉만 익히고 그것이 전부인양 착각할 수 있기 때문이다. 강의를 들으면서 노트에 필기하고 연습문제와 숙제를 직접 풀어보면서 익혀야지 머리뿐만 아니라 몸이 기억하는데, 그냥 -- 잘 만들어졌더라도 -- 동영상 강의만 들거나 텍스트북 본문만 읽으면 당시에는 '아 그렇구나' 하지만 금세 까먹는다. 천재가 아니라면 데이터 과학자도 손이 기억해야 한다.

많은 사람들이 데이터 과학과 인공지능에 관심을 갖고 그 길을 가려는 것은 누구보다도 기쁘게 생각한다. 하지만 실제 그 길을 실제 걸으면 상상했던 것과 많이 다를 수 있다. 때론 자신의 실력에 실망할 떼도 있다. 그래도 기초부터 차근차근 배우고 익혀나가다 보면 금방 좋은 데이터 과학자가 될 수 있다. 겉만 번지르한 게 아니라 속이 꽉 찬 99.9ㅎㅎ 어그로를 좀 심하게 끌었지만 모두가 제대로 된 데이터 과학자가 됐으면 하는 바람에서다. 결과적으로 포기는 빠를수록 좋을 수도 있음을 명심하고 진짜 내가 가야야 할 길이 데이터 과학인지 더 심사숙고하기 바란다.

반응형