워릭 대학교 팟캐스트 인터뷰 - 프로그래밍 공부 + LaTeX로 CV작성 + Github + 취업준비 개인 포트폴리오/블로그 관련 이모저모

2020년 12월 19일, 워릭대학교 한인학생회의 팟캐스트에 초청받았다.

워릭대학교의 한인학생들은 문과 학생들이 대다수이며 프로그래밍에 약한 편이다.
이공계 학생들 역시 프로그래밍을 주특기로 공부하는 경우는 굉장히 드물다.
필수 과정으로 MATLAB, STATA, R 등으로 간단한 프로그래밍을 배우지만, 대다수의 학생들은 이 과정을 즐기지 못하고 추후에 회사에서 다시 배우곤 한다.

하지만 최근 컨설팅과 투자은행에 지원할 때 프로그래밍을 할 줄 알면 경쟁력이 된다는 이야기가 돌면서, 문과 학생들도 프로그래밍에 관심을 가지게 되는 것 같다.

아래 이번 팟캐스트에서 전달하고 싶었던 내용을 간단하게 요약했다.

 


프로그래밍

프로그래밍을 하면 좋은 점

  • 반복되는 작업, 또는 숫자를 다루는 작업을 남들보다 빠르게 수행할 수 있음.
  • Excel이 생기기 전과 후를 생각해보기.
    • 10명이 붙어서 표를 정리하고 그래프를 그려야했던 작업을, 혼자서 엑셀로 수행 가능.
    • 비슷한 논리로, 10+명이 붙어서 엑셀로 작업하던 작업을, 혼자서 프로그래밍으로 수행 가능
  • 개인에게는 업무효율 상승, 기업에게는 인건비 절약 - 취업시장에서 경쟁력을 갖출 수 있음

 

프로그래밍 언어 종류

  • 엄청 많음. C, C++, C#, Python, Java, Javascript, Swift, Haskell, Go…
  • 본인의 섹터에서 어떤 언어를 사용하는지 알아야함.
    • 보통 Analyst쪽에서는 R, STATA가 주 언어임. 하지만 Python이 새로 뜨는 중이며 이걸 배우길 추천.
    • Trading 쪽에서는 속도 때문에 C, C++을 선호하기도 함. 하지만 아마 이쪽은 소프트웨어 직군일 확률이 높음.

 

프로그래밍을 시작하는 방법

  • 처음 프로그래밍을 시작하는 사람은 온라인 코스 / 책 아무거나 들어도 됨.
    • 추천하는 책은 점프투파이썬
  • 언어는 Python으로 시작하는걸 추천.
    • 쉬운 언어라 빨리 배울 수 있고 (독학 2-3개월)
    • 범용성이 좋음 (기본 매크로, 스프레드시트, 그래프 및 데이터 시각화, 데이터 분석, 머신러닝/딥러닝…)
  • 주변에 프로그래밍을 잘 하는 멘토를 하나 두면 배우는 속도가 급격하게 빨라짐
  • 코스로 언어를 마스터하겠다는 생각을 가지면 안됨.
    • 코스는 최대한 일찍 끝내고, 실제로 적용할 수 있는 첫 프로젝트를 빨리 끝내는게 제일 실력이 빠르게 늘음.
    • 본인 과제에 적용을 해보면 좋음.

 

프로그래밍을 하는데에 필요한 능력 / 성격

  • ‘프로그래밍을 하려면 컴퓨터 공학과를 나와야함’은 틀린 말임.
    • 충분히 학교다니면서 독학 가능함.
    • 물론 컴공과 친구들처럼 효율적인 코드는 못 짤수도 있음. 그 친구들은 학과 내용이 컴퓨터에 대해 공부하는거라…
      • 그래도 투자은행이나 컨설팅에서 코딩을 서브스킬로 가지는 직무에서 전혀 문제가 되지 않음. 10년차가 넘어도 문제 안될듯.
  • ‘프로그래밍을 하려면 수학을 잘해야함’이란 말은 틀린 말임.
    • 컴공과가 수학을 배우는 이유는 조금이라도 효율적이게 계산을 하기 위해서임.
    • 우리는 그 컴공과가 만들어놓은걸 가져다 쓸거기 때문에, 수학 잘 몰라도 됨.
      • 오히려 본인 전공의 수학이 더 중요함.
  • ‘프로그래밍은 누구나 할 수 있다’ 도 (안타깝게도) 틀린 말임.
    • 모니터 화면만 보면서 어떻게 코드를 짜야하는지 생각해야함. 몇시간, 몇일, 몇주가 될 수도 있음.
      • ‘나는 사람들과 이야기하고, 아이디어를 나누고, 딜을 이끌어내는게 더 좋다’ 라던지, ‘난 앞으로 몇십년 커리어를 가만히 앉아서 코딩을 하면서 보내기 싫다’ 하는 사람들은 코딩이 아닌 본인의 장점을 살리는게 더 좋음.
    • 십몇년 경력의 베테랑 프로그래머도 코딩을 하면 막히는 순간이 분명 찾아옴. 이 때 포기하지 않고 구글링을 몇시간씩 해서라도 풀 수 있는 끈기가 있어야함.

 

프로그래밍을 하면 얼마나 업무 효율이 좋아지는지?

  • 어제 밤에 지인의 파이썬 코드 작성을 잠시 도와준 예제를 들면…
    • 코스피/코스닥 상장 회사 데이터가 약 3000개가 있고, 정부가 새롭게 규제를 걸은 회사들의 이름이 약 500개가 있었음.
    • 여기서 정부가 규제를 걸은 회사들을 코스피/코스닥 데이터로부터 찾아서 추출해야함
    • 직접 하나씩 찾으려면 약 3~4시간 정도 소요 예상 + 실수를 할수도 있음
    • 파이썬 코드를 작성했을 때 약 20~30분 소요 + 코드가 돌아가는데 1.5초 걸림.
      • 새로운 데이터가 백만개가 들어와도 똑같은 코드 재사용 가능.
  • 위와 같이 반복적인 일은 사람보다 컴퓨터가 더 빠르게 할 수 있으며, 해야하는 업무의 스케일이 커질수록 더 좋은 효율성을 가짐.
    • 지인인 코딩하는 공익의 유명할 썰로, 반년동안 해야하는 반복업무를 하루만에 끝낸 사례가 있음.
  • 요즘 컴퓨터의 발전으로 모든 회사가 엄청난 양의 데이터를 가지고 있음.
    • 특히나 투자은행, 컨설팅 회사는 엄청난 양의 데이터를 가지고 있을 것임.
    • 이제는 데이터의 양이 엑셀로 처리하기에는 너무 많을 수 있으므로, 프로그래밍을 잘 할줄 안다면 엄청난 업무효율성을 가지게 될 것임.
  • 물론 코드를 처음 짜보는 사람은 일주일이 넘게 걸릴수도 있음. 이 경우 손으로 하는거보다 느림.
    • 프로그래밍을 배우는 단계에서는 이게 문제가 되지 않음. 본인의 실력 향상을 목표로 하는게 좋음.
    • 하지만 실제 업무에서는 시간 판단을 잘 해서 가장 시간효율적인 방법을 찾아야함.

 

머신러닝 / 딥러닝이란? AI란?

  • 쉽게 이야기하면, 데이터로부터 어떠한 패턴을 찾아내는 기술임.
  • 그리고 이 둘이 요즘 흔히 이야기하는 AI 기술임.
  • 데이터 분석이 머신러닝을 이용함.
  • 딥러닝은 머신러닝 기법 중 하나인데, 굉장히 좋은 성능을 보여주기 때문에 유명해짐.
  • 예전엔 연구자들이 가설을 통해 공식과 룰을 만들었다. 이 공식과 룰을 찾는 과정은 오래 걸렸고, 종종 부정확하기도 했음.
    • 최근 컴퓨터 기기가 급격하게 발전하면서, 많은 양의 데이터가 모이게 됨.
    • 이 데이터로부터 패턴을 컴퓨터가 자동으로 찾아줘서, 그 패턴을 공식 / 룰로 사용하게 하는 것이 머신러닝 / 딥러닝임.
  • 머신러닝 / 딥러닝의 기초가 되는 것은 확률과 통계, 선형대수이다. 이 수학 이론들을 바탕으로 컴퓨터가 계산을 해줄 수 있도록 프로그래밍을 하면 되는 것임.
    • 그렇기 때문에 머신러닝/딥러닝을 커리어로 가지고 싶다면, 수학과 프로그래밍에서 남들보다 앞서야함. 수학과 학생들보다, 프로그래밍 학생들보다.
      • 현재 AI 업계에서는 기본적으로 석/박사를 요구하고, 가끔 굉장히 경력이 좋은 학사를 뽑음 ( 이 경우 거의 이공계/수학과/컴공과).
    • 하지만 머신러닝/딥러닝을 서브스킬로 쓰고 싶다면, 요즘 좋은 온라인 코스가 많이 있기 때문에 그걸로 시작해도 됨. 서브스킬로만 쓸꺼면 남들보다 앞서지 않아도 됨 ㅎㅎ

 

AI, 프로그래밍이 계속 발전하는데, 내 미래 일자리는 안전한가? 지금이라도 프로그래머로 전향해야하는가?

  • AI, 프로그래밍 채용 시장이 급격하게 커져서, 상대적으로 내 분야 채용 시장이 작게 보이는 것임.
  • 단순반복 업무를 요구하는 일자리는 금방 사라지고, 전공지식/인사이트/경험을 요구하는 분야는 쉽게 사라지지 못할 것임.
    • 예를 들어, 회계쪽에서 단순 숫자 맞추기 등등은 프로그래머가 만든 자동화 계산 프로그램 등으로 금방 교체될 것임.
    • 제품 기획, 마케팅, 인사, 엔지니어링 같은 작업은 금방 교체되기 어려울 것임.
  • 데이터를 다루거나, 숫자를 다루는 직업에서는 프로그래밍을 요구할 가능성이 큼.
  • 하지만 그렇다고 전공지식을 포기하고 프로그래밍을 공부하는 것은 좋지 않음.
    • 프로그래밍은 학위 없이도 인정받기 쉽지만, 경제학/경영학/자연과학/엔지니어링 등은 학위없이 인정받기 어려움.
      • 즉, 내가 프로그래밍을 독학해서 경쟁력을 갖추긴 쉽지만, 프로그래머가 내 전공지식을 독학해서 경쟁력을 갖추기는 어려움.
    • 회사가 실력있는 프로그래머가 필요하면 당신에게 요구하는 것이 아닌, 새로운 컴공과 프로그래머를 뽑을 것임.
      • 그러니 나는 내가 잘 할 수 있는거에 집중해야함.

 


취업 준비

Github

  • 프로그래밍 실력은 코드나 결과로 보여주는거임.
    • Github라는 코드 저장소가 있음.
      • 많은 개발자들이 포트폴리오로 사용하기도함. 예시로 내 프로필을 첨부함.
      • Github 코드 내역에 자신있다면 이력서에 Github 주소를 첨부하는 것도 좋음.
    • 이력서에 ‘Skills: Python (Intermediate)로 적는건 아무 의미없음. 주식도 직접 투자해본사람이 잘 하지, 책만 읽은 사람은 아무 쓸모 없는것 처럼.
      • 이력서에 Project 등에서 ‘파이썬을 이용해 XXX를 만들었고, 이것을 사용해서 $3000 수익을 얻었습니다’ 으로 채워넣는게 효과적임.

 

CV / Resume

  • MS워드로 Resume를 적을 경우, 보기 좋게 만드느라 여백이 애매하게 조정될 때가 있음.
    • 사람이 보기엔 좋아도, 최근 AI기반 CV screening에서 오류가 나타나기도 함.
    • 그러므로, AI기반 CV screening이 잘 읽을 수 있는 resume를 만들어주는 것이 좋음.
    • LaTeX (레이텍, 라텍) 기반으로 작성하면 보기도 깔끔하고 AI가 읽기에도 깔끔함.
    • PC에서 읽을 때 링크도 사용 가능함.
    • LaTeX로 작성하려면, 살짝 코드짜는 것 비슷하게 작성해야함.
    • TeX 파일을 작성하려면 Overleaf를 사용하면 편함.
      • 추후 필요하면 WKS에 튜토리얼 요청을…

 

Portfolio / Blog

  • 이력서에 포트폴리오 페이지 및 블로그를 첨부하면 좋음.
    • 포트폴리오 페이지에는 이력서에 담지 못한 프로젝트 세부 내용을 적어둠.
    • 블로그에서는 전공지식에 대한 이해를 보여주는 글을 작성하면 됨.
    • 그리고 포트폴리오/블로그 링크를 이력서에 남겨두면 됨.
      • 지원한 회사에서 지원자에게 관심이 있다면, 그 사람이 남겨둔 포트폴리오 페이지 정도는 훑어봄.
      • 면접관이 내가 진행한 프로젝트에 대해 좀 더 자세하게 알고 시작한다면, 면접에서 더 깊은 이야기를 나눌 수 있음. 이 경우 뻔한 이야기를 나눈 다른 면접자들에 비해 합격할 확률이 상승함.

 

  • 블로그를 학교 소사이어티나 외부 커뮤니티에서 잘 PR을 하면 인지도를 얻을 수 있음.
    • 인지도는 곧 좋은 프로젝트 기회나 네트워킹 기회로 이어짐
      • 선순환!
    • 물론 작성하는데에 시간과 노력이 많이 들어감.
    • 블로그 플랫폼으로는 Medium, WordPress, BloggerSpot 등이 있음. 국내 블로그로는 네이버 블로그나 티스토리 블로그도 나쁘지 않음. 프로그래밍/개발 능력을 보여주고 싶다면 Github pages (Hexo, Hugo…), Notion 등이 있음.
      • 현재 보고 있는 블로그가 Github pages로 만든 것이고
      • 이전에 사용하던 블로그는 Notion으로 만든 것임.

 

  • 블로그/포트폴리오를 Github pages로 만들고 싶다면 이 튜토리얼을 참고하면 좋음.