공대생이 될 여러분을 위한 조언 -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를 선물하세요.
-
러닝 부작용인가
-
눈물이 앞을 가리는구나...
-
밀웜이 답임? 0
스티로폴 처리 방법이 없어 난감하다던데 썩지도 않고 태워도 환경호르몬 나오니까
-
크하합 행복하다 3
이거 몇권이 막화임?
-
아침까지우울했다가 계좌가정상화되니 기분이갑자기나아짐
-
뭐가 더 쉽나요? 지방교대 희망중입닏 내신 3중반
-
모평 서성한급 성적이었고 목표도 고대였는데 수능에서 ㄹㅇ 고대 될만한 성적을...
-
럭키세븐이라 뭔가 잘될것같은데
-
와 이젠 ㄹㅇ 기하가 꿀이네 내년에 기하 많아질듯 ㅋㅋㅋ
-
호주, 16세 미만 청소년에게 SNS 이용 전면금지 예정 4
그렇다네요 ㄷㄷ
-
난 올해 초로 몇백번을 돌려보내도 노력 안하는건 매한가지일듯 그냥 그게 본인...
-
메디컬제외하고어디를가든 취업못해서돈걱정할수있다는걸 별로생각해본적이없음
-
(상은 있는데 하가 없네요 ,,,ㅠ 상이있으니 다시 올려주는건지,,,,
-
모든 전자기기를 봉투에 밀봉 후 가방에 넣어 "제출"한다곤 함.. (강의실은...
-
질문글에 n이 4이상인 분들한테 +1 추천할 땐 한 번 더 생각해보고 추천했음 좋겠음.
-
ex)) 싱어는 공리주의자-> 동물의 권리를 주장하지만 인류에게 큰 이익이 된다면...
-
오늘 다 짰어요 올해수능 국수영 332 사탐노베입니다 국어: 정석민 독서문학...
-
탁탁탁탁탁 4
-
자퇴생이고 내년에 고3이 되는데 현재 수1,수2 개념만 나간 상태이고 수 상하는...
-
대충 스토리가 할머니가 할아버지 찾으러 다니는데 어떤애한테 할아버지의 생김새를 되게...
-
위에가 제 풀이고 아래가 큐브에 질문해서 의대생분께 답변 받은 건데 왜 저런지 잘...
-
수영탐은 항상 어떻게 하면 수능날 변수를 최소화할지 실수를 줄이고 최대한 약점을...
-
메디컬 목표 아님 취업도 생각해야 하는데
-
갑자기 이대초교 3
좀 땡김 물론 못감...
-
사고싶다
-
국어에 대해 아무것도 모릅니다 그냥 무지성으로 검더텅 독서 1회독 했는데 다음에...
-
국어 한 지문 분석하는데 1시간 어려운건 2시간 비문학은 잡고 풀면 이해되는데...
-
어떻게 고치냐
-
무슨알바가제일 나은가요? 다들 재수비용 지원받아서하시는지..돈많이버는알바뭐가있나요...
-
수능도 재수 운전면허도 재수^^ 시잇발
-
뭐 내일모레면 알게 되겠지만 그래도 떨리네요ㅡㅡ
-
싫다.
-
김기현 커리큘럼 잘아는 사람있음? 킥오프&파운데이션 이거 매년 바뀌는거임 아님...
-
올해 나이로는 삼수, 횟수로는 재수로 25수능 봤습니다. 현역 땐 54235로...
-
??
-
“하지만 진학할 의대에 마이너 티오가 많은지 따져봐야해요“
-
화작 컷 1
여기서 더 높아지는게 정배임? 하...
-
김승리 레디 백 1
매월승리만 사고 레디 백은 팔려고하는데 얼마가 적당할거 같음?
-
외국인도 귀엽네 2
교수님 질문 맞췄다고 주먹 불끈 쥐는거보고 문득 생각남..그래 잘했다
-
최근에 일본여행 0
다녀오신 분들 또는 지금 일본(오사카) 이신 분들 계신가요? 날씨가 어떤가요?...
-
수수료 5% 떼고 네이버페이로 사야겠구나
-
왜 수학은 잘 못맞추는거 같지? 국어는 아무리차이나도 2점인데 수학은 4,5점도...
-
라면 골라주셈 8
ㄱ
-
재수 대부분 걍 친구따라 나도 할래하는 느낌 어차피 친구들 다하니까 나도 해도...
-
제발 45만 아니어라 논술 가자 화작 공통만 틀린 87보단 물리 44가 더 2등급에 가깝다
-
대학ㅇ원 오지마라.
.
감사합니다감사합니다감사합니다감사합니다
닉넴 이제 이해했네 ㅋㅋㅋㅋㅋ
헉!!!
어허~~
하지만 안바꿨죠?
위키독스는신이야
갓갓
감사합니다감사합니다감사합니다감사합니다감사합니다감사합니다감사합니다
물화 안했으면 물화 공부나 해라... 안 그러면 힘듦
그건 담 편에 ㅎㅎ
이번에 컴공으로 입학하는데, 유익한 정보들 감사합니다 !!
감사합니다!!!!
컴공관련 과를 안 다니더라도 관심이 있으면 여유로울 때 배워두면 좋겠죠?? 머신러닝같이 꽤나 깊이있는 것들도 대학 수업 안 듣고 혼자서 찾아 하나하나 공부할만한가요?
대학 1학년 수준 수학은 꽤 잘 알아야 합니다. 아예 원리 모르는 상태로 코드만 적당히 짜는 건 가능할지 몰라도요.
맞습니다..!
나 홀란인데 케인 짱이다
컴붕이 7ㅐ추드립니다
잉 AI 스터디 자체는 선형대수만 해도 충분하지않나요? (+a) DL 관련해서는 3blue1brown 영상만 쭈르륵 다 봐도 코딩전 이해에는 충분한거 같아요!
원댓글이 뭔진 모르겠지만 sgd부터의 개념들은 다변수 미적분학도 알아야 하긴 합니당
저희는 칼큘러스는 그냥 교양이라 넘어갔네요..!
감사합니다!
절대 지우지 말아주세요...
파이썬 -> C++가 더 좋다고 생각하는데 어케 생각하시나요
의견이 분분하긴 하죠 ㅎㅎ; 일단 저희 학교는 1학년 컴퓨터 프로그래밍 과목에서 가장 먼저 배우는 게 c++이기도 하고 이 글은 cs전공을 위한 거다 보니까 이 전공 사람들은 c++ 먼저 배우는 게 낫지 않나 합니다
책까지 말해주는경우는 없었는데 감사합니다
C 하실꺼면 C만하지마시고 OS나 유닉스 시스템 프로그래밍쪽 책도 같이 보시는거 추천합니다
C는 사실 문법이 진짜 별것도 없고 어차피 하드웨어나 시스템쪽 지식이라서요
CSAPP
OSTEP
이라는 괜찮은 책이 있는데 같이 보시면서 하는거 추천드립니다 기본 지식 전혀 없어도 읽으실 수 있습니다
특히 csapp에 있는 랩 과제라는게 있는데 꼭 다 해보시는거 추천드립니다
좋은 의견 감사합니다만 일단 일반 학생 기준으로 방학 때 잠깐 준비하는 취지니까요 ㅎㅎ
프리드버그 에바인데 선대 처음이면 그냥 스트랭 보는게 편할 것 같아요
엇 제가 볼 땐 괜찮다고 느꼈는데 선대를 한 번 공부하고 봐서 그랬나 봅니다. 참고할게요 ㅎㅎ
기계공학부도 컴퓨터쪽 공부할 일이 있나요?
그쪽 코딩 엄청 많이 합니다
제 지인 개발자 분은 첫 언어로 자바 추천하시던데 혹시 자바는 어떤지 여쭤봐도 될까요
선생니 안녕하세요 전기공학과 가는데 c언어가 교과목에 있는데
글에서는 c++하라고 작혀있어서요..
혹시 c언어를 하려는 노베이스용 교재나 강의 추천 해주실 수있나요?.
제발 부탁드립니다 정말 질문 드릴곳이 이곳 밖에 없어요 ㅜㅜ