어떻게 완전히 자율 학습을 컴퓨터 과학?

는 완전히 자기 가르쳐 프로그래머,나는 그것을 수 있다면 나는 더 나은 자신에 의해 자기 배우는 컴퓨터 과학 과정을 가르치는 일반적인 CS grad.

을 찾는 다양한 리소스에 인터넷되기 쉽,거기입니다 물론MIT open course ware고 있는 코스에는 어떤 코스 스탠포드에서와는 다른 대학입니다. 다른 많은 리소스를 열 주위에 흩어져 인터넷 및 몇 가지 좋은 도서는 반복적으로 권장합니다.

나는 많이 배우지만,내 연구가 심화되는 정말입니다! 면 내가 사랑이 어딘가에,내가 찾을 수있는 경로를 따라야 한하고 스택해야 자신을 제한할 수 있도록 해야에 대해 무엇우수한부품의 컴퓨터과학을 공부 하고,그 체계적으로 접근 방식 그 나는't.

문제와 위키백과 그't tell you what's 필수적이지만 주장에 대한 완전한 참조.

MIT open course ware에 대한 컴퓨터 공학과 전기 Engg. 는 거대한 과정의 목록은 또한 당신이 어떤 과정은 필수적이고 무엇을 선택사항으로 인당's interest/요구 사항입니다. 내가 발견한 언급이 없는 순서 하나를 공부해야 하는 다른 주제입니다.

가 목록을 만들 수 있다는 따라,다음과 같이 이미 하나

SUBJECTS                                                        DONE

Introduction to Computer Science                                  *
Introduction to Algorithms                                        *
Discrete Mathematics                   
Adv. Discrete Mathematics
Data structures                                                   *
Adv. Algorithms
...

으로 명확하게 볼 수 있는,내가 조금 생각 어떤 특정목 컴퓨터 과학로 구성되어 있습니다.

그것은 것이 큰 도움이 되는 경우에도,누군가가 지적하는 필수 코스 MIT 에서 Course ware(+필수 과목에 존재하지 않 MIT OCW)에서 권장하기 위해 연구하고 있습니다.

나는'll 목록을 게시물 내가 이미 이를 통해 갔다(그리고 나는't 얻을 내가 무엇을 찾고 있었다)

https://softwareengineering.stackexchange.com/questions/49557/computer-science-curriculum-for-non-cs-major 최고 대답을 말하지 않't cse 연구

https://softwareengineering.stackexchange.com/questions/110345/how-can-a-self-taught-programmer-learn-more-about-computer-science -포인트를 MIT OCW

https://softwareengineering.stackexchange.com/questions/49167/studying-computer-science-what-am-i-getting-myself-into

https://softwareengineering.stackexchange.com/questions/19912/overview-of-computer-science-programming

질문에 대한 의견 (10)
해결책

나는'봤어요 일부는 과정에서 물질 MIT,그리고 그것놀랍게도 나쁜. 그들은 교재하는 데 필요한 VC5,송이의 암시적 전역 변수,전달하는 색상으로"블루"신의 32 비트 ARGB 자 4x[0,1]수레,는 종류의 것입니다. 나't 신뢰 교육 과정 또는 코드에서 가져오기 때문에 큰 이름 대학교도 있습니다.

내 CS 학위(대학 상위 10 위해 영국에서 CS)구성:

첫 해:

  1. OOP-의 기본 슈퍼
  2. 컴퓨터 시스템-재료,바이너리 정수 표현입니다.
  3. 기본적인 관계형 데이터베이스 이론
  4. 수학 CS 에 대한 간단한 2D 및 3D 형상입니다.
  5. 조금 HTML/JS-자's stuff
  6. 똑같이의 작은 조금 PHP.
  7. 약간의 기능적인 프로그래밍

두 번째 해:

  1. 법적 문제에 컴퓨팅-물건처럼,법률의 주위에 회귀 사용자 데이터의 보호
  2. 프로그래밍 언어-촘스키의 계층 구조와 덮었 lexing
  3. 운영 체제 네트워크 및 인터넷 주로 재료 가상 메모리고는 페이징,IP 스택
  4. 2D 컴퓨터 그래픽의 대부분 그냥을 증명하는 정리의 기초 수학
  5. 인공 지능의 기본적인 설명을 neural networks,Bayesian 믿 시스템 etc.
  6. 요구 분석-짧은 개요 UML, 기능 작동하지 않는 요구 사항입니다.
  7. 팀 프로젝트

세 번째 해:

  1. 알고리즘을 분석-복잡도 이론,대부분
  2. 구현 프로그래밍 언어의 LL/LR 분석 기법 CFGs,그리고 이러한 것들입니다.
  3. 소프트웨어 프로젝트 관리에 폭포/Agile 모델
  4. 국제 컴퓨팅-유니코드와 다른 지역화 재미
  5. Advanced AI-don't 알고,정직하게,그리고 나는've 가지고 시험에 빨
  6. 3D 컴퓨터 그래픽의 대부분,다시 정리를 증명하는 대 회전 행렬한
  7. 에이전트를 기반으로 시스템에 대해 주로 비동기 에이전트 통신 에 도달하는 그룹 결정,등등.
  8. 마이크로프로세서 응용 프로그램-디지털 신호 처리
  9. 로봇 다룹 물건처럼 컴퓨터 비전과 로봇의 의사 결정 기에 높은 수준

당신이'll notice,거의 모든이"기초"의 무언가를하고 거의 아무것으로 덮여 유용합니다.

는 물건이었고 실제로 가치가고,필수적이다:

  1. OOP-다음 몇 가지보다,또는 그 이상을 바라고 있습니다
  2. 프로그래밍-는 또한 몇 가지 더 있습니다. 을 선택하려고 언어인 C++과 C#곳에서 당신이't 을 다시 배우 구문과 도구,등,모두 커버하는 스타일입니다.
  3. OS 부-가상 메모리에 대해 알고 좋은 같은 커널 모드 vs 사용자는 모드입니다. Skip 세분화 및 IP 스택입니다.
  4. 요구 분석-수용을 위해 모든 프로젝트
  5. 알고리즘을 분석-알면 알고리즘의 복잡성은,그것을 줄이는 방법,그리고 무엇이 복잡성은 일반적인 작업이 중요합니다.
  6. 소프트웨어 프로젝트 관리 모델이 많은 상점이 민첩과 많은 오래된 여전히 폭포 스타일의 모델이다.
  7. 국제 컴퓨팅-유니코드 필수적입

는 물건의 가치가 있었고,필요에 따라:

  1. 프로그래밍 언어-촘스키 계층 구조,도구의 lexing 및 구축하고 있음을 보여준다 건너뛰기 뒤에 이론 LL 또는 LR parsers-an LR 파서를 받아들일 수 있는 거의 모든 사실적인 명확한 CFG 때,그리고 그것을 할 수 있't 의 파서 생성기는's documentation 은 그것에 대해 말할 것입니다.
  2. 3D Graphics. I don't mean"이것을 증명하는 회전 행렬식"폐기물의 시간,나는 말은 실제"이것은 꼭짓점 shader"물건,또는 GPGPU. 는's 미,흥미,그리고 다릅니다.
  3. 의 일부 AI 물건들은 재미있는 같은 잠재적인 분야 및 길 찾기.

는 물건's 필수적이지만 나는't 커버 어쨌든 그것:

  1. 동시성해 알고,적어도 기본 사람을 위해,2012.

나머지는 완료 시간 낭비입니다. 불행하게도,대부분의 이러한 구인 나는 하나 이미 알고 있었다,하거나 유용한 부분이 다른 곳에서. 는 경우 읽기 같은 것들에 대해다 FizzBuzz 문제가그것은 빠르게 된다는 것을 명백하지 않't 이 실제로 알아야 할 모든 것을 많은 수의 상단에 pack-는 행운입니다,이후 학위과 많은 자료의 나've seen 온라인에 대한 다른 도이 정말로 가르치지 않는 많다.

해설 (26)

Open Course ware 은 단지 과정의 목록은 그들을 사용할 수 있습니다. 당신이 알고 싶다면 어떤 학생이야,스윙 MIT's(금 OCW)웹사이트를 보고 실제 프로그램입니다. 그들의 목록을 가지고 무엇이 필요하며 무엇으로 간주됩 prereq 한다. 여기에 자신의 페이지입니다.

해설 (5)

도 2001 년 컴퓨터 과학 교육과정의 추천을 ACM/IEEE 연결,여기: http://www.acm.org/education/curricula-recommendations

과 함께 2008 년 CS 업데이트됩니다.

17 페이지의 보고서는 2001 년에는 편리한 차트는 밑줄 모"core"지식과 여전히 나열 과목.

학부 프로그램을 것't 는 시간이 있을 커버하는 과정으로 간주의 핵심은 이러한 권장 사항,그래서 그들은 덩어리의 종류 중 일부는 함께 학생들을 선택 그들 사이에(예를 들어,운영체제,프로그래밍 언어 및 소프트웨어 엔지니어링을 얻으로 한덩어리로 만들어진 소프트웨어,그리고 학생들을 선택트랙).

당신을 찾을 수 있습니다 필요한 과정에서 CS 부 웹사이트에 대한 거의 모든 학교,그리고 그들의 일부 버전이다.

해설 (2)

할 수 있습니다 경우에,나는'd 을 제안에 합류github.com로부학습의 과정입니다.

할 수 있습니다 다음 주위를 검색하는 코드는 일부를 실제 응용 프로그램이는'다시 관심이에 복제는 그 자신을 위해,그것으로 작업하고,코드,그것을 알고 그것은,결국 시작하 제출 패치를 다시 소스 프로젝트로 라인에서 작동하는 오픈 소스 프로젝트 관심이 있습니다.

그리고 물론,당신이'll 에 익숙해 git 는 모든 좋습니다.

해설 (2)