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. peewee基本操作

    本文将简单的介绍Peewee,一览它的主要特点,主要涉及到: 模型定义 存储数据 检索数据 注意:如果你偏爱稍微高级一点的教程, peewee建立类似twitter应用 是一篇结合Flask框架与pe ...

  2. 负载均衡(nginx、dubbo、zookeeper)

    nginx dubbo zookeeper

  3. C. Lorenzo Von Matterhorn LCA

    C. Lorenzo Von Matterhorn time limit per test 1 second memory limit per test 256 megabytes input sta ...

  4. MySQL高级知识(十)——批量插入数据脚本

    前言:使用脚本进行大数据量的批量插入,对特定情况下测试数据集的建立非常有用. 0.准备 #1.创建tb_dept_bigdata(部门表). create table tb_dept_bigdata( ...

  5. CentOS 7 上安装vim(默认未安装)

    今天使用CentOS 7,发现未安装vim,所以重新安装 执行命令: yum -y install vim* 然后就可以使用了

  6. https的证书认证 iOS版

    一.证书链 SecTrustRef: SecTrustRef trust = challenge.protectionSpace.serverTrust; 需要先拿出一个 SecTrustRef 对象 ...

  7. 爬取伯乐在线文章(五)itemloader

    ItemLoader 在我们执行scrapy爬取字段中,会有大量的CSS或是Xpath代码,当要爬取的网站多了,要维护起来很麻烦,为解决这类问题,我们可以根据scrapy提供的loader机制. 导入 ...

  8. Linux:Day11(上) ifcfg命令

    将Linux主机接入到网络中: 配置方式: 静态指定: ifcfg:ifconfig,route,netstat ip:object{link,addr,route},ss,tc 配置文件:syste ...

  9. Linux:Day5 shell编程初步、grep

    bash的基本特性(3) 1.提供了编程环境 程序编程风格: 过程式:以指令为中心,数据服务于指令: 对象式:以数据为中心,指令服务于数据: shell程序:提供了编程能力,解释执行:过程式.解释执行 ...

  10. 五.JQuary 实例

    需要引入jquery.js文件 script type="text/javascript" src="../js/jquery-3.2.1.js">< ...