정보) 컴퓨터공학과는 뭐하는 곳인가?
일단 저는 졸업 2학기 놔두고 자퇴한 사람이고요
1. 컴퓨터공학과?
여긴 코딩을 가르쳐주는 곳은 아니고 컴퓨터 수리(fix) 배우는 곳은 더더욱 아닙니다. Computer(계산하는 기계)에서 알 수 있듯이 그냥 유사 수학과입니다. 수학과처럼 해석학이나 뭐 이런 걸 배우는 건 아니지만 수학을 베이스로 하는 전공 과목이 많습니다.
사실 컴퓨터공학과보다는 컴퓨터과학과(Computer Science)라고 보는 게 맞는데요. 대부분의 학교가 영문명을 CSE(Computer Science & Engineering)로 쓰는 걸 봐선 그냥 섞어 쓰는 것 같습니다. 컴퓨터공학/과학은 컴퓨터라는 하드웨어와 그를 구동하는 소프트웨어에 대해 배우는 학문입니다.
(학교마다 무엇을 위주로 배우는지는 살짝씩 차이가 있습니다.)
2. 뭘 배우냐?
제가 다녔던 곳을 예로 들면
1학년 - 기본 코딩 수업 + 교양
2학년 - 전공 기초
3학년 - 전공 심화
4학년 - 프로젝트(=팀플) or 대학원 수업 미리 듣기
대충 요 정도 되네요. 다른 공대랑 다를 게 없긴 하죠.
저희는 이름부터 '소프트웨어'여서 아무래도 CS 위주로 과목이 짜여있지만
하드웨어 관련한 수업이 열리는 학교도 있긴 할 것 같습니다.
저 그림에서도 알 수 있듯이 프로그래밍/코딩을 가르쳐주는 수업은 1학년 때가 끝입니다. 그마저도 C, C++, Python, Java 정도?
사실 학교 수업을 듣는 데는 위 4개 + JavaScript만 알아둬도 충분하긴 합니다. (SQL은 쉬우니까..)
만약에 듣는 수업에서 안 배운 언어를 쓴다? 근데 안 알려준다?
그럼 그냥 꼼짝 없이 자습입니다. 알아서 구글링 해야 해요.
강의 시간에는 이론 배우기도 바쁘거든요. 그런 것까지 알려줄 시간이 없어요.
코딩은 그냥 도구에요. 수능 수학을 풀려면 미적분을 알아야 하듯이.
저 빨간색 과목들(전공핵심)에 대해서 간단히 소개하면
자료구조 : 데이터를 담는 그릇, 자료구조에 대해 배웁니다. 앞으로 들을 모든 수업의 기본이 됩니다.
문제해결 -> 알고리즘 : 거의 같은 과목입니다. 문제를 해결하기 위한 알고리즘과 그 구현 방법을 배웁니다. 백준 같은 사이트에서 문제를 푸는 걸 Problem Solving이라고 합니다. 직역하면? 문제해결이죠. 그냥 그거 떠올리시면 됩니다. 과제도 백준 문제처럼 나옵니다.
시스템프로그램 : 컴퓨터가 숫자, 코드를 어떻게 처리하는 지를 배웁니다.
10진수를 어떻게 010101010로 저장하는지, 어셈블리어가 무엇인지, 컴퓨터는 조건문/반복문을 내부적으로 어떻게 처리하는지 등..
컴퓨터구조 : 위의 시스템프로그램의 확장판입니다.
저기서 더 나가서 CPU 내부에는 어떤 장치가 있는지, CPU는 어떻게 코드를 처리하는지, 캐시와 레지스터는 어떻게 동작하는지 등..
운영체제 : 예, 그 운영체제 맞습니다.
컴퓨터공학 학부 과정에서 제일 어려운 과목입니다.
앞의 두 과목은 이 과목을 듣기 위한 빌드업일 뿐입니다.
한 학기 동안 운영체제의 각 부분을 구현하게 됩니다. 못 하면 학점은 저 멀리
컴퓨터는 여러가지 일을 어떻게 동시에 처리하는지, RAM이 하는 역할은 무엇인지, 파일 관리는 어떻게 하는지 등의 우리가 컴퓨터로 하는 행위가 어떻게 작동되는지 배우게 됩니다.
프로그래밍언어 : 우리가 코딩할 때 쓰는 프로그래밍 언어에 대해 배웁니다.
Python, Java 등의 코딩을 알려준다는 말이 아니고
컴퓨터는 우리가 타이핑하는 이 언어를 어떻게 컴파일러를 통해 해석하는지,
인간이 짠 코드가 비효율적이라면 어떻게 최적화를 해주는지, 프로그램 실행 중에 일어난 에러는 컴퓨터가 어떻게 처리하는지 등에 대해서 배웁니다.
데이터베이스 : 이름 그대로 데이터베이스에 대해 배웁니다.
여러 자료들을 어떻게 효율적으로 저장하는지에 대한 것과 데이터베이스 관리 언어인 SQL에 대해서 배웁니다.
인공지능 -> 기계학습 : 요즘 가장 핫한 분야죠.
인공지능 과목은 인공지능이 무엇이고 어떤 것이 있는지에 대해 배우고 간단히 구현해봅니다. 기계학습에서는 이에서 더 나가서 머신러닝이 무엇인지, 지도학습과 비지도학습이 무엇인지, 오버피팅이 무엇인지, 역전파란 무엇인지, 기계학습의 알고리즘에는 어떤 것이 있는지 등에 대해 배웁니다.
------- 이하는 안 들어본 과목 -------
컴퓨터네트워크 : 컴퓨터는 서로 어떻게 통신을 주고 받는 지에 대해 배웁니다.
소프트웨어공학 : 소프트웨어를 잘 만들려면 어떻게 해야 하는 지에 대해 배웁니다.
각 학교마다 어떤 과목이 전필이고 전선인지는 살짝 차이가 있겠지만 대동소이할 것으로 예상됩니다.
3. 학과 공부 외에는?
1) 지인들과 ICPC 같은 프로그래밍 경시대회 참여
이런거 준비하다보면 코딩 테스트(취직 때 보는 시험)에 도움도 많이 되기 때문에 상도 타고 취직도 하면 일석이조!
2) 지인들과 앱, 웹사이트 개발
취직이 목표라면 포트폴리오가 중요하기 때문에 이런 활동 한 두 개는 꼭 필요해요.
3) 랩실에서 학부연구생 노예체험
컴공은 갠플 위주일것 같지만 전혀 아니고 팀플이 많은 곳이에요
그리고 이런 활동들을 하려면 본인 코딩 실력이 좋아야겠죠?
어딜 가서든 1인분은 해야 하니까요~
4. 졸업하면 뭐함?
반은 취직, 반은 대학원 가더라고요
저도 대학원 가려고 했었긴 한데
5. 학점 잘 따는 법?
일단 시험 잘 보는게 가장 중요하긴 하지만
컴퓨터공학과 특성상 과제 비중이 무지하게 높습니다.
과제 개수도 많습니다. 안 해놓으면 4-5개 우습게 쌓여요.
근데 가장 문제가 뭔지 아세요?
바로 과제가 도대체 언제 끝날지 알 수가 없다는 겁니다.
그리고 그렇게 개고생을 했는데 부분점수가 없으면 그냥 0점 맞을 수도 있고요. 왜냐면 대부분 조교님들은 채점 프로그램 돌리고 틀리면 틀렸다고 하기 때문에.. (물론 안 그런 과목도 많습니다)
‘과제는 내준 당일부터 시작해라’가 제가 줄 수 있는 유일한 팁입니다.
6. 가기 전에 할만한 거?
1) 코딩 찍먹 - 이유는 따로 설명하지 않겠습니다.
책 사지 마시고 그냥 https://dojang.io/ 들어가서 파이썬 코딩 도장 / C언어 코딩 도장 해보세요. 어짜피 입학하면 코딩 기초 수업 하나는 무조건 들으니까 입학 전에는 그냥 가벼운 마음으로 ㄱㄱ
2) 영어 공부 - 이건 어학 시험을 말하는 건 아니고 그냥 독해..
구글링하면 대부분 자료는 영어입니다. (StackOverflow 등..)
+ 유튜브 인도 선생님들은 신입니다. 그들은 모든 것을 알고 있습니다.
7. 이 글은 왜 쓴 거냐?
컴공 좋으니까 많이 가시라고.. 복전도 많이들 하시고.. 너는 나갔으면서
저는 사실 컴공이 싫어서 나간건 아니고 지병이 있어서 오래 타이핑하는게 힘들어서 다른 일을 알아본 거라서.. 나중에라도 학위는 꼭 따고 싶네요.
수시도 학교 정해야하고 정시도 곧 성적표도 나오고 하니까 써봤습니다.
궁금한 건 댓글 써주세요.
제가 적은 글 (클릭하면 연결)
(현재 글) 1. 컴퓨터공학과는 뭐하는 곳인가?
3. 컴퓨터공학과 과목 맛보기 - 2. 시스템프로그래밍(1)
4. 컴퓨터공학과 과목 맛보기 - 2. 시스템프로그래밍(2)
0 XDK (+10)
-
10
-
한주 시즌 3가 시작되었어요 택배받고 표지 뜯자마자 아기자기하고 예쁘다는 생각이...
과목 이름부터 심장이 뛰네요 진짜 ㅋㅋㅋ
그때는 성대 컴공이었나요 ㅋㅋ
아 저때도 성대는 소프트였긴 한데 보편적으로 컴공이라고 하니까 제목은 컴공으로..
아항
내년에 사탐공대 되서 간다고치면
썰릴까요
일단 과학은 전혀 안 중요한 곳이고요
수학은 대학 들어와서 공부하면 됩니다
Computer Science와 Computational Science는 상당히 다르더라고요
몰랏음….
그 외에 ‘물리를 안 쓰는 공대’ 라는 인식이 있는데 이건 맞는지 궁금해요
물포자들의 빛이 아닐까싶엇는데
아 또 있긴 하겠네요 대학원 가서 양자컴퓨터를 만들게 아니라면... ㅋㅋ
과기원 졸업학기 저도 2학기 남고 수능준비하는데 후회 없으셨나요
시간 낭비했다는 그런 후회는 없어요
좋은 경험이 되겠죠
컴공마스터으대생ㄷㄷ이
안철수 ㄷㄷ
영어공부는 어케하나요..
공부라기보다는 그냥 남이 한 말 알아먹을 정도의 실력만 있으면..
컴공과 수업 컴퓨터구조(아키텍쳐), 알고리즘 요렇게 두 개 찍먹했는데 진심으로 삶을 마감하고 싶던데
거기서 복전생들 많이 썰려 나가더라고요..
미적필수인가여 사탐공대 들가면 따로
공부해야될거같아서
사실 고등 미적분에서 새로 나오는거라곤
지로삼 미분/적분, 치환적분, 부분적분이 다 아닌가요? 그 정도는 굳이 안 하고 와도 무방해요
코딩을 하다가 알고리즘을 공부하게 되고 알고리즘을 공부하다가 자료구조를 공부하게 되고 자료구조를 공부하다가 선형대수를 공부하게 되고
괜히 커리가 저렇게 짜인게 아니더라고요
앞 과목 던지면 나중에 큰일남..
의대는 휴학하시고 다시 도전하신건가요?
공익할 때 ‘한번 해보고 안되면 말지’ 했는데 운이 좋아서 한번에 붙었네요
님컴공출신임?
좋은글 너무 감사합니다
인생이 바뀌셨네요 잘 나가셨습니다
저게 다 사실이면 가성비 어문보다도 안나오는데 나가야지요 앞으로 좋은 일만 가득하실 거에요
여러분 적성 잘 타야합니다
오랜지 병이 있어서 타이핑이 힘드시군요
컴공은 학교보다 개인의 능력이 먼저라고 하는데 사실인가요?? 좋은글 감사합니다!
맞긴 한데 100% 맞는 말이라고 하기는 뭐하네요
좋은 학교일수록 주위에 잘하는 친구들이 많아서 더 열심히 하게 되거든요
기업에서 블라인드로 뽑았는데도 까고보니 상위권 대학이었다는 기사를 본 적 있는거 같은데..
컴퓨터공학과가 관련 유사 학과들(ex. 정보통신공학, 임베디드시스템, AI, 데이터사이언스)에 비해 메리트가 있다면 무엇이 있을까요?
주로 비교되는 AI 학과를 볼게요.
AI도 컴공의 다른 분야의 지식이 필요합니다.
한 가지 예를 들면, 인공지능 학습을 더 빠르게 처리하기 위해서는 병렬로 처리해야하는데 이는 저 로드맵 상에 ’멀티코어컴퓨팅‘과 같은 과목을 들어야 더 자세히 배울 수 있습니다. 저 과목을 듣기 위해서는 전공핵심의 시스템 과목(시프,컴구,운체)을 모두 수강해야하고요.
대부분의 AI 학과에서는 저런 과목은 안 가르치고 그냥 수학 좀 배우고 바로 머신러닝 들어가던데.. 개인적으로 봤을땐 좀 아닌거 같습니다.
역시 살짝 겉핥기 느낌이 없지않아 있군요.. 감사합니다
네 그냥 컴공 오셔서 관심 분야 과목을 전공선택으로 더 많이 듣는게 좋습니다.
타학교 컴공 재학생인데 제가 하고싶었던 말을 깔끔하게 정리해주셨네요!
나오셔도 화이팅입니다!
지잡 컴공갔다가 너무 어려워서 포기했었는데..
정보보안 쪽으로 가고싶은데 컴공가서 선택(?)하면 되나용?? 아니면 걍 정보보안학과가 낫나용
정보보안 쪽으로 꿈이 확고하시면 위에 예시로 들었던 AI 보다는 괜찮아 보입니다.
(저는 근데 어떤 분야든지 컴퓨터공학을 학부에서 전공하는걸 추천하고 싶긴 합니다.)
저기 교육과정 보시면 아시겠지만 보안 관련된 수업이 거의 없어요. 저희 과에서 보안 쪽으로 가는 사람들은 자체적으로 동아리에서 학습한 다음에 대학원 가서 본격적으로 배우더라고요.
고려대 스마트보안 커리를 보고 왔는데 확실히 컴공보다는 보안 쪽으로 깊게 배울 수 있는거로 보여요.
보안쪽 배우는데 필요한 기본적인 컴공 지식(시스템)도 다 가르치는거로 보이고요.
근데 정보보안 쪽이 애초에 극소수의 천재들이 다 해먹는 곳이라.. 해킹이란게 사실 진짜 어렵거든요.
컴공에서는 보안 쪽이 안 맞으면 다른 길로 갈 수는 있는데 보안으로 애초에 학부를 가버리면 진로 변경하기 힘들 수는 있겠죠.
졸업했는데 개발자하기싫은사람들은 어떤걸 할수있나요?
저도 처음 들어왔을때 안 맞으면 어떡하지 같은 고민을 하곤 했는데요. 제가 알기로는 전공 살려서 취직을 하기 위해서는 ‘개발’과 아예 떨어져서 살 수는 없어요.. 그치만 최대한 개발을 직접하지 않는 업무 쪽으로는 갈 수 있기는 해요. 예를 들면 전산직렬 공무원이나 아니면 기업에서 프로젝트를 관리하는 PM 직무라던가 이런 것도 있고요. 이렇게 찾아보면 다른 길도 있긴 한데 개발이 안 맞아서 다른 일을 알아보는거라면 사실 졸업하는거부터 어려울 수 있긴 해요..