Что нужно знать каждому программисту по версии Google


Недавно на сайте Google появилась отдельная страница, где представлены курсы и инструменты для онлайн-образования, которые необходимо знать всем инженерам и программистам.
Прохождение образовательных программ не гарантирует работу в Google, о чём компания говорит в отдельной сноске. Но это очень интересно — узнать о том, какие курсы по мнению Google должен пройти каждый уважающий себя программист и инженер.
С перечнем курсов в оригинале вы можете ознакомиться здесь.

Рекомендации по образованию

  1. Пройдите вступительный курс компьютерных наук: UdacityCoursera.
  2. Научитесь программировать хотя бы на одном ООП языке: C++, Java, Python:
    Для новичков: Coursera — обучение программированиюкурс MIT по Javaкурс Google по Pythonкурс Coursera по Python.
    Для среднего уровня: Udacity — дизайн компьютерных программCoursera — создание качественного кодаCoursera — языки программированиякурс Брауновского университета — вступление в программирование.
  3. расширьте свой репертуар: JavaScript, CSS, HTML, Ruby, PHP, C, Perl, Shell. Lisp, Scheme:туториал по HTMLcodeacademy.com.
  4. Научитесь тестировать код: Udacity — методы тестированияUdacity — отладка программ.
  5. Знание дискретной математики: курс математики для программистов MIT.
  6. Понимание алгоритмов и структуры данных: вступительный курс MIT об алгоритмах, Coursera — вступительный курс об алгоритмах (часть 1 и часть 2), список алгоритмоввиды структур данныхкнига об алгоритмах.
  7. Понимание работы операционных систем: курс Беркли.
  8. Изучить искусственный интеллект: вступление в роботостроение, курс Стэнфордамашинное обучение.
  9. Создание компиляторов: курс Coursera.
  10. Знание криптографии: курс Coursera о криптографиикурс Udacity о криптографии.
  11. Знание параллельного программирования: курс Coursera.

Рекомендации по работе

  1. Создайте сайт, постройте собственный сервер или создайте робота: список проектов Apache,Google Summer of Codeкоманда разработчиков Google.
  2. Разработайте небольшую часть большой системы, прочитайте и поймите код, изучите программную документацию, отладьте программу. Вспомогательные ресурсы: GitHubKiln.
  3. Работайте над проектом в команде. Вы будете учиться у других и научитесь командной работе.
  4. Улучшайте навыки программирования и знание алгоритмов: CodeJamACM ICPC.
  5. Учите других.
  6. Станьте интерном: google.com/jobs.
Такие рекомендации компания даёт всем программистам и инженерам.