공대생이 될 여러분을 위한 조언 -2부
공대생이 될 여러분을 위한 조언 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를 선물하세요.
-
성대 다군 탐구 1개 빼면 비벼볼만 한 거 같은데 올해 터질거 같다는 말도 들리고 해서 ..
-
수능까지망해서 진짜죽고싶음뇨
-
강사만 너무 믿지마셈.. 지금은 찍먹해도 괜찮음 제발 ㅜㅜ 여러명 듣고...
-
(기?만) 이거 갈 수 있어요? 이거 진짜에요? 이거 갈 수 있어요? 이거 갈 수...
-
지금 계속 들낙하니 스트레스만 쌓여서... 그냥 무시하구 살려구요
-
보통 얼마임?
-
이미 여자친구가 있는걸><
-
기균도 쓸 수 있긴 한데 그냥 일반 전형으로는 어디 가나요? 기균도 알려주면 땡쿠욤..
-
러닝타임 ㅈㄴ길어
-
머리속을떠나지않아 그만봐야겠음...
-
ㅇ.ㅈ 7
해보고싶었어
-
딥피드수준...진짜
-
사용앱 인증임요 0
네이트로 오르비 함요
-
확인의 과정입니다 알아두세요
-
네
-
컴으로 구글에 박광일 대성 치면 스폰서로 대성마이맥에 ‘개정 수능 국어 이미 준비...
-
아이디 jskim3078 입력해주새요!!
-
1컷 96인건 알고있는데
-
똘똘이좌 글씨체 반응이 좋아 오늘 쓴 글씨체 올려드립니다. 0
최근에는 좀 많이 순화되었습니다. 저 글씨체는 1년 전이구요, :) 이 글씨체는...
-
내년 교대 정시 0
내년 교대 정시 준비 해보려고 하는데 사탐 어느과목으로 하는걸 추천하나요??
-
본인 고백썰 0
걍 서로 누군지만 알고 말도 한 번도 안해봄 사이였음 1년전에 친구랑 친한애여서...
-
언매 86 기하 73 영어 3 동사 42 세사 45 어디라인이라고 볼수있나요?
-
미적 낮4(미적 거의 안 함)인데 2등급 이상 목표면 뭐가 더 낫나요? + 미적이든...
-
원래 26뉴분감을 사려 했는데 25뉴분감 새책 풀커리를 공짜로 얻을 기회가...
-
예비 고2 겨울방학때 들을 문학인강 추천 부탁드립니당 0
문학개념은 어느정도 잡혀있는데 모고 풀때마다 시간이 부족해요 문학 한 번 훑고 고...
-
자이하르! 자이하르! 자이하르! 자이하르!
-
연대 의대가 99 뜨고 있냐 뭔
-
무지성 질문해드림 13
-
국어를개못하니까뭐생각도해본적이없음ㅋㅋ
-
적어주세요
-
진짜 이러지도 저러지도 않은 애매한 상황인거같은데 걍 돌아버리겠네요 영어가 왜...
-
로스쿨보다 3
하이스쿨 dxd가 좋다
-
뻥임뇨
-
ㅋㅋㅋㅋㅋㅋㅋㅋ
-
똘똘이 안하기 챌린지는 매일 밤 10시 반에 자기 전 올리도록 하겠습니다. 17
응원해주세요. 제 변화의 모습으로부터 동기부여를 얻어가시길 바랍니다. (작년 글씨체...
-
1. 옛날에 여자애가 내 옷 입은것만 보고 존나 잘생긴 줄 알았는지 친구 통해서...
-
재밌음?
-
뻥임뇨
-
https://youtu.be/7UecFm_bSTU?si=5Ke1hWCFwgBmChY...
-
진짜죽고싶었음
-
국립원자력의학원이랑 수도권 권역 국립의과학전문대학원이 생긴다네요
-
인생 진짜;; 현 고1 항공우주공학과 지망... 1학기 국수영과사 한국사 정보...
-
진짜높다 내인생에는인연이없는높이,,,
-
의대 탐구과목 0
이번 수능 화학 표점이 개멸망해서 사탐런 칠까 했는데 지원만 가능한 거였군요...
-
자살 0
~~
.
감사합니다감사합니다감사합니다감사합니다
닉넴 이제 이해했네 ㅋㅋㅋㅋㅋ
헉!!!
어허~~
하지만 안바꿨죠?
위키독스는신이야
갓갓
감사합니다감사합니다감사합니다감사합니다감사합니다감사합니다감사합니다
물화 안했으면 물화 공부나 해라... 안 그러면 힘듦
그건 담 편에 ㅎㅎ
이번에 컴공으로 입학하는데, 유익한 정보들 감사합니다 !!
감사합니다!!!!
컴공관련 과를 안 다니더라도 관심이 있으면 여유로울 때 배워두면 좋겠죠?? 머신러닝같이 꽤나 깊이있는 것들도 대학 수업 안 듣고 혼자서 찾아 하나하나 공부할만한가요?
대학 1학년 수준 수학은 꽤 잘 알아야 합니다. 아예 원리 모르는 상태로 코드만 적당히 짜는 건 가능할지 몰라도요.
맞습니다..!
나 홀란인데 케인 짱이다
컴붕이 7ㅐ추드립니다
잉 AI 스터디 자체는 선형대수만 해도 충분하지않나요? (+a) DL 관련해서는 3blue1brown 영상만 쭈르륵 다 봐도 코딩전 이해에는 충분한거 같아요!
원댓글이 뭔진 모르겠지만 sgd부터의 개념들은 다변수 미적분학도 알아야 하긴 합니당
저희는 칼큘러스는 그냥 교양이라 넘어갔네요..!
감사합니다!
절대 지우지 말아주세요...
파이썬 -> C++가 더 좋다고 생각하는데 어케 생각하시나요
의견이 분분하긴 하죠 ㅎㅎ; 일단 저희 학교는 1학년 컴퓨터 프로그래밍 과목에서 가장 먼저 배우는 게 c++이기도 하고 이 글은 cs전공을 위한 거다 보니까 이 전공 사람들은 c++ 먼저 배우는 게 낫지 않나 합니다
책까지 말해주는경우는 없었는데 감사합니다
C 하실꺼면 C만하지마시고 OS나 유닉스 시스템 프로그래밍쪽 책도 같이 보시는거 추천합니다
C는 사실 문법이 진짜 별것도 없고 어차피 하드웨어나 시스템쪽 지식이라서요
CSAPP
OSTEP
이라는 괜찮은 책이 있는데 같이 보시면서 하는거 추천드립니다 기본 지식 전혀 없어도 읽으실 수 있습니다
특히 csapp에 있는 랩 과제라는게 있는데 꼭 다 해보시는거 추천드립니다
좋은 의견 감사합니다만 일단 일반 학생 기준으로 방학 때 잠깐 준비하는 취지니까요 ㅎㅎ
프리드버그 에바인데 선대 처음이면 그냥 스트랭 보는게 편할 것 같아요
엇 제가 볼 땐 괜찮다고 느꼈는데 선대를 한 번 공부하고 봐서 그랬나 봅니다. 참고할게요 ㅎㅎ
기계공학부도 컴퓨터쪽 공부할 일이 있나요?
그쪽 코딩 엄청 많이 합니다
제 지인 개발자 분은 첫 언어로 자바 추천하시던데 혹시 자바는 어떤지 여쭤봐도 될까요
선생니 안녕하세요 전기공학과 가는데 c언어가 교과목에 있는데
글에서는 c++하라고 작혀있어서요..
혹시 c언어를 하려는 노베이스용 교재나 강의 추천 해주실 수있나요?.
제발 부탁드립니다 정말 질문 드릴곳이 이곳 밖에 없어요 ㅜㅜ