翻译参考:http://blog.jobbole.com/79736/
- Introduction to CS Course
Notes: Introduction to Computer Science Course that provides instructions on coding.
Online Resources:
Udacity - intro to CS course,
Coursera - Computer Science 101
- Code in at least one object oriented programming language: C++, Java, or Python
Beginner Online Resources:
Coursera - Learn to Program: The Fundamentals,
MIT Intro to Programming in Java,
Google's Python Class,
Coursera - Introduction to Python,
Python Open Source E-Book
Intermediate Online Resources:
Udacity's Design of Computer Programs,
Coursera - Learn to Program: Crafting Quality Code,
Coursera - Programming Languages,
Brown University - Introduction to Programming Languages
- Learn other Programming Languages
Notes: Add to your repertoire - Java Script, CSS, HTML, Ruby, PHP, C, Perl, Shell. Lisp, Scheme.
Online Resources: w3school.com - HTML Tutorial, Learn to code
- Test Your Code
Notes: Learn how to catch bugs, create tests, and break your software
Online Resources: Udacity - Software Testing Methods, Udacity - Software Debugging
- Develop logical reasoning and knowledge of discrete math
Online Resources:
MIT Mathematics for Computer Science,
Coursera - Introduction to Logic,
Coursera - Linear and Discrete Optimization,
Coursera - Probabilistic Graphical Models,
Coursera - Game Theory.
- Develop strong understanding of Algorithms and Data Structures
Notes: Learn about fundamental data types (stack, queues, and bags), sorting algorithms (quicksort, mergesort, heapsort), and data structures (binary search trees, red-black trees, hash tables), Big O.
Online Resources:
MIT Introduction to Algorithms,
Coursera - Introduction to Algorithms Part 1 & Part 2,
Wikipedia - List of Algorithms,
Wikipedia - List of Data Structures,
Book: The Algorithm Design Manual
- Develop a strong knowledge of operating systems
Online Resources: UC Berkeley Computer Science 162
- Learn Artificial Intelligence Online Resources:
Stanford University - Introduction to Robotics, Natural Language Processing, Machine Learning
- Learn how to build compilers
Online Resources: Coursera - Compilers
- Learn cryptography
Online Resources: Coursera - Cryptography, Udacity - Applied Cryptography
- Learn Parallel Programming
Online Resources: Coursera - Heterogeneous Parallel Programming