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. Android 模块构建错误不能下载依赖包

    在模块的build.gradle里面添加了 implementation 'com.android.support:design:26.1.0' 构建的时候一直报这个错 Unable to resol ...

  2. memory 监控 mysql vs percona vs maria

    oracle mysql 5.7 在performance_schema 通过以下表展现内存信息.这些表实际engine为performance_schema.这些表数据实际是以数组的形式存储在内存中 ...

  3. Win10安装sqlserver2014打开显示黑色界面,mardown打开显示报错

    问题描述: 我电脑从win7更新到win10以后就打开sqlserver2014显示黑色背景有问题,卸载了又装都是没有用 然后我又发现mardown也是有问题打开报告什么错误,忘记截图了,去网上找了个 ...

  4. GitHub-分支管理03-多人合作【重点】

    参考博文:廖雪峰Git教程 1. 多人协作 当你从远程仓库克隆时,实际上Git自动把本地的master分支和远程的master分支对应起来了,并且,远程仓库的默认名称是origin. 要查看远程库的信 ...

  5. 解决git push时发现有超过100M的文件时,删除文件后,发现还是提交不上去的问题

    我这里故意放了一个超过100M的文件 后续,git add ,git commit 然后,git push 此时会发现出现了错误.如果,我们再这里直接在文件系统中删除这个大的文件,然后再次提交,会发现 ...

  6. 序列对象(bytearray, bytes,list, str, tuple)

    列表: L.append(x) # x追加到L尾部 L.count(x) # 返回x在L中出现的次数 L.extend(m) # Iterable m的项追加到L末尾 L += m # 功能同L.ex ...

  7. C#基础知识之托管代码和非托管代码

    什么是托管代码(managed code)? 托管代码(Managed Code)就是中间语言(IL)代码,在公共语言运行库(CLR)中运行.编译器把代码编译成中间语言,当方法被调用时,CLR把具体的 ...

  8. css图片热点链接的设置

    一.热点的原理 图片通过usemap="#Map"属性将名称为"Map"的热点区域及连接映射到图片上. 一般来说,图片的usermap属性对应的是map热点的n ...

  9. Linux crm 运行

    crm 项目部署 运行 crm 准备代码 django_crm.zip 上传windows中的代码到linux中,可选 lrzsz(只能传单个的文件)或者xftp 使用lrzsz传输,必须压缩代码包 ...

  10. 假设在本地搭一个server和mysql数据库环境,假设使用java来訪问数据库

    我们能够使用speedamp来搭一个server环境,能够在http://download.csdn.net/detail/baidu_nod/7630265下载 解压后无需安装直接能够使用.点击Sp ...