Technical Development Guide---for Google
Technical Development Guide
This guide provides tips and resources to help you develop your technical skills (academically and non-academically) through self-paced, hands-on learning.
This guide is intended for Computer Science students seeking an internship or university grad role at Google.
What this guide is for
- You can use this guide to determine which courses to take, but be sure stay on track with your courses required for your major to graduate.
- We encourage you to learn more outside of this guide. The more you know, the better!
- The online resources we’ve cited aren’t meant to replace courses available at your university, but they may help supplement your education or provide an introduction to a topic.
- The information and recommendations in this guide were gathered through our work with students and candidates in the field. It is a work-in-progress, a living document, so be sure to periodically check back for updates.
Note: Following the recommendations in the guide does not guarantee a job at Google.
How to use this guide
- The guide lists topics and resources in a rough progression, from possible places to begin if you have little or no technical skills, to resources for those with increasing skills, to ways to gain exposure in the Computer Sciences field.
- You can use any of the resources you want, in any order.
Recommendations and Resources
|
Take an “Introduction to CS” course |
Focus on basic coding instructions. Online resources: |
|||
|
Learn to code in (at least) one object-oriented programming language (C++, Java®, Python®) |
Online resources for beginning programmers:
Online resources for more experienced programmers:
|
|||
|
Learn other programming languages |
Add to your repertoire:
Online resources: |
|||
|
Test your code |
Learn how to catch bugs, create tests, and break your software. Online resources:
|
|||
|
Develop logical reasoning and knowledge of discrete math |
Online resources:
|
|||
|
Develop a strong understanding of algorithms and data structures |
Learn about fundamental data types (stack, queues, and bags), sorting algorithms (quicksort, mergesort, heapsort), data structures (binary search trees, red-black trees, hash tables), and Big O. Online resources:
|
|||
|
Develop a strong knowledge of operating systems |
Online resources: Computer Science 162, UC Berkeley, YouTube |
|||
|
Learn artificial intelligence and machine learning |
Online resources:
|
|||
|
Learn Android development |
Online resources:
|
|||
|
Learn web development |
Online resources:
|
|||
|
Learn other developer skills |
Online resources: |
|||
|
Learn cryptography |
Online resources:
|
|||
|
Work on projects outside of the classroom |
Create and maintain a website, build your own server, or build a robot. Online resources:
|
|||
|
Work on a small piece of a large system (codebase), read and understand existing code, track down documentation, and debug |
GitHub is a great way to read other people’s code or contribute to a project. Online resources: |
|||
|
Work on projects with other programmers |
This will help you improve your ability to work well in a team and enable you to learn from others. |
|||
|
Practice your algorithmic knowledge and coding skills |
Practice your algorithmic knowledge through coding competitions like CodeJam or ACM’s International Collegiate Programming Contest. Online resources: |
|||
|
Become a teaching assistant |
Helping to teach other students will help enhance your knowledge of the subject matter. |
|||
|
Gain internship experience in software engineering |
Find Google’s internships in Engineering and Technology on our Students site. Online resource to prepare to interview for software engineering positions, including for internships:
|
|||
Technical Development Guide---for Google的更多相关文章
- Website Speed Optimization Guide for Google PageSpeed Rules
原链接地址:http://www.artzstudio.com/2016/07/website-speed-optimization-guide-for-google-pagespeed-rules/ ...
- 转:Oculus Unity Development Guide开发指南(2015-7-21更新)
http://forum.exceedu.com/forum/forum.php?mod=viewthread&tid=34175 Oculus Unity Development Guide ...
- Google coding Style Guide : Google 编码风格/代码风格 手册/指南
1 1 1 https://github.com/google/styleguide Google 编码风格/代码风格 手册/指南 Style guides for Google-originated ...
- Beginning Windows Azure Development Guide
目 录 一 初始化Windows Azure 二 云应用程序的编写. 2.1云应用程序的创建. 2.2一个简单的云应用程序. 2.3 托管云程序. 三 云程序的数据库操作. 3.1通过Cloud平台 ...
- Google Careers 程序员必修课
quote from : https://www.google.com/about/careers/students/guide-to-technical-development.html Techn ...
- The Google Test and Development Environment (持续更新)
最近Google Testing Blog上开始连载The Google Test and Development Environment(Google的测试和开发环境),因为blogspot被墙,我 ...
- What technical details should a programmer of a web application consider before making the site public?
What things should a programmer implementing the technical details of a web application consider bef ...
- Google Chrome开发者工具-移动仿真:触摸事件仿真
如果你在开发PAD/手机所用WEB版应用,需要在桌面审查页面元素.调试脚本,模拟移动设备尺寸.事件.位置等信息, 那么可以使用Chrome开发者工具(DevTools)提供的强大的移动仿真功能,支持主 ...
- google calendar
1. user guide on google https://developers.google.com/google-apps/calendar/instantiate 2. google app ...
随机推荐
- (转)Debian 安装与卸载包命令
1.APT主要命令apt-cache search ------package 搜索包sudo apt-get install ------package 安装包sudo apt-get remov ...
- Navicat Premium 连接oracle ORA-01017:用户名/口令无效;登陆被拒绝
解决的方法就是将用户名改成system
- Unity Remote 无法连接
前言 Unity Remote支持把手机的以下数据返回到Unity Editor中: 触摸输入 加速计 陀螺仪 摄像头 GPS 我的操作环境: Unity 5.3.6f1 在windows 下 And ...
- linux (fedora 28) 制作启动U盘,启动盘
最近需要安装一款Linux, 由于使用的计算机系统为 fedora 28, 所以只能在linux 制作U盘 使用 df 或者 fdisk -l 查看 U盘文件: Disk /dev/sdb: byte ...
- SQL server 数据库的索引和视图、存储过程和触发器
1.索引:数据排序的方法,快速查询数据 分类: 唯一索引:不允许有相同值 主键索引:自动创建的主键对应的索引,命令方式不可删 聚集索引:物理顺序与索引顺序一致,只能创建一个 非聚集索引:物理顺序与索引 ...
- LeetCode算法题-Third Maximum Number(Java实现-四种解法)
这是悦乐书的第222次更新,第235篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第89题(顺位题号是414).给定非空的整数数组,返回此数组中的第三个最大数字.如果不存 ...
- LeetCode算法题-Nim Game(Java实现)
这是悦乐书的第203次更新,第213篇原创 01 看题和准备 你和你的朋友正在玩下面的Nim游戏:桌子上有一堆石头,每次你轮流去除1到3块石头. 移除最后一块石头的人将成为赢家. 你是第一个取出石块的 ...
- Git&GitHub-基础教程
目录 1. Git简介 1.1 什么是版本控制系统? 1.2. Git的历史 1.3. 什么是分布式?什么是集中式? 2. Git安装 3. 创建一个版本库 4. Git的语法教程 4.1. 提交一个 ...
- 【Teradata】数据库初始化(sysinit和dip工具)
1.删除数据库对象 (1)使用root用户登录数据库节点 arcmain .LOGON 127.0.0.1/dbc,dbc_password; (2)清理所有数据库对象及数据 DELETE DATAB ...
- grep正则表达式搜索
grep -n -e "INT32 *AdaptorPrmOp" --include "*.c" -r ./ 搜索函数的定义 中间有n个空格