Académique Documents
Professionnel Documents
Culture Documents
This guide is intended for Computer Science students seeking an internship or university grad role at
Google.
Note: Following the recommendations in the guide does not guarantee a job at Google.
Online resources:
Take an “Introduction to CS” course
Introduction to Computer Science, Udacity
Online resources for beginning programmers:
Java Programming: An Introduction to Software, Duke
University, Coursera
Learn to Program: The Fundamentals, University of
Toronto, Coursera
Introduction to Programming in Java, MIT
Google's Python Class
Introduction to Interactive Programming in Python, Rice
Learn to code in (at least) one object University, Coursera
oriented programming language (C++,
Online resources for more experienced programmers:
Java®, Python®)
Java Programming: Data Structures and Beyond,
University of California San Diego, specialization on
Coursera
Design of Computer Programs, Udacity
Learn to Program: Crafting Quality Code, University of
Toronto, Coursera
Introduction to Programming Languages, Brown
University
Learn other programming languages Add to your repertoire:
JavaScript®
CSS & HTML
Ruby®
PHP®
C®
Perl®
Shell® script
Lisp®
Scheme®
Online resources:
Codecademy
Learn how to catch bugs, create tests, and break your
software.
Online resources:
Test your code
Software Testing, Udacity
Software Debugging, Udacity
Online resources:
Mathematics for Computer Science, MIT
Introduction to Mathematical Thinking, Stanford,
Develop logical reasoning and
Coursera
knowledge of discrete math
Probabilistic Graphical Models, Stanford, Coursera
Game Theory, Stanford and University of British
Columbia, Coursera
Learn about fundamental data types (stack, queues, and
bags), sorting algorithms (quicksort, mergesort, heapsort),
data structures (binary search trees, redblack trees, hash
tables), and Big O.
Online resources:
Develop a strong understanding of
algorithms and data structures Introduction to Algorithms, MIT
Algorithms Part 1 & Algorithms Part 2, Princeton,
Coursera
List of Algorithms, Wikipedia
List of Data Structures Wikipedia
Book: The Algorithm Design Manual, Steven S. Skiena
Online resources:
Develop a strong knowledge of operating
systems Computer Science 162, UC Berkeley, YouTube
Online resources:
Machine Learning Engineer nanodegree, Udacity
Learn artificial intelligence and machine
Deep Learning, Udacity
learning
Introduction to Robotics, Stanford University
Machine Learning, Stanford University
Learn Android development Online resources:
Google Developer Training for Android, on Udacity
Online resources:
Learn web development
Google Developer Training for Web, on Udacity
Online resources:
Learn other developer skills
Google Developer Training site
Online resources:
Learn cryptography Cryptography, Stanford, Coursera
Applied Cryptography, Udacity
Create and maintain a website, build your own server, or build
a robot.
Online resources:
Capstone project: Analyzing (Social) Network Data
Work on projects outside of the scroll down to bottom of page, UCSD, Coursera
classroom Capstone project: Java Programming: A DIY Version of
Netflix and Amazon Recommendation Engines, Duke
University, Coursera
Project Directory, Apache
Google Summer of Code Project Archive
GitHub is a great way to read other people’s code or contribute
to a project.
Work on a small piece of a large system
(codebase), read and understand Online resources:
existing code, track down
documentation, and debug GitHub®
Kiln™
Work on projects with other This will help you improve your ability to work well in a team
programmers and enable you to learn from others.
Practice your algorithmic knowledge and Practice your algorithmic knowledge through coding
coding skills competitions like CodeJam or ACM’s International Collegiate
Programming Contest.
Online resources:
CodeJam
ACM ICPC
Helping to teach other students will help enhance your
Become a teaching assistant
knowledge of the subject matter.
Find Google’s internships in Engineering and Technology on
our Students site.
Online resource to prepare to interview for software
Gain internship experience in software
engineering positions, including for internships:
engineering
Mastering the Software Engineering Interview, UCSD,
Coursera