컴퓨터 과학에 대한 강력한 이해를 구축하도록 설계된 포괄적 인 가이드 인 Computer-Science-Foundation-Roadmap을 탐색하십시오. 프로그래밍 기초에서 데이터 구조 및 운영 체제와 같은 고급 개념에 이르기 까지이 로드맵은 권장 비디오 리소스, 실습 연습 및 영감을주는 프로젝트를 갖춘 구조화 된 학습 경로를 제공합니다. 초보자와 지식을 심화시키기위한 사람들에게 적합한이 저장소는 컴퓨터 과학 및 관련 분야의 야심 찬 전문가를위한 귀중한 리소스 역할을합니다.
이 로드맵을 제작하는 동안 저의 주요 초점은 더 쉬운 학습 경로를 촉진하기위한 주요 학습 리소스로서 YouTube 비디오에 중점을 두었습니다. 그러나 학습자는 이러한 자원에만 국한되지 않는다는 점에 유의해야합니다. 컴퓨터 과학은 광범위한 분야이며,이 로드맵에서 나는 그 폭을 캡슐화하려고 시도했습니다. 그래서, 다이빙을하고 학습 여행을 즐기십시오!?
초보자를위한 파이썬 - 1 시간 안에 파이썬을 배우십시오
파이썬 배우기 - 초보자를위한 전체 코스 [튜토리얼]
초보자 파이썬 프로그래밍 올인원 튜토리얼 시리즈 (6 시간!)
관행
Hello World : "Hello, World!"인쇄 프로그램을 작성하십시오. 콘솔로
두 숫자 추가 : 사용자가 입력 한 두 개의 숫자를 추가하고 결과를 표시하는 프로그램을 만듭니다.
사각형의 영역 : 사용자가 제공하는 길이와 너비를 기반으로 사각형의 영역을 계산하고 표시하는 프로그램을 만듭니다.
섭씨 To Fahrenheit : 섭씨의 온도를 화씨로 변환하는 프로그램을 만듭니다. 이 프로그램은 섭씨의 온도를 사용자로부터 입력하고 변환을 수행하며 두 자리 자리로 결과를 표시해야합니다.
두 숫자를 바꾸십시오 : 세 번째 변수를 사용하지 않고 두 개의 숫자를 교환하는 프로그램을 만듭니다. 사용자는 두 개의 숫자를 입력하라는 메시지가 표시되며 프로그램은 값을 교환하여 원래 값이 바뀌고 숫자가 효과적으로 반전되도록해야합니다.
음영 영역 : 새겨진 원이있는 사각형의 음영 영역의 영역을 계산하십시오. 새겨진 원의 반경 (r)이 주어지면 정사각형의 면적을 원의 면적을 뺀 것을 찾으십시오. 그늘진 지역의 면적을 정확하게 나타 내기 위해 두 자리 자리 자리로 결과를 제시합니다. 
사용자 정보 등록 : 이름, 성, 연령, 성별, 학생 상태, 미터 높이 및 킬로그램의 체중을 포함하여 사용자 정보를 수집하고 등록하는 프로그램을 개발하십시오.
유효한 삼각형 : 주어진 길이 a, b 및 c를 가진 3 개의 스틱을 사용하여 유효한 삼각형을 형성 할 수 있는지 여부를 결정하는 프로그램을 만듭니다. 프로그램은 스틱의 길이를 사용자의 입력으로 가져 와서 삼각형 불평등을 만족하는지 확인해야합니다. 조건이 충족되면 "삼각형이 형성 될 수 있거나"트라이앵글을 형성 할 수 없다 "는 결과를 표시하십시오.
등급 분류 : 사용자로부터 입력 (0-100 범위 내)의 입력으로 수치 등급을받는 프로그램을 개발하고 등급을 사전 정의 된 문자 등급 범주로 분류합니다. 이 프로그램은 IF-ELSE 문을 사용하여 일반적인 등급 범위 (예 : "A"90-100 등급, "B"등 80-89 등급 등)를 기준으로 적절한 문자 등급을 결정해야합니다. 분류 후 계산 된 문자 등급을 사용자에게 표시하십시오.
연속으로 별표를 표시하십시오 : 입력으로 정수 값 W를 취하는 프로그램을 작성하고 단일 행으로 별표 (*) 문자 w 시간을 표시합니다. 이 프로그램은 W의 값을 사용하여 연속적으로 연속으로 표시 할 별표 수를 결정해야합니다. w가 0 <w <80의 범위 내에 있는지 확인하십시오. 사용자가 w = 5로 들어가면 프로그램에 표시됩니다. ****
사각형에 별표를 표시 : 입력을 입력하고 W 열과 H 행이있는 사각형 형식의 별표 (*) 문자 배열을 표시하므로 두 개의 정수 값 W와 H를 취하는 프로그램을 개발하십시오. 프로그램은 W와 H의 값을 사용하여 사각형의 치수를 결정하고 그에 따라 별표로 채워야합니다. w가 0 <w <80의 범위 내에 있고 h가 0 <h <24의 범위 내에 있는지 확인하십시오.
사용자가 w = 4 및 h = 3을 입력하면 프로그램에 표시됩니다.
****
****
****
오른쪽 변형 삼각형 패턴 : 주어진 높이 (h)의 오른쪽 변형 삼각형 패턴을 표시하는 프로그램을 만듭니다.
사용자가 H = 4로 들어가면 프로그램에 표시됩니다.
*
**
***
****
오른쪽 변형 삼각형 패턴 (역) : 주어진 높이 (h)로 거꾸로 된 오른쪽 변형 삼각형 패턴을 표시하는 프로그램을 개발하십시오.
사용자가 H = 4로 들어가면 프로그램에 표시됩니다.
****
***
**
*
피라미드 패턴 : 주어진 높이 (h)의 피라미드 패턴을 표시하는 프로그램을 만듭니다.
사용자가 H = 4로 들어가면 프로그램에 표시됩니다.
*
***
*****
*******
중공 삼각형 패턴 : 이와 같이 주어진 높이 (h)로 중공 삼각형 패턴을 인쇄하는 프로그램을 개발하십시오.
사용자가 H = 5로 들어가면 프로그램에 표시됩니다.
*
**
* *
* *
*****
숫자 삼각형 패턴 : 예를 들어 주어진 높이 (h)로 숫자 삼각형 패턴을 만드는 프로그램을 작성하십시오.
사용자가 H = 4로 들어가면 프로그램에 표시됩니다.
1
12
123
1234
Pascal 's Triangle : Pascal의 삼각형의 첫 번째'H '행을 생성하고 표시하는 프로그램을 만듭니다. 수학적 패턴입니다.
사용자가 H = 4로 들어가면 프로그램에 표시됩니다.
1
1 1
1 2 1
1 3 3 1
Floyd 's Triangle : 각 행에 연속 숫자가 포함 된'H '행으로 Floyd's Triangle을 인쇄하는 프로그램을 개발합니다.
사용자가 H = 4로 들어가면 프로그램에 표시됩니다.
1
2 3
4 5 6
7 8 9 10
다이아몬드 패턴 : 주어진 높이 (h)를 사용하여 별표 (*)를 사용하여 다이아몬드 패턴을 표시하는 프로그램을 만듭니다.
사용자가 H = 3에 들어가면 프로그램에 표시됩니다.
*
***
*****
***
*
모래 시계 패턴 : 예를 들어 주어진 높이 (H)로 모래 시계 패턴을 인쇄하는 프로그램을 작성하십시오.
사용자가 H = 3에 들어가면 프로그램에 표시됩니다.
*****
***
*
*
***
*****
fizzbuzz : 일련의 숫자 (일반적으로 1에서 n까지)를 통해 반복하는 프로그램을 작성하고 각 숫자에 대해 다음 작업을 수행합니다.
평일 찾기 : "DD/MM/YYYY"형식으로 주어진 날짜의 주중을 결정하는 프로그램을 개발하십시오. 프로그램은 날, 월 및 연도를 포함하여 입력으로 날짜를 가져 와서 해당 평일을 계산해야합니다. 도약 년을 설명하고 제공된 날짜에 대해 주중 (예 : "월요일," "화요일")의 이름을 제공해야합니다.
사용자가 다음과 같이 날짜를 입력한다고 가정하십시오 : 15/11/2023.
이 프로그램은 2023 년 11 월 15 일 수요일이며 결과를 다음과 같이 제공해야합니다.
The weekday for 15/11/2023 is Wednesday.
계산기 기능 : 기본 산술 작업 (첨가, 뺄셈, 곱셈 및 부서)을 수행하는 간단한 계산기 프로그램을 구축합니다. 각 작업에 대한 별도의 기능을 만들어 코드를 구성하십시오 (예 : 추가, 빼기, 곱하기, 분할). 이 기능을 호출하여 사용자 입력을 기반으로 계산을 수행하십시오.
할 일 목록 기능 : 사용자가 완료된대로 작업을 추가,보기 및 표시 할 수있는 할 일 목록 응용 프로그램을 만듭니다. 작업 추가, 목록 표시 및 작업을 마킹하기위한 기능을 구현하십시오. 기능을 활용하여 코드를 구성하고 쉽게 확장 할 수 있도록합니다.
배열의 최대 숫자 : 정수 배열에서 최대 숫자를 찾고 표시하는 프로그램을 작성하십시오. 배열을 통해 반복 할 알고리즘을 구현하고 발견 된 최대 값을 추적하십시오.
문자열 반전 : 문자열을 입력으로 취하고 문자열의 문자를 뒤집는 프로그램을 만듭니다. 캐릭터를 역 순서로 재 배열하여 반전 된 문자열을 생성하는 알고리즘을 개발하십시오.
데이터 정렬 : 정렬 알고리즘을 구현하여 정수 목록을 오름차순 순서로 정렬합니다. 오름차순 정렬을 주어진 데이터에 적용하고 정렬 된 결과를 표시하는 프로그램을 개발하십시오.
배열에서 최소 숫자 찾기 : 정수 배열에서 최소 번호를 찾아서 표시하는 프로그램을 작성하십시오.
String Palindrome Checker : 주어진 문자열이 Palindrome인지 확인하는 프로그램을 만듭니다 (동일한 전진 및 뒤로 읽습니다). 문자열의 문자를 양쪽 끝에서 비교하는 알고리즘을 개발하여 Palindrome인지 확인하십시오.
배열에서 발생하는 경우 : 배열에서 특정 요소의 발생을 계산하는 프로그램을 개발합니다. 배열을 통해 반복하는 알고리즘을 구현하고 요소가 나타나는 횟수를 추적합니다.
배열의 평균 (평균) 찾기 : 숫자 배열의 평균 (평균)을 계산하고 표시하는 프로그램을 작성하십시오. 배열의 요소를 요약하기 위해 알고리즘을 개발하고 평균을 찾기 위해 요소 수로 나눕니다.
배열에서 요소 검색 : 배열에서 특정 요소를 검색하고 찾은 경우 인덱스를 반환하는 프로그램을 만듭니다. 원하는 요소를 찾기 위해 배열을 반복하는 알고리즘을 구현하십시오.
문자열로 단어 계산 : 주어진 문자열의 단어 수를 계산하는 프로그램을 작성하십시오. 단어 경계를 식별하고 문자열의 단어를 계산하는 알고리즘을 개발하십시오.
Factorial Calculation : 주어진 정수의 요인을 계산하는 프로그램을 구현하십시오 (예 : 5! = 5 * 4 * 3 * 2 * 1). 계승 계산을 수행하기위한 알고리즘을 개발하십시오.
제곱근 : 지정된 정밀도 'p'로 양수 'n'의 제곱근을 계산하는 함수를 개발하십시오. 이 기능은 이진 검색 방법을 사용하여 제곱근을 'P'소수점으로 근사해야합니다.
최소 번호를 찾으십시오 . 링크 : https://www.hackerrank.com/contests/w30/challenges/find-the-minimum-number/problem
추측 게임 : 사용자가 무작위로 생성 된 숫자를 추측 해야하는 추측 게임을 만듭니다.
주어진 숫자가 프라임인지 아닌지 확인하는 프로그램을 프라임으로 구현하십시오.
같은 크기의 두 행렬을 추가하십시오. 같은 크기의 두 개의 행렬을 추가하는 프로그램을 만듭니다. 사용자는 행렬의 치수 (행 및 열)를 입력 한 다음 두 행렬에서 각 요소의 값을 제공해야합니다. 귀하의 프로그램은 행렬이 추가 차원을 추가하고 결과 행렬을 표시하는지 확인해야합니다.
두 개의 행렬에 곱하십시오. 두 행렬을 곱한 프로그램을 만듭니다. 사용자는 두 행렬의 치수 (행 및 열)를 입력하고 두 행렬에서 각 요소의 값을 제공해야합니다. 프로그램은 행렬에 곱하기에 호환 된 치수가 있고 결과 행렬을 표시하는지 확인해야합니다.
프로젝트
학생을위한 대화식 산술 학습 게임을 구축하십시오
콘솔 기반 뱀 게임
데이터 구조 및 알고리즘을 공부하는 방법 (자체 가르침으로)
초보자를위한 알고리즘 - 내가 가르친 방법
15 분 안에 데이터 구조 및 알고리즘
데이터 구조는 고급 과정에서 쉬운 과정 - Google 엔지니어의 전체 자습서
연습 :
Input:
nums = [8, 7, 2, 5, 3, 1]
target = 10
Output:
Pair found (8, 2)
or
Pair found (7, 3)
Input:
nums = [5, 2, 6, 8, 1, 9]
target = 12
Output: Pair not found

프로젝트 :
HashTable 이라는 클래스를 설계하고 구현하십시오.insert ) : 키 값 쌍을 해시 테이블에 삽입하는 메소드를 구현하십시오. 키가 이미 존재하는 경우 해당 값을 업데이트하십시오.get ) : 주어진 키와 관련된 값을 검색하는 메소드를 구현하십시오. 키를 찾을 수없는 경우 결석을 나타내는 지정된 값 (예 : None 또는 null )을 반환하십시오.delete ) : 제공된 키를 기반으로 해시 테이블에서 키 값 쌍을 삭제하는 메소드를 구현하십시오.Linux는 무엇입니까?
Linux는 무엇입니까? -Linux가 설명했습니다
Linux 디렉토리는 100 초 만에 설명되었습니다
연습 :
모든 Linux 사용자가 알아야 할 상위 20 개의 명령
초보자를위한 10 개의 Linux 터미널 명령
Linux Ubuntu의 기본 터미널 명령 (초보자를위한 Ubuntu 튜토리얼)
연습 :
mkdir 명령을 사용하여 데스크탑에서 'foo'라는 디렉토리를 만듭니다. cd 사용하여 'foo'디렉토리로 이동하고 mkdir 사용하여 'bar'라는 서브 디렉토리를 만듭니다. mv 명령을 사용하여 'bar'디렉토리 내부의 'path.txt'파일의 이름을 'pwd.txt'로 바꿉니다. mkdir 사용하여 'tmp'라는 서브 디렉토리를 만듭니다. touch 명령을 사용하여 'file1.c', 'file2.cpp'및 'file3.py'라는 세 가지 파일을 만듭니다. cp 명령을 사용하여 'tmp'디렉토리에서 'bar'디렉토리에 모든 파일을 복사하십시오. rm 명령을 사용하여 모든 내용이있는 'TMP'디렉토리를 제거하십시오. ls 명령을 사용하여 적절한 옵션을 사용하여 'Bar'디렉토리에 모든 파일 (숨겨진 파일 포함)을 나열하십시오. > 연산자를 사용하여 출력을 'report.txt'라는 새 파일로 리디렉션하십시오. r 옵션이있는 grep 명령을 사용하여 홈 디렉토리에서 'foo'또는 'bar'가 포함 된 모든 줄을 검색하십시오. wget 명령을 사용하여 지정된 URL (https://raw.githubusercontent.com/dwyl/english-words/master/words.txt)에서 파일을 다운로드하십시오. grep 명령을 사용하여 최근 다운로드 된 파일 (Words.txt)에서 'John'이라는 단어를 검색하십시오. 연속선 번호와 함께 'John'이 포함 된 선을 표시하십시오. 100 초 만에 강타
쉘 스크립팅 충돌 코스 - 초보자 수준
프로젝트 :
진행 상황 에코로 명령 기록에서 스크립트를 생성하십시오.
history.txt 의 명령 순서 (이전 연습 작업의 결과)를 echo 문을 추가하여 진행 상황을 표시하여 쉘 스크립트 ( script.sh )로 변환합니다.history.txt (이전 연습 작업의 결과) 파일을 열고 명령을 신중하게 검토하십시오.script.sh 라는 새 파일을 만듭니다.history.txt 에서 명령을 복사하여 script.sh 넣습니다.echo 문을 추가하여 시각적 진행 상황 표시를 제공하십시오.echo 문장이 추가 된 script.sh 의 예제 템플릿입니다. #! /bin/bash
# Displaying current progress
echo " Creating 'foo' directory on Desktop... "
mkdir ~ /Desktop/foo
# Displaying current progress
echo " Creating 'bar' directory inside 'foo'... "
cd ~ /Desktop/foo
mkdir bar
# Displaying current progress
echo " Creating 'path.txt' and inserting absolute path... "
echo " $( cd ~ /Desktop/foo/bar && pwd ) " > path.txt
# (Repeat for each command)
# Displaying final progress
echo " Script execution completed! "script.sh 파일을 데스크탑 폴더에 저장하십시오.script.sh 포함 된 디렉토리로 이동하십시오.chmod +x script.sh 로 스크립트 실행 파일을 만듭니다../script.sh 로 스크립트를 실행하십시오.echo 문은 각 명령의 실행 진행을 시각화하는 데 도움이됩니다. 화면의 스크린 샷을 캡처합니다
# User input for time interval
Enter the time interval for taking screenshots (in seconds): 60
# Script output during execution
Creating folder: screenshot data
Creating folder: 2022-03-28
Capturing screenshot: Screen Shot 2022-03-28 at 17.48.06.jpg
Capturing screenshot: Screen Shot 2022-03-28 at 17.49.06.jpg
...screenshot.sh 로 저장하십시오.chmod +x screenshot.sh 로 실행할 수 있습니다../screenshot.sh 로 스크립트를 실행하십시오. 초보자를위한 Git & Github 충돌 과정
초보자를위한 Git 및 Github 튜토리얼
초보자를위한 GIT 튜토리얼 : 명령 줄 기초
초보자를위한 Git 및 Github- 충돌 코스
프로젝트 :
GIT 설치 : 컴퓨터에 GIT를 설치하십시오.
GIT 구성 : GIT 사용자 이름 및 이메일을 설정하십시오.
로컬 저장소 생성 :
git init변경 및 커밋 변경 : 스테이징 영역에 파일을 추가하고 저장소에 변경 사항을 커밋합니다.
git add .
git commit -m " Initial commit "저장소 상태보기 : 저장소 상태를 확인하십시오.
git status Readme.md 만들기 : 프로젝트에 대한 README.md 파일을 만듭니다.
README.MD에 자신에 대해 쓰십시오 : 자신에 대해 쓰십시오
README.MD를 장식하십시오 : 형식, 헤더, 총알 포인트 또는 가독성을 향상시키는 기타 요소를 추가하여 README.md 파일의 미학을 향상시킵니다.
변경 사항 : GIT를 사용하여 Stage를 사용하여 README.md 파일에 변경 사항을 커밋합니다.
의미있는 커밋 메시지 작성 : 커밋의 목적을 요약 한 설명적이고 의미있는 커밋 메시지를 제공하십시오.
커밋 기록보기 : 저장소의 커밋 기록을보기.
git loggithub 계정 만들기 :
GitHub에서 원격 저장소 생성 :
로컬 저장소를 GitHub에 연결하십시오.
git remote add origin < repository_url >
git branch -M main
git push -u origin main저장소 복제 :
git clone < repository_url >지점 만들기 :
git branch < branch_name >
git checkout < branch_name >분기 간 전환 :
git checkout < branch_name >지점 병합 :
git checkout < target_branch >
git merge < source_branch >병합 충돌 해결 :
리모컨에서 변경 사항을 당기기 :
git pull origin main원격으로 변경 사항을 푸시하십시오.
git push origin < branch_name >풀 요청 생성 및 적용 :
저장소 포크 :
클론 및 포크 리포지토리에 기여하십시오.
git clone < forked_repository_url >
# Make changes
git add .
git commit -m " Description of changes "
git push origin < branch_name >풀 요청 검토 및 병합 :
Computer Science Foundation 로드맵 © 2023 By Saidamir Botirov는 CC By-SA 4.0에 따라 라이센스가 부여됩니다.