Найти тему
О всяком

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

Оглавление

Руководство от компании Google для начинающих

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

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

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

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

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

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

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

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

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

-2

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

Онлайн-ресурсы для новичков: Coursera — Учимся программировать: ОсновыВведение от МТИ в программирование на JavaУрок по Python от GoogleCoursera — Введение в PythonЭлектронная книга по Python в открытом доступе

Дополнительно: C++JavaPython

Онлайн-ресурсы для продолжающих изучение: Udacity: Проектирование компьютерных программCoursera — Учимся программировать: Пишем качественный кодCoursera — Языки программированияУниверситет Брауна — Введение в языки программирования.

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

-3

Примечание: Добавьте в свой репертуар JavaScript, CSS, HTML, Ruby, PHP, C, Perl, Shell, Lisp, Scheme. Каждый новый язык, который Вы выучите даёт новые возможности решения задач.

Онлайн-ресурсы: Руководство по HTML от w3school.comCodeAcademy.com

Дополнительно: каталог книгвидеолекции.

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

-4

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

Онлайн-ресурсы: Udacity — Методы тестирования ПОUdacity — Дебаггинг ПО.

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

-5

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

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

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

-6

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

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

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

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

-7

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

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

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

-8

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

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

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

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

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

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

-9

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

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

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

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

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

Не стоит забывать так же о практической части программирования, которая является наиболее важным в нашем деле.

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

-10

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

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

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

-11

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

Онлайн-ресурсы: GithubKiln.

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

-12

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

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

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

Онлайн-ресурсы: CodeJamACM ICPC.

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

-13

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

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

-14

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

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