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

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

Онлайн-курсы, перечисленные в этом руководстве, не заменяют учебную программу вашего вуза. Тем не менее, они станут прекрасным дополнительным инструментом для вашего самообучения или для ознакомления с конкретной дисциплиной.

Использование руководства:

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

Следите за страницей Google+ для студентов, на которой публикуются дополнительные советы и ресурсы, и где можно пообщаться с другими заинтересованными студентами.

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

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

Примечание: Прослушайте начальный курс Computer Science, в котором представлены основы программирования. Полученные знания будут полезны в любом направлении.

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

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

Примечание: Объектно-ориентированное программирование дает возможность создавать расширяемые системы (extensible systems). Это одно из самых значительных достоинств ООП и именно оно отличает данный подход от традиционных методов программирования. Расширяемость (extensibility) означает, что существующую систему можно заставить работать с новыми компонентами, причем без внесения в нее каких-либо изменений.

Онлайн-ресурсы для новичков: 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 — Дебаггинг ПО

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

Примечание: Программирование состоит из разного рода задач, которые на 70% состоят из математики.

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

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

Примечание: Изучите фундаментальные типы данных (массивы, записи, кортежи), сортировочные алгоритмы (быстрая сортировка, сортировка слиянием, пирамидальная сортировка) и структуры данных (бинарные древа поиска, красно-чёрные деревья, таблицы хеширования), большое «О».

Онлайн-ресусры: Введение в алгоритмы от МТИ, Coursera — Введение в алгоритмы: Часть 1 и Часть 2, Список алгоритмов, Список структур данных, Книга: Руководство по разработке алгоритмов

От нас: подборка материалов по алгоритмам, структурам данных и дискретной математике

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

Примечание: Знание операционных систем даст возможность писать максимально оптимизированные программы.

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

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

Примечание: Отрасль развивается очень быстро. Например, алгоритмы поиска Google используют ИИ.

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

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

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

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

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

Примечание: Большое количество технологий основано на криптографии. Например, Blockchain.

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

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

Примечание:

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

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

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

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

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

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

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

Онлайн-ресурсы: Github, Kiln

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

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

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

Примечание: Знание алгоритмов отлично тренируется в соревнованиях по программированию.

Онлайн-ресурсы: CodeJam, ACM ICPC

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

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

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

Примечание: Старайтесь подавать заявки на программы стажировки заранее. Как правило, заявки начинают приниматься за несколько месяцев до начала программы.

Онлайн-ресурсы: Вакансии Google

Другие статьи по теме

Как не провалить дистанционное техническое собеседование

Как стать Junior-разработчиком и устроиться на работу за 4 месяца

МЕРОПРИЯТИЯ

Комментарии

ВАКАНСИИ

Добавить вакансию
Senior Java Developer
Москва, по итогам собеседования
Разработчик С#
от 200000 RUB до 400000 RUB

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ