Я даже не могу выразить те эмоции, которые я испытал, когда получил письмо от команды MLH о принятии меня на трек GitHub Externship в MLH Fellowship Fall 2021!
8 сентября я получил еще одно письмо о том, что из-за своего региона я не могу попасть на трек Github Externship, поэтому мне придется либо переключиться на трек Open Source, либо отложить свое зачисление. И я рад, что принял решение перейти на трек Open Source.
20 сентября мы начали набор на сессию onboarding, где мы узнали о том, какие удивительные вещи нас ждут, и были раскрыты детали проектов, в которые мы должны были внести свой вклад в течение следующих 12 недель. Моим проектом был Pysa от Facebook Open Source.
![]()
Арпан Абхишек@arpancodes
И мы начинаем эту партию 😍
#MLHFellowship20:56 PM — 20 Sep 2021![]()
![]()
![]()
Первая неделя: Восточный хакатон
Цель восточного хакатона заключалась в том, чтобы мы ознакомились с нашими проектами. Мы создали группу из 4 человек и начали читать о Pysa — инструменте статического анализа, написанном на python.
После 4-дневного исследования мы создали инструмент CLI, который поможет нам найти уязвимость SQL Injection в коде на python.
arpancodes / protectsql
Статический анализатор для защиты вашего flask-приложения от SQL Injection.
Вклад начинается
Со второй недели начался реальный вклад. Мы организовали еженедельные встречи с сопровождающими, установили офисные часы (два раза в неделю), когда любой желающий мог прийти и задать свои вопросы сопровождающим, а также встречи 1 на 1 с менторами (один раз в две недели) для получения карьерных советов.
Я и раньше вносил свой вклад в открытый исходный код, поэтому для меня это не было самой сложной частью, или я так думал!
Мой первый PR и я сделал «бу-бу-бу». Я зафиксировал .gitignore
и оттолкнул.
Мне очень нравится сообщество разработчиков открытого кода или даже сообщество хакеров — никто не осудит тебя, какие бы глупые вопросы ты ни задавал и что бы ты ни делал.
Я искал, как удалить один файл из PR, но не смог добиться желаемого результата, так как я совершил 2-3 коммита после добавления .gitignore
в мой PR, или, скажем так, моя ситуация была немного сложнее.
Поэтому я спросил на канале, и мейнтейнер моего проекта был достаточно любезен, чтобы направить меня шаг за шагом!
Это было мое первое обучение!
Далее я написал свой первый в жизни юнит-тест, и тоже на открытом проекте Facebook Sapp 🎉.
Во время работы над этим PR мне пришлось изучить множество вещей, так как я писал тесты для него, я хотел знать хотя бы немного больше, чем основы.
Я начал с изучения flask и SQLAlchemy, и поскольку мы использовали библиотеку unittest
(которая поставляется с python), я прочитал ее документацию.
После создания PR я узнал, что могу использовать tempfile
, чтобы избежать ручного создания файла и его удаления после завершения теста, что привело меня к изучению контекстных менеджеров в python, поскольку я использовал вложенные утверждения with
.
Пока я писал эту статью, я понял, что у этого PR есть целая история. Если вам интересно, какие изменения произошли за это время, вы можете посмотреть здесь 😉.
Добавить тесты для файла `warning_messages.py` #62
arpancodes posted onПредварительный контрольный список
- [x] Я запустил следующие линтеры локально и исправил ошибки lint, связанные с файлами, которые я изменил в этом PR
- [x]
black .
- [x]
usort format .
- [x]
flake8
- [x] Я установил dev-зависимости
pip install -r requirements-dev.txt
и выполнил следующее:
- [x] Я запустил тесты с помощью
./scripts/run-tests.sh
и убедился, что все тесты пройдены.Резюме
Добавлены тесты для файла
/sapp/warning_messages.py
.План тестов
Соответствующий вопрос: https://github.com/MLH-Fellowship/sapp/issues/11
Посмотреть на GitHub
После этого, мои последние два PR были для Pysa playground (как для frontend, так и для backend), для которых мне пришлось немного узнать о Web-Sockets и как мы можем использовать их с flask.
И вот, благодаря MLH я пишу свой первый «личный» блог! 😛
Вывод
Цель этой статьи не в том, чтобы похвастаться тем, чему я научился во время стипендии MLH, а в том, чтобы вы поняли, что я узнал так много всего за несколько недель! И это осознание действительно очень мощное!
Скажите, сколько времени у вас ушло на изучение вашего первого языка?
Я был очень новичком в python, если не сказать совсем новичком, но после стипендии MLH я очень хорошо знаком с его экосистемой!
Итак, что нам нужно сделать, так это изменить подход к обучению. Причина, по которой я так много учился, заключалась в том, чтобы решить какую-то задачу, а не просто узнать новую технологию! И я твердо убежден, что если у вас есть задача, которую нужно решить, или цель, которую нужно достичь, вы будете учиться в 10 раз быстрее.
Не ставьте перед собой цели типа «Я хочу изучить android-разработку, чтобы стать android-разработчиком».
Вместо этого делайте маленькие шаги и ставьте микроцели вроде «Я хочу научиться создавать ботов, чтобы пассивно посещать онлайн-занятия» 😅 или что-то в этом роде.
А если вы не можете найти такую цель, внесите свой вклад в открытый исходный код! Это даст вам возможность узнать так много нового, что вы даже не могли себе представить!