Lubag [719491] · MS 2016

2019-04-08 02:19:15
조회수 8527

컴공은 코딩, 개발을 배우는 곳이 아닙니다

게시글 주소: https://orbi.kr/00022252630

오르비를 근 2달간 잊고 살다가 시험기간에 공부하다가 현타가 와서 한 번 들어와봤습니다.


시험 공부를 하다보니까 컴공을 꿈꾸는 많은 학생들에게 하고 싶은 말이 좀 있어서 글을 써볼까 합니다.



다니면서 느낀 점이 있다면


제곧내입니다.



여기는 흔히 생각하는 코딩(개발)을 배우는 곳이 아니더라고요.


저도 그렇고 많은 사람들이 대학 입시를 하던 시절에는 컴퓨터공학과에 가면 '막연하게' 코딩하는 것을 배우겠구나(C언어, Java, C++등 문법을 가르쳐주겠지?), 프로그램 만드는 법(Unity같은거 쓰는 법 가르쳐주겠지?), 앱 만드는 법, 서버 만드는 법(MySQL 쓰는 법 가르쳐주겠지?), 그러니까 개발을 하는 방법, 이런걸 배우겠지? 라고 상상하곤 합니다.


100% 틀린 말은 아닙니다.


그런 환상들을 이뤄줄 가장 근간이 되는 것들을 배우기는 하니까요.

다만 실질적으로 큰 도움이 되는 것들을 배운다? 이는 거리가 좀 있다고 볼 수 있습니다.


간단히 알려드리자면,


C언어 Java같은 언어들을 가르쳐주겠지? 라는 상상

-> 안가르쳐줍니다. 컴공에서 듣는 과목 이름 중에서 <C언어 I, II> 이런 과목은 없습니다.

<데이타구조>, <운영체제>같은 흔히 볼 수 있는 과목 이름들을 만나게 될 것입니다.

아 물론, 그럼 언어를 아예 사용하지 않나요? 라고 물어보신다면 그것도 아닙니다.

언어들은 배운 전공 내용들을 가지고 과제를 풀어오라고 할 때나 필요합니다.

그러면 그걸 쓰려면 학교에서 언어를 가르쳐줘야 할텐데, 안가르쳐줍니다.

언어 자체는 학생 알아서 공부해오세요, 알아서 구글에서 검색해서 공부해서 하세요.가 컴공 교수님들이 기본적으로 가지고 있는 스탠스입니다.

너무 슬픈건 이런데도 친구들은 다 공부해서 코딩해서 과제 잘만 내더라고요. 저도 처음에 java로 과제할 때 애 좀 먹었습니다.


게임 개발이나, 앱 개발에 필요한 내용들을 가르쳐주겠지? 라는 상상

-> 안가르쳐줍니다.

<시스템프로그래밍>이라는 학부 2학년들이 갈려나가는 과목 하나를 예로 들어봅시다.

이 과목은 흔히 생각할 게임의 시스템 프로그래밍이 중심이 아니고, 언어를 배워서 하는 코딩도 중심도 아니고, 컴퓨터가 어떻게 돌아가는지 배우는 것이 중심입니다.

0과 1로 대체 컴퓨터를 어떻게 만들 수 있는가, 그 내부 조직 구조는 어떻게 되는가, 가장 machine에 가까운 수준에서 어떻게 데이터들을 I/O하는가 등등.. 이런 것들을 배웁니다. 가장 쉬운 축에 속하는 데이터를 비트단위로 쪼개서 크기 비교하고 이런 것들을 할 때부터 뭔가 심상치 않다는 것을 느끼게 됩니다.

나중되면 저희가 별 생각 없이 사용하는 그 간단한 ctrl+c ctrl+v가 작동하도록 만들어봐야 하는데 이거 만드는데도 환장합니다.

코딩을 하긴 합니다. 당연히 하는데, 이 코딩들은 여러분들이 컴퓨터에 대해 이해하기 위한 수단에 불과합니다. '코드로 이걸 뚝딱 만들어내기'가 아니라 '컴퓨터 이론을 완벽히 이해하고 코드로 구현해보기'가 메인입니다.


다른 과목들을 봐도 가장 핵심인 2,3학년 과목들에서 흔히 생각하는 개발 내용이 있는 과목은 찾아보기 힘듭니다. 게임 개발, 앱 개발 같은 것들은 컴퓨터를 이해한다기보단 컴퓨터를 이용하는 내용이잖아요.

학교 수업들이 대부분 컴퓨터를 이해하는 커리큘럼으로 흘러가지 컴퓨터를 이용하는 개발이 나오진 않습니다.


중요한 사실은 컴퓨터 공학과는 코딩이나 개발이 아니라, 컴퓨터가 어떻게 돌아가는지 배우는 곳이라는 거죠.

논리가 굉장히 중요해서 수학과 관련한 지식도 상당히 필요합니다.



그러면 컴공 취업은 어떻게 하냐고요?

결국 취업은 개발하는 곳으로 취업할텐데, 개발을 안배우고 컴퓨터에 대해 배우면 회사에 들어가선 뭘 할까요?


그래서 어차피 회사들어가면 다 새로 배워야 합니다.

엌ㅋㅋㅋㅋㅋ

어차피 대부분 회사는 개발 툴같은거 잘 쓸 수 있는지 보다는 신입 채용을 할 때는 언어를 잘쓰는지 코딩 테스트를 하거나 저 위에서 말한 기본적인 전공 내용들과 관련한 테스트를 본다고 합니다. (제가 PUBG 취업설명 부스에서 들은 내용은 그렇습니다)

아니면 종종 관련 동아리 활동을 한 사람들을 높게 보는 경우도 있더라고요. 게임회사면 게임제작 동아리.. 정보보안 회사면 해킹 동아리.. 그런 느낌으로..


아 물론, 컴퓨터에 대해 배웠으니 그 관련 일을 하는 경우도 당연히 있습니다.

프로세서 돌아가는 방식에 대해 배웠으니 이를 발전시켜 intel같은 프로세서 회사에서 일할 수도 있겠지요. 다만 이런 경우는 대부분 대학원으로 가기 때문에 학부 졸업 후 바로 취업에 뛰어 들지는 않더라고요.



좀 주절주절 말했지만, 결국 컴공은 코딩을, 개발을 배우는 곳이 아닌, 컴퓨터를 배우는 곳입니다.

그 과정에서 갈려나가다 보면 어쩔 수 없이 코딩은 부차적으로 늘게 되어있습니다.

이를 모르고 부푼 개발의 꿈을 안고 컴공에 처음 온 학생들은 많이 당황하기도 하고, 본인의 적성에 안맞다고 털썩 포기하고 전과하는 학생들도 많습니다.


공대를 희망하는 대학 입시를 준비 중인 학생들이, 이 내용을 알고 컴공에 오게 된다면 좀 괴리감이 줄어들지 않을까 싶어서 씁니다. 컴공가면 화려하게 프로그램 만들고 자랑하고 그럴줄 알았는데, 0하고 1만 뜯어보면서 어? 이거 왜 안되지? 하게 되는 일상을 받아들이는데 좀 더 도움이 되지 않을까 싶네요.


꼭 컴공이 아니더라도 뭔 학과든 무턱대고 가서 당황하지 말고, 여기저기 공대 사람들한테 물어보는 기회를 가지시면 많은 도움이 될 거에요. 그나마 카이스트는 과를 2학년 때 정해서 이런 말을 들을 기회가 많았었네요.


오르비 잘 들어오진 않지만 댓글로 물어보시면 아는 선에선 답변해드리도록 하겠습니다.


긴 글 읽어주셔서 감사해요.

3,110 XDK

  1. 3,000

  2. 10

  3. 100