저는 초등학교(당시 95년 당시 국민학고) 고학년 때부터 GW베이직과 MS도스를 이용해 프로그래밍을 배웠고, 286부터 386, 486, 펜티엄까지 계속 업그레이드하면서 제 방에 컴퓨터를 끼고 살았습니다.
중학교 때는 용산에 가서 부품을 사다가 PC를 조립해서 사용했고 친구의 컴퓨터가 고장 나면 고쳐주고 짜장면을 얻어먹곤 했습니다. 고등학교 때는 전산반 동아리에 10:1 경쟁률을 뚫고 가입해서 3D 맥스를 배워 3D 그래픽 영상을 만들었고, 대학교 때는 컴퓨터과학을 전공해 16년 전에 병역특례로 개발자가 된 후 지금까지 계속 개발합니다.
어려서부터 컴퓨터에 익숙했고 지금까지 개발자로 일하고 개발회사를 운영하니, 컴퓨터 전공 수업을 수월하게 들었을 것이라 생각하실 것입니다. 그러나 전공을 배정받았던 2학년 때는 컴퓨터 전공이 적성에 맞지 않는 것 같았고 전공을 바꿀까 고민할 정도로 수업과 과제를 따라가지 못했습니다.
알고리즘, 시스템 프로그래밍, 운영체제, 객체지향프로그래밍, 컴파일러 등의 전공 수업들은 전공 서적을 따라가기도 어려웠지만 왜 배워야 하는지, 왜 이렇게 가르치는 것인지, 수업 내용과 과제 내용이 왜 이렇게 다른 것인지 납득이 되지 않아 더 힘들었습니다.
2학년을 마칠 때쯤 전공을 다른 것으로 바꾸기로 잠정적인 결정을 내리고 병역특례를 시작했습니다. 실무에서 개발을 배우고 서비스를 런칭하면서 이 재미있는 것을 왜 포기할 뻔했나 다행이라 생각했습니다. 신입 개발자로 시작해 투자받은 스타트업의 CTO까지 하느라 복학을 최대한 미루었고 휴학한 지 6년 만에 복학을 했습니다.
학교에 돌아와 전공 수업을 들어보니 많은 전공 지식이 쉽게 이해되었고, 이제는 비판적으로 컴퓨터 전공의 과목 체계와 수업 방식에 대해 생각해볼 수 있었습니다. 물론 대학의 컴퓨터/소프트웨어 전공이 꼭 개발자를 양성하는 것만을 목표로 하지는 않겠지만, 학생들이 이 전공을 선택한 이유가 좋은 개발자가 되어 좋은 회사에 취직하기 위해서인 경우가 많을 것이라고 생각합니다.
전공 수업은 너무 이론에 치우치게 가르치는 부분도 있었고 개개인의 커리어 목표를 고려하면 굳이 자세히 배울 필요가 없는데 필수 과목인 경우도 있었으며 친절하게만 알려줘도 시행착오를 줄일 수 있었는데 설치와 세팅에서부터 막혀서 학생들이 좌절하는 경우도 보였습니다.
개발을 가르치는 입장에서 배우는 사람이 이런 시행착오를 줄일 수 있도록 친절하게 환경 설정과 기초를 알려주는 것이 중요하다는 것을 깨달았습니다. 배우는 사람의 입장이 되어 어려울 수 있는 부분을 상세하게 문서화해두고, 적절한 단계의 과제와 함께 디테일하게 피드백을 준다면 누구나 재미있게 개발을 배우고 누구나 개발자가 될 수 있다고 생각했습니다.
요즘 각광받는 프로그래밍 부트캠프는 대학교 전공 수업 스타일의 불친절함을 지양하고 실무 스타일의 협업과 실전 프로그래밍 경험을 통해 개발자를 양성하는 데 더 최적화되어 있는 것 같습니다. 물론 3–4년에 걸친 전공 학사 기간과 비교해 3–6개월의 부트캠프 학습 기간은 매우 짧기에 이론적인 교육은 당장 개발에 필요한 것에 집중하는 것으로 보입니다.
이런 부트캠프 졸업생이라면 전공과 관계없이 적극적으로 채용합니다. 컴퓨터/소프트웨어/수학 전공자가 좀 더 논리적인 사고와 기술적인 강점이 있지만, 경영학과 출신의 개발자는 서비스의 비즈니스적인 맥락을 이해하는 데 능하고 문과 출신의 개발자는 커뮤니케이션의 디테일에 능하다는 장점을 발견했습니다.
프로그래밍, 컴퓨터 과학 이론 등은 서비스 개발에 있어서 절반 정도를 차지하고 나머지 절반은 커뮤니케이션을 얼마나 정확하고 꼼꼼하게 하는가, 비즈니스 맥락의 이해도가 어느 정도로 높은가, 그리고 얼마나 책임감 있게 적극적으로 개발을 진행하려고 하는가 등 개발 외적인 영역도 중요하기에 컴퓨터 관련 전공생과 비전공생이 서로 장단점이 있다고 봅니다.
원문: 이성훈의 페이스북
함께 보면 좋은 글