최종 수정 : 24.12.25
CS 공부 순서
A. 점점 깊이 들어가는 방식
실용적이고 실습 중심적인 접근 방식이라 빠르게 프로그래밍을 시작할 수 있다.
순서 | 목차 | 내용 | |
1 | 프로그래밍 기초 | ● 하나의 프로그래밍 언어 선택 ● 변수, 자료형, 조건문, 반복문과 같은 기본 문법 ● 함수와 객체지향 프로그래밍의 개념 |
|
● 프로그래밍은 모든 CS 지식을 실제로 구현하고 실험해볼 수 있는 도구이다. ● 복잡한 개념들을 직접 코드로 만들어보면서 더 깊이 이해할 수 있다. ● 자료구조, 알고리즘 등을 실제로 구현해볼 수 있다. |
|||
2 | 자료구조와 알고리즘 | ● 기본 자료구조: 배열, 연결리스트, 스택, 큐, 해시테이블 ● 트리와 그래프 구조 ● 정렬과 검색 알고리즘 ● 시간 / 공간 복잡도 분석 |
|
● 효율적인 프로그램을 만들기 위한 기본 틀을 제공한다. ● 문제 해결 능력을 기르는데 도움이 된다. ● 다른 높은 수준의 개념들을 이해하는데 필수적이다. |
|||
3 | 컴퓨터 구조 | ● 컴퓨터의 기본 구성요소 ● CPU 작동 원리 ● 메모리 구조 ● 운영체제 기호 |
|
● 프로그램이 실제로 어떻게 실행되는지 이해할 수 있다. ● 성능 최적화나 디버깅을 할 때 더 깊은 이해가 가능하다. ● 운영체제나 네트워크를 배우기 위한 기초가 된다. |
|||
4 | 네트워크 | ● TCP / IP 프로토콜 ● HTTP / HTTPS ● API의 이해 ● 네트워크 보안 기초 |
|
● 컴퓨터 구조와 운영체제의 지식을 기반으로 더 잘 이해할 수 있다. ● 프로토콜, 패킷, 라우팅 등의 개념이 하드웨어와 운영체제의 이해를 필요로 한다. ● 네트워크 프로그래밍을 하려면 기본적인 프로그래밍 실력이 필요하다. |
|||
5 | 데이터베이스 | ● SQL 기초 ● 데이터베이스 설계 ● CRUD 작업 ● 정규화 |
|
● 데이터 모델링을 위해서는 자료구조의 이해가 필요하다. ● 쿼리 최적화를 이해하려면 알고리즘 지식이 도움된다. ● 실제 서비스 개발에서 필수적으로 사용되는 실용적인 지식이다. |
B. BottomUp 방식
더 체계적이고 학문적인 접근 방식으로 컴퓨터 과학의 기초부터 차근차근 쌓아올릴 수 있다.
순서 | 과목 | 이유 |
1 | 컴퓨터 과학 기본 지식 | ● 컴퓨터가 무엇이고 어떤 원리로 작동하는지에 대한 기본적인 이해가 필요하다. ● 이후 배우는 모든 심화 과정의 기초가 되는 개념들을 먼저 이해해야 한다. ● 이진수, 논리 회로, 프로그래밍 기초와 같은 핵심 개념들이 이후 학습의 토대가 된다. |
2 | 컴퓨터 구조 | ● 컴퓨터의 물리적 구성 요소들이 어떻게 동작하는지 이해해야 한다. ● CPU, 메모리, 캐시 등의 하드웨어 동작 원리는 이후 배우는 모든 소프트웨어의 기반이 된다. ● 컴퓨터의 성능과 한계를 이해하면 더 효율적인 프로그램을 만들 수 있다. |
3 | 운영체제 | ● 컴퓨터 구조를 알아야 운영체제가 하드웨어를 어떻게 관리하는지 이해할 수 있다. ● 프로세스 관리, 메모리 관리, 파일 시스템과 같은 핵심 개념들은 상위 레벨 프로그래밍의 기초가 된다. ● 멀티태스킹, 동기화, 교착상태 등의 개념은 네트워크와 데이터베이스 학습에 필수적이다. |
4 | 자료구조 | ● 운영체제에서 배운 메모리 관리 개념을 바탕으로 데이터를 효율적으로 저장하고 관리하는 방법을 이해할 수 있다. ● 알고리즘과 함께 프로그래밍의 효율성을 높이는 핵심 요소이다. ● 네트워크와 데이터베이스에서 데이터를 다루는 방식을 이해하는데 기초가 된다. |
5 | 네트워크 | ● 운영체제의 프로세스 간 통신 개념이 네트워크 통신의 기초가 된다. ● 자료구조 지식은 패킷의 구조와 라우팅 알고리즘을 이해하는데 필요하다. ● 분산 시스템의 개념은 데이터베이스를 이해하는데 중요하다. |
6 | 데이터베이스 | ● 이전에 배운 모든 개념들이 통합적으로 사용된다. ● 데이터의 저장, 검색, 관리에 필요한 모든 하위 개념들의 이해가 선행되어야 한다. ● 실제 시스템 구축에 있어 가장 상위 레벨의 지식을 다루게 된다. |
'CS 공부 > 기본 지식' 카테고리의 다른 글
컴퓨터 과학에 대하여 (1) | 2024.12.25 |
---|
댓글