Привет, я Оля

  • Работала в Яндексе и Microsoft
  • Вернулась в JetBrains
  • Контрибьютор Git
  • Делаю Django Girls и PyLadies
  • Пишу на Kotlin, пришла на Python митап поговорить о C

 

Привет, я Git

Самая популярная система контроля версий

Почему?

  • GitHub
  • Because not enough people have tried Mercurial
  • Linus himself wrote it

Что за странное название

Документация начинается со слов

git - the stupid content tracker

Зачем лезть в Git

  • Все хотят в Open Source...
  • И чтобы проект был погромче
  • Это помогает искать работу / повышает зарплату
  • Придает уверенности в себе

Как я попала в Git

Сперва был диплом в Linux Kernel

Затем 3 года попыток пройти на стажировки в Linux Kernel

Затем я решила сменить проект

Cразу прошла в Git

Fun fact: иногда у Git и Linux Kernel общие исходники 

Today You Learned:

Не зацикливайтесь,

смотрите по сторонам

Как пройти на стажировку

  • Прочесть правила выбранной стажировки
  • Выбрать проект из списка
  • Прочесть про него, изучить всё что есть
  • Написать указанным контактам
  • Сделать первую задачку
  • (она должна показаться несложной)
  • Optional: сделать еще парочку
  • Ждать результатов отбора

Моя задача

  • Есть потребность доставать информацию из файлов и форматировать ее

  • Есть минимум 4 дублирующие реализации 

  • Я пыталась удалить версию из
    git cat-file

  • И начать использовать версию из
    ref-filter.c (git show-ref, git for-each-ref, etc)

  • Я делаю это до сих пор

ref-filter начал работать в разы быстрее

За 3 месяца стажировки

  • Я придумала сценарий переезда
    (менторы одобрили)
  • Реализовала этот сценарий
    (с кучей промежуточных успешных ревью)
  • На итоговом ревью мне сказали, что подход
    был так себе
  • Предложили начать заново
  • Стажировка кончилась

Мне заплатили

Все было ради

18 декабря 2018

' or 1=1 -- `ǤŘΔΜ` <b>σяsιηιυм</b> official (っ◔◡◔)っ

Всё было не напрасно

О стажировках

  • Это интересный опыт

  • Это деньги

  • Нужен опыт до начала стажировки
    (хотя они утверждают обратное)

  • Менторы могут быть слабыми

  • Стажировка на удаленке - на любителя

  • Не забываем про формальные требования

  • Зимой 2017-2018 была стажером Outreachy

  • Продолжила разработку просто так

  • Летом 2019 была ментором в GSoC

  • Мой студент распараллеливал часть команд (у него классный блог)

To sum up

Для начала нужно найти:

  • хотя бы 10 часов в неделю

  • ментора внутри проекта

  • машину с Linux (на Mac будет больно)

  • безграничное терпение

 

  • еще надо не бояться C, git, shell, английского

Успехов =)

Я тоже хочу в git!

Попроще можно?

Можно. Git - не единственный проект

Инструкция: как попасть в opensource

  • выучить 1 любой ЯП

  • найти приятный проект на этом языке

  • прочитать доки и инструкции для newbies

  • их нет? блин, как всегда

  • читаем issues, грустим, расходимся

  • пишем письма авторам последних коммитов

  • находим ментора, задачку, ревьюера

  • ❤️❤️❤️❤️❤️

hacktoberfest.digitalocean.com

 

PiterPy Hackotberfest: 12 октября, SEMrush
PiterPy Hacktoberfest: 26 октября, HomeCredit

Как происходит процесс разработки

Как происходит процесс разработки

 

Что не так с git?

Что не так с Git?

ANSI C (1989 год)

При старте проекта в 2005

Нельзя объявить переменную в середине функции

Что не так с Git?

Mailing Lists

Что не так с Git?

Нет pull requests: используем патчи и Mailing Lists

Домашнее задание:

  • завтра поработать

  • git diff > my_work.patch

  • отправить всей своей компании через Mailing Lists

  • вместе поплакать

Что не так с Git?

Нет issues: используем Mailing Lists

Что не так с Git?

Нет системы для ревью

Угадайте что есть

Что не так с Git?

Ревью в британском стиле

Что не так с Git?

Угадайте bus factor

1

Что не так с Git?

Junio C Hamano

Оля, береги его, ему и так тяжело

(с) мои менторы

Что я упустила...

Что не так с Git?

Отвратительный код

Проект без структуры

Никакой документации для разработчиков

Что не так с Git?

Страшно течет память

Undefined behavior на каждом шагу

Для самых храбрых

github.com/git/git/commits?author=telezhnaya

Почему ref-filter стал быстрее

Давайте не качать файл, если он нам не нужен

github.com/git/git/commits?author=telezhnaya

matheustavares.gitlab.io/gsoc/

 

outreachy.org

summerofcode.withgoogle.com

Made with Slides.com