关闭

谷歌推荐的计算机科学学习路线

1381人阅读 评论(0) 收藏 举报
分类:

谷歌推荐的计算机科学学习路线

gg

来源:Google Education

要成为一名成功的软件工程师,你必须具备扎实的计算机科学基础。本自学指南适用于想要学习编程的大学生们,分为专业方向和非专业方向两个系列。你可以借助这个指南进行自学,但请首先修够你的专业学分,以保证顺利毕业。

本课程表中的课程不能代替大学课程,但它们能够帮助你进一步学习计算机科学,或者对这个领域建立初步理解。

关于如何使用本学习指南的4点建议:

请考虑自己的实际情况进行学习。
如果你还想学习《指南》之外的其他课程,尽管上吧!
本指南仅供参考,即使学完这上面的所有课程,也不能保证你一定能进入谷歌工作。
本指南不定期更新。你可以在Google +上关注 Google for Students+Page,随时获取更多资讯。

【计算机专业方向的课程】

计算机科学导论课程

你可以选择提供在线编程工具的计算机导论课程。

课程推荐:

Udacity - intro to CS course:
https://www.udacity.com/course/cs101

Coursera - Computer Science 101【斯坦福大学:计算机科学入门】:
https://www.coursera.org/course/cs101

学习至少一种面向对象编程语言,如C++,Java 或Python

入门课程:

Coursera - Learn to Program: The Fundamentals【多伦多大学:学习编程 - 基础】:
https://www.coursera.org/course/programming1

MIT Intro to Programming in Java(注:这是他们的公开课视频)
http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-092-introduction-to-programming-in-java-january-iap-2010/index.htm

Google's Python Class(注:Google Developers出品!)
https://developers.google.com/edu/python/

Coursera - Introduction to Python【莱斯大学:Python交互编程入门】:
https://www.coursera.org/course/interactivepython

Python Open Source E-Book(注:Python教材免费在线看!)
http://www.openbookproject.net/thinkcs/python/english2e/

中级课程:

Udacity's Design of Computer Programs:
https://www.udacity.com/course/cs212

Coursera - Learn to Program: Crafting Quality Code【多伦多大学:学习编程 - 写出高质量的代码】:
https://www.coursera.org/course/programming2

Coursera - Programming Languages【华盛顿大学:编程语言】:
https://www.coursera.org/course/proglang

Brown University - Introduction to Programming Languages (注:这是布朗大学公开课的课件)
http://cs.brown.edu/courses/cs173/2012/OnLine/

学习其他的编程语言

To learn list:Java Script, CSS, HTML, Ruby, PHP, C, Perl, Shell. Lisp, Scheme.
相关在线学习资源:

w3school.com - HTML Tutorial;
http://www.w3schools.com/

CodeAcademy.com
http://www.codecademy.com/learn

测试和提高自己的编程能力

例如:排查故障,创建测试,破解软件

相关课程:

Udacity - Software Testing Methods
https://www.udacity.com/course/cs258

Udacity - Software Debugging
https://www.udacity.com/course/cs259

学习逻辑推理和离散数学

相关课程:

MIT Mathematics for Computer Science(注:这是MIT公开课):
http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-042j-mathematics-for-computer-science-fall-2010/index.htm

Coursera - Introduction to Logic【斯坦福大学:逻辑学导论】(注:《逻辑学导论》有中文字幕哟!):
https://www.coursera.org/course/intrologic

Coursera - Linear and Discrete Optimization 【洛桑联邦理工学院:线性和离散优化】:
https://www.coursera.org/course/linearopt

Coursera - Probabilistic Graphical Models【斯坦福大学:概率图模型】
https://www.coursera.org/course/pgm

Coursera - Game Theory(注:斯坦福精品课程,还有续集《博弈论2》!):
https://www.coursera.org/course/gametheory

深入理解算法和数据结构

学习基本的数据类型,如堆栈、队列和数据包;

了解排序演算法,如快速排序,二路归并排序和堆排序;

了解数据结构,如二叉搜索树,红黑树和哈希表。

相关课程:

MIT Introduction to Algorithms,
http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-006-introduction-to-algorithms-spring-2008/index.htm

Coursera Introduction to Algorithms Part 1 & Part 2【普林斯顿大学:算法】
第一部分:
https://www.coursera.org/course/algs4partI
第二部分:
http://mooc.guokr.com/course/403/Algorithms--Part-II/

List of Algorithms
(注:这是英文维基给出的所有算法的列表,看看你完成了多少?)
http://en.wikipedia.org/wiki/List_of_algorithms

List of Data Structures(注:数据结构,同上)
http://en.wikipedia.org/wiki/List_of_data_structures

参考书籍: The Algorithm Design Manual 【算法设计手册】
(注:这是美国亚马逊的购买链接,有中文版)
http://www.amazon.com/Algorithm-Design-Manual-Steven-Skiena/dp/1849967202/ref=sr_1_5?s=books&ie=UTF8&qid=1360133842&sr=1-5&keywords=algorithms
中文版:
http://book.douban.com/subject/4048566/

深入了解操作系统

相关课程: UC Berkeley Computer Science 162
(ppt等课件请看学校网站的资源:http://cs162.eecs.berkeley.edu/
https://www.youtube.com/watch?v=XgQo4JkN4Bw&list=PL3289DD0D0F0CD4A3
目前只有墙外的油管。囧。

人工智能相关课程

Stanford University:

Introduction to Robotics,
http://see.stanford.edu/see/courseinfo.aspx?coll=86cc8662-f6e4-43c3-a1be-b30d1d179743

Natural Language Processing
http://see.stanford.edu/see/courseinfo.aspx?coll=63480b48-8819-4efd-8412-263f1a472f5a

Machine Learning
http://see.stanford.edu/see/courseinfo.aspx?coll=348ca38a-3a6d-4052-937d-cb017338d7b1
(注:以上全是斯坦福的课程!人工智能哪家强!)

如何开发一个编译器

相关课程:Coursera - Compilers 【斯坦福大学:编译器】
https://www.coursera.org/course/compilers

密码学

Coursera - Cryptography【还是斯坦福大学的,o(╯□╰)o】
https://www.coursera.org/course/crypto

Udacity - Applied Cryptography
https://www.udacity.com/course/cs387

并行编程

相关课程:Coursera - Heterogeneous Parallel Programming 【伊利诺伊大学香槟分校:异构并行编程】
https://www.coursera.org/course/hetero

【如果你侧重应用方向】

项目开发相关课程

这方面的内容包括创建和维护一个网站,建立自己的服务器,或开发一个机器人。

相关课程:

Apache List of Projects(注:这是apache.org提供的教程)
http://projects.apache.org/

Google Summer of Code
http://www.google-melange.com/gsoc/homepage/google/gsoc2013

Google Developer Group
https://developers.google.com/

如果你想了解一个大型系统的一部分(如代码库),阅读和理解代码,或跟踪文档和排查故障,那么你可以到Github上围观和学习别人的代码,并尝试开发自己的项目。相关资源:Github, Kiln

如果你想通过学习提高与程序员合作的能力,那么你可以先尝试和程序员们共同完成一个项目。

如果你想补充算法知识,练习编程技巧,可以参加CodeJam、ACM举办的国际编程大赛等活动。相关资源:CodeJamACM ICPC

如果你通过教学加深自己对计算机的理解,获得软件工程等相关领域的实习经验,那么你可以申请担任相关课程的助教。注意要在实习期开始前提前申请哟!

在美国,学生通常在五月到九月参加实习,一般需要提前几个月进行申请。

相关资源-到谷歌的招聘页面看看吧: google.com/jobs

0
0
查看评论

计算机专业课程学习顺序

天 老师 计算机专业应该按什么顺序来学习专业知识呢 我是大一的 学了一年语言 但感觉遇到很多东西都是涉及底层的东西 和很多没学的东西牵扯在一起 很郁闷不知道应该提前学些什么知识 另外我比较喜欢网络但是也没什么基础 只有c/c++ 希望您能指导下 谢谢
  • u013847155
  • u013847155
  • 2014-07-04 19:40
  • 3675

计算机达人成长之路

什么都不会—初次接触电脑---上机和玩电脑的错误理解—对病毒的错误理解---兴趣,路途遥远,设备简陋,但是还是有一点资源,在同一个圈子里面算是接触电脑比较早的—亲密接触,充满好奇和想象---看到电脑游戏很兴奋----初学者心态(小心,别弄坏了,很贵的)--接触doc—爱到腿发软,疯狂爱上编程---对...
  • thinkingrobot
  • thinkingrobot
  • 2014-05-17 21:21
  • 582

我的计算机学习之路

     我是一名新手,也许连新手都算不上,我是刚刚开始接触吧,以前学过的计算机的知识都已随着饭被我吃下去了,我真是郁闷加无奈啊,所以我只好从新学起了。   老师虽然是个很厉害的人物,但是也很严格,而且我想问的问题都很幼稚,所以我都不敢问他...
  • yiyiemma
  • yiyiemma
  • 2006-09-29 17:32
  • 307

计算机学习之路

作为半路出来做IT,三年了,感觉遇到瓶颈。。计算机基础没打牢固,回过头来补基础 前人总结的:http://theithome.net/read-htm-tid-43460.html
  • luosai19910103
  • luosai19910103
  • 2017-02-08 14:10
  • 134

开启计算机软件学习之路

新的起点。之前一直在犹豫,未能下定决心来系统的学习下软件。最近两个月,经历的事情比较多,对自己以后的发展又有了新的认识,觉得自己目前的状态确实需要改变。 不忘初心,方得始终。站在现在这个节点上,回顾自己的求学经历,我的初衷很热爱科技,并且对科学探索充满了好奇心。所以我选择了深造,选择了在学术之...
  • Supersun2010
  • Supersun2010
  • 2015-11-06 22:10
  • 165

大数据经典学习路线(转载)

转载:http://blog.csdn.net/yuexianchang/article/details/52468291
  • w245162070
  • w245162070
  • 2017-04-23 23:16
  • 1084

windows 编程的学习次序

如何学习Windows编程 经常有初学者询问如何学习Windows编程? 很多人从MFC开始学习,结果常常是一头雾水,知难而退;也有人毅力坚强,熬过了MFC的阵痛期,最后却是知其然而不知其所以然,并且思维被限制在MFC的框架之中,遇到稍微有点规模的程序就无从下手了。 以我个人的这些年的...
  • softfox
  • softfox
  • 2013-02-17 12:48
  • 3736

计算机从业者的技术成长学习之路

计算机从业者的技术成长学习之路 浏览次数:326次 markzhai's home 2016年05月04日 字号: 大 中 小 分享到:QQ空间新浪微博腾讯微博人人网豆瓣网开心网更多1 最近...
  • hayaqi0504
  • hayaqi0504
  • 2016-06-06 09:52
  • 169

《计算机达人成长之路》附带的程序和源码

  • 2013-08-06 09:35
  • 3.95MB
  • 下载

Web安全学习路线

------------------------------------------------------------------------------------------------------------------------------ 前段时间找到并且现在正在学习的Web安全学习...
  • Chris_Lee_Hehe
  • Chris_Lee_Hehe
  • 2016-12-06 15:41
  • 1156
    个人资料
    • 访问:134607次
    • 积分:2311
    • 等级:
    • 排名:第19121名
    • 原创:72篇
    • 转载:69篇
    • 译文:23篇
    • 评论:8条