공대생이 될 여러분을 위한 조언 -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
예비 고2 학생이고 고3때 시대인재 수과탐 다닐 예정입니다 그래서 패스를 대성만...
-
이 책은 개정없이 쭉가는 느낌인데 개정되나요???
-
만약 그때 정말 갔다면... 인생이 어떻게 됐을까... 라는 생각이 드네요
-
현역때 산 드릴1 계속 쓸 수 있음
-
오늘은 친구들이랑 놀러가는 날이다 간접인싸체험중..
-
하면 좋은데, 해도 좋은지 모르는 ㄹㅇ 모순적인 새기임...
-
작년엔 수능 다음날에 발표 났다던데 올해 논술 관련 분쟁이 있어 메일 한번...
-
아아아ㅏ 아ㅏ악 요즘 화작도 쉽지않다,, 다들 화작 공부 어떻게 하시나요..
-
“시진핑도 내가 미쳤다는 걸 안다…中, 대만 침공하면 관세 200% 때린다” 1
[서울경제] 미국 대통령 선거에서 도널드 트럼프의 승리로 주요국들의 관계 변화를...
-
ㅏㅏㅏㅏㅏㅏㅏㅏ
-
https://docs.orbi.kr/docs/6944-4000%EB%B6%80+%E...
-
재밌겠다 첫번째 지문애서 얻은 지식으로 두번째 지문 읽고 또 그때까지 얻은 지식으로...
-
무조건이긴다 파이팅!!!!!!
-
제발 가자 ..
-
3년 전으로 돌려보내줘
-
한의협이 일 잘해서 이권도 잘 지키고 가져오는 거 보면 진지하게 상승세는 한의사가 원톱일 듯
-
지금 상황 겪으니까 불평하는 글 쓰는 거지 여기 사람들 대부분 수능 열심히 준비하는...
-
바로 1이 아니라 시그마 위에잇는 숫자랑 곱해야합니당.. 특히 주관식때 조심..
-
귀여운 동물 캐릭터라 처음 보면 유아틱하지만 얘네들을 보면 알 수 있듯이 표정을...
-
평일 6시 기상 및 6시 30분 등교 ->> 근데 요즘 피로 누적 되서 그런지...
-
아. 진짜ㅡ우울하다 ㅋㅋ
-
심찬우 솔직히 2
(가)시에서 화자는 기린이 울기를 지향하는데 울지못하니까 내적갈등이고 그 상황이...
-
많이 놀고 많이 묵고 번역 초벌만 하고 푹 쉬어야지 아해해해햏 주말 쵝오~
-
베카리아가 예외적으로 사형이 필요한 경우가 있다고 주장하나요? 무조건 반대인줄...
-
2406 2409 2411 2506 99 99 99 98 2509 91...
-
공부 해야지 0
ㅅㅂㅅㅂㅅㅂㅅㅂ
-
13 21 22 30 틀려서 84점입니다. 아 확통입니다 16회 쉬웠던것같은데...
-
자기가 성공할길이 공부밖에 없다고 착각하는데에 있음 원영적 사고를 통해 난 뭐든지...
-
5수 생각이 막 드는데 13
계속 군필 5수= 미필 3수 ㅇㅈㄹ하고 있는데.. 걍 그지 같다 시부레 한 살만 어렸어도
-
시간도 오래걸리고 난이도도 어려운거같은데 저만 그렇게 느껴지나요?
-
빼면 뭐 빼는게 괜찮나요?
-
갑자기 화남...
-
수능망치고 엄마가 집까지 차로 데려다줄때까지만 불행하고 집와서 뿌링클먹고 자이하르...
-
7.10모 같은 교육청은 3-4자꾸 나오는데 6모는 높 5 9모는 긴장해서 화작 다...
-
주변에서 내려갈 수도 있다길래 걱정입니다 .. 심하면 5까지 내려간다 고도 하는데...
-
표지 디자인 chatGPT가 해도 저거보단 괜찮을듯,,
-
고금리·강달러 시대 온다? 트럼프 경제학의 다른 이야기[딥다이브] 0
도널드 트럼프 대통령이 돌아왔습니다. 자, 그럼 경제는 어디로 갈까요. 많은 이들이...
-
릴이랑 폐호흡 물빨 하다가 침대 가서 자야겠당 ㅎㅎ
-
알려줘요
-
수탐 : 노력으로 ㄱㄴ 국어 : 미지수 인거죠?
-
수능 국어 어휘 0
평가원 문제 풀면서는 틀린 적 없는 거 같은데 사설 풀면 ㅈㄴ틀림 문제는 가끔 이딴...
-
어딘지는 말 안 함
-
이감보다 쉽지는 않나요???
-
실모를 안풀면됩니다
.
감사합니다감사합니다감사합니다감사합니다
닉넴 이제 이해했네 ㅋㅋㅋㅋㅋ
헉!!!
어허~~
하지만 안바꿨죠?
위키독스는신이야
갓갓
감사합니다감사합니다감사합니다감사합니다감사합니다감사합니다감사합니다
물화 안했으면 물화 공부나 해라... 안 그러면 힘듦
그건 담 편에 ㅎㅎ
이번에 컴공으로 입학하는데, 유익한 정보들 감사합니다 !!
감사합니다!!!!
컴공관련 과를 안 다니더라도 관심이 있으면 여유로울 때 배워두면 좋겠죠?? 머신러닝같이 꽤나 깊이있는 것들도 대학 수업 안 듣고 혼자서 찾아 하나하나 공부할만한가요?
대학 1학년 수준 수학은 꽤 잘 알아야 합니다. 아예 원리 모르는 상태로 코드만 적당히 짜는 건 가능할지 몰라도요.
맞습니다..!
나 홀란인데 케인 짱이다
컴붕이 7ㅐ추드립니다
잉 AI 스터디 자체는 선형대수만 해도 충분하지않나요? (+a) DL 관련해서는 3blue1brown 영상만 쭈르륵 다 봐도 코딩전 이해에는 충분한거 같아요!
원댓글이 뭔진 모르겠지만 sgd부터의 개념들은 다변수 미적분학도 알아야 하긴 합니당
저희는 칼큘러스는 그냥 교양이라 넘어갔네요..!
감사합니다!
절대 지우지 말아주세요...
파이썬 -> C++가 더 좋다고 생각하는데 어케 생각하시나요
의견이 분분하긴 하죠 ㅎㅎ; 일단 저희 학교는 1학년 컴퓨터 프로그래밍 과목에서 가장 먼저 배우는 게 c++이기도 하고 이 글은 cs전공을 위한 거다 보니까 이 전공 사람들은 c++ 먼저 배우는 게 낫지 않나 합니다
책까지 말해주는경우는 없었는데 감사합니다
C 하실꺼면 C만하지마시고 OS나 유닉스 시스템 프로그래밍쪽 책도 같이 보시는거 추천합니다
C는 사실 문법이 진짜 별것도 없고 어차피 하드웨어나 시스템쪽 지식이라서요
CSAPP
OSTEP
이라는 괜찮은 책이 있는데 같이 보시면서 하는거 추천드립니다 기본 지식 전혀 없어도 읽으실 수 있습니다
특히 csapp에 있는 랩 과제라는게 있는데 꼭 다 해보시는거 추천드립니다
좋은 의견 감사합니다만 일단 일반 학생 기준으로 방학 때 잠깐 준비하는 취지니까요 ㅎㅎ
프리드버그 에바인데 선대 처음이면 그냥 스트랭 보는게 편할 것 같아요
엇 제가 볼 땐 괜찮다고 느꼈는데 선대를 한 번 공부하고 봐서 그랬나 봅니다. 참고할게요 ㅎㅎ
기계공학부도 컴퓨터쪽 공부할 일이 있나요?
그쪽 코딩 엄청 많이 합니다
제 지인 개발자 분은 첫 언어로 자바 추천하시던데 혹시 자바는 어떤지 여쭤봐도 될까요
선생니 안녕하세요 전기공학과 가는데 c언어가 교과목에 있는데
글에서는 c++하라고 작혀있어서요..
혹시 c언어를 하려는 노베이스용 교재나 강의 추천 해주실 수있나요?.
제발 부탁드립니다 정말 질문 드릴곳이 이곳 밖에 없어요 ㅜㅜ