Google的职业生涯:技术开发指导(面向学生)
本指南列举各项领域知识和相关资源来帮助你学习和提高相关技术能力。
建议 | 资源 |
---|---|
基础知识 | 计算机科学 |
掌握至少一门面向对象语言(C++, Java®, Python®) | 初级程序员在线资源: - Java 程序设计 - 学习编程:基础 多伦多大学 - java编程介绍 MIT - 谷歌python教学 - python编程 莱斯大学 在线高级教程: - 面向对象 Java 程序设计 加州大学圣迭戈分校 - 计算机编程设计 - 学习编程:撰写高质量代码 多伦多大学 |
学习其他编程语言 | - JavaScript® - CSS & HTML - Ruby® - PHP® - C® - Perl® - Shell® script - Lisp® - Scheme® - CSS & HTML - Ruby® - PHP® - Go® 在线资源: - Codecademy |
调试代码 | 学习如何catch bugs,进行代码测试. 在线资源: - 软件测试 - 软件调试 |
提高离散数学的逻辑推理和知识 | 在线资源 - 计算机科学数学应用 MIT - 数学思维 斯坦福大学 - 概率图模型 斯坦福大学 - 博弈论 斯坦福科伦比亚大学 |
提高对算法和数据结构有很强的理解能力 | 熟悉基础数据类型(栈,队列,包),排序算法(快速排序,合并排序,堆排序),数据结构(二分搜索树,红黑树,哈希表)以及BIG O. 在线资源: - 算法简介 斯坦福大学 - 算法1&算法2 普林斯顿大学 - 算法总览 维基百科 - 数据结构总览 维基百科 |
操作系统 | 在线资源: - 操作系统和系统编程 |
人工智能和机器学习 | 在线资源: - 机器学习工程师Nanodegree Udacity - 深度学习 Udacity - 机器人技术 斯坦福大学 - 机器学习 斯坦福大学 |
安卓开发 | 在线资源: - 谷歌Android开发教学 |
web开发 | 在线资源: - 谷歌web开发教学 |
学习其他开发技术 | 在线资源: - 谷歌工程师培训站点 |
学习密码学 | 在线资源: - 密码学 - 密码学应用 |
在一个代码库里工作,通过阅读优秀的代码来提高你的编码,文档以及debug能力 | - Github - Klin |
和其他程序员一起工作 | 这将有利于锻炼你的团队合作能力并使你从学习其他人的优点 |
锻炼你的算法知识和编程技巧 | 通过编程竞赛(CodeJam,ACM)锻炼你的算法知识 |
成为导师助理 | 通过指导其他学生将能有效增强和巩固你的知识体系 |