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

坚实的计算机科学基础是成为一名成功软件工程师的重要条件,该指南为那些想进入学术研究和非学术研究领域的学生们提供了编程知识学习路径。你可能会使用该指南来选择课程,但为了能圆满毕业,请保证你对专业课程的学习。该指南中提供的在线资源并不能取代你在大学中的课程...

指南使用须知:

1.请根据自己的具体情况使用该指南。

2.在指南之外,可能仍有很多其他需要学习的内容。

3.学完本指南的内容并不能保证你能获得谷歌的某项工作。

4.该指南会依情况更新或者更改。

你可以在Google +上关注“Google Students”学习额外的技巧、资源或者其他学生感兴趣的开发内容。

学术研究方向课程推荐

CS Course入门

在线资源:Udacity - intro to CS course 和 Coursera - Computer Science 101.

至少使用一门面向对象编程语言编码:C++, Java, or Python

初级在线资源: Coursera - Learn to Program: The FundamentalsMIT Intro to Programming in JavaGoogle‘s Python ClassCoursera - Introduction to PythonPython Open Source E-Book

中级在线资源:  Udacity‘s Design of Computer ProgramsCoursera - Learn to Program: Crafting Quality CodeCoursera - Programming LanguagesBrown University - Introduction to Programming Languages

学习其他编程语言

比如:Java Script, CSS, HTML, Ruby, PHP, C, Perl, Shell. Lisp, Scheme.

在线资源: w3school.com - HTML TutorialCodeAcademy.com

测试代码

学习如何捕捉bug,创建测试以及破解你的软件。

在线资源: Udacity - Software Testing MethodsUdacity - Software Debugging

学习逻辑推理和离散数学内容

在线资源:MIT Mathematics for Computer Science, Coursera - Introduction to Logic, Coursera - Linear and Discrete Optimization, Coursera - Probabilistic Graphical Models, Coursera - Game Theory

学习逻辑算法和数据结构

学习基础数据类型(堆栈、队列和包)、排序算法(快速排序、归并排序以及堆排序)、数据结构(二叉搜索树、红黑树以及哈希表)以及Big 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 RoboticsNatural Language ProcessingMachine Learning

学习如何构建编译器

在线资源: Coursera - Compilers

加密

在线资源: Coursera - CryptographyUdacity - Applied Cryptography

学习并行编程

在线资源: Coursera - Heterogeneous Parallel Programming

非学术方向课程推荐

课堂之外的项目工作

建立并维护网站、搭建自己的服务器以及构建机器人。

在线资源: Apache List of ProjectsGoogle Summer of CodeGoogle Developer Group

操作大型系统中的一小部分

比如代码库,阅读和理解现有的代码,跟踪文档以及进行调试。Github是一个阅读学习其他人代码或者提交项目的好地方。

在线资源: GithubKiln

和其他程序员合作项目

可帮你提升团队工作中的沟通合作能力,并从其他团队成员身上学到自己不具备的东西。

练习算法知识和编程技巧

通过编程竞赛来联系你的算法知识,比如CodeJam或者ACM的International Collegiate Programming Contest.

在线资源: CodeJamACM ICPC

成为助教

通过教授学生来巩固自己的知识。

软件工程实习经历

要在实习开始前就申请实习。在美国,学生的实习时间是夏季的5-9月,但会提前几个月开放申请。

时间: 2024-10-29 19:10:04

谷歌公司发布的程序员养成指南的相关文章

程序员养成指南

坚实的计算机科学基础是成为一名成功软件工程师的重要条件,该指南为那些想进入学术研究和非学术研究领域的学生们提供了编程知识学习路径.你可能会使用该指南来选择课程,但为了能圆满毕业,请保证你对专业课程的学习.该指南中提供的在线资源并不能取代你在大学中的课程... 指南使用须知: 1.请根据自己的具体情况使用该指南. 2.在指南之外,可能仍有很多其他需要学习的内容. 3.学完本指南的内容并不能保证你能获得谷歌的某项工作. 4.该指南会依情况更新或者更改. 你可以在Google +上关注"Google 

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

关于如何使用本学习指南的 4 点建议: 请考虑自己的实际情况进行学习. 如果你还想学习<指南>之外的其他课程,尽管上吧! 本指南仅供参考,即使学完这上面的所有课程,也不能保证你一定能进入谷歌工作. 本指南不定期更新.你可以在 Google + 上关注 Google for Students +Page,随时获取更多资讯. 科班式建议 计算机科学简介 说明:计算机科学简介是介绍编码相关的基础内容. 在线资源:Udacity – intro to CS course.Coursera – Comp

程序员健康指南

1.健康管理支撑着你的工作. 从公司的角度考虑,一个经常患病的人,是不会被委以重任的.从个人角度考虑,经常患病给自己和家庭都带来很大的烦恼.俗话说身体是革命的本钱,有个好身体,干什么都有可能. 2. 简单的每日检查. 首先,体重的检查.对程序员来说,每日测量一下体重是最可行的方法,每个人都有标准体重,通过每天的测量,你就可以有意识的通过减少饭量,多做运动来保持自己的体重.然后是吃饭,如果因为工作很晚才能吃饭的话,就考虑一下自己的睡觉时间,把饭量减一减.少吃油腻的东西,多吃蔬菜.每天喝一升的茶,多

unity3d引擎程序员养成

标准流程:1. c++ Primer 英文版(第四或第五版)全部看完习题做完是必须的.渲染程序设计比较复杂,后期会用到c++的全部特性.c++学的越好后面越轻松.要看英文版,计算机翻来覆去就那么几个单词,基础打好了以后查stack overflow这些网站也方便. 2. Introduction to 3D Game Programming with DirectX 11也就是经典的龙书,渲染入门,介绍了很多基本渲染算法,看完习题做完 3. Practical Rendering and Com

程序员修炼指南——引导你成为真正的编程高手

@程序员修炼指南——引导你成为真正的编程高手 评,这是一个指导方向,不一定是你自己的目标,但如果这些你都做到了,那还有哪些是不能做到的? 前言 你是否觉得自己从学校毕业的时候只做过小玩具一样的程序?走入职场后哪怕没有什么经验也可以把以下这些课外练习走一遍(朋友的抱怨:学校课程总是从理论出发,作业项目都看不出有什么实际作用,不如从工作中的需求出发) 建议: 不要乱买书,不要乱追新技术新名词,基础的东西经过很长时间积累而且还会在未来至少10年通用. 回顾一下历史,看看历史上时间线上技术的发展,你才能

【转】游戏程序员养成计划

博客出处:www.cnblogs.com/clayman/archive/2009/05/17/1459001.html 作者:clayman 与玩游戏相比,写游戏要复杂上千万倍,除了需要掌握通用的编程技巧以外,还要有相当的图形学,物理,数学基础,特别是在国内,由于相关资料的缺乏,更是让初学者无从下手.下面总结了一些入门方法和比较容易入手的资料. 首先你要精通一门高级语言,pc上游戏的首选语言就是C++.其次,要有良好的英文阅读能力.对游戏开发者来说英文阅读能力是最重要也是最基本的工具之一,因为

亲身经历——大体量公司能为程序员的生涯带来什么帮助?

很久没写博了,先同步下动向. 两年多前来了目前这家算是二线里面最前梯度的公司. 漂泊了快3年,最近终于决定回家乡了. 所幸家乡最近几年互联网发展迅猛,各大厂基本都有研发中心落地. 刚好也符合个人职业规划方向. 年后进行了一波面试,顺利的稍稍出乎了个人的预料,基本上接到的面试都面到了最后的hr轮. 在筛选之后,决定接了很早以前就想去的某大厂offer,算了在人生职业规划中继续迈出了规划中新的一步吧. 后面和家乡分部的同事聊天了解到家乡今年形势也不好,但个人从最近的面试经历上看,其实没有特别感觉到.

程序员养成架构师之路

怎样学习才能从一名Java初级程序员成长为一名合格的架构师,或者说一名合格的架构师应该有怎样的技术知识体系,这是不仅一个刚刚踏入职场的初级程序员也是工作三五年之后开始迷茫的老程序员经常会问到的问题.希望这篇文章会是你看到过的最全面最权威的回答. 一: 编程基础 不管是C还是C++,不管是Java还是PHP,想成为一名合格的程序员,基本的数据结构和算法基础还是要有的.下面几篇文章从思想到实现,为你梳理出常用的数据结构和经典算法. 1-1 常用数据结构 数组.链表.堆.栈.队列.Hash表.二叉树等

Java程序员进阶路线-高级java程序员养成

1. 引言 搞Java的弟兄们肯定都想要达到更高的境界,用更少的代码解决更多的问题,用更清晰的结构为可能的传承和维护做准备.想想当初自己摸着石头过河,也看过不少人介绍的学习路线,十多年走过来多少还是有些收获.现通过自身经历总结一篇文章,供弟兄们参考. 2.  用好正在用的框架 在已经加入的团队中,和大家协作使用团队已选好的框架.不管框架优劣与否,特点如何,选择了它必然有一定的道理.并且能够在业界经久流行的框架也一定有它的优秀之处. 使用框架第一步是熟悉,可能通过复制和修改前人的代码来实现新的功能