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:

  • JavaScript®
  • CSS & HTML
  • Ruby®
  • PHP®
  • Perl®
  • Shell® script
  • Lisp®
  • Scheme®

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的更多相关文章

  1. Website Speed Optimization Guide for Google PageSpeed Rules

    原链接地址:http://www.artzstudio.com/2016/07/website-speed-optimization-guide-for-google-pagespeed-rules/ ...

  2. 转:Oculus Unity Development Guide开发指南(2015-7-21更新)

    http://forum.exceedu.com/forum/forum.php?mod=viewthread&tid=34175 Oculus Unity Development Guide ...

  3. Google coding Style Guide : Google 编码风格/代码风格 手册/指南

    1 1 1 https://github.com/google/styleguide Google 编码风格/代码风格 手册/指南 Style guides for Google-originated ...

  4. Beginning Windows Azure Development Guide

    目  录 一 初始化Windows Azure 二 云应用程序的编写. 2.1云应用程序的创建. 2.2一个简单的云应用程序. 2.3 托管云程序. 三 云程序的数据库操作. 3.1通过Cloud平台 ...

  5. Google Careers 程序员必修课

    quote from : https://www.google.com/about/careers/students/guide-to-technical-development.html Techn ...

  6. The Google Test and Development Environment (持续更新)

    最近Google Testing Blog上开始连载The Google Test and Development Environment(Google的测试和开发环境),因为blogspot被墙,我 ...

  7. 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 ...

  8. Google Chrome开发者工具-移动仿真:触摸事件仿真

    如果你在开发PAD/手机所用WEB版应用,需要在桌面审查页面元素.调试脚本,模拟移动设备尺寸.事件.位置等信息, 那么可以使用Chrome开发者工具(DevTools)提供的强大的移动仿真功能,支持主 ...

  9. google calendar

    1. user guide on google https://developers.google.com/google-apps/calendar/instantiate 2. google app ...

随机推荐

  1. Struts2.5学习笔记----org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter报错

    Struts2.3升级到struts2.5后报错 <filter> <filter-name>struts2</filter-name> <filter-cl ...

  2. 第二章 基础查询 2-1 SQL语句基础

    一.列的查询 基本的SELECT语句: SELECT <列名 >,...... FROM < 表名>; 注:子句是SQL的组成要素. 注:查询结果中的列的顺序和SELECT子句 ...

  3. Android 加了自定义Application后报错 Unable to instantiate activity ComponentInfo ClassNotFoundException

    在Android自定义一个类继承集成Application后,并在AndroidManifest.xml里面配置了application的name属性为该类名称后报错: Unable to insta ...

  4. malloc和calloc用法

    malloc和calloc用法 #include <stdio.h> #include <stdlib.h> int main(){ int n; printf("i ...

  5. Windows Server 2016-Hyper-V 2016新增功能

    本文解释了Windows Server 2016和Microsoft Hyper-V Server 2016上Hyper-V的新增功能和变更功能. 与Connected Standby兼容(新) 在使 ...

  6. C# -- 使用递归列出文件夹目录及目录下的文件

    使用递归列出文件夹目录及目录的下文件 1.使用递归列出文件夹目录及目录下文件,并将文件目录结构在TreeView控件中显示出来. 新建一个WinForm应用程序,放置一个TreeView控件: 代码实 ...

  7. Shell脚本常用模板

    作为一个运维人员编写Shell脚本是很平常的,一个格式好的脚本不仅赏心悦目,后期自己和别人也易于维护. 下面的脚本就是我自己的shell编写格式,如下: [root@mini05 -]# cat te ...

  8. Docker: docker container常用命令实战(2)-数据持久化

    应用服务是在容器中运行的,容器随时会被删除,如果是个mysql容器呢?数据存储在容器里,容器删除了,数据也没了,那就是个噩梦. 所以一些数据是需要存储在容器之外的,可以是宿主机,可以是网络存储位置上, ...

  9. Spring获取实现某接口的所有实例bean

    1.获取 applicationContext,通过ApplicationAware自动注入 2.getBeansOfType.getBeanNamesForType Map<String, I ...

  10. 01 python初学(注释、交互、if while for)

    为了能生存下去,一定要坚持学习! 目录  1. 注释 2. 用户交互 3. if .while.for 语句 1. 注释  单行注释: # 多行注释: 三个单引号 || 三个双引号 2. 用户交互: ...