CoderCastrov logo
CoderCastrov
Google Summer Of Code

Анализ организаций Google Summer of Code

Анализ организаций Google Summer of Code
просмотров
5 мин чтение
#Google Summer Of Code

Обо мне,

Я Аргхья, первокурсник в НЮУ в программе самостоятельного обучения. Я люблю математику и начал ненавидеть программирование, которое не имеет в себе математического содержания (хотя могут быть и некоторые исключения). Я начал заниматься открытым программным обеспечением несколько месяцев назад и в основном вносил свой вклад на языке Python, который преподается в моей школе. Но в ближайшее время я надеюсь работать над проектами на Julia и JavaScript. Кроме этих языков, у меня есть хорошие знания C++ и Java.

Что такое Google Summer of Code?

Если вы читаете этот пост, то, вероятно, имеете представление о Google Summer of Code. В любом случае, чтобы дать вам краткий обзор, Google Summer of Code (GSoC) - это международная программа, которая поощряет разработку открытого программного обеспечения. По этой же причине GSoC не является стажировкой, и вы не работаете на Google. В конце весны и наступлении лета вы должны связаться с одной из сотен партнерских организаций GSoC. Затем организация поместит вас в свой приоритетный список и запросит слот у Google для своей программы GSoC для вас. Если вам повезет получить слот, вас ждет плодотворное лето программирования с помощью полезных наставников. Кроме того, вы также получаете стипендию, которая составляет от 3000 до 6000 долларов в зависимости от страны, в которой вы живете. Если вас интересует более подробная информация о том, как участвовать, я рекомендую вам ознакомиться с Руководством GSoC, чтобы узнать больше.


Выбор вашей организации

Мы говорили о необходимости связываться с партнерскими организациями, чтобы мы могли принять участие. Но какие параметры вы можете учесть перед выбором организации? Это самый часто задаваемый вопрос после вопросов о самом opensource.

Мой анализ направлен на предоставление вам лучших способов выбора вашей организации. Хотя веб-сайт GSoC предоставляет вам множество информации об организации, позволяя вам фильтровать их по категориям концентрации, единственному языку программирования или выбору темы. Я обнаружил, что ему все же не хватает некоторых важных параметров относительно того, как можно выбрать организацию.

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


Самые популярные языки и типы организаций

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

Мы можем видеть, что самые популярные языки в GSoC это:

  • Python
  • C++
  • C
  • JavaScript
  • Java

Неудивительно, что C++ и C присутствуют в этом списке, учитывая тот факт, что большинство проектов в GSoC связаны с разработкой.

Аналогично, самые популярные типы организаций включают:

  • Языки программирования и инструменты разработки
  • Наука и медицина
  • Виртуальная реальность и медиа
  • Приложения для конечных пользователей

среди прочих...

Это дает нам ясное представление о том, что организации GSoC могут искать в общем.

Количество студентов в организации

Понимание этого также важно, учитывая, что мне постоянно советуют, что новичкам в GSoC намного проще попасть в крупные организации, чем в маленькие. Это имеет смысл, потому что эти организации часто участвуют в GSoC с самого начала и знают, как все происходит.

Мы видим, что только 7% из более чем 200 организаций принимают более 15 студентов.

Крупные организации

Хотя моя цель не отговорить вас от участия в маленьких организациях, на самом деле, если у вас есть узкая специализация и вы знаете, чего хотите достичь, то вы можете выбрать маленькую организацию. Но было бы неполным, если я не упомянул "крупные" организации.

Вот организации с более чем 15 участниками в произвольном порядке, прямо из моего терминала:

CERN-HSF
Oppia Foundation
KDE Community
The Honeynet Project
INCF
The R Project for Statistical Computing
Rocket.Chat
GNOME Foundation
Free and Open Source Silicon Foundation
OSGeo - Open Source Geospatial Foundation
Zulip
Red Hen Lab
Digital Impact Alliance (DIAL) at UN Foundation
Processing Foundation
OWASP Foundation
International Catrobat Association
SCoRe Lab
OpenCV
The Apache Software Foundation
NumFOCUS
The LLVM Compiler Infrastructure
TensorFlow
The Linux Foundation
Liquid Galaxy project
CNCF
Python Software Foundation
National Resource for Network Biology (NRNB)
OpenMRS
Machine Learning for Science (ML4SCI) Umbrella Organization
The Julia Language
AOSSIE

Неудивительно, что в списке много известных и влиятельных проектов.


Да, я знаю, я знаю. Если вы так долго остались, вам, вероятно, будет интересно поиграть с моим кодом. Вы можете узнать больше о моем коде на Github, используя ссылку ниже.

GitHub - sarkarghya/GSOC_org_analysis

Технология

Я использовал Python 3 с библиотеками Selenium и BeautifulSoup4. Мой проект не использует функцию клика, вместо этого он получает идентификатор организации из внутреннего HTML.

Затем мы замечаем, что URL-адреса для подстраниц организации могут быть получены из идентификатора организации. Сначала сохраняем этот список идентификаторов организаций в переменную, а затем используем его для итерации по остальным URL-адресам, что позволяет нам сэкономить вычислительное время и сделать наш код эффективным.

Изменение

Это код, и вы можете с ним экспериментировать как угодно. Я сохранил несколько файлов .dat, с которыми вы можете поиграть.

Игра с существующими данными

Если вы хотите отфильтровать свою организацию в соответствии с интересами (что явно выходит за рамки этой статьи), вы можете сделать это с помощью файла data_read в разделе code. Я привел несколько примеров, с которыми вы, возможно, можете поиграть.

Шаги, которые вам нужно выполнить

direct = f"./code/orgs-{date.today() - timedelta(**days = 7**)}/"  

Структура данных

Каждый файл .dat хранит словарь. Ключи словаря:

'name', 'tech', 'org_type', 'org_topics', 'num_students', 'students'

Объекты, хранящиеся в этих ключах, имеют типы:

<class 'str'>, <class 'list'>, <class 'str'>, <class 'list'>, <class 'int'>, <class 'list'>

Кроме того, последний список содержит список списков с именем студента, проектом, URL в том же порядке. Таким образом, вы можете непосредственно просматривать интересующие вас проекты прямо из своей среды разработки.

Данные для других лет

Сайт GSoC, скорее всего, останется таким же, как и в предыдущие годы. Это очень хорошая новость, потому что вы можете провести аналогичный анализ для других лет.

Вам просто нужно внести небольшое изменение в файл main.py, заменив параметр url на:

https://summerofcode.withgoogle.com/archive/2020/organizations/

или на один из следующих вариантов:

https://summerofcode.withgoogle.com/archive/2019/organizations/
https://summerofcode.withgoogle.com/archive/2018/organizations/
https://summerofcode.withgoogle.com/archive/2017/organizations/
https://summerofcode.withgoogle.com/archive/2016/organizations/

Довольно круто, не так ли!

Теперь вы можете проводить мульти-анализ, и да, это перебор для того, чтобы выбрать организацию.

Заключительные замечания

Надеюсь, этот статья помогла вам принять более обоснованное решение относительно выбора организации GSoC. Желаю удачи с вашими предложениями!

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

P.S. Если вам нравится мой контент, пожалуйста, подпишитесь на мой Medium, чтобы получать обновления!

Хотите связаться? LinkedIn Twitter Github