原文来自于:http://blog.jobbole.com/80621/

技术开发指南

想要成为成功的软件工程师,必须拥有坚实的计算机科学的基础。本指南针对大学生,给出一条自学途径,让学生以科班和非科班方式提高技术技能。读者可以学习本指南中介绍的课程,但是为了能正常毕业,还是请侧重于自己本身的专业。本指南中介绍的在线课程无法代替你在大学中的课程。但可以作为其补充,或者作为计算机方面的介绍。

使用说明:

  • 请自行决定如何使用本指南
  • 除了本指南中介绍的内容,如果你有其他想学的,尽情去学吧!
  • 即使学习了本指南中所有内容,也不能一定保证你能获得Google的工作。
  • 本指南会随时更新或修改,记得随时回来看看。
  • 关注我们的Google+上的Google for Student账号可以获得进一步的提示、资源,并认识其他对开发感兴趣的学生。

科班式建议

  • 计算机科学简介

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

在线资源:Udacity – intro to CS courseCoursera – Computer Science 101

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

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

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

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

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

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

在线资源:UC Berkeley Computer Science 162

  • 学习人工智能

在线资源:Stanford University – Introduction to RoboticsNatural Language ProcessingMachine Learning

  • 学习如何构建编译器

在线资源:Coursera – Compilers

  • 学习密码学

在线资源:Coursera – CryptographyUdacity – Applied Cryptography

  • 学习并行编程

Online Resources: Coursera – Heterogeneous Parallel Programming

在线资源:Coursera – Heterogeneous Parallel Programming

非科班的学习建议

  • 接触课堂之外的项目

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

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

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

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

在线资源:GithubKiln

  • 与其他开发者共同工作

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

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

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

在线资源:CodeJamACM ICPC

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

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

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

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

在线资源:google.com/jobs

转:Google技术开发指南:给大学生自学的建议的更多相关文章

  1. 《Google Glass开发指南》

    <Google Glass开发指南> 基本信息 作者: BestApp工作室 丛书名: 图灵原创 出版社:人民邮电出版社 ISBN:9787115349477 上架时间:2014-3-19 ...

  2. 移动IM开发指南1:如何进行技术选型

    <移动IM开发指南>系列文章将会介绍一个IM APP的方方面面,包括技术选型.登陆优化等.此外,本文作者会结合他在网易云信多年iOS IM SDK开发的经验,深度分析实际开发中的各种常见问 ...

  3. JVM 平台上的各种语言的开发指南

    JVM 平台上的各种语言的开发指南 为什么我们需要如此多的JVM语言? 在2013年你可以有50中JVM语言的选择来用于你的下一个项目.尽管你可以说出一大打的名字,你会准备为你的下一个项目选择一种新的 ...

  4. Knockout应用开发指南(完整版) 目录索引

    http://learn.knockoutjs.com/  所有示例和代码都在在上面直接运行预览 注意:因为它用了google的cdn加速,所要要用代_理+_翻_墙才能正常加载 使用Knockout有 ...

  5. Knockout应用开发指南 第十章:更多信息(完结篇)

    原文:Knockout应用开发指南 第十章:更多信息(完结篇) 1   浏览器支持 Knockout在如下浏览器通过测试: Mozilla Firefox 2.0+(最新测试版本:3.6.8) Goo ...

  6. [翻译]现代java开发指南 第二部分

    现代java开发指南 第二部分 第二部分:部署.监控 & 管理,性能分析和基准测试 第一部分,第二部分 =================== 欢迎来到现代 Java 开发指南第二部分.在第一 ...

  7. [翻译]现代java开发指南 第一部分

    现代java开发指南 第一部分 第一部分:Java已不是你父亲那一代的样子 第一部分,第二部分 =================== 与历史上任何其他的语言相比,这里要排除c语言和cobol语言,现 ...

  8. 腾讯云安全:开发者必看|Android 8.0 新特性及开发指南

    欢迎大家关注腾讯云技术社区-博客园官方主页,我们将持续在博客园为大家推荐技术精品文章哦~ 背景介绍 谷歌2017 I/O开发者大会今年将于5月17-19日在美国加州举办.大会将跟往年一样发布最新的 A ...

  9. [翻译]现代java开发指南 第三部分

    现代java开发指南 第三部分 第三部分:Web开发 第一部分,第二部分,第三部分 =========================== 欢迎来到现代 Java 开发指南第三部分.在第一部分中,我们 ...

随机推荐

  1. 【设计模式 - 20】之状态模式(State)

    1      模式简介 状态模式的定义: 状态模式允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类.这个模式将状态封装成独立的类,并将动作委托到代表当前状态的类的对象. 状态模式的优点 ...

  2. 基于JAX-WS的Web Service服务端/客户端 ;JAX-WS + Spring 开发webservice

    一.基于JAX-WS的Web Service服务端/客户端 下面描述的是在main函数中使用JAX-WS的Web Service的方法,不是在web工程里访问,在web工程里访问,参加第二节. JAX ...

  3. LINQ多条件OR模糊查询

    本文章转载:http://www.cnblogs.com/guyun/archive/2012/10/18/2729888.html 需求是这样的,有一张表tbl(Key[int],Value[str ...

  4. Ubuntu 14.04 没有system settings的解决方法

    在我的Dell Latitude 3330上, 新装的Ubuntu 14.04一切正常,就是没有system settings程序, 以下的命令能够解决: sudo apt-get install u ...

  5. 【MongoDB】在windows平台下mongodb的分片集群(五)

    本篇接着上面的四篇继续讲述在window平台下mongodb的分片集群搭建. 在分片集群中也照样能够创建索引,创建索引的方式与在单独数据库中创建索引的方式一样.因此这不再多说.本篇主要聚焦在分片键的选 ...

  6. PHP中的function函数详解

    PHP函数,在PHP中函数起到一个不可分割的重要部分,很多功能实现都要用到函数,PHP的最大的威力就来源于函数! 在PHP中内建函数至少有上千个函数.这些内建函数了解就行了,官方文档里面有函数大全:传 ...

  7. PHP 5.6启动失败failed to open configuration file '/usr/local/php/etc/php-fpm.conf'

    PHP编译安装完毕,启动失败,提示 [-Jun- ::] ERROR: failed to open configuration ) [-Jun- ::] ERROR: failed to load ...

  8. Unity3D GUI之自定义风格组件

    GUI中可以使用一些默认的组件,里面的最后一个参数一般情况下,不设置就是默认的 ,当然也可以进行手动的指定,比如: GUI.Button(new Rect(0,0,100,100),"开始游 ...

  9. JS,JQuery杂谈

    JS返回页面: JS返回前一个页面,经常看到有人用window.history.go(-1)这种方法  这种放的确可以返回,也仅仅只是返回,返回的页面信息却没有刷新.也有人用windows.histo ...

  10. VS2015升级Update2之后Cordova程序提示:此应用程序无法在此电脑上运行

    VS2015在升级到Update2之后,有可能出现如下异常,在运行Cordova项目时提示: 查看输出面板会有乱码错误信息: 出现此问题的原因是在于npm程序损坏了.vs调用的npm程序并不是在nod ...