Как стать программистом: руководство от Google


Это руководство позволит студентам вузов приступить к самостоятельному развитию своих технических навыков, но важно учесть свою специализацию.

Онлайн-курсы, перечисленные в этом руководстве, не заменяют учебную программу вашего вуза. Тем не менее, они станут прекрасным дополнительным инструментом для вашего самообучения или для ознакомления с конкретной дисциплиной.
Использование руководства:
  • Используйте руководство по своему усмотрению
  • Есть множество вещей, не перечисленных здесь, которые стоит изучить — вперёд!
  • Даже если вы изучите это руководство вдоль и поперёк, это не гарантирует вам трудоустройство в Google
  • Руководство постоянно пополняется — проверяйте обновления
Следите за страницей Google+ для студентов, на которой публикуются дополнительные советы и ресурсы, и где можно пообщаться с другими заинтересованными студентами.

Рекомендации для теоретического изучения

Познакомьтесь с вводным курсом Computer Science

Примечание: Прослушайте начальный курс Computer Science, в котором представлены основы программирования.
Онлайн-ресурсы: Udacity — Введение в Computer Science, Coursera — Computer Science 101

Попробуйте программировать хотя бы на одном объектно-ориентированном языке: C++, Java или Python

Онлайн-ресурсы для новичков: Coursera — Учимся программировать: Основы, Введение от МТИ в программирование на Java, Урок по Python от Google, Coursera — Введение в Python, Электронная книга по Python в открытом доступе
От нас: подборки по C++, Java, Python
Онлайн-ресурсы для продолжающих изучение: Udacity: Проектирование компьютерных программ, Coursera — Учимся программировать: Пишем качественный код, Coursera — Языки программирования, Университет Брауна — Введение в языки программирования

Изучите другие языки программирования

Примечание: Добавьте в свой репертуар JavaScript, CSS, HTML, Ruby, PHP, C, Perl, Shell, Lisp, Scheme.
Онлайн-ресурсы: Руководство по HTML от w3school.com, CodeAcademy.com
От нас: каталог книг, видеолекции

Тестируйте свой код

Примечание: Научитесь отыскивать баги, создавать тесты и взламывать собственное ПО.
Онлайн-ресурсы: Udacity — Методы тестирования ПО, Udacity — Дебаггинг ПО

Развивайте логическое мышление и изучите дискретную математику

Онлайн-ресурсы: Математика для Computer Science от МТИ, Coursera — Введение в логику, Coursera — Линейная и дискретная оптимизация, Coursera — Вероятностные графовые модели, Coursera — Теория игр

Развивайте сильное понимание алгоритмов и структур данных

Примечание: Изучите фундаментальные типы данных (массивы, записи, кортежи), сортировочные алгоритмы (быстрая сортировка, сортировка слиянием, пирамидальная сортировка) и структуры данных (бинарные древа поиска, красно-чёрные деревья, таблицы хеширования), большое «О».
Онлайн-ресусры: Введение в алгоритмы от МТИ, Coursera — Введение в алгоритмы: Часть 1 и Часть 2, Список алгоритмов, Список структур данных, Книга: Руководство по разработке алгоритмов
От нас: подборка материалов по алгоритмам, структурам данных и дискретной математике

Развивайте свои знания операционных систем

Онлайн-ресурсы: Computer Science вместе с университетом Беркли

Изучите онлайн-ресурсы по искусственному интеллекту

Стэнфордский университет: Введение в робототехнику, Машинное обучение

Научитесь строить компиляторы

Онлайн-ресурсы: Coursera — Компиляторы

Изучите криптографию

Онлайн-ресурсы: Coursera — Криптография, Udacity — Прикладная криптография

Изучите параллельное программирование

Онлайн-ресурсы: Coursera — Гетерогенное параллельное программирование

Рекомендации для практического изучения

Поработайте над своим проектом

Примечание: создайте и обеспечьте работоспособность сайта, сервера или, например, постройте простого робота.
Онлайн-ресурсы: Список проектов Apache, Лето кода от Google, Сообщество разработчиков Google

Займитесь опенсорсом

Примечание: Github — отличный способ читать код других людей или внести вклад в существующий проект.
Онлайн-ресурсы: Github, Kiln

Поработайте над проектом с другими программистами

Примечание: Это улучшит ваши навыки работы в команде и поможет вам научиться учиться у других.

Практикуйте свои знания алгоритмов и программирования

Примечание: Знание алгоритмов отлично тренируется в соревнованиях по программированию.
Онлайн-ресурсы: CodeJam, ACM ICPC

Научите чему-нибудь других

Примечание: Помогая учиться другим, вы углубляете свои собственные знания.

Станьте участником программы стажировки

Примечание: Старайтесь подавать заявки на программы стажировки заранее. Как правило, заявки начинают приниматься за несколько месяцев до начала программы.
Онлайн-ресурсы: Вакансии Google
Матеріал: https://proglib.io/p/google-guide-for-studying/

Коментарі