转载

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

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

  英文原文:Guide for Technical Development

  注:本文是翻译自 Google Career 的一篇职业规划指南,以下是译文:

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

  学术学习的推荐

  CS 课程入门

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

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

  至少要会一种面向对象的编程语言:C ++、Java 或 Python

  初级在线资源: 

  1. Coursera – Learn to Program: The Fundamentals
  2. MIT Intro to Programming in Java
  3. Google’s Python Class
  4. Coursera – Introduction to Python
  5. Python Open Source E-Book

  中级在线资源: 

  1. Udacity’s Design of Computer Programs
  2. Coursera – Learn to Program: Crafting Quality Code
  3. Coursera – Programming Languages
  4. Brown University – Introduction to Programming Languages

  了解其他的编程语言

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

  在线资源: 

  1. w3school.com – HTML Tutorial
  2. Codecademy
  3. Udacity – Mobile Web Development
  4. Udacity – HTML5 Game Development

  测试代码

  注:学习如何捕捉 bug,创建测试,破坏软件

  在线资源: 

  1. Udacity – Software Testing Methods
  2. Udacity – Software Debugging

  培养逻辑推理和学习数学离散知识

  在线资源: 

  1. MIT Mathematics for Computer Science
  2. Coursera – Introduction to Logic
  3. Coursera – Linear and Discrete Optimization
  4. Coursera – Probabilistic Graphical Models
  5. Coursera – Game Theory

  深刻理解算法和数据结构

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

  1. 在线资源: MIT Introduction to Algorithms
  2. Coursera Introduction to Algorithms Part 1 & Part 2
  3. List of AlgorithmsList of Data Structures
  4. 书籍: 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 月,那么你应该提前几个月就开始申请。

  译文链接:http://www.codeceo.com/article/google-guide-for-technical-development.html

  翻译作者:码农网 – 小峰

正文到此结束
Loading...