[2022년] 컴퓨터공학 대학생 공부 및 면접 대비 자료 추천
컴퓨터공학 공부 자료들 2탄
새로 공부한 것도 있고 바뀐 생각도 있고 새로 알게 된 것도 있어서 "온라인 컴퓨터공학 공부" 글에 이어서 다시 한번 적어봅니당.
* 이전 글: 나의 온라인 컴퓨터공학 공부
예전 글이랑 많이 중복됩니다.
개인적으로 참고해볼 겸 다시 정리해보는 CS(Computer Science), 프로그래밍 공부, 면접, 취준 자료
1. OSSU
https://github.com/ossu/computer-science
- Open Source Society University
- Complete education in computer science using online materials
- 유명한 온라인 강의로 대학교 커리큘럼을 만든 것
2. Free Code Camp
https://github.com/freeCodeCamp/freeCodeCamp#certifications
https://www.youtube.com/freecodecamp
- 굉장히 긴 강의로 CS관련 과목이나 어떤 개발 주제에 대해 올려주는 것
3. TeachYourselfCS (한국어 번역)
https://github.com/minnsane/TeachYourselfCS-KR
원문: https://teachyourselfcs.com
무수히 많은 강의 자료들 중 어떤 것을 들어야 할지 추천해주는 글
- 어떤 과목을 배워야 하며, 왜 배워야 하는가?
- 각 과목 최고의 책 또는 영상 강의는 무엇인가?
저는 운영체제랑 네트워크 등을 공부할 때 참고했습니다.
여기서 추천하는 CS:APP 컴퓨터구조 책도 시스템을 이해하는데 있어서 많은 도움을 받았습니다.
4. 기타 유명한 한국어 사이트
생활코딩
https://opentutorials.org/
- 아무 생각 없이 입문하기 좋은 난이도
인프런
https://www.inflearn.com/
- 타 강의 사이트에 비해 저렴하지만 좋은 강의가 많은 고마운 사이트
- 강의 종류도 여러 개
- 세일도 자주 합니당.
- 영어 자신 있으면 https://www.udemy.com 유데미도 추천합니당.
- 여기도 할인 정말 많이 하니까 참고하세용.
YouTube
- 요즘 유튜브도 좋은 강의 많이 올라오더라고영ㅎㅎ
5. 기타 유명한 해외 Mooc 사이트
여기서 돈 주고 학위 따지 마세요. 크게 의미 없습니다..
광고처럼 결제하라고 뜨는데 대부분 audit(청강) 누르면 무료로 수강할 수 있습니다.
6. 학교에서는 안 가르쳐 주지만 새내기 때 알았으면... 했던 것들
[MIT] Missing Semester
https://missing.csail.mit.edu/
실용적인 것들 많이 알려줍니다.
다시 추천합니당..
- Mac을 사용 중이거나 Shell 환경에 익숙해지고 싶으면 앞부분 들어보시는 것을 추천합니다.
- (Windows도 WSL로 실습 가능합니다)
- CLI 환경에 조금 더 흥미가 생기셨다면 이것도 읽어보세영.
7. GitHub Student Pack
혹시 아직 모르는 분들 계시나요?
등록하세용
대학생이면 다 누릴 수 있어요.
당장 써볼 만한 혜택 몇 가지 정리
Jetbrain 유료 제품도 쓸 수 있어요.
- IntelliJ IDEA
- PyCharm
- CLion
- WebStorm
- 등
Azure, DigitalOcean같은 걸로 무료 Credit 받아서 클라우드 실습도 해볼 수 있어요.
GitHub Pro를 무료로 달 수 있어요.
- 무료로 Static Hosting도 가능해요
GitHub Codespaces
- 무료로 Pro 레벨 접근 권한을 부여해줍니당.
- 군대 가서 사지방 코딩하실 분에게 추천합니다.
- 자동으로 포트 포워딩도 해줘서 편해요ㅎㅎ
GitKraken Client Pro
- 유료 Git용 클라이트 무료로 사용 가능
- $59 값어치 무료로 줍니다
말고도 메일 서비스, CI/CD 툴이나 APM 툴 등 무료로 사용 가능한 것 많습니다.
프로젝트하면서 많이 활용해보세요.
8. 내 취준용 - 이력서, 면접 질문, 면접 대비용 자료
면접 질문 정리
- 현직자분께서 국내 IT기업부터 실리콘벨리 기술면접 문제 해설
- 언어 및 프레임워크 별 인터뷰 질문 정리 및 자료 정리 - 영어
- AI 엔지니어 기술 면접 정리
- 백엔드 면접 질문 정리
- Java, Spring 위주의 백엔드 개발자용
- 프론트엔드 질문 정리
- 취준생이 반드시 알아야 할 프론트엔드 지식들
면접 자료 정리
- 기술 면접 준비를 위한 자료를 정리
- https://github.com/JaeYeopHan/Interview_Question_for_Beginner
- 이 저장소 맨 아래에 "그 외에 좋은 자료"에도 좋은 자료 많습니당.
- 신입 개발자 전공 지식 & 기술 면접 백과사전
- 기술 면접 대비를 위한 기본 개념 정리
- 개발자 인터뷰 질문에 관련된 팁과 최소 개념
- Tech Interview Handbook "지원부터 연봉 협상까지의 자료를 모두 정리한 저장소" - 영어
- FAANG 대비하기 - 영어
- 모든 프로그래머가 알아야 하는 것 - 영어
- 대기업 Software Enigineer가 되기 위한 계획법 - 영어
- google.com을 검색했을 때 일어나는 일(네트워크부터 브라우저단까지) - 영어
- 어떤 것을 했을 때 생기는 일
- 좋은 개발팀을 만든데 도움이 되는 자료
제가 공부할 때 도움받은 자료들
디자인 패턴 공부
- https://refactoring.guru/ko/design-patterns/catalog
- 스터디할 때 참고 많이 한 자료인데 한국어 번역판이 생겼네요!
- https://github.com/DovAmir/awesome-design-patterns
- 언어별로 정리되어 있습니다.
시스템 디자인
- https://github.com/karanpratapsingh/system-design
- 정리 정말 잘되어 있습니당..
- https://github.com/donnemartin/system-design-primer
- 대규모 시스템을 설계하는 법을 배울 수 있는 곳
- "가상 면접 사례로 배우는 대규모 시스템 설계 기초" 책
- System Design Interview 1판 번역본입니다. 번역본은 없지만 2판도 나왔더라구영..
좋은 이력서 작성 팁
- https://github.com/9j/awesome-korean-resume
- https://github.com/codingmonster-tv/Awesome_Resume_Portfolio
주니어 개발자 채용 정보
- 주니어 개발자 채용 정보
- 매일 업데이트되는 채용 공고
- 기타 사이트
- 인프런의 랠릿: https://www.rallit.com/positions
- 프로그래머스 채용(데브매칭 등): https://business.programmers.co.kr/business/introduce_recruit
9. 알고리즘 문제 풀기 PS(Problem Solving) && CP(Competitive Programning)
일반적인 PS(Problem Solving)
Algorithms 책
근본 CLRS: http://www.yes24.com/Product/Goods/13776831
- 저자 네 명의 이름의 머릿글자를 따서 CLRS로 줄여서 많이 부릅니다.
- 양(1,348쪽)에 비해 저렴한 편이라고 생각. 두고두고 보기 좋은 책
- MIT 공개 알고리즘 강의랑 천천히 공부하기 좋습니다.
Foundations of Algorithms - Richard Neapolitan
- 설명이 깔끔하고 예제도 이해하기 좋았습니다.
- 사실 꼼꼼하게 읽은 건 앞부분밖에 없었는데 설명이 좋았아요..ㅎㅎ
PS 입문 책
동빈북 http://www.yes24.com/Product/Goods/91433923
- 알고리즘 강의를 들은 적이 없고 코테가 정말 처음일 때
- 알골 좀 해보신 분께는 비추합니다.
PS 사이트
- 백준 랭킹으로 느끼는 쏠쏠한 재미.. https://solved.ac/
- 문제 풀이집 추천: https://github.com/encrypted-def/basic-algo-lecture
코드업 https://codeup.kr/index.php
- 처음 시작하면 기초 100제부터 풀어보는 것도 괜찮습니다.
- C언어 100제: https://codeup.kr/problemsetsol.php?psid=23
- 파이썬 100제: https://codeup.kr/problemsetsol.php?psid=33
- 해외 PS 사이트
- 특이한 점은 SQL문제도 있고 속도랑 메모리로 랭킹 몇 위인지 알려줍니다.
- https://github.com/codedecks-in/LeetCode-Solutions
프로그래머스 https://programmers.co.kr/
- 채용과 관련된 것이 많으며 코테보면서 한 번은 접해봤을 사이트
- 유명한 문제(카카오), 챌린지, 코딩테스트 연습 등 괜찮은 콘텐츠가 계속 늘어나는 중
- 5 레벨 다 정복하면 고수..
- https://github.com/codeisneverodd/programmers-coding-test
대회, 취미 알골, CP(Competitive Programming)
CP 책
- 종만북 http://www.yes24.com/Product/Goods/8006522
- PS 괴물들이 추천하는 책. CP 노하우를 잘 정리해서 풀어놓은 책.
- 일반적인 코테 공부용은 아닙니당..
CP 사이트
- 대회 좋아하면 같이 코포 친구랑 버추얼도 해보면서 도전해보세요.
- 백준이랑 연동하면 닉네임에 색칠 가능!
- 문제가 깔끔해서 좋음.
- 코드포스 문제처럼 엄청 길지 않고 ex. "영미가
를 하는데 ~를 하고자 한다. 이때~하는데 ...." 짧고 명료함.
구글 코딩 Contest https://codingcompetitions.withgoogle.com/kickstart
- 잘 풀면 티셔츠 줌
자료
- https://github.com/lnishan/awesome-competitive-programming
- 탑코더 등 마저 언급 못한 CP 관련한 대회 및 자료들
알고리즘 대회 안 까먹는 Tip
https://competitiveprogramming.info/calendar
여기서 캘린더 구독하면 언제 Contest 열리는지 모두 모아서 볼 수 있습니다.
진짜 잡다한 내용
개인적인 추천 내용입니다.
위에 넣기 애매해서 뺐습니다.
매우 주관적인 의견이니 참고만 해주세요.
1. 기타 괜찮은 자료 추천
1-1. 다양한 법칙들
프로젝트를 하다 보면 프로그래밍하며 DRY, KISS, SOLID부터 시작해서 나중에 프로젝트 관리까지 하다보면 파레토 등 다양한 법칙을 접하게 됩니다.
개발을 이야기할 때 흔히 논하는 법칙들을 정리한 저장소입니다. 개인적으로 TOPCIT 공부할 때도 도움이 많이 됐습니다.
https://github.com/dwmkerr/hacker-laws
- 괜찮다고 생각하시면 한국어 번역도 참여해보세용.
1-2. 운영체제 가볍게 복습하기 좋은 책
https://pages.cs.wisc.edu/~remzi/OSTEP/
공룡책(1000쪽 이상..) 다시 복습하라고 하면 한숨밖에 안 나오는데 OSTEP으로 PDF를 한 개씩 돌파하면서 공부할 수 있었습니다. ㅎㅎ
설명도 쉽고 내용도 충실하고 가볍게 읽기 좋습니다. 무료 오픈소스이고 한국어 번역본도 있습니다.
1-3. 프로젝트할 때 무료로 쓸만한 자료들
SaaS, PaaS, IaaS 다 정리되어 있습니닷..
캡스톤 때 쓸만하지 않을까영?
https://github.com/ripienaar/free-for-dev
2. 도커, 쿠버네티스
가끔 모집 공고를 보면서 친구랑 항상 얘기하는 것입니다.
신입에게 도커까지는 인정하겠는데 쿠버네티스나 카프카 같은 것을 요구하는게 맞나...
어느 정도 요구하는 걸깡..
저는 취준보다는 내부 트래픽을 어떻게 관리하고 파드를 다루지 궁금해서 개인적인 흥미로 공부하는 것 같아요.
이력서에는 무서워서 못 적을 것 같아요 ㅎㅎ...
쿠버네티스 공부한다고 AWS EKS 같은 걸 며칠 동안 켜 두면 몇십만 원은 그냥 날아갑니다..
책
쿠버네티스를 공부하신다면 공식 튜토리얼이 정말 잘 되어 있기 때문에 책은 따로 구매하시지 않으셔도 됩니다. 단지 자동 번역을 돌린 것 같은데 한국어로 보면 좀 어색할 수 있습니다.
https://kubernetes.io/ko/docs/tutorials/kubernetes-basics/
기초 실습
쿠버네티스가 구축이 좀 까다롭습니다. 처음 하면 구축하는 데에만 하루 넘게 걸립니다.
간단한 실습은 minikube와 kubectl을 깔아서 싱글 노드 환경으로 할 수 있습니다.
https://kubernetes.io/ko/docs/tutorials/kubernetes-basics/create-cluster/cluster-intro/
minikube는 편한 실습을 위해 만든 싱글 노드 클러스터기 때문에 공부할 때 편리하게 사용할 수 있습니다.
확장팩(Addons) 기능도 있어서 대시보드나 메트릭 서버같이 주로 같이 쓰는 것도 편하게 활성화시켜서 함께 실습하기 좋았습니다.
삽질하다가 꼬이면 minikube delete 명령어로 바로 초기화할 수도 있습니다.
다만 가볍도 싱글 노드이기 때문에 실제 환경이랑은 차이가 있습니다.
- 말고도 Docker Desktop을 쓰고 계신다면 설정창에 들어가서 쿠버네티스를 활성화해서 실습할 수도 있습니다.
멀티 노드 실습
이러다가 멀티 노드 환경으로 진짜 쿠버네티스를 맛보고 싶으시면 넘어가는 겁니닷..
https://labs.play-with-k8s.com/
- 이런 실습 사이트로 간단하게 맛볼 수 있긴 하지만 매우 불안정합니다.
- 미국 밤 시간에 하면 그나마 접속은 된다고 합니다.
실제 환경 실습 방법으로는 두 가지가 있습니다.
1. 직접 인스턴스 여러 개로 쿠베네티스 구축 후 실습
직접 구축하는게 까다로웠습니다.
포트 개방, 방화벽 설정, kubeadm 설정, iptable 뚫어주기, bridge 허용, 스왑 메모리 끄기, CNI 설정, kubeadm join시키기, ...
생각보다 쉽지 않았습니다. 쿠버네티스 공식 문서에 안내되어 있으니 도전해보고 싶은 분은 해보세영!
나름 꿀잼이었습니다.
2. 돈 많이 주고 관리형 쿠버네티스로 실습
초보자의 경우 직접 구축하기가 쉽지 않기 때문에 실습을 바로 하기 편하게 관리형 쿠버네티스를 쓰는 겁니다.
직접 구축하는 것과 차이는 조금 있을 수 있습니다(ex. AWS EKS는 마스터 노드 접근을 막습니다.)
실제 기업에서도 EKS같은 관리형 쿠버네티스를 많이 쓴다고 합니다.
GitHub Student Pack 같은 걸로 받은 credit으로 비싼 관리형 쿠버를 껐다키며 실습하는 것을 추천합니다.
쓸 때만 쓰고 안 쓸 때는 꺼두면서 최대한 돈을 아끼는 겁니다.. ㅠ
도움이 되었으면 좋겠습니다. ㅎㅎ
댓글
이 글 공유하기
다른 글
-
(2023년 5월) 개발, CS 공부, 자격증 정보 공유
(2023년 5월) 개발, CS 공부, 자격증 정보 공유
2023.05.27 -
[AWS] Certified Cloud Practitioner 자격증 후기 (할인 받는 법)
[AWS] Certified Cloud Practitioner 자격증 후기 (할인 받는 법)
2023.01.24 -
웹 애플리케이션 공동 명의로 저작권 등록하는 법
웹 애플리케이션 공동 명의로 저작권 등록하는 법
2022.11.07 -
Confluence에 RSS 피드 긁어와서 최신 블로그 글 띄우는 법
Confluence에 RSS 피드 긁어와서 최신 블로그 글 띄우는 법
2022.06.24