공대생이 될 여러분을 위한 조언 -2부
게시글 주소: https://m.orbi.kr/00066348352
공대생이 될 여러분을 위한 조언 2.pdf
공대생이 될 여러분을 위한 조언 -2부
공대에 들어가기 전에 어떤 걸 공부하면 좋을까 [CS편]
1년만에 쓰는 2부입니다.
바빠서 까먹고 있다가 마무리는 지어야겠다 싶기도 하고
지금 시기에 필요한 글이지 않나 싶어요
오늘은 공대/자연대에(편하게 그냥 공대로 통칭할게요) 들어가기 전에 어떤 준비를 하면 좋을지 알아봅시다.
1부 링크
- 여러 전제와 참고 사항들
- 저는 GIST 물리 전공에, AI 부전공(예정, 주요 과목 이수 완료)입니다. 그런데 수능 국어를 가르쳐 왔네요 ㅎㅎ;;
- 상위권 공과 대학의 커리큘럼과 학업 난이도를 기준으로 작성하였습니다. 여러분의 진학 예정인 학교가 상위권이라 생각하신다면, 그게 맞습니다. 저는 메디컬이 아닌 이상, 학교 급간 나누는 걸 별로 좋아하지 않습니다.
- 오늘은 CS입니다. 다음 편은 물리를 기반으로 하는 자연대/공대 학과들을 위한 글입니다.
- 그래도 이제 어느 과이든 코딩은 필수이니 공과대학에 진학 예정이면 꼭 보셨으면 합니다.
# 프린트해서 보고싶으신 분들을 위해 pdf 파일로도 올려놓았습니다!
컴퓨터 공학(CS)에 진학할 것이라면 타전공 학생도 읽으세요 !
요새는 코딩도 고등학교에서 가르치더라고요. 시대가 참 많이 변했네요. 강산이 3년이면 바뀌는 것 같습니다.
그러나 여러분이 고등학교 때 코딩을 배웠다 하더라도 대학교에서 하는 깊이와는 차원이 다르죠. 애초에 학업의 양과 속도가 비교할 바가 안 됩니다. 주위 특목고 학생들은 대학교 만큼 깊이 있게 배워 온 친구들도 있을 거고, 아무래도 대학교는 비슷한 학업 성취도를 가진 학생들을 모아놓은 곳이다 보니까 본인이 편하게 공부해도 상위권을 선점했던 고등학교 때와는 달리, 옆에 친구에 비해 뒤쳐지고 있다는 느낌을 처음으로 받을 곳이기도 합니다. (물론 특목고에 다녔던 학생들은 이를 미리 경험했겠죠.)
CS는 다른 전공보다 처음에 익숙해지는 데 시간이 좀 걸립니다. 아예 처음하시는 분들은 간단한 피보나치 수열을 출력하는 함수를 만드는 데 있어서도 머리 속으론 공식이 빠르게 정리가 되지만, 이걸 어떻게 코드로 표현하나,,,, 하는 막막함이 들 수밖에요.
CS는 단순히 코딩을 하는 곳이 아닙니다. 말 그대로 Computer Science, 컴퓨터 ‘과학’을 배우는 곳이죠. 저학년 때 배우는 C언어, 알고리즘, 자료구조 등을 제외하면 사실 코딩을 열심히 하는 학기가 많지 않습니다. 오히려 수학만 하거나, 하드웨어적인 지식들을 학습하는 데 더 많은 시간이 들 수도 있어요.
하지만 취업할 때는 frontend, backend, cloud engineer, machine learning engineer 등의 직군에서 종사하게 되겠죠(여기서 직군이 훨씬 세분화 되는 거 아니까 태클 금지). 여기선 아예 코딩만 주구장창 할 거고요. 그래서 CS는 각자도생이라는 말이 있는 겁니다. 학과 공부가 실력의 근본을 다져주는 데는 정말 많이 좋지만, 결국 실무는 스스로 공부해야 하거든요. 방학 때 친구들끼리 모여 web/app 을 만드는 경우는 다반사고 휴학을 해서 창업 팀에 들어가는 일도 꽤 됩니다. 그렇게 해야 포트폴리오가 쌓여서 취업이든 석박이든 CV를 낼 때 뭔가가 채워지는 거예요.
자, 그러면 그 시작으로 지금은 뭐가 좋을까요?
1. 먼저 C++에 익숙해지세요.
처음 코딩을 배우는 입장에서 python을 배우냐, C++을 배우냐 입장이 좀 갈리는데, 이럴 땐 low level language, 즉 컴퓨터 하드웨어 언어와 가장 가까운 언어를 배우는 게 낫다고 봅니다. 알고리즘을 공부하더라도 조금만 딥해지면 하드웨어적인 지식이 있어야 풀 수 있는 문제들을 접하게 됩니다. 지금 당장 HW를 공부하는 건 매우 성급하니 C++로 시작을 하는 게 좋다고 봅니다. Pointer까지는 접하세요. 조금 어려울 수 있긴 한데 수능 공부 열심히 한 따끈 따끈 머리로는 이틀이면 이해합니다.
그러면 익숙해진다는 것은 무엇일까요?
이는 본인이 생각한 아이디어를 코드로 구현할 수 있는 능력을 말합니다.
숫자 표현이 우리 일상에선 1, 2, 3, .. 인 게 코드에선 0, 1, 2, … 순이고 자료형마다 쓸 수 있는 수의 범위도 제한돼있는 등 많이 낯설 겁니다. 쉬운 문제들을 많이 푸시며 익히시길 추천드립니다.
아래는 대표적인 C++ 교재인데, 이것만 다 떼도 사실 학부 수준에서 다른 과목들을 배우는 데 갖춰야 할 지식은 다 뗐다고 생각해도 됩니다. 더 깊은 건 학교 커리큘럼에서 요구할 때마다 배우면 돼요.
윤성우의 열혈 C++ 프로그래밍
살짝 비싸다고 생각할 수 있는데(아닌가 드릴보다 싼가), 이 정도면 학부 교재 중에서 매우 싼 편입니다. 중고로도 쉽게 구하니 참고하세요!
C언어하고 C++하고 차이가 뭐예요?
여기서 설명할 건 아니고, 그냥 C++ 공부하시면 됩니다. 객체지향에 대한 이론적인 내용을 아시면 한 번 둘의 차이를 찾아보세요. C#은 주로 게임 개발할 때 쓰는 언어인데 지금 배울 건 아니고 평생 배울 일이 없을 수도 있으니 건드리지 맙시다.
2. 그리고 이젠 Python입니다.
C++이 애초에 어려운 언어입니다. 따라서 C++을 어느 정도 공부했으면 python을 공부하기 수월할 거예요. 적당히 절반 챕터 정도 했으면 병행해도 되고, 본인이 Machine Learning & Deep Learning (MLDL)에 크게 관심이 많은 사람이라면 그냥 python부터 시작해도 됩니다. (R을 해도 되냐고 물을 수도 있는데, 지금은 추천 안 해요. 평생 쓸 일 없으실 수도 있고요.). 또 그냥 일반 공대나 자연대에 진학하실 분이라면 python부터 공부하는 걸 권합니다. C++은 CS에 더 관심이 생겨서 몇 과목을 더 듣고 싶을 때 공부하세요.
C++과 달리 Python은 high-level language로, HW 언어와 좀 거리가 있는, 사용자 친화적인 언어라고 생각하면 편합니다. 훨씬 직관적이고 문법도 이해하기 쉽습니다. 따라서 다양한 분야에 많이 쓰이는데, 요새는 뭐만 하면 다 인공지능을 도입하려고 해서 물리나 기계 연구실 가면 모니터 꽉 채워서 코딩하는 장면을 많이 보실 수 있을 거예요. Python을 공부할 땐 문법 자체가 쉬워서 바로 자료구조나 알고리즘(둘이 사실 별 차이 없어요, 통칭해서 알고리즘이라 부를게요)을 공부하셔도 좋아요. 아래의 교재 추천합니다.
수능 수학을 푸는 걸 좋아했던 학생이라면 알고리즘을 공부하는 게 굉장히 적성에 맞을 거예요. 체감상 대학교에서 수능 수학과 가장 유사한 과목이라 생각하거든요. 아래의 교재를 추천합니다.
부족한 문제 수, 혹은 더 어려운 문제에 대한 갈망, 그리고 타인과 경쟁해보고 싶은 욕구가 있으신 분이라면 위의 교재들이 어떻게 구성되어 있는지가 익숙해졌을 때 아래의 사이트를 이용해보세요. 여러분이 푸는 문제 수와 난이도를 고려하여 롤처럼 티어를 매겨줍니다. 다양한 기업 코딩테스트, 경시대회의 기출문제들을 풀 수도 있는 좋은 사이트예요. 매일 두 세 문제씩만 풀어도 좋은 훈련이 될 겁니다.
Baekjoon(백준)
3. Web 과 App 개발에 관심이 많다면?
알고리즘 할 필요 없이 바로 Javasc/2, Kotlin, Python, CSS, Swift 등을 공부하세요! 그리고 언어를 공부한다는 걸 넘어서 Django와 같은 framework를 익히시는 걸 추천드립니다. 이런 쪽을 공부하고 싶으면 바로 프로젝트를 통해 서비스를 만들어 보는 게 가장 좋은 방법입니다. 이게 부담 되신다면 clone coding을 하시는 것도 좋은 방향입니다. Clone coding이란, 이미 여러분들이 쓰고 있는 카카오톡, zoom, notion 같은 걸 직접 만들어보는 걸 의미하는데요, CS 전공을 준비했던 분이라면 한 번쯤은 보셨을 법한 이 아저씨를 믿고 따르세요.
노마드 코더
https://www.youtube.com/@nomadcoders
노마드 코더 강의 사이트
초급 중급 고급에 따라 강좌도 다르고, 무료 강좌도 있으며, 유료 강좌라 해도 10만원 내외의 가격입니다. 어차피 이번 겨울에 강좌 하나 다 떼는 데도 시간 부족할 텐데 이 정도면 충분히 투자할 만하다고 봅니다.
4. 저는 지금 AI(Machine Learning and Deep Learning)을 하고싶습니다
STOP!!!! 지금은 안 돼요. 아직 필요한 수학을 배우지 않았어요. 처음엔 뭔소린가 싶어도 막상 익히고 나면 쉬워보이는 게 CS라지만, 지금은 이론들을 배우는 데 익숙해져야 하는 표현들과 개념 구조들이 받아들이기 힘들 거예요. 또 이 분야는 기본적인 컴퓨터 세팅 자체가 어려워요. 상황에 따라 필요한 내장함수를 그때 그때 설치할 거고 호출할 건데, 얘네들의 버전에서 충돌이 일어날 수도 있고, 처음부터 이런 제반 환경들을 다룰 수가 없습니다. 정말 많이 복잡해요.
학교 공부 충실히 하다가 1학년 끝나고 겨울방학에 도전해봅시다. 그때쯤 가면 선배, 동기들이 알아서 정보 줄 거예요! 정말 하고 싶다면 아래의 교재 해보세요.
밑바닥부터 시작하는 딥러닝 시리즈
총 세 권으로 구성되어 있으며 보통 3편을 가장 많이 봅니다.
아, 아래의 유튜브 채널 정도는 팟캐스트 듣는 느낌으로 들으시면 좋을 수도 있겠습니다. 본인의 수준보다 높은 컨텐츠라 하더라도, 계속 접하고 눈에 바르고 귀에 넣는 경험을 꾸준히 하면 시야는 확실히 넓어집니다. 더 나아가 똑같이 공부를 시작해도 더 빠른 속도를 보일 수 있을 거예요. 미리 내가 공부하는 과목의 context와 분위기, 구조 등을 알고 가는 것도 중요한 작업이거든요!
혁펜하임
https://www.youtube.com/@hyukppen
대학 공부를 하면 가르치는 컨텐츠는 좋아도 강의력이 부족한 강의들이 태반인데, 이분은 수능 인강 강사처럼 강의력도 좋으십니다. 이 분의 개인 사이트에서 유료 강의도 판매 중인데 5만원 내외였던 걸로 기억합니다. 관심 있으신 분들은 참고하세요.
5. 공통으로 익혔으면 하는 내용 1
어느 쪽을 선택하시든지 아래의 말이 무엇인지 익숙해질 필요가 있습니다.
기본 중의 기본이라 알고 나면 쉬울 거예요!
Ø파이썬 라이브러리를 용도에 맞게 설치할 줄 안다.
Ø파이썬의 class를 명확히 설명할 수 있다
Ø객체지향이 무엇인지 설명할 수 있다
Ø내장함수가 무엇인지 안다.
Ø사용하는 언어의 버전이 무엇인지, 업데이트를 왜 하는 것인지 필요성을 안다.
ØConda의 가상환경이 용도가 무엇인지 안다.
코딩을 잘하려고 욕심을 내다 보면, 보다 빠르고 효율적인 코드가 무엇인지에 대해 고민하게 될 것이고 이는 생각보다 깊고 넓은 지식을 요합니다. 시간 날 때마다 틈틈이 아래 채널의 영상을 하나씩 보며 이해하면 아주 큰 도움이 됩니다.
유튜브 코딩애플
https://www.youtube.com/@codingapple
6. 공통으로 익혔으면 하는 내용 2
고등학교 수학 교과 과정에 행렬이 빠진 지 너무 오래되었습니다. 행렬을 다루는 학문은 선형대수학입니다. 선형대수학은 필수입니다. 나는 코딩을 많이 해봤고 위에 있는 것들은 이미 뗐다 하시는 분들은 꼭 서점에 가서 선형대수학 교재를 사오세요. 그리고 행렬 연산에 익숙해지세요. 옛날 수학의 정석을 구해서 행렬을 공부해보는 것도 좋은 방법입니다. vector space의 8가지 공리 같은 건 굳이 지금 안 해도 됩니다. 아니 안 하기를 권합니다. 다시 말씀드리지만, 일단 행렬 연산부터 익숙해지길 정말 정말 권해드립니다. 이건 기계과, 물리과 등에게도 마찬가지입니다.
프리드버그 선형대수학
서점에서 이거 보시면 충분할 겁니다
제가 학교 생활을 하며 ‘아.. 이렇게 했으면 참 좋았을 텐데…’ 하고 생각했던 것들을 적어놓은 글입니다. 만일 제가 아끼는 동생이 공대에 진학할 예정이면 이 글 대로 말할 것 같아요. 요새 고등학생들이 CS에 얼마나 익숙한지 감이 전혀 안 와서 일단 알아듣기 쉽고 그렇게 낯설지 않은 내용들로 구성했습니다. 또, 더 깊은 내용으로 들어가면, 사실 이건 대학생들한테 할 얘기지 예비 대학생들한테 할 얘기가 아니어서 말을 아낍니다. ㅎㅎ;; 그런 글은 제 벨로그(Velog)에 올리지 않을까 싶네요.
아! 참고로 여러분이 코딩을 공부하고 싶을 때 볼 많은 교재들이 이미 무료로 오픈되어 있습니다.
아래의 사이트를 참고해 주세요.
위키독스
좋아요랑 팔로우는 다음 편을 연재하는데 큰 힘이 됩니다 ㅎㅎ
질문 있으시면 댓글이나 쪽지로 편하게 하세요!
0 XDK (+0)
유익한 글을 읽었다면 작성자에게 XDK를 선물하세요.
-
연대는 교차 막아서 표본이 확실히 적은데 고대는 교차를 허용해서 그런지 표본이 미어터지네요
-
약뱃 수뱃 이건 한두명빼곤 잘안보이긴해요
-
의뱃 받으러 가즈아!!!!!
-
수학 상,하 ㅈㄴ중요한거 맞음. 판별식,이차함수에대한 이해는 말할것도없이 중요하고...
-
기 받고 싶은데 왜 조발 안함;;
-
2411 2506이다 그저 웃지요
-
조발. 0
당장.
-
공기업to 가장 많은편인 학과같은데 워라밸챙기면서 돈 적당히버는게목표면 ㄱㅊ지않음?...
-
과기원 서성한 2
한양대 화공 성균관대 공학계열 유니스트 디지스트 이렇게 중에 고민해 봐야할 거...
-
물지 vs 생지 2
물리랑 생명 중에 뭐할까여 만점 목표인거생각하면 물리인데 표본이나 그런거생각하면...
-
영어적평이후 3번째로 어려운거 아닌가용
-
아 국어만 잘했어도 메디컬 노리고 과탐 2개 하는건데 2
국어 좆같넹..
-
아시는분 있나? 아 아슬아슬하게 부족하네 10퍼 할인되면 사는건데
-
ㅠ
-
6.22인데 체감은 훨씬 적은 느낌인데 의치한약수 다보고 있는데 영어 2가 너무 많음
-
상경 경영인데 다들 합격컷 몇으로 보고 있음?? ㅎ ㅏ 논술 정보 잘 아는 분... plz
-
건대 4칸 0
희망 가져봐도 되나요 제발 건대 가고싶어요..ㅠㅠㅠ
-
감사합니다 평생 지역의료를위해 뼈빠지게 노력하겠습니다
-
자퇴상담하다 꼽 ㅈㄴ 먹었는디
-
한양대 정문에서 과잠을 입고 춤출수있다
-
가군 6칸 가고 싶던 대학 나군 5칸 꿈의 대학 다군 8칸 대학 어때요
-
당신의 선택은? 다만 이과 머리로는 개병신임 물리 존나 못함 컴공이 1도 안맞아서...
-
절대 안되겠지…기차타고 가서라도 듣고 싶었는데
-
남자 기준이예요 헬스해서 체지방량 감량하면 얼굴살 빠지나요? 벌크업아니고요...
-
계속 슬금슬금 뒤로 밀리는거 머지.. 나정도면 안정권이라 생각했는데 연경은 1배수도...
-
뭔가 영어로 되어있는 학과면 입결 오름
-
사문 어려워요? 5
생명 가계도 같은 거 ㅈㄴ 어려운 거 아니면 시간 좀 걸려도 스스로 풀 수는...
-
그래도 라이브러리랑 수업은 무료로 해주더라
-
이렇게3대장맞나?
-
200은 기본이네요
-
작년에도 수시랑 정시 둘다 하루 일찍 나왔던거 같은데
-
고민..
-
맨날 식단 프로틴 초코 쉐이크 물에 넣어서 먹거나 하림 닭가슴살 냉동 녹여서...
-
흠 일단 내가 대깨설인지 아닌지 잘 모르겠음 개인적인 내 선호도는 인설치 vs...
-
장르 상관없이 국내로만
-
시발…
-
8학군 일반곤데 그래도 ㅈ까는게 맞음? 컨설팅 알아봐야하나 하
-
상향인 대학인데 다른 과는 다 2칸 이러는데 한 학과만 소신 4칸이라고 나오는...
-
캬캬
-
화작 3 확통 3 영어 1 윤사 1 생윤 2 모고 평균 2 중반이고 수능 때 최대한...
-
흠
-
피오르 크럭스 0
둘중에 보통 뭐 함?
-
이대는 올려치기 내려치기 없이 중앙대랑 동급이 딱 맞지 않냐 6
난 그게 맞다고 봄 서성한 중이 경외시
-
정보, 시스템, 응용, 환경, 바이오, 글로벌, 융합, ...
-
이때까지 영어 인강 들어본 적이 없어서 뭐를 들어야 할지 모르겠네요 올해 계속...
-
섹 2
으
-
의뱃받았읍니다 7
현역으로 못 갈줄 알고 있었는데... 뿌듯하네용
-
S2랑 본원 둘다 지원하고 걍 붙는데가도 되나요? 제발 답변부탁드립니다ㅠㅠ
-
이왜진
.
감사합니다감사합니다감사합니다감사합니다
닉넴 이제 이해했네 ㅋㅋㅋㅋㅋ
헉!!!
어허~~
하지만 안바꿨죠?
위키독스는신이야
갓갓
감사합니다감사합니다감사합니다감사합니다감사합니다감사합니다감사합니다
물화 안했으면 물화 공부나 해라... 안 그러면 힘듦
그건 담 편에 ㅎㅎ
이번에 컴공으로 입학하는데, 유익한 정보들 감사합니다 !!
감사합니다!!!!
컴공관련 과를 안 다니더라도 관심이 있으면 여유로울 때 배워두면 좋겠죠?? 머신러닝같이 꽤나 깊이있는 것들도 대학 수업 안 듣고 혼자서 찾아 하나하나 공부할만한가요?
대학 1학년 수준 수학은 꽤 잘 알아야 합니다. 아예 원리 모르는 상태로 코드만 적당히 짜는 건 가능할지 몰라도요.
맞습니다..!
나 홀란인데 케인 짱이다
컴붕이 7ㅐ추드립니다
잉 AI 스터디 자체는 선형대수만 해도 충분하지않나요? (+a) DL 관련해서는 3blue1brown 영상만 쭈르륵 다 봐도 코딩전 이해에는 충분한거 같아요!
원댓글이 뭔진 모르겠지만 sgd부터의 개념들은 다변수 미적분학도 알아야 하긴 합니당
저희는 칼큘러스는 그냥 교양이라 넘어갔네요..!
감사합니다!
절대 지우지 말아주세요...
파이썬 -> C++가 더 좋다고 생각하는데 어케 생각하시나요
의견이 분분하긴 하죠 ㅎㅎ; 일단 저희 학교는 1학년 컴퓨터 프로그래밍 과목에서 가장 먼저 배우는 게 c++이기도 하고 이 글은 cs전공을 위한 거다 보니까 이 전공 사람들은 c++ 먼저 배우는 게 낫지 않나 합니다
책까지 말해주는경우는 없었는데 감사합니다
C 하실꺼면 C만하지마시고 OS나 유닉스 시스템 프로그래밍쪽 책도 같이 보시는거 추천합니다
C는 사실 문법이 진짜 별것도 없고 어차피 하드웨어나 시스템쪽 지식이라서요
CSAPP
OSTEP
이라는 괜찮은 책이 있는데 같이 보시면서 하는거 추천드립니다 기본 지식 전혀 없어도 읽으실 수 있습니다
특히 csapp에 있는 랩 과제라는게 있는데 꼭 다 해보시는거 추천드립니다
좋은 의견 감사합니다만 일단 일반 학생 기준으로 방학 때 잠깐 준비하는 취지니까요 ㅎㅎ
프리드버그 에바인데 선대 처음이면 그냥 스트랭 보는게 편할 것 같아요
엇 제가 볼 땐 괜찮다고 느꼈는데 선대를 한 번 공부하고 봐서 그랬나 봅니다. 참고할게요 ㅎㅎ
기계공학부도 컴퓨터쪽 공부할 일이 있나요?
그쪽 코딩 엄청 많이 합니다
제 지인 개발자 분은 첫 언어로 자바 추천하시던데 혹시 자바는 어떤지 여쭤봐도 될까요
선생니 안녕하세요 전기공학과 가는데 c언어가 교과목에 있는데
글에서는 c++하라고 작혀있어서요..
혹시 c언어를 하려는 노베이스용 교재나 강의 추천 해주실 수있나요?.
제발 부탁드립니다 정말 질문 드릴곳이 이곳 밖에 없어요 ㅜㅜ