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

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

Каковы ваши действия, если вы хотите начать изучать новый язык программирования?

  • Изучать самостоятельно при помощи учебных материалов онлайн
  • Пройти массовый открытый онлайн-курс c применением технологий электронного обучения (MOOК)

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

  • Изучить синтаксис нового языка программирования
  • Сделать личный проект, используя этот язык

Вполне справедливо! Да, это дает уверенность в том, что вы применяете знания, полученные вами от изучения синтаксиса языка, на практике.

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

«Любой дурак способен написать код, который поймет компьютер. Хорошие программисты пишут код, который может понять человек.»  — Мартин Фаулер

Итак, как получить практику в новом языке программирования, который вы пытаетесь изучить?

Вносить вклад в проект с открытым исходным кодом на этом языке.

Удивлены? Кто-то из вас может подумать: «Но ведь работать с открытым исходным кодом трудно. Мне следует вносить свой вклад в open-source проект, только когда я стану специалистом в этом языке, верно? ». Ответ — нет.

Позвольте вам рассказать свою историю.

В прошлом году я получил предложение о полной занятости от Booking.com, и я знал, что буду работать с языком Perl (их основной язык для backend). В июне 2016 года, когда я окончил колледж, я начал изучать язык Perl, чтобы подготовиться к первой работе. Поскольку я должен был начать работу со второй недели июля, на все это у меня был примерно месяц.

Я стал читать о синтаксисе Perl и начал понимать некоторые общие шаблоны этого языка. После этого я захотел что-то создать с помощью Perl, чтобы я мог применить свои знания языка и попрактиковаться в использовании различных концепций языка. Когда я искал идеи для создания чего-то на языке Perl, я наткнулся на репозиторий open-source сообщества «DuckDuckGo» на GitHub. И тут я заметил, что некоторые из их открытых проектов были написаны на Perl. Я взглянул, и у меня появилось много вопросов типичного «новичка», но, несмотря на это, я сразу же начал работать над кодом и даже представил пару запросов на включение кода в проект. Перенесемся в сегодняшние дни. Теперь я являюсь одним из главных участников нескольких open-source проектов, а также одним из 20-ти лидеров open-source сообщества «DuckDuckGo».

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

Почему же это сработало?

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

Это было не просто совпадение! Позвольте рассказать вам еще одну историю.

Недавно, работая на Booking.com, я взял на себя некоторые задачи, которые включали добавление новой функции в одну из служб, написанных на языке Go. Вот мой разговор с товарищем по команде:

Я: Мне очень нравится эта задача. Я хочу работать над этим. Что ты думаешь по этому поводу?
Он: Да, это действительно интересно. Однако для этого требуется знание Go. Ты его знаешь?
Я: Нет.
Он: Ты хочешь научиться?
Я: Да!
Он: *улыбается* Я верю в тебя!

Так я стал на путь изучения Go!

Я начал читать о синтаксисе Go и нашел классный туториал для новичков на их официальном сайте. Там я быстро ознакомился со всеми основными понятиями языка.

И, опять же, я начал искать проекты с открытым исходным кодом на Go. Я нашел на GitHub проект от «Google», который в основном являлся оболочкой Go для работы с REST API.

Через два дня после начала обучения Go у меня был первый запрос на включение кода в проект.

График моих коммитов в проекты за последний год (https://github.com/sahildua2305)

 

Как помогают проекты с открытым исходным кодом?

Итак, теперь вы можете быть удивлены тем, как работа с open-source проектами может помочь вам в изучении новых языков программирования. Существуют различные аспекты. Давайте обсудим их один за другим.

Качество кода

У большинства хороших проектов с открытым исходным кодом достаточно строгий code conduct (соглашения, как писать код), которого вы должны придерживаться, чтобы совместно работать над проектом. Это поможет вам адаптироваться и написать код хорошего качества, даже если вы еще на начальном этапе изучения языка.

Кроме того, у вас есть шанс взглянуть на существующий код и посмотреть, насколько хорошо он написан и документирован.

Анализ кода

Большая часть в коммитов open-source проекты сопровождается тщательным анализом написанного кода. Вы получаете отзывы от экспертов, связанных с этим проектом, и, следовательно, это дает вам возможность улучшить понимание языка.

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

Оценка

Первый комментарий к моему первому включению кода в проект на Go Lang (https://github.com/google/go-github/pull/497)

Мы, разработчики программного обеспечения, нуждаемся в признательности за нашу работу. Будучи членом open-source сообщества, можете быть уверены, что у вас будут поддерживать другие участники. По моему опыту работы в open-source, я никогда не получал ни одного комментария, который был бы оскорбительным или демотивирующим. Все отзывы очень позитивны и полезны.

Еще один комментарий от участника сообщества DuckDuckGo

Поэтому в следующий раз, когда вы захотите выучить новый язык, идите вперед и сделайте решительный шаг! Найдите open-source проект, вносите свой вклад и продвигайтесь вперед на пути к изучению этого языка и его нюансов 😉

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Прокрутить вверх