Рекомендации 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 — отличный способ читать код других людей или внести вклад в существующий проект.
- Поработайте над проектом с другими программистами
Примечание: Это улучшит ваши навыки работы в команде и поможет вам научиться учиться у других.
- Практикуйте свои знания алгоритмов и программирования
Примечание: Знание алгоритмов отлично тренируется в соревнованиях по программированию.
Онлайн-ресурсы: CodeJam, ACM ICPC
- Научите чему-нибудь других
Примечание: Помогая учиться другим, вы углубляете свои собственные знания.
- Станьте участником программы стажировки
Примечание: Старайтесь подавать заявки на программы стажировки заранее. Как правило, заявки начинают приниматься за несколько месяцев до начала программы.
Онлайн-ресурсы: Вакансии Google