Реклама
Меморина
Меморина
Меморина

Как стать хорошим программистом: статья от Google

Обложка: Как стать хорошим программистом: статья от Google
Главное из статьи:
- Начните с базового курса Computer Science и освойте ООП-язык (Java, Python, C++)
- Изучайте алгоритмы, структуры данных и дискретную математику — без них не обойтись
- Тестируйте код, участвуйте в open source и соревнованиях по программированию
- Разберитесь в ОС, компиляторах и UX — это выделит вас среди других разработчиков
- Работайте над собственным проектом и учите других — это лучший способ закрепить знания

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

Пройдите курс по направлению Computer Science

Если вы только собираетесь делать свои первые шаги в программировании и не знаете, с чего начать, то пройдите вводные курсы. Там вас научат азам программирования, так что после их прохождения вы будете относительно неплохо знать какой-либо язык программирования и писать качественный код. Такие курсы можно найти здесь и здесь. Также смотрите наш список из 10 лучших книг для начинающих разработчиков.

Выучите объектно-ориентированный язык программирования

Объектно-ориентированное программирование сейчас является стандартом в промышленном программировании, поэтому и хорошая зарплата вам гарантирована. Примерами таких языков являются C++, Java, Python. Курсы для новичков можно найти здесь, здесь и здесь, а для продолжающих обучение здесь и здесь. Несколько полезных сборников ссылок и книг для изучения Java, Python, С++.

Осваивайте другие парадигмы и языки

Расширяйте свой программистский кругозор, не стоит ограничиваться одним ООП, осваивайте другие парадигмы, учите другие языки, пробуйте себя в разных сферах. Например, если вы хотите разрабатывать веб-приложения, то однозначно стоит обратить внимание на CSS, HTML, JavaScript, PHP, Ruby. Хотите экзотики? Посвятите немного времени Haskell, Clojure, Prolog. Курсы для получения новых знаний можно найти здесь и здесь. Отдельно советуем обратить внимание на ресурс Codecademy. Обратите внимание на нашу подборку 10 бесплатных книг по JavaScript для начинающих.

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

Ошибки в коде не нравятся никому: ни вашему тимлиду, ни тестировщикам, ни заказчику, ни конечным пользователям. Поэтому тестируйте свой код. Курсы по этой теме здесь и здесь. Смотрите также: зачем нужны юнит-тесты?

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

Если вы хотите делать в своей жизни что-то более интересное, чем до конца дней писать сайты, то без этого вам не обойтись. Курсы: от MIT, по логике, графическим моделям, теории игр. Если вы все еще сомневаетесь, нужна ли программисту математика в работе, то прочитайте мнения экспертов по этому поводу.

Знайте алгоритмы и структуры данных

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

Разберитесь, как устроены операционные системы

Любая программа взаимодействует с ОС, поэтому выработайте понимание того, как устроены операционные системы, хотя бы на базовом уровне. Отличный курс по теме на YouTube.

Выучите UX-дизайн

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

Разберитесь в машинном обучении

Человечество с давних пор мечтает об искусственном интеллекте, и сегодня эта мечта близка как никогда. Если вы хотите поучаствовать в ее осуществлении, то станьте специалистом в области машинного обучения — молодой, но активно развивающейся науке. Курсы по робототехнике и машинному обучению. Также обратите внимание на топ-10 алгоритмов интеллектуального анализа данных.

Разберитесь, как работают компиляторы

Многие программисты пишут код и даже не задумываются, как он преобразуется в понятные компьютеру инструкции. Если вам это интересно, то изучите то, как работают компиляторы. Сделать это можно в этом курсе. Подборка книг о компиляторах есть у нас на сайте.

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

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

Участвуйте в open source-проектах

Это поможет вам развить навыки работы с чужим кодом, да и в конце концов вы просто будете приносить пользу человечеству. Идеальным местом для open source-деятельности является GitHub.

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

Это поможет вам научиться работать в команде, что является неотъемлемым навыком в современном мире, а еще вы сможете научиться у них чему-то новому.

Участвуйте в соревнованиях по программированию

Решайте алгоритмические задачи, ведь это помогает держать ваш мозг в форме, углубляет понимание алгоритмов и структур данных, да и вообще это неплохой способ провести время. Делать это можно на таких сайтах как Codeforces и TopCoder. Смотрите также нашу подборку сайтов с задачами и соревнованиями по программированию, а также популярные задачи с собеседований.

Найдите себе ученика

Найдите ученика в области, в которой вы неплохо разбираетесь. Как ни странно, но обучение кого-то какому-либо предмету помогает самому углубить знания в этом предмете, а еще неплохо развивает навыки коммуникации.

Чтобы ускорить карьерный рост, изучите смежные материалы: как найти первую работу в IT, какие навыки нужны разработчику в 2024 году, как написать резюме программиста и как пройти техническое собеседование.

Часто задаваемые вопросы

Сколько времени нужно, чтобы стать хорошим программистом?

Это зависит от интенсивности обучения и начального уровня подготовки. В среднем от 1 до 3 лет систематических занятий, чтобы освоить базовые навыки и начать работать на junior-позиции. При этом обучение программиста не заканчивается никогда — технологии постоянно обновляются.

Какой язык программирования выбрать первым?

Google рекомендует начинать с объектно-ориентированного языка: Python, Java или C++. Python считается наиболее дружественным для начинающих благодаря простому синтаксису. Java широко используется в корпоративной разработке, а C++ дает глубокое понимание работы компьютера.

Нужно ли высшее образование, чтобы стать программистом?

Формально — нет, многие успешные разработчики являются самоучками. Однако знания дискретной математики, алгоритмов и архитектуры компьютеров, которые дают в вузе, значительно ускоряют профессиональный рост. Google рекомендует пройти хотя бы онлайн-курсы по Computer Science.

Обязательно ли участвовать в open source?

Не обязательно, но крайне полезно. Участие в open source-проектах помогает научиться работать с чужим кодом, понимать архитектурные решения и получить реальный опыт командной разработки. Кроме того, ваш профиль на GitHub может стать важным дополнением к резюме.