2015.04.27

칼럼 | 개발자에게 컴퓨터과학 학위가 필요할까?

Scott Norberg | InfoWorld
소프트웨어 개발자 구인 공고를 보면 대부분 컴퓨터 과학 학위를 필수 또는 우대 조건으로 내건다. 과연 컴퓨터 과학 학위가 개발자로서 더 뛰어난 역량을 나타내는 지표가 될 수 있을까?

최근 스택오버플로우(StackOverflow)의 설문 조사에 참여한 개발자의 48%는 컴퓨터 과학 학위를 받지 않은 것으로 나타났다. 그러나 소프트웨어 개발자 구인 공고의 요구 사항을 보면(적어도 시카고 지역에서는) 대부분의 경우 컴퓨터 과학 학위가 필수 또는 우대 사항이다. 컴퓨터 과학 학위가 없는 48%의 개발자는 과연 직무 수행 역량이 떨어질까? 필자의 경험으로 보면(음악을 전공한 사람으로서 약간의 편견은 있겠지만) 일부 기술 관련 직무에서는 컴퓨터 과학 학위가 없는 개발자가 오히려 학위를 가진 사람보다 더 뛰어난 성과를 보이기도 한다. 그 이유는 무엇일까?

전공과 현실 사이의 괴리
전혀 쓸모 없는 개발 과제 경험(예를 들어 텍스트 편집기에서 구문 오류를 디버깅하는 일처럼 무료 소프트웨어를 통해 자동으로 할 수 있는 일들)밖에 없는, 학교에서 막 졸업한 구직자와 면접을 하다 보면 필자는 학위의 가치에 의문을 품곤 한다. 물론 질 낮은 교육도 문제지만 수준 높은 컴퓨터 과학 프로그램이라 해도 생산적인 개발자가 되기 위한 기술을 가르치지는 않는다.

필자가 지금까지 함께 일해본 졸업 직후의 컴퓨터 과학 전공자들은 대부분 기술의 원리에 대한 개요를 잘 이해했으며, 따라서 기술적 개념을 한결 수월하게 설명할 수 있었다. 그러나 막상 실제 문제를 해결하기 위해 무엇을 해야 하는지는 설명하기가 상당히 어려웠다. 즉, 이들은 무엇이 가능한지에 대해서는 잘 이해했지만, 특정 시나리오에서 어떤 개념이 잘 맞는지 결정하는 데는 어려움을 겪었다. 고용주로서 경험한 바에 따르면 지식의 폭은 넓지 않더라도 좁고 구체적인 분야에서 풍부한 경험을 가진 사람이 채용 첫날부터 훨씬 더 효과적으로 일한다.

필자가 보기에 컴퓨터 과학 학위를 취득하는 과정은, 비유하자면 피아노를 만드는 데 사용되는 재료가 소리와 피아노의 응답에 미치는 영향에 대해서는 배우지만 실제 연주를 하는 방법은 별로 배우지 못하는 과정이다. 그러나 유능한 피아노 연주자가 되기 위해서는 피아노를 연주하는 방법을 배우는 편이 훨씬 더 중요하다. 즉, 피아노의 원리와 제조 방식을 이해하는 것보다 지식을 적절히 응용하는 방법을 배워야 한다.

지속적인 학습이 성공의 가장 중요한 예측 변수인 이유
여기까지 읽고 나면 많은 사람이 컴퓨터 과학 학위의 목적은 나중에 높은 탑을 쌓기 위한 지식의 토대를 쌓는 것이라고 반박할 것이다. 그러나 모든 개발 학습 방법이 결국 마찬가지다. 이 글을 읽는 사람이라면 대부분 새로운 기술이 정신없이 쏟아져 나온다는 사실을 알고 있다. 필자가 전에 일했던 한 회사의 사장은 기술의 순환 주기를 3년으로 봤다. 즉, 지금으로부터 3년 후에는 지금과 다른 도구, 다른 접근 방법으로 일하게 된다는 것이다. 새로운 도구, 언어, 정보를 받아들이고 이를 일상적인 업무에 효과적으로 수용할 수 있는 사람은 그렇지 못한 사람보다 훨씬 더 성공적인 개발자가 된다. 필자는 다른 조건이 모두 동일하다면 개발자로서의 역량 측면에서 컴퓨터 과학 학위가 갖는 이점은 첫 3년 주기가 끝나는 시점에 대부분 희석되고, 두 번째 주기에서 완전히 사라진다고 생각한다.

전공자와 비전공자의 문화적 차이
기사 도입부에서 필자는 개발 기술을 독학해서 습득한 사람이 컴퓨터 과학 학위 소지자들보다 더 우수한 역량을 발휘하는 분야가 있다고 언급했다. 어떤 분야일까?

바로 비즈니스 요구 사항의 이해다. 문제를 더 정확히 이해하기 위해 비즈니스 문제를 자세히 살펴보는 개발자가 있는가 하면, 복잡한 세부 상황에는 관심이 없고 무엇을 해야 하는지에 대해서만 듣고자 하는 개발자가 있다. 일반적으로 비즈니스 분석가가 숟가락으로 떠먹여 주듯 개발팀에게 소프트웨어 요구 사항을 전달하므로 후자의 프로그래머라 해도 별문제는 없다고 생각할 수 있다. 그러나 필자가 이전에도 관련해서 글을 쓴 적이 있듯이 부실한 코딩보다 부실한 요구 사항이 프로젝트를 더 빠르게 악화시키며, 고품질의 요구 사항을 확보하는 가장 좋은 방법은 소프트웨어를 구축하는 사람이 소프트웨어를 사용하는 사람과 직접 대화하는 것이다.

결론
그렇다면 필자는 일반적으로 컴퓨터 과학 학위가 없는 구직자를 더 선호하는가? 물론 그렇지는 않다. 그러나 필자가 채용할 사람을 찾을 때 학위 소지 여부는 결정에 아무런 영향을 미치지 않는다. 최근 졸업생의 경우에도 필자는 지원자가 강의실에서 배운 것보다는 자신의 지식을 활용하여 수행한 학교 밖의 프로젝트를 훨씬 더 비중 있게 살펴본다. 공식적인 학위가 있든 없는 관계없이, 직접 가르침을 받지 않고도 새로운 것들을 배울 역량이 있음을 입증하는 지원자가 그렇지 못한 지원자에 비해 우선 채용 대상이다. 더 많은 지원자와 채용자가 필자와 같은 생각을 하기를 바란다. editor@itworld.co.kr



2015.04.27

칼럼 | 개발자에게 컴퓨터과학 학위가 필요할까?

Scott Norberg | InfoWorld
소프트웨어 개발자 구인 공고를 보면 대부분 컴퓨터 과학 학위를 필수 또는 우대 조건으로 내건다. 과연 컴퓨터 과학 학위가 개발자로서 더 뛰어난 역량을 나타내는 지표가 될 수 있을까?

최근 스택오버플로우(StackOverflow)의 설문 조사에 참여한 개발자의 48%는 컴퓨터 과학 학위를 받지 않은 것으로 나타났다. 그러나 소프트웨어 개발자 구인 공고의 요구 사항을 보면(적어도 시카고 지역에서는) 대부분의 경우 컴퓨터 과학 학위가 필수 또는 우대 사항이다. 컴퓨터 과학 학위가 없는 48%의 개발자는 과연 직무 수행 역량이 떨어질까? 필자의 경험으로 보면(음악을 전공한 사람으로서 약간의 편견은 있겠지만) 일부 기술 관련 직무에서는 컴퓨터 과학 학위가 없는 개발자가 오히려 학위를 가진 사람보다 더 뛰어난 성과를 보이기도 한다. 그 이유는 무엇일까?

전공과 현실 사이의 괴리
전혀 쓸모 없는 개발 과제 경험(예를 들어 텍스트 편집기에서 구문 오류를 디버깅하는 일처럼 무료 소프트웨어를 통해 자동으로 할 수 있는 일들)밖에 없는, 학교에서 막 졸업한 구직자와 면접을 하다 보면 필자는 학위의 가치에 의문을 품곤 한다. 물론 질 낮은 교육도 문제지만 수준 높은 컴퓨터 과학 프로그램이라 해도 생산적인 개발자가 되기 위한 기술을 가르치지는 않는다.

필자가 지금까지 함께 일해본 졸업 직후의 컴퓨터 과학 전공자들은 대부분 기술의 원리에 대한 개요를 잘 이해했으며, 따라서 기술적 개념을 한결 수월하게 설명할 수 있었다. 그러나 막상 실제 문제를 해결하기 위해 무엇을 해야 하는지는 설명하기가 상당히 어려웠다. 즉, 이들은 무엇이 가능한지에 대해서는 잘 이해했지만, 특정 시나리오에서 어떤 개념이 잘 맞는지 결정하는 데는 어려움을 겪었다. 고용주로서 경험한 바에 따르면 지식의 폭은 넓지 않더라도 좁고 구체적인 분야에서 풍부한 경험을 가진 사람이 채용 첫날부터 훨씬 더 효과적으로 일한다.

필자가 보기에 컴퓨터 과학 학위를 취득하는 과정은, 비유하자면 피아노를 만드는 데 사용되는 재료가 소리와 피아노의 응답에 미치는 영향에 대해서는 배우지만 실제 연주를 하는 방법은 별로 배우지 못하는 과정이다. 그러나 유능한 피아노 연주자가 되기 위해서는 피아노를 연주하는 방법을 배우는 편이 훨씬 더 중요하다. 즉, 피아노의 원리와 제조 방식을 이해하는 것보다 지식을 적절히 응용하는 방법을 배워야 한다.

지속적인 학습이 성공의 가장 중요한 예측 변수인 이유
여기까지 읽고 나면 많은 사람이 컴퓨터 과학 학위의 목적은 나중에 높은 탑을 쌓기 위한 지식의 토대를 쌓는 것이라고 반박할 것이다. 그러나 모든 개발 학습 방법이 결국 마찬가지다. 이 글을 읽는 사람이라면 대부분 새로운 기술이 정신없이 쏟아져 나온다는 사실을 알고 있다. 필자가 전에 일했던 한 회사의 사장은 기술의 순환 주기를 3년으로 봤다. 즉, 지금으로부터 3년 후에는 지금과 다른 도구, 다른 접근 방법으로 일하게 된다는 것이다. 새로운 도구, 언어, 정보를 받아들이고 이를 일상적인 업무에 효과적으로 수용할 수 있는 사람은 그렇지 못한 사람보다 훨씬 더 성공적인 개발자가 된다. 필자는 다른 조건이 모두 동일하다면 개발자로서의 역량 측면에서 컴퓨터 과학 학위가 갖는 이점은 첫 3년 주기가 끝나는 시점에 대부분 희석되고, 두 번째 주기에서 완전히 사라진다고 생각한다.

전공자와 비전공자의 문화적 차이
기사 도입부에서 필자는 개발 기술을 독학해서 습득한 사람이 컴퓨터 과학 학위 소지자들보다 더 우수한 역량을 발휘하는 분야가 있다고 언급했다. 어떤 분야일까?

바로 비즈니스 요구 사항의 이해다. 문제를 더 정확히 이해하기 위해 비즈니스 문제를 자세히 살펴보는 개발자가 있는가 하면, 복잡한 세부 상황에는 관심이 없고 무엇을 해야 하는지에 대해서만 듣고자 하는 개발자가 있다. 일반적으로 비즈니스 분석가가 숟가락으로 떠먹여 주듯 개발팀에게 소프트웨어 요구 사항을 전달하므로 후자의 프로그래머라 해도 별문제는 없다고 생각할 수 있다. 그러나 필자가 이전에도 관련해서 글을 쓴 적이 있듯이 부실한 코딩보다 부실한 요구 사항이 프로젝트를 더 빠르게 악화시키며, 고품질의 요구 사항을 확보하는 가장 좋은 방법은 소프트웨어를 구축하는 사람이 소프트웨어를 사용하는 사람과 직접 대화하는 것이다.

결론
그렇다면 필자는 일반적으로 컴퓨터 과학 학위가 없는 구직자를 더 선호하는가? 물론 그렇지는 않다. 그러나 필자가 채용할 사람을 찾을 때 학위 소지 여부는 결정에 아무런 영향을 미치지 않는다. 최근 졸업생의 경우에도 필자는 지원자가 강의실에서 배운 것보다는 자신의 지식을 활용하여 수행한 학교 밖의 프로젝트를 훨씬 더 비중 있게 살펴본다. 공식적인 학위가 있든 없는 관계없이, 직접 가르침을 받지 않고도 새로운 것들을 배울 역량이 있음을 입증하는 지원자가 그렇지 못한 지원자에 비해 우선 채용 대상이다. 더 많은 지원자와 채용자가 필자와 같은 생각을 하기를 바란다. editor@itworld.co.kr

X