What Google Expects you to know
Recently on Google a separate page has appeared , which shows the courses and tools for online education, that necessary to know for all the engineers and programmers.
Passage of educational programs does not guarantee a job at Google, as the company said in a separate footnote. But it is very interesting to know what courses according to Google every self-respecting programmer and engineer must pass.
The list of courses in the original you can find here.
Recommendations on the education
- Go through the introductory course of Computer Science: Udacity, Coursera.
- Learn how to program at least one OOP language: C ++, Java, Python:
For beginners: Coursera - Programming training, MIT course on Java, Google course on Python , Coursera course on Python.
For Intermediate level: Udacity - design of computer programs, Coursera - creation of high-quality code, Coursera - programming languages, Brown University Сourse - an introduction to programming.
- Expand your repertoire: JavaScript, CSS, HTML, Ruby, PHP, C, Perl, Shell. Lisp, Scheme: tutorial on HTML, codeacademy.com.
- Learn how to test code: Udacity - testing methods, Udacity - program debugging.
- Knowledge of discrete mathematics: mathematics course for programmers MIT.
- Understanding of algorithms and data structures: MIT introductory course about algorithms, Coursera - introductory course about algorithms (part 1 and part 2), the list of algorithms, the types of data structures, the book about algorithms.
- Understanding the work of operating systems: Berkeley course.
- Explore artificial intelligence: the entry into robotics, Stanford course, machine learning.
- Compiler creation: Coursera сourse.
- Knowledge of cryptography: Coursera course about cryptography, Udacity course about cryptography.
- Knowledge of parallel programming: Coursera course
Recommendations on the work
- Create a site, construct your own server, or create a robot: a list of Apache projects, Google Summer of Code, a team of Google developers.
- Develop a small part of a large system, read and understand the code, learn the program documentation, debug your program. Supporting Resources: GitHub, Kiln.
- Work on the project in team. You will learn from others and learn teamwork.
- Upgrade your programming skills and knowledge of algorithms: CodeJam, ACM ICPC.
- Teach others.
- Become an intern: google.com/jobs.
Company provides such recommendations for all programmers and engineers.