谷歌公司发布程序员养成指南,推荐相关在线课程

jopen 10年前

  进入谷歌那样的大公司工作是多少程序员的人生梦想!最近,Google Education 推荐了一系列计算机相关课程,为想要学习编程的大学生们指明方向,非大学生也可以来学习。

  ————————以下内容搬运自 Google Education————————

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

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

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

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

  【为进军学术界作准备的课程】

  计算机科学导论课程

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

  课程推荐:

  Udacity - intro to CS course,

  Coursera - Computer Science 101

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

  入门课程:

  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

  中级课程:

  Udacity's Design of Computer Programs,

  Coursera - Learn to Program: Crafting Quality Code,

  Coursera - Programming Languages,

  Brown University - Introduction to Programming Languages

  学习其他的编程语言

  To learn list:Java Script, CSS, HTML, Ruby, PHP, C, Perl, Shell. Lisp, Scheme.

  相关在线学习资源: w3school.com - HTML TutorialCodeAcademy.com

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

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

  相关课程:

  Udacity - Software Testing Methods,

  Udacity - Software Debugging

  学习逻辑推理和离散数学

  相关课程:

  MIT Mathematics for Computer Science,

  Coursera - Introduction to Logic,

  Coursera - Linear and Discrete Optimization,

  Coursera - Probabilistic Graphical Models,

  Coursera - Game Theory

  深入理解算法和数据结构

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

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

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

  相关课程:

  MIT Introduction to Algorithms,

  Coursera Introduction to Algorithms Part 1 & Part 2,

  List of Algorithms,

  List of Data Structures,

  参考书籍: The Algorithm Design Manual

  深入了解操作系统

  相关课程: UC Berkeley Computer Science 162

  人工智能相关课程

  Stanford University - Introduction to RoboticsNatural Language ProcessingMachine Learning

  如何开发一个编译器

  相关课程:Coursera - Compilers

  密码学

  相关课程:

  Coursera - Cryptography,

  Udacity - Applied Cryptography

  并行编程

  相关课程:Coursera - Heterogeneous Parallel Programming

  【如果你侧重应用方向】

  项目开发相关课程

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

  相关课程:

  Apache List of Projects,

  Google Summer of Code,

  Google Developer Group

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

  相关资源:GithubKiln

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

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

  相关资源:CodeJamACM ICPC

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

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

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

来自: www.google.com