IT이야기/입코딩2017. 8. 7. 14:51

-프로그래머는 학력이 필요할까요?


프로그래머와 학력의 관계에 대해서 한번 포스팅 해보겠습니다.

참고로 저는 지방 듣보잡 4년제 컴퓨터 공학과를 나왔습니다. 

학력이 어떻니 할 정도로 좋은 위치에 있고 뛰어난 실력을 가지지도 않습니다.

인터넷에서 흔히 볼 수 있는 전공자 부심은 아니고, 대학교에 학사나 석사, 박사를 공부하면 어떤 점이 더 유리한곳인지 이야기하고 싶네요.


참고로 이야기를 적자면, 비전공자들은 컴퓨터 공학과를 프로그래머를 양성하는 교육기관으로 생각하는 경향이 있는데, 사실 프로그래밍은 컴퓨터 공학과에서 배우는 것들 중 일부분에 지나지 않습니다.

흔히 일반인들은 컴퓨터 공학과를 프로그래밍을 배우는 학과라고 생각하지만, 그것은 마치 경제학과가 펀드매니저를 양성하는 학과라거나, 법학과는 사법시험 합격 요령을 배우는 곳이라고 생각하는 것과 같습니다. 

컴퓨터 공학과는 컴퓨터 공학이라는 독립적인 학문을 배우는 학과입니다. 


흔히 프로그래머에게는 학력이 중요하지 않다고, 심지어 대학 교육이 반드시 요구되는 분야가 아니라고들 말을 합니다. 반대로 가능한 한 명문 대학과 명문 대학원을 가야 많은 것을 배울 수 있고 취업도 잘 된다는 말을 하는 사람도 있습니다. 이렇게 상반된 이야기를 듣게 되는데, 이는 상황에 따라 둘 다 맞 다고 볼수 있습니다.


-저학력이라도 상관없는 상황

웹, 모바일 개발자처럼 직업학교에서도 배우는 정도의 커리큘럼으로 정리가 되어 있고 복잡한 처리를 필요로 하지 않는 분야

자기가 직접 앱을 만들어서 팔고 회사 차릴 수 있는 사람. (다만 통계상 학력이 높은 사람이 회사를 차릴수록 수익률이 높고 오래가고 도산률이 낮습니다.)

중소기업이나 인기없는 스타트업 등 쉽게 들어갈 수 있는 직장에 들어가더라도 만족하는 사람. (낮은 대우 받고 계속 다니는 평범한 경우, 그 직장 규모 전체를 키워버리는 특이한 경우, 거기서 쌓은 경력으로 대기업에 이직하려는 경우 셋 다 포함.)

아래 상황에 필요한 것들을 전부 독학할수 있고, 학위 없이도 대졸들을 전부 떨쳐내고 뽑힐 만한 능력자. (빌게이츠, 스티브 워즈니악, 리누스 토르발즈 같은 말이 능력자지, 이정도는 거의 정점 수준의 프로그래머입니다. 게다가 예시로 든 프로그래머들은 전부 세계에서 손 꼽히는 명문대를 졸업했거나 창업하려고 자퇴한 사람들입니다.)

공무원 시험이나 공공기관 시험 치려는 사람


-고학력이 반드시 필요한 상황

수학, 물리학, 컴퓨터공학 등 대학교 3학년 이상의 고급 지식이 필요한 프로그래밍(소프트웨어,빅데이터,데이터베이스 등)

국내 대기업, 다국적 기업에 경력 없이 입사하고 싶은 사람

해외취업 목표.

교수, 정부출연연구소 목표


확실히 제가 해외 취업을 준비하면서 전공자인게 유리하더군요. 한국에서 SI, SM 개발자를 하더라도 전공자에 기사 자격증 있으면 이득은 없어도 최소한 손해는 안 보는것 같습니다.


프로그래밍 분야에 있어서 학력 = 실력이 아닙니다. 고가의 실험 실습 도구가 필요한 다른 분야와는 다르게 프로그래머에게는 오직 컴퓨터 한 대만 있으면 충분하고, 필요한 관련 지식에 대한 정보는 인터넷의 정보 바다에 흘러 넘칩니다. 



게을러서, 즉 자기가 안 찾아봐서 관련 지식 및 정보를 모르는 경우는 있어도, 찾을 수가 없어서 관련 지식 및 정보를 모르는 경우는 극히 드물다고 할 수 있습니다. 

그리고 일반적인 기업의 일반적인 코딩 및 실무에 필요한 능력만 따진다면, 대학에서 배우는 추상적인 지식들은 사실 쓸모 없습니다.

그러나 아이러니하게도 "한국에서" 고급 지식을 익혀서 고급 엔지니어로 성장하려면 상위권 대학에 진학해야 합니다. 한국에서 고급 지식을 효율적으로 얻을 수 있는 곳은 좋은 대학 뿐입니다. 

널리 알려진 사실이지만 한국의 컴퓨터공학/소프트웨어과는 구조적인 문제로 커리큘럼이 낙후되어 있습니다. 

세계 랭킹 50위권인 서울대학교나 KAIST에서나 미국의 제대로 된 탄탄한 커리큘럼에 그렇게 많이 꿇리지 않는 교육을 받을 수 있습니다. 



프로그래밍에 필요한 지식(선형대수학, 확률/통계론, 이산수학, 데이타구조, 알고리즘, 아키텍쳐, 프로그래밍 언어, OS, 오토마타, 시스템 프로그래밍, 네트워크, 소프트웨어 공학, 데이터베이스, 컴퓨터그래픽, 전산논리학, 컴파일러, 계산이론, 정보보호, 인공지능, 인간-컴퓨터 상호작용 등)은 실무 경험이나 독학으로 익히기 어렵습니다. 

벽돌공 일을 30년 하면 건축 설계에 대해 모르지는 않게 되겠지만, 그렇다고 고급 건축 설계자가 될 수는 없다는 뜻과 같습니다. 현업에 종사한지 2년 내로, 내가 나온 대학이 좋은 대학이었는지 아니었는지 뼈저리게 느끼게 됩니다. 


한국의 대학원 또한 마찬가지. 애초에 중요한 건 대학원을 나왔느냐가 아니라 어떤 대학원에서 어떤 수준의 교육을 받고 어떤 퀄리티의 논문을 냈느냐라는 것을 상기해야 합니다. 

현실적으로 낙후된 대학원 환경에서 제대로된 교육을 제공하는 대학원은 한국에 두세 곳 뿐이고, 이런 대학원은 들어가기가 상당히 어렵습니다.

그나마 자대생(학부를 해당 대학에서 마친 학생)의 경우도 절반 넘게 학점에서 컷트 당합니다. 

자대가 아닌 경우 들어가기는 완전히 바늘구멍인데, 인서울 정도에서 이런 대학원을 가려면 과 1위를 해도 떨어지는 경우가 대다수인 상황이라고 합니다.

참고로 이건 한국뿐 아니라 미국도 마찬가지입니다. 

최상위권 대학은 한국의 탑3 대학보다도 환경이 좋지만, 조금만 순위가 내려가더라도 수업의 질이 크게 떨어지고, 이는 결국 졸업자의 엄청난 경쟁력 저하로 이어집니다. 


좋은 대학을 가려면 수능 공부만 해야 한다고 생각하기 쉬운데, 그렇지도 않습니다. 

수시 전형이 7~80%가 된 상황에서 정보올림피아드나 프로그래밍을 잘 하는 것이 오히려 확률적으로 더 유리합니다. 

하지만 수시로 지원한다 해도 프로그래밍만 파지 말고 내신 반영 비율을 확인해야 합니다. 프로그래밍만 할 줄 아는 인재를 뽑고자 하는 대학은 거의 없다고 보여 집니다.

대기업에 입사하고자 할때는 대학 졸업장이 당연히 필요하고, 괜찮은 중견기업에 지원할 때도 필요합니다.

채용자 입장에서는 그 많은 지원자들의 능력을 일일이 직접적으로 다 테스트해서 체크해 볼 수는 없는 노릇이고, 결국 간접적으로 추정해야 하는데, 거기에 사용되는 자료가 학교 성적을 비롯하여, 학력/학벌 등인 것입니다.

설사 SI이나 SM 업무를 하더라도 "갑"에서는 개발자의 학력이나 학벌을 중요시 여기기도 합니다. 

그리고 대학교 졸업장 없이는 실력이 뛰어나더라도 상대적으로 설계 경험을 접해보기 힘든 경향이 있습니다. 

사실 학력과 실력은 반드시 일치하는 것도 아니고, 이 분야 특성상 학력과 실력이 무관한 경우도 매우 많지만, 이 분야 특성을 잘 모르는 일반인들로서는 사회 통념상 학력이 없으면, '저 사람은 대학도 나오지 않았는데, 당연히 실력도 없을 거야~' 라는 식으로 선입견 내지 편견을 가지기 쉽습니다. 

그래서 그러한 편견을 가진 일반인이 발주를 하는 갑의 위치에 있다면, 실력을 보지도 않고 쉽게 무시하기 일쑤입니다. 


하여간 한국에서 사회생활 하려면 대학은 나와야 합니다. 미국도 프로그래머로 취업하려면 보통 대학을 졸업해야 하고, 구글 오라클 등의 대기업에 취업하려면 좋은 학교 출신이 아무래도 유리합니다.

물론 자기가 직접 벤처기업을 창업하는 경우에는 대학졸업장이 필요 없습니다. 그러나 만약 자신이 카네기멜론 컴공 석사이상 졸업자라면, 국내에서 소프트웨어 벤쳐 한다고 하면 수 억원 이상은 그냥 투자 받을 수 있습니다.


획기적인 알고리즘을 만들어낸다는 교수들이 바로 박사들입니다. 또, 알게 모르게 석사 학위도 꽤 쳐줍니다. 

구글 검색엔진에 사용된 알고리즘을 고안해낸 래리 페이지가 바로 석사입니다. 더붙여, 좋은 지도교수님 밑에서 잘 트레이닝 된 석사가 건성으로 졸업한 박사보다 나을 때도 많습니다. 

끝으로, 교수가 코딩 안하는 이유는 어느정도 급만 되면 코딩할 필요가 없는 것도 있는 한편, 박사과정 학생들이 가져다 주는 획기적인 알고리즘이 타당한지 검증하고 논문 검토하는 데도 바쁘기 때문이기도 합니다. 

그 와중에 애들도 가르치고, 연구도 따와야 하고, 학내 정치도 해야 되기 때문이죠.


본인 영어 실력이 좀 된다면 독학으로 전문 지식을 익힐 방법이 있긴 합니다. 

Coursera, edx, MITOCW, Udemy 등에서 제공하는 강좌들에서 이런 고급 수학, 물리학 지식을 제공합니다. 

그리고 git-hub에 가서 MOOC 관련 다운로더 코드를 파이선으로 작성해 놓은 것들이 있는데 다운 받아서 실행하면 강의당 용량이 4G가 정도 하는 패키지로 자막까지 받을 수 있습니다. 미친듯이 사전 찾아가면서 공부하면 다 이해될 수 있습니다. 


출처 : 나무위키, 본인생각

Posted by Joseph514