谷歌公司发布程序员养成指南

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

  • 请考虑自己的实际情况进行学习。

  • 如果你还想学习《指南》之外的其他课程,尽管上吧!

  • 本指南仅供参考,即使学完这上面的所有课程,也不能保证你一定能进入谷歌工作。

  • 本指南不定期更新。你可以在 Google + 上关注 Google for Students +Page,随时获取更多资讯。

科班式建议

  • 计算机科学简介

说明:计算机科学简介是介绍编码相关的基础内容。

在线资源:Udacity – intro to CS course、Coursera – Computer Science 101

  • 至少学习一门面向对象编程语言:C++、Java或Python

初学者在线资源: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

  • 学习其他编程语言:

提示:你可以选择这些语言中的一种或多种——Java Script、CSS、HTML、Ruby、PHP、C、Perl、Shell、Lisp、 Scheme。

在线资源:w3school.com – HTML Tutorial、CodeAcademy.com

  • 测试你的代码

提示:学习如何追踪bug、创建测试和断点。

在线资源: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

  • 深入理解算法和数据结构

提示:学习基本的数据类型(栈、队列和背包)、排序算法(快速排序、归并排序、堆排序)、数据结构(二叉搜索树、红黑树、散列表)、大O表示法。

在线资源:MIT Introduction to Algorithms、Coursera Introduction to Algorithms Part 1& Part 2、List of Algorithms、List of Data Structures、Book: The Algorithm Design Manual

  • 深入了解操作系统相关知识

在线资源:UC Berkeley Computer Science 162

  • 学习人工智能

在线资源:Stanford University – Introduction to Robotics、Natural Language Processing、Machine Learning

  • 学习如何构建编译器

在线资源:Coursera – Compilers

  • 学习密码学

在线资源:Coursera – Cryptography、Udacity – Applied Cryptography

  • 学习并行编程

Online Resources: Coursera – Heterogeneous Parallel Programming

在线资源:Coursera – Heterogeneous Parallel Programming

 

非科班的学习建议

  • 接触课堂之外的项目

提示:创建并维护一个网站、构建自己的服务器、或构建一个机器人。

在线资源:Apache List of Projects、Google Summer of Code、Google Developer Group

  • 处理一个非常大的系统(代码库)中的一小部分,阅读并理解已有的代码、文档,并进行调试。

提示:Github可以用来阅读源码并为某个项目做贡献。

在线资源:Github、Kiln

  • 与其他开发者共同工作

提示:这将帮你提升团队工作工作的能力,同时从他人那可以学到新东西。

  • 有针对性的学习算法知识并提升编码能力

提示:可以在CodeJam或ACM 这些编程竞赛上练习算法知识。

在线资源:CodeJam、ACM ICPC

  • 做一个教学助手,帮助他人

提示:帮助他人可以加深你对该领域的理解。

  • 软件工程师方面的实习经验

提示:实习申请要在实习开始前提前申请。在美国,实习期是在夏季(5月到9月),申请一般会提前几个月。

在线资源:google.com/jobs


你可能感兴趣的:(谷歌公司发布程序员养成指南)