What every programmer should know according to the Google version?

What every programmer should know according to the Google version?

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

  1. Go through the introductory course of Computer Science: UdacityCoursera.
  2. Learn how to program at least one OOP language: C ++JavaPython:

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.

  1. Expand your repertoire: JavaScriptCSSHTMLRubyPHPC, Perl, Shell. Lisp, Scheme: tutorial on HTML, codeacademy.com.
  2. Learn how to test code: Udacity – testing methods, Udacity – program debugging.
  3. Knowledge of discrete mathematics: mathematics course for programmers MIT.
  4. 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.
  5. Understanding the work of operating systems: Berkeley course.
  6. Explore artificial intelligence: the entry into robotics, Stanford course, machine learning.
  7. Compiler creation: Coursera сourse.
  8.  Knowledge of cryptography: Coursera course about cryptography, Udacity course about cryptography.
  9.  Knowledge of parallel programming: Coursera course.

Recommendations on the work

  1. 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.
  2. Develop a small part of a large system, read and understand the code, learn the program documentation, debug your program. Supporting Resources: GitHub, Kiln.
  3. Work on the project in team. You will learn from others and learn teamwork.
  4. Upgrade your programming skills and knowledge of algorithms: CodeJam, ACM ICPC.
  5. Teach others.
  6. Become an intern: google.com/jobs.

Company provides such recommendations for all programmers and engineers.