干货!谷歌推荐的技术能力提升指南

译者注:本文是翻译自 Google Career 的一篇职业规划指南,需阅读原文的请自备墙梯。以下是译文:

打好扎实的计算机科学基础对于成为一个成功的软件工程师是非常重要的。本指南主要关于如何提升自己的技术能力,非常适合学生用于制定教学课程,当然这里提供的网络资源,并不意味着就可以完全取代现有的课程,正式的课程安排还是要学的(除非你不想拿到毕业证书)。

学术学习的推荐

CS课程入门

计算机科学课程导论,介绍编码的基本知识。

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

了解其他的编程语言

注:添加到你的知识库中——JavaScript、CSS & HTML、Ruby、PHP、C、Perl、shell script、Lisp和Scheme

在线资源: w3school.com – HTML Tutorial, Codecademy, Udacity – Mobile Web Development, Udacity – HTML5 Game Development

测试代码

注:学习如何捕捉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

深刻理解算法和数据结构

注:了解基本的数据类型(栈、队列和包),排序算法(快速排序、归并排序、堆排序),数据结构(二叉搜索树、红黑树、哈希表),和算法的时间复杂度.

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

学习UX设计

在线资源: Udacity – UX Design for Mobile Developers

学习人工智能

在线资源: Stanford University - Introduction to Robotics, Natural Language Processing, Machine Learning

学习如何构建编译器

在线资源:Coursera – Compilers

了解密码学

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

了解并行编程

在线资源: 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月,那么你应该提前几个月就开始申请。

附:在国内可以在线练习IT题目的平台:牛客网

译文链接:http://www.codeceo.com/article/google-guide-for-technical-development.html
英文原文:Guide for Technical Development
翻译作者:码农网 – 小峰

全部评论
Wonderful
点赞 回复 分享
发布于 2015-05-16 10:27

相关推荐

不愿透露姓名的神秘牛友
07-11 12:31
以前小时候我最痛恨出轨、偷情的人,无论男女,为什么会出轨?现在我成了自己最讨厌的人,没想到分享的东西在牛客会被这么多人看,大家的评价都很中肯,我也认同,想过一一回复,但我还是收声了,我想我应该说说这件事,这件事一直压在我心里,是个很大的心结,上面说了人为什么出轨,我大概能明白了。我们大一下半年开始恋爱,开始恋爱,我给出了我铭记3年的承诺,我对她好一辈子,我永远不会背叛,我责任心太重,我觉得跟了我,我就要照顾她一辈子,我们在一起3年我都没有碰过她,她说往东我就往东,她说什么我做什么,她要我干什么,我就干什么!在学校很美好,中途也出过一些小插曲,比如男闺蜜、男闺蜜2号等等等。但我都强迫她改掉了,我...
牛客刘北:两个缺爱的人是没有办法好好在一起的,但世界上哪有什么是非对错?你后悔你们在一起了,但是刚刚在一起的美好也是真的呀,因为其他人的出现,你开始想要了最开始的自己,你的确对不起自己,21岁的你望高物远,你完全可以不谈恋爱,去过你想要的生活,你向往自由,在一起之后,你要想的不是一个人,而是两个人,你不是变心了,就像你说的,你受够了,你不想包容了,冷静几天是你最优的选择,爱人先爱己。
社会教会你的第一课
点赞 评论 收藏
分享
想按时下班的大菠萝在...:隔壁学校的,加油多投, 实在不好找可以下个学期开学找,把算法八股准备好,项目有空再换换
投了多少份简历才上岸
点赞 评论 收藏
分享
zYvv:双一流加大加粗再标红,然后广投。主要是获奖荣誉不够,建议开始不用追求大厂,去别的厂子刷下实习。
点赞 评论 收藏
分享
评论
点赞
23
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务