Guide for Technical Development by Google

网上偶尔发现的一篇好文,读完顺手推荐给大家。
英文原版
中文翻译版
另外在推荐一下孙志刚老师在知乎的回答Google发布了程序员养成指南,国内互联网巨头是否也有类似的指南和课程推荐?

Recommendations for Academic Learnings


Introduction to CS Course

Intro to Computer Science
Computer Science 101

Code in at least one object oriented programming language

这里根据自己的兴趣选择了相关的几门。
入门
Learn to Program: The fundamentals
Google’s Python Class
An Introduction to Interactive Programing in Python
How to Think Like a Compter Scientist

高阶
Design of Computer Programs
Learn to Program: Crafting Quality Code

更多地其他语言的课程,可以上w3cschool.com和codeacademy.com上去自己找。

Test Your Code

Software Testing: How to make software fail
Software Debugging: Automating the Boring Tasks

Develop logical reasoning and knowledge of discrete math

Mathematics for Computer Science
Introduction to Logic
Linear and Discrete Optimization
Probabilistic Graphical Models
Game Theory
Game Theory II: Advanced Applications

Algorithms and Data Structures

Introduction to Algorithms
Algorithms, Part I
Algorithms, Part II
List of algorithms
List of data structures
The Algorithm Design Manual

Develop a strong knowledge of operating systems

注:下面这个链接是YouTube上的,请首先学会科学上网。
UC Berkeley Computer Science 162
另课件PPT在这里

AI, Compilers 和Cryptography暂略过

Learn Parallel Programming

Heterogeneous Parallel Programming

Recommendations for Non-Academic Learnings


这部分是一些实践相关的建议,赞啊!
Work on project outsides of the classroom.

Create and maintain a website  
Build your own server  
Build a robot  

Work on a small piece of a large system, read and understand existing code, track down documentation, and debug things.

Github is a great way to read other people's code or contribute to a project.  

Work on project with other programmmers.

Practice your algorithmic knowledge and coding skills.

CodeJam  
ACM  
我补充几个:leetcode, hackrank, codeforces.   

Become a Teaching Assistant

Intership experience in software engineering