본문 바로가기
AI_Education

Coding Bootcamp VS University, 어떤 차이가 있을까요?

by Medeai 2020. 10. 7.

오랜만에 포스팅을 올리게 됐습니다!! ㅋㅋㅋ

요번에 소개해드릴 미디엄포스트는 코딩 부트캠프와 대학의 장단점을 비교한 글입니다.

 

 

이번 포스팅에서 대학은 컴퓨터공학과or컴퓨터과학과를 지칭합니다.
(엄밀히 따지면 컴퓨터공학과와 컴퓨터과학과도 차이가 있다고 하지만, 오늘은 동의어로 사용하겠습니다.
게다가 최근에 소프트웨어학과나 데이터사이언스학과, 인공지능학과 등등이 따로 개설되어 있는 경우도 많기 때문에

포스팅에서는 컴퓨터과학or공학을 대학에서 이루어지는 개발교육의 대명사로 사용하겠습니다)

 

코딩 부트캠프는 대학이 아닌 개발교육을 의미합니다.
(ex JAVA학원, HTML학원 같은 교육기관)

 

다만 몇가지를 고려해서 보셔야 하는데요, 간단히 말씀드리면 아래와 같습니다.

 

1. 원문 자체는 소프트웨어 엔지니어라는 직무에 초점이 맞춰져 있습니다.

데이터 사이언스와 ML/DL을 공부하는 우리와는 맥락이 조금 안맞을 수 있습니다.
ML/DL을 이번 포스팅에 대입한다면 또 우리 상황과는 어떤 교집합이 있을 지 고려해보는 것도 좋겠습니다!

 

2. 원문은 코딩 부트캠프를 대학 컴퓨터공학과의 대안교육처럼 비교하고 있습니다.

하지만 한국에서는 코딩 부트캠프(=개발학원)는 고등학교 졸업 후에 대학진학과 비교해서 고려하는

대상이 아니죠?

개발과 관련없는 대학 학과에 재학 중이거나 졸업한 비전공자들이 주요 수강대상으로 알고 있기 때문에, 이 점을 고려하여 읽어 주세요!

 

3. 등록금이나 교육과정, 직무 정서 등등 한국과 미국의 차이가 있다는 점을 유념하면서 읽어주세요!

 

4. 원문은 대학교육을 높게 평가하는 듯한 주장이 강합니다!

저자는 코넬대학교 컴퓨터과학과를 나왔다고 합니다.

미국 대학 컴공과의 교육방식이나 정서를 제가 정확하게 알고 있지는 않습니다 ㅠㅠ

그러다보니 우리나라 컴공과 대학생 여러분들의 학과 커리큘럼이나 교육에 대한 입장과는 다를 수 있습니다!

 

5. 코딩 부트캠프 VS 대학 컴공과의 단순 비교보다는,

결국에는 개발 실력에 중요한 요소들이 어떤 것일까를 메시지로 인식하면서 읽으시면 좋을 것 같습니다.

 

6. 포스팅에서는 '저'라고 표현한 내용은 원문의 저자를 지칭합니다.

블로거인 제가 아니라요! 

 
그럼 본격적으로 포스팅을 시작할게요!

원문의 링크를 먼저 첨부드립니다 ㅎㅎ

오역의 가능성이 있으니 직접 보시는 것도 추천드려요!

towardsdatascience.com/coding-bootcamps-vs-universities-54b482fc58a7

 

 

 

 

코딩 부트캠프 vs 대학

 

Software Engineer는 수요가 많은 직업이죠.

Software Engineer는 현재 약 150만개의 일자리가 있고, 놀랍게도 2029년까지 22%나 더 늘어날 것으로 전망된다고 합니다.(해당 포스팅이 2019년이기 때문에 10년 후인 2029년을 전망한 것 같아요)

Software Engineer는 안정적인 직업이고, 보수도 좋습니다.

무제한 PTO(유급휴가), 통신요금, WiFi 요금 지원 등을 받을 수 있습니다.
(미디엄 포스트를 번역하다보니, 우리나라와 정서와는 좀 다른 직무 보상표현입니다 ㅋㅋㅋ)

 

점점 더 많은 사람들이 Software Engineering 분야로 뛰어드는 이유이기도 합니다.

 

최근에는 코딩 부트캠프가 많이 생겨났고, 효율성와 유연한 교육으로 인기를 끌고 있어요.

13년도부터 코딩 부트캠프가 11배나 늘어났고 19년까지 23,000명의 수료자가 있었다고 합니다.

점점 더 많은 사람들이 software developer로의 커리어를 부트캠프에서 시작하고 있습니다.

근데 진짜로 코딩 부트캠프가 대학 교육기관보다 효율적이고 가성비가 좋을까요?

……....

제 소개를 잠깐 드리자면, 저는 Cornell University에서 Information Science와 Computer Science 및 Engineering을 전공했습니다.

저는 Salesforce, Amazon, Twitter에서 Software Engineer로 근무했고 software engineering 직무의 잡 인터뷰를 준비해주는 튜터이기도 합니다.

 

게다가 100명이넘는 튜터링을 제공한 사람들 중에는 코딩 부트캠프를 다녀왔거나, 대학에 다니는 사람이 모두 있어요.

코딩 부트캠프를 수료한 사람과 대학을 졸업한 사람 모두를 대해봤기 때문에 최대한 편견없이 이야기해보겠습니다.

 

-------길어서 안읽을 분들을 위한 요약(포스팅 내 요약입니다! 제 요약은 글 제일 아래에 있습니다)--------

 

(대학 교육을 받기 위한)비용이 빠듯하다면, 코딩 부트캠프를 가거나, 공신력있는 대학의 온라인코스를 수강하기를 추천드립니다.

비용이 빠듯하지 않다면 대학을 가서 컴퓨터공학에 대한 철저한 이해를 바탕으로 공부하는걸 추천드립니다.
대학의 컴퓨터공학과를 전공하면 다양한 케이스와 환경을 통해 어려운 문제를 스스로 해결할 수 있는,

스스로 생각하고 해결할 수 있는 능력을 키울 수 있습니다.
(컴공과 전공자분들 동의하시나요? ㅠㅠ)

 

이런 스킬들이 여러분들이 나중에 승진할 때 도움이 됩니다.

 

코딩 부트캠프로 가기로 결정했다면, 자료구조와 알고리즘에 대한 보충 공부를 꼭 하세요.
그리고 Coursera와 같은 플랫폼에서 다른 Computer science에 대한 공부를 하시길 권장드립니다.
(본문에서는 머신러닝, 데이터베이스, 스레딩 등 이라고 언급했지만,

맥락상 Computer science 제반에 대한 지식을 익히라는 뜻이라고 판단됩니다)

 

1. 대학 – 전통적인 올드스쿨 방식

대학 교육의 장점은 교육과정의 자원과 폭의 규모입니다.
컴퓨터과학을 활용해서 현실세계의 문제를 어떻게 해결할 수 있는지
교수님과 함께 고민할 수 있다는 점은 큰 장점입니다.


여러 교수님들은 최신의 첨단 연구를 진행하고 있고, 여러분이 연구실에 합류하면 연구와 실무 경혐을 얻을 수 있습니다.
저는 학부와 대학원생 시절에 유비쿼터스 컴퓨팅 연구실에서 함께했습니다.
컴퓨터 과학을 활용해서 의료문제를 해결하는 방법을 연구한 경험은 정말 좋았어요.

다른 곳에서는 얻기 힘든 소중한 경험을 할 수 있었습니다.

 

컴퓨터 사이언스는 단순히 프로그래밍 언어의 문법을 배우는 것이 아닙니다.
그건 한 부분일 뿐이죠.
진짜 어렵고 중요한 부분은 기본 개념과 이론을 이해하고, 다양한 환경에서 적용하는 방법을 배우는 것입니다.

대학의 다양한 강의를 통해서 컴퓨터과학의 여러가지 내용을 깊게 공부하고, 컴퓨터 과학에 대한 폭넓은 이해를 얻을 수 있습니다.

 

이런 과정은 코딩 부트캠프에서는 할 수 없습니다.

코딩 부트캠프는 주니어 레벨의 엔지니어로 취업하는 것을 목표로 교육을 설계했기 때문에,
여기서는 깊은 이론과 high level의 개념을 배울 수 없습니다.

 

두번째 장점은 공인된 학위취득의 이점입니다.

학위는 여러분의 이력서와 면접 등의 커리어에 중요합니다.

상당수의 소프트웨어 엔지니어링 직무는 학사학위를 요구합니다.

그래도 최근에는 회사들이 이런 사항보다는 프로젝트 경험이나 직무경험을 더 중요하게 생각하고 있습니다.

 

세번째 이점은 커리어 네트워크입니다.

대학들은 회사들과 커넥션을 만들고 있고, 회사들은 커넥션이 있는 대학의 학생들을 채용합니다.

Workday, Google, Facebook같은 회사들이 코넬에서 채용하고 있는 것처럼요.

대학들은 수십 수백의 기업들이 학생들과 채용을 할 수 있는 “Career Fair(캠퍼스채용박람회or캠퍼스리크루팅과 비슷)”를 개최하고 있습니다.

바로 다음날 학생들과 면접을 보기도 하지요.

 

오..개꿀.. 근데 함정이 있네?

 

대학에 간다는건 엄청난 투자입니다.

4년의 학부과정동안 얼마나 지출할까요?

 

여러분이 다니는 학교 유형에 따라 87,800 달러에서 199,500 달러 사이의 지출을 하게 되겠죠.


그럼 대학원은 어떨까요?

이미 컴퓨터과학과 관련없는 전공분야로 학사학위를 받은 졸업자들이 software engineering으로 학위를 받고자 대학원을 고려합니다. 저는 그런 분들께 석사는 제법 괜찮지만, 박사 학위는 꼭 필수는 아니라고 얘기합니다.

(사이에 대학원 1년과정과 2년과정에 대한 이야기가 있지만, 일반적이지 않아서 생략했습니다.
그리고 mooc 강의를 적극 활용해서 degree를 취득하라고 권장하지만, 마찬가지로 생략했습니다.)

 

 

 

2. 부트캠프 - 전통적이지 않은 방법

코딩 부트캠프의 첫 번째 이점은 대학 4년과정에 비하면 확실히 저렴하다는 겁니다.
저렴하다는 이유가 코딩 부트캠프의 인기비결이죠.

 

코딩 부트캠프도 비용이 발생하긴 하지만 대학의 등록금보다는 저렴하고, 또 색다른 비용지불방법이 있습니다.

여러분이 당장 비용을 지불할 수 없거나 부트캠프를 수료한 뒤에 취업할 자신이 없을 때, 지연 납부라는 독특한 방법을 통해 부트캠프를 등록할 수 있습니다.
(대학으로 치면 취업후 상환 학자금 대출 느낌입니다)
처음에 조금만 납부하거나 혹은 아예 못내더라도, 취업한 이후에 급여의 일정부분을 납부할 수 있도록 하는 방법입니다.
(최근에 우리나라에도 이런 방법을 도입한 몇몇 교육기관이 있더라고요)

두 번째 이점은 교육기간이 짧다는 것입니다.
짧게는 8~12주 과정만으로 수료할 수 있습니다.

시간과 비용 모두 대학보다 적게 발생한다는 것이 부트캠프의 장점입니다!

싸고 짧네? 그래도 문제가 있겠죠?

 

부트캠프 수료 이후에 바로 취업하는 것은 쉽진 않습니다.

Stack Overflow에 따르면 부트캠프의 수료자 중 9%는 software engineer 직무로 아예 나아가지 못했고, 22%는 취업하는데 최소 1달 이상이 걸렸으며, 7%는 6개월 이상이 걸렸다고 합니다.

왜 이런 일이 발생할까요?

부트캠프가 수강생들을 entry level(입문자 레벨?)의 소프트웨어 엔지니어 수준으로 가르치는 것을 교육목표로 삼고 있기 때문입니다.
그러다 보니 프론트엔드(HTML, CSS, Javascript)와 백엔드(Python, Java, MongoDB)를 문법 등 언어 사용 중심으로 가르치게 되고, 컴퓨터과학의 기초가 취약해집니다.

 

부트캠프 수료자들은 코딩문제의 시간 복잡도를 평가하는데 어려움을 겪습니다.
(프로그래밍 문제해결능력이 떨어진다는 표현 같습니다)

재귀나 그래프 순회에 어려움을 겪겠죠.  

어려운 코딩문제를 해결하지 못할겁니다.

 

이게 왜 문제냐면요,

페이스북이나 아마존, 구글과 트위터 같은 기업들은 코딩 인터뷰(코딩테스트)를 진행합니다.

테크니컬한 문제를 냈을 때, 부트캠프 수료자들은 해결하는 데 큰 어려움을 겪습니다.

저는 이런 문제를 못풀고 코딩 인터뷰를 떨어진 수많은 부트캠프 수료자를 봐왔습니다.

부트캠프를 수료한 제 클라이언트 중 70%는 코딩테스트를 떨어졌습니다.

 

더욱 안타까운 점은 이렇게 부트캠프를 수료하고 경쟁이 치열한 회사들에 번번히 채용 탈락한 수료자들은 힘든 방법을 찾게 된다는 겁니다.

이분들은 결국 인터뷰 준비에 필요한 또 다른 코딩 부트캠프에 시간과 비용을 투자한다는 거죠.

 

모든 소프트웨어 엔지니어링 직무 면접이 페이스북만큼 난이도가 높지는 않습니다.

스타트업이나 중소기업은 장벽이 좀 더 낮겠죠.

그래도 여러분들이 이런 경쟁력 있는 기업을 목표로 하고 있다면,

이러한 취약점을 보완할 자료구조 및 알고리즘 교재나 강의를 찾기 바랍니다.

 

마지막으로

 

소프트웨어 엔지니어가 되기 위한 방법은 한가지만 있는 것이 아닙니다.  

사람마다 니즈가 다르고, 어떤 소프트웨어 엔지니어가 되고 싶은지에 따라 다르겠죠?

 

우수한 소프트웨어 엔지니어가 되기 위해 공부하는 것은 여행과 같습니다.

오늘까지도 저는 새 개념을 공부하고 있습니다.

여러분의 여정도 부트캠프나 대학에서 끝나지 않기를 바랍니다.

--------------------------------------------------------------------------------------------------------------

 

이번 포스팅 3줄 요약

1. 대학의 컴퓨터공학과를 진학하면 개발 전반의 기초역량을 쌓아서 개발자가 될 수 있다.

2. 코딩 부트캠프로 배우는 교육은 깊이가 낮아서 자료구조, 알고리즘과 같은 공부를 따로 병행하자.

3. 대학이건 부트캠프건 자료구조, 알고리즘 등의 컴퓨터공학에 대한 탄탄한 공부가 필요하다.