공대생이 될 여러분을 위한 조언 -2부
게시글 주소: https://i.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를 선물하세요.
-
스누왕감사 snu joy go
-
한국사 강의 뭐 들을까요 ㄹㅇ 하나도 모르는뎅 컴팩트한 거 추천 해주세요!...
-
일단 목표는 올2 이상이라도..
-
모든 사이트 다 가능합니다 사이트에서 직접 주문해드려요
-
항공대 16:30 끝 건국 17:40 시작... 너무 빡세겠죠
-
영어 모고 평이한 문항 알려주세욥.. 노베탈출원함.. 3
11모 (10.15)전까지 고2영어 모고 비교적 평이한 문항은 마스터하고 싶어서요...
-
메가패스 없어서 매개완 강의 + 교재 사는데 18만원 쓰면서도 손 바들바들 떨면서...
-
항상 만점 받는분들 진짜 신인가
-
선착순 3명 8
1000덕
-
미적 수능공부만 했고 확통기하 진짜 개노베인데 그냥 안 쓰는게 낫겠죠..?
-
국수 턱걸이임 국어(언매) 우기분 + 피램 생각의 전개 중요지문 복습 + 이감 실모...
-
이번달은 돈이 없당 ㅠㅠ
-
네? 대답.
-
ㅠ
-
현역문과 기준이고 탐구평균 아닙니다 4합8-> 국수영+탐구 3합5-> 국수영탐 중...
-
수학황 1
나도 고정 92 이상인 수학황이 되고 싶다.
-
곤충 대량양식해서 곤충 먹는 동물을 마구 키운 다음 쳇바퀴 돌리게 해가지고 전기 생산하는거 어떰
-
아니 썜이 자꾸 쓰라는데 기하 노베는 아닌데 다 까먹었고 확통은 해본적이 없는데 왜...
-
어제 40만원 씀 11
저거 아까워서라도 올해 잘 가야지..
-
간쓸개 어렵네 0
좋다 좋아 글이 아주 빽빽해서 뭔가 예술병 걸린 사람의 알 수 없는 말을 읽는...
-
역시 오르비 1
한두명 까는 여론 만들어지면 너도나도 하나씩 숟가락 얹어가며 비난하기 유구한 전통
-
경쟁률 보고 어디를 노릴까 고민이 되는구만... 작년 최저떨 대학들 올해는 맞출 수 있을까
-
김승리 선생님이나 유대종 선생님 등 강사분들께서 주시는 파이널 자료면 국어 대비...
-
노베 기적일지 D-66 “멈추지 말고 한 가지 목표에 매진하라. 그것이 성공의...
-
우주 실력 박살남 ㅠㅠ
-
워드마스터 수능2000 다 아는 수준+ 9모 1등급 인데 지금 외울만한 단어장 뭐가 있을까
-
진짜 큰일났다 지 구 과 학....
-
수도권/인천/서울권에서 특목고 그닥 선호하지 않은 대학 있나요?
-
뭐가 더 어렵나요...... 과탐 진짜 해도 확신이 안서는데ㅜㅜ
-
대성 언매 0
김승리 유대종 정석민 전형태 문법 올인원이랑 다담 풀었고 본 커리를 김승리 듣고 있긴 해요
-
뽀모도로 공부법 << 허수같은 네이밍이라 그렇지 좋음 2
25m 공부 / 5m 휴식 반복인데 집중력은 올리면서 과집중도 방지해줌 그래서...
-
오늘의 공부 1
국어 비문학 예술 7지문 영어 조정식월간지 day 4개 단어 암기 수학 실모 1개...
-
원점수 100 A인 내 과탐실 4등급으로 반영이다 ㅅㅍㅅㅍㅅㅍ 덕분에 전체 등급 0.1 내려가네
-
다이소에 5000원 가격에 몇배 더 크고 좋은거 있네 ㅋㅋㅋㅋ
-
친구들과 맛있는 도시락을 먹게 해주심에 감사합니다. 탐구 시험을 생각보다 잘 보게...
-
오늘 보니 별로 경쟁률 안쎈거같던데
-
98 도배 23
근데 의미 1도 없는 집모임
-
이력 화려하다면 ex) 가형 수능 100 문항 출제 공모전 수상
-
하루만에 수완수학 다풀기… 일단 난 실패.. 수1 다 풀고 미적 앞쪽 풀고 실전모고...
-
한종철T 질문 4
생1 개념은 백호쌤 섬개완으로 한번 쭉 돌렸고 근수축, 막전위, 유전 등 추론형...
-
다른 건 몰라도 물1은 1등급 찍는다
-
노추 0
https://music.youtube.com/watch?v=PAEgjePd3r8&s...
-
수학만 안정 2등급 맞으면 목표 대학에 엄청나게 가까워지는데 이게 마냥 쉽지가...
-
여기여기 붙어라~!!
-
다 의대설경스카이 가려고 삼수하는줄아나 난 뭐가되노 ....... 국민대 픽미픽미핃미업
-
ㅈㄱㄴ 면접 보면 걍 무난하게 볼수있을듯요.... 최저 없는 학종일때 면접 껴있는게...
-
뭔가 터닝포인트 계기가 필요함 이번수능은 내 인생에 있어서 소중한 기회인데 ㅂㅅ같은...
-
이때까지 준비 안했으면 사실상 못붙겠죠? 그냥 속는셈치고 써볼까요.. 원서비 비싸서...
-
강대K 17회 2
18번틀 97 ㅅㅂ 개인적인 난도 : 28>>>>>>>나머지
.
감사합니다감사합니다감사합니다감사합니다
닉넴 이제 이해했네 ㅋㅋㅋㅋㅋ
헉!!!
어허~~
하지만 안바꿨죠?
위키독스는신이야
갓갓
감사합니다감사합니다감사합니다감사합니다감사합니다감사합니다감사합니다
물화 안했으면 물화 공부나 해라... 안 그러면 힘듦
그건 담 편에 ㅎㅎ
이번에 컴공으로 입학하는데, 유익한 정보들 감사합니다 !!
감사합니다!!!!
컴공관련 과를 안 다니더라도 관심이 있으면 여유로울 때 배워두면 좋겠죠?? 머신러닝같이 꽤나 깊이있는 것들도 대학 수업 안 듣고 혼자서 찾아 하나하나 공부할만한가요?
대학 1학년 수준 수학은 꽤 잘 알아야 합니다. 아예 원리 모르는 상태로 코드만 적당히 짜는 건 가능할지 몰라도요.
맞습니다..!
나 홀란인데 케인 짱이다
컴붕이 7ㅐ추드립니다
잉 AI 스터디 자체는 선형대수만 해도 충분하지않나요? (+a) DL 관련해서는 3blue1brown 영상만 쭈르륵 다 봐도 코딩전 이해에는 충분한거 같아요!
원댓글이 뭔진 모르겠지만 sgd부터의 개념들은 다변수 미적분학도 알아야 하긴 합니당
저희는 칼큘러스는 그냥 교양이라 넘어갔네요..!
감사합니다!
절대 지우지 말아주세요...
파이썬 -> C++가 더 좋다고 생각하는데 어케 생각하시나요
의견이 분분하긴 하죠 ㅎㅎ; 일단 저희 학교는 1학년 컴퓨터 프로그래밍 과목에서 가장 먼저 배우는 게 c++이기도 하고 이 글은 cs전공을 위한 거다 보니까 이 전공 사람들은 c++ 먼저 배우는 게 낫지 않나 합니다
책까지 말해주는경우는 없었는데 감사합니다
C 하실꺼면 C만하지마시고 OS나 유닉스 시스템 프로그래밍쪽 책도 같이 보시는거 추천합니다
C는 사실 문법이 진짜 별것도 없고 어차피 하드웨어나 시스템쪽 지식이라서요
CSAPP
OSTEP
이라는 괜찮은 책이 있는데 같이 보시면서 하는거 추천드립니다 기본 지식 전혀 없어도 읽으실 수 있습니다
특히 csapp에 있는 랩 과제라는게 있는데 꼭 다 해보시는거 추천드립니다
좋은 의견 감사합니다만 일단 일반 학생 기준으로 방학 때 잠깐 준비하는 취지니까요 ㅎㅎ
프리드버그 에바인데 선대 처음이면 그냥 스트랭 보는게 편할 것 같아요
엇 제가 볼 땐 괜찮다고 느꼈는데 선대를 한 번 공부하고 봐서 그랬나 봅니다. 참고할게요 ㅎㅎ
기계공학부도 컴퓨터쪽 공부할 일이 있나요?
그쪽 코딩 엄청 많이 합니다
제 지인 개발자 분은 첫 언어로 자바 추천하시던데 혹시 자바는 어떤지 여쭤봐도 될까요
선생니 안녕하세요 전기공학과 가는데 c언어가 교과목에 있는데
글에서는 c++하라고 작혀있어서요..
혹시 c언어를 하려는 노베이스용 교재나 강의 추천 해주실 수있나요?.
제발 부탁드립니다 정말 질문 드릴곳이 이곳 밖에 없어요 ㅜㅜ