Чуть больше месяца назад мой научный сотрудник из университета, который является одним из руководителей сообщества Facebook Developer Circle в Лахоре, опубликовал сообщение о программе наставничества Facebook с открытым исходным кодом.

Я подал заявку на участие в программе, не ожидая участия, потому что у меня мало опыта и пустой график вклада github (хотя там упоминалось, что вам не нужно иметь какой-либо опыт или какой-либо вклад в github, но в это всегда трудно поверить. ) Я все же попал. Я был вне себя от радости и абсолютно взволнован, когда получил письмо с подтверждением. Честно говоря, это было больше потому, что это сделал Facebook, чем потому, что это было бы несравненной возможностью для обучения.

Программа Facebook Open Source Mentorship - это 4-недельная программа по обучению подопечных принципам открытого исходного кода и открытым исходным кодом в Facebook. На полпути к программе я понял, что, без сомнения, это определенно потрясающая возможность многому научиться, в то же время отдавая дань уважения сообществу открытого исходного кода.

Моим наставником был назначен Мартин Питерс, который является инженером-программистом в Facebook, одним из главных участников в Stack Overflow и Python Legend. Было немного страшно работать с таким опытным человеком. Но с самого начала он был очень дружелюбным и скромным. Он поручил мне проект osquery на нашей первой (онлайн) встрече.

О проектах

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

Как оказалось, было не очень просто настроить его для разработки (сборка двоичных файлов и всего остального) в MS Windows. Существует множество зависимостей, загрузка которых требует значительного времени, если у вас нет стабильного подключения к Интернету. В нем говорится, что вы можете создавать двоичные файлы в Windows, но я обнаружил, что вам нужно предпринять дополнительные шаги и внести изменения в исходные файлы, чтобы скомпилировать его в Windows. Я настраивал его в своей системе, когда у меня была вторая встреча с Мартейн. Он предложил мне еще пару проектов, на случай, если я с этим не справлюсь или не особо заинтересован в нем. Одним из них был PyTorch.

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

  • Тензорное вычисление (например, numpy) с сильным ускорением графического процессора
  • Глубокие нейронные сети, построенные на ленточной автоградиентной системе

Вы можете прочитать больше об этом здесь".

Я участвовал в создании пакетов torchvision и pytorch для PyTorch. Torchvision - это пакет PyTorch, который имеет загрузчики наборов данных и модели для обычных наборов данных изображений и видео компьютерного зрения (MNIST, CIFAR, ImageNet и т. Д.). Pytorch - это основной пакет PyTorch, который предоставляет его основные функции.

Вскоре я напишу больше о задачах, над которыми работал, в отдельном блоге (надеюсь)!

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

Зачем работать с открытым исходным кодом?

Как инженер в сервисной компании, у меня раньше не было опыта работы с открытым кодом. Я никогда не понимал, как люди находят время и энергию для работы с открытым исходным кодом. Когда я действительно поработал над этим, я понял, что оно того стоит. Вот почему:

Портфолио: Работа с открытым исходным кодом отлично подходит для вашего портфолио. Прошли те времена, когда вам приходилось писать в своем резюме о том, что вы сделали. Если вы работали с открытым исходным кодом, вы можете просто дать работодателю ссылку на свой профиль GitHub (или что-то еще, что вы используете), и он будет говорить сам за себя.

Контакты: вы узнаете так много людей, когда участвуете в проекте с открытым исходным кодом. Люди, с которыми вы заводите контакты, и то, чему вы от них учитесь, действительно ценны.

Сделать мир лучше: Да, звучит фантастически, но верно (вроде как!). Нет ничего сопоставимого с той ценностью, которую вы приносите сообществу разработчиков программного обеспечения, предоставляя открытый исходный код. Есть настоящие люди, которым легче выполнять свою работу, потому что вы внесли свой вклад в фреймворк с открытым исходным кодом.

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

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

Первоначально опубликовано на сайте incrementalist.net 5 апреля 2017 г.