Git Product home page Git Product logo

old-google-tech-dev-guide's Introduction

The Google Tech Dev Guide is great, but I liked the simplicity of the previous version. So I retrieved the Aug 2017 version of the Google Guide to Technical Development from the Internet Archive, and reformatted it for Github. I plan to make minor updates, but will try to keep it as simple as the original.

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
  • C
  • 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:
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 Code Jam or ACM’s International Collegiate Programming Contest.

Online resources:

  • Code Jam
  • Kickstart, a Code Jam competition, is for university students looking to develop their coding skills and pursue a Google career
  • ACM ICPC
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.
Prepare for the interview

Online resource to prepare to interview for software engineering positions, including for internships:

Articles

There was no article section in the original guide, but these are relevant, recent and excellent.

old-google-tech-dev-guide's People

Contributors

gustavbertram avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.