cs 과목 길잡이

Dev_owl ·2022년 1월 9일
36

공부노트

목록 보기
1/3

참고

  • 전자트랙 과목은 제가 들은게 별로 없어 강의 계획서 내용을 바탕으로 작성하였습니다. 잘못된 내용이 있으면 알려주시길 바랍니다.

  • 서적은 1순위 전공책, 2순위는 면접 전 급하게 볼 수 있을정도로 요약정리가 잘된 책이라 생각하시면 됩니다.

  • 서적에서 무료라고 명시하지 않은 책은 전부 시중에서 판매하는 책입니다. 하지만, 교내 도서관에 있는 책 위주로 뽑았으니 참고바랍니다.

  • 알고리즘, 데이터베이스의 경우 학과 내 개설과목은 없으나,
    각각 디스커버리 학기, 이클래스 비정규 과목을 통해 수강가능합니다.
    자세한 내용은 해당 과목 인덱스 참고하시면 됩니다.


보는 법

  • 내가 부족한 과목이 어딘지 안다.
    -> 인덱스 보고 필요한 과목 정보만 뽑아가기

  • 프로그래밍 언어조차 모른다.
    -> 0. 프로그래밍 언어 항목 참고

  • 2학년 때 프로그래밍 언어 배웠는데 아직 좀 아리까리한 것 같다.
    혹은, 군대가기전, 갔다와서, 군대에서 뭐할지 애매하다.
    -> https://codeup.kr/problemsetsol.php?psid=23
    코드잇 기초 c언어 100제 풀고 코테 진입하시면 됩니다.
    (c언어 기본 문법을 체화시킨다고 생각하세요)

  • 프로그래밍 언어 대충 배웠는데, 그 이후에 뭐해야할지 모르겠다.
    -> 알고리즘/자료구조 파트 참고 후, 코딩테스트 공부

  • 데이터 분석 쪽에 관심이 있다. (평분 같은 직무)
    -> 프로그래밍 언어 파이썬 파트 참고 후 딥러닝 파트 참고

ps. 프로그래밍언어, 코테 쪽만 자세하게 서술했다. 어처피 나머지 과목 찾아볼 정도가 되면 어떻게 뭘해야할지는 본인 스스로 알 것 이라 생각합니다.


시작하기에 앞서

cs과목이 뭔가요?

  • 컴퓨터 공학에서 기본적인 과목을 의미한다.
    (전자공학으로 치면 회로이론, 전기자기학, 전자회로 이런 느낌)

  • 프로그래밍언어,알고리즘/자료구조, 데이터베이스, 데이터통신(네트워크), 운영체제, 컴퓨터 구조 를 의미한다.

왜 찾아서라도 들어야하나요?

  • 가장 주된 이유는 기술 면접시 해당 과목에 대한 지식을 물어본다.
    (물론 순수 개발자 직군에 한해서이다. 오해할까봐 미리 써두는데, 다른 직군 희망시 절대절대로 할 필요 없다. 우리과 커리큘럼 만으로도 충분)

  • 따라서 취업 준비시, 위 과목들에 대한 공부가 필요하나, 아쉽게도 우리 과에서는 트랙별로 열리는 과목이 상이할 뿐더러, 전자, 미디어 트랙 두 곳 전부 개설이 안되는 과목이 꽤 있다.
    (데이터베이스, 자료구조, 알고리즘 등등)

  • 따라서 학점이 된다면, 부전공(복전은 비추)을 하는 것을 가장 추천한다.
    하지만, 컴공 부전공 학점컷은 매우매우매우 빡세기 때문에,
    차선책으로 무료 위주의 질좋은 강의와 서적을 정리해서 올린다.


0. 프로그래밍 언어

0-a. 과목 개설 여부

결론부터 말하자면,

  • 전자/미디어 모두 필요한건 배운다.

  • 2학년 1학기 컴퓨터 프로그래밍
    -> c언어를 가르쳐 주는 수업

  • 3학년 2학기 스마트디바이스프로그래밍 / 프로그래밍방법론
    -> java를 가르쳐주는 수업(객체지향언어)

  • 엥 c++, python 등등 다른언어도 많은데, 두 개 밖에 안배우는데요?
    -> java까지 배웠으면 다른 언어 배우는데 진입장벽이 엄청 낮아진다.
    -> it 업계 현업에서는 java 위주로 쓰인다. (특히 백엔드 쪽은 java spring 때문이라도 java가 강세다)

  • 순수 개발자를 희망한다면 java와 같은 객체 지향언어를 3학년 2학기 때 접하는 것은 조금 늦는다 생각한다.

  • 들을 수 있다면 2학년 2학기 때 스마트디바이스프로그래밍/프로그래밍방법론을 듣는 것을 추천한다.

    1. c 배웠으면 스마트디바이스프로그래밍/프로그래밍 방법론 배우는데 아무 지장없다.
    2. 그런데도, 어렵다고 느낄텐데. 그 이유는 2학년 2학기, 3학년 1학기 과목 중 어딘가 구멍이 뚫려서 그런 것이 아니다. 그냥 "원래 java나 c++같은 객체 지향언어가 어려운 것 이다." 라고 생각하면 된다. 3학년 선배들도 골머리 깨지면서 배운다.

0-b c언어

서적

  1. 윤성우의 열혈 c프로그래밍 윤성우 저
  1. 옛날에 배워서 내용을 까먹었을 경우, 복습하고 싶을 경우

https://codeup.kr/problemsetsol.php?psid=23

위 링크에서 기초 100제를 풀고 1번 책에서 포인터 파트만 복습해도 무방하다.

0-c 객체지향언어 (java, c++)

강의

  1. 생활코딩 (java)
    https://www.youtube.com/playlist?list=PLuHgQVnccGMCeAy-2-llhw3nWoQKUvQck

  2. 남궁성 (java의 정석 저자 직강)
    https://www.youtube.com/watch?v=oJlCC1DutbA&list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp

서적

  1. java의 정석 남궁성 저 (미디어 트랙 전공책)

  2. 윤성우의 열혈 c++ 윤성우 저

  3. 점프투 자바 박응용 저 [무료]
    https://wikidocs.net/book/31

0-d. python

python 서적

  1. 점프투 파이썬 박응용 저 [무료]
    https://wikidocs.net/book/1

  2. 이것이 취업을 위한 코딩테스트다.의 부록 python문법 정리 파트

  • java를 안다는 것을 전제로 빠르게 파이썬을 습득할려면 가장 추천한다.
  1. 이후 c와 마찬가지로 python기초 100제를 풀면서 기본 문법을 체화시키면된다.
    https://codeup.kr/problemsetsol.php?psid=33

python 강의

  1. udemy 강의
    https://www.udemy.com/course/best-100-days-python/
  • 추천하는 몇 안되는 유료강의 중 하나이다.
  • 현재 17000원에 할인 중인데, 원가인 95000원에 팔아도 값어치 하는 강의라 생각한다.
  • 커리큘럼이 매우 좋다.
  • 기초 문법부터 gui,크롤링,데이터처리, 웹개발, 봇개발 그냥 python으로 할 수 있는 대부분의 것들을 알려준다.
  • 강의 차시마다 수준에 맞는 프로젝트랑 해설 강의를 제공해주기 때문에, 스스로 생각하는 법을 알려준다.(이게 제일 큰 장점이다.)
  • 단, 영어 강의이고(한글자막제공) 호불호가 많이 갈릴 수 있으니 몇개 미리 들어보는 것을 추천한다.
  1. 교내 eclass 탈잉 강의 [무료]
    탈잉 강의가 무엇인가요?

    • 교내 eclass 비교과 과목에서 신청가능하다.
    • 풀리는 시기가 있으니, 매주마다 확인하자.
    • 한번 신청하면 수강 가능 기간은 넉넉하게 준다.

    2-1. 실무역량향상을 위한 파이썬 기초

    • 위 udemy 강좌의 light 버전이라 생각하면 된다.
  2. 디스커버리 학기 (여름학기에만 개설)
    기초부터 시작하는 파이썬프로그래밍 박희재 교수님


1. 네트워크

1-a. 과목개설 여부

  • 전자 : 인터넷프로토콜(유사), tcp/ip프로토콜 (유사)
    osi7계층 전체에 대해 배우는 과목이 아니므로 유사로 넣었습니다.

  • 미디어 : 데이터통신, 멀티미디어통신(유사)
    데이터 통신은 osi7계층 전반에 대한 내용과 하위계층을 자세하게,
    멀티미디어통신은 상위계층에 대한 내용을 다룬다 생각하시면 됩니다.
    두 과목 모두 듣는 것을 추천드립니다.

1-b. 책

  1. 컴퓨터 네트워킹 하향식 접근, James F. Kurose,Keith W. Ross 저

  2. IT 엔지니어를 위한 네트워크 입문, 고재성,이상훈 저

1-c. 강의


2. 운영체제

2-a. 과목개설 여부

  • 전자 : 운영체제
  • 미디어 : x

2-b. 운영체제 책

  1. 운영체제(공룡책, Siberschatz et. al. 의 Operating System Concepts 10th E)

  2. 그림으로 배우는 구조와 원리 운영체제, 구현회(한빛) 저

2-c. 운영체제 강의

주니온 교수님 강의 : [무료] 운영체제 공룡책 강의 - 인프런 | 강의 (inflearn.com)
https://www.inflearn.com/course/%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C-%EA%B3%B5%EB%A3%A1%EC%B1%85-%EC%A0%84%EA%B3%B5%EA%B0%95%EC%9D%98

2017년도 반효경교수님 강의: 운영체제 - 이화여자대학교 | KOCW 공개 강의
http://www.kocw.net/home/search/kemView.do?kemId=1226304


3. 데이터베이스

학과 내 개설 과목 없음

3-a. 데이터베이스 서적

  1. 데이터베이스 개론, 김연희 저

  2. MySQL로 배우는 데이터베이스 개론과 실습, 박우창, 남송휘, 이현룡 저

개발용 책

  1. Real MySQL, 이성욱 저

  2. Real MariaDB, 이성욱 저

3-b. 데이터베이스 강의

  • 교내 탈잉 강의 쉽게 배우는 데이터분석(sql)
    eclass 내 비교과 과목에서 신청 가능

4. 코딩테스트

자료구조 / 알고리즘

학과 내 개설 과목 없음

4-a. 책

  1. Do it 자료구조 Java or C or 파이썬(입문/ 주)

  2. 이것이 취업을 위한 코딩 테스트다.(심화 / 주)(java, c++, 파이썬)

  3. 그림으로 정리한 알고리즘과 자료구조(보조)

  • 그림으로 정리한 알고리즘과 자료구조의 경우 책이 얇아 면접 전에 가볍게 읽기 좋습니다.

  • 서점(도서관)에 가셔서 이것이 취업을 위한 코딩테스트다를 먼저 펼쳐 보시고 해당 책의 내용이 이해가 간다면 1을 건너뛰고 2부터 시작하셔도 좋습니다.

  • 근데 보통은 1부터 시작하는게 좋습니다.

  • 가장 중요한 것은 져지 사이트에서 문제를 병행하면서 푸셔야합니다. 책만 읽으시면 안좋습니다.

  • 백준 실버를 목표로 진행하시면 좋습니다.

  • 실버3~골드1 사이 문제를 막힘없이 푸실 수 있으면 대부분의 기업 코테 합격선입니다.

4-b. 강의

자료구조 및 알고리즘강의 (권오흠 교수님)
www.youtube.com/channel/UC-cOmaeWLm7Ii7erMQNatvA

교내 디스커버리 학기 강의 (여름학기에만 개설)
파이썬으로 배우는 알고리즘 사고와 자료구조 (신일훈 교수님)

4-c. 져지 사이트 (문제풀이)

  1. 코드업
  2. 백준
  3. 리트코드
  4. 프로그래머스

류호석님 강의 자료
https://github.com/rhs0266/FastCampus
김민상님 강의 및 문제추천
https://github.com/tony9402/baekjoon
바킹독님 코테 강의자료
https://blog.encrypted.gg/category/%EA%B0%95%EC%A2%8C/%EC%8B%A4%EC%A0%84%20%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98


5. 딥러닝(참고)

여기는 cs 기초 과목은 아닙니다.
근데 보통 전자공학관련이면 해당 분야를 가장 많이 활용하기 때문에 정리하여 올려둡니다.

5-a. 강의 개설 여부

5-b. 책[무료]

딥러닝을 이용한 자연어처리 입문 (유원준 외 1명 저)
https://wikidocs.net/book/2155

pytorch로 시작하는 딥러닝 입문 (유원준 외 1명 저)
https://wikidocs.net/book/2788

  • 둘 중에 하나만 택하셔도 됩니다.

  • 딥러닝을 이용한 자연어 처리 책의 경우, 머신러닝도 같이 정리되어 있고 내용도 풍부하여 넣었습니다.
    - 06. 머신러닝 개요 부터 읽으시면 됩니다.

  • 당연히 파이썬 기본 문법에 대한 이해는 있으셔야 합니다.

다 읽고나서 실제 공공데이터로 실습해 보니, 전처리가 막막하다면?
-> https://wikidocs.net/book/4764

5-c. 실습관련

https://aihub.or.kr/problem_contest/nipa-learning-platform

5-d. 학습용 공공 데이터 찾기

https://www.data.go.kr/

0개의 댓글