Site icon AppTractor

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

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

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

Какие есть варианты изучения нового языка?

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

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

Я разработал более 20 мини-проектов, изучая разные языки программирования. Поверьте мне — когда вы пишете код для своего личного проекта, который может быть проектом «выходного дня» или «ночным быстрым хаком», вы пишете код просто, чтобы выполнить задачу. Единственное, что вас заботит — «работает ли мой код?». И вас мало заботит качество кода.

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

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

Примите участие в открытом проекте на этом языке

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

Нет, не верно.

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

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

Я начал читать о синтаксисе Perl и начал понимать некоторые общие шаблоны. Я уже хотел что-то сделать с помощью Perl, чтобы применить свое понимание языка и попробовать на практике различные концепции. Пока я искал идеи для создания чего-то на Perl, я наткнулся на организацию DuckDuckGo на GitHub. Я заметил, что некоторые из их открытых проектов были написаны на Perl. Я посмотрел на открытые запросы и нашел много задач для начинающих. Я сразу начал работать над ними и представил пару пул реквестов. Перемотаем вперед – и вот я один из главных контрибьюторов нескольких их открытых проектов, а также один из 20 Лидеров Open Source Сообщества DuckDuckGo.

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

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

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

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

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

Я: Мне очень нравится эта задача. Я хочу поработать над этим. Что вы думаете?
Он: Да, это действительно интересно. Однако для этого требуется знание Go. Знаете ли вы Go?
Я: Нет.
Он: Вы хотите выучить Go?
Я: Да!
Он: * улыбается * Так давайте! (в оригинале There you go! — непереводимая игра слов, основанная на самом названии языка Go – идти)

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

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

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

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

Как открытый код помогает?

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

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

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

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

Ревью кода

Лучшая часть open source – это сам обзор кода. Когда вы пушите ваш код, вы получаете отзыв от экспертов проекта, и это дает вам возможность улучшить понимание языка.

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

Признание

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

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

Дайте мне знать, как этот нетрадиционный способ сработает для вас. Также, пожалуйста, порекомендуйте (❤) этот пост, если вы думаете, что это может быть полезно кому-то.

Не стесняйтесь поделиться любым другим способом, который сработал для вас.

Exit mobile version