Чи погано приєднуватися до проектів з відкритим кодом як аматор?


17

Я вже півроку думав, що мені слід приєднатися до проекту iPhone або iPad з відкритим кодом, щоб відточувати свої навички в Objective-C, але кожного разу, коли я йду робити це, я бачу тисячі рядків коду на величезних проектах в кінцевому підсумку переконую себе, я ніколи не зрозумію. Я завжди думаю, що мої зобов’язання в кінцевому підсумку стануть клопотом для адміністраторів проекту та більш старших учасників, тому я завжди відступаю в останню секунду.

По суті, моє запитання полягає в тому, чи це клопоту, коли досвідчений програміст, який працює з середнім часом, приєднується до проекту з відкритим кодом?


1
Відповідь Макке є більш вичерпною, але лаконічна відповідь на ваше посилене питання: ні.
Кріс Браун

1
@ChrisBrowne: Добре. Я відредагував свою відповідь на збіг. :)
Макке

Відповіді:


15

Ні це не так.

Якщо кодова база проектів, на які ви дивитесь, занадто нелегка, врахуйте:

  • Вибір (навіть) меншого проекту для роботи.
  • Оберіть меншу задачу в рамках проекту:
    • Напишіть приклад / підручник / демонстрацію для чогось
    • Оновлення та виправлення документації (всі проекти, ОС чи ні, потрібні кращі документи)
    • Виправити багато помилок з низьким пріоритетом, але їх легко виправити (велика експозиція коду, диски зазвичай раді, низький ризик)
  • Існують способи внести внесок без доступу до основного джерела, наприклад:
    • Надсилання патчів, які можна коментувати.
    • Формування та подання запитів на тягу (див. Вище)
    • Робіть себе та працюєте самостійно, просто щоб побачити, куди вас веде. Якщо ви щасливі, попросіть чортів поглянути на все, що ви зробили, щоб побачити, чи є сенс.

Щоб подолати свій "страх" не сприйняти свої зобов'язання, спочатку перейдіть до безпечних питань. Це дозволить і вам, і команді розробників отримати впевненість у своїх стосунках та навчитись мислення один одного. У міру вдосконалення (як у майстерності, досвіді, якості коду, так і розумінні команди вашої ОС ОС та динаміці) ви зможете вирішити більші завдання, вводячи менше клопоту.

Це також допомагає задати відповідні стартові точки та побачити, що команда може підібрати для вас.

Як приклад, я протягом кількох років зробив свій внесок у Buildbot. Я почав виправляти кілька невеликих проблем, а потім натрапив на якість кроків джерела Меркуріалу, виправивши кілька яскравих помилок. Нарешті, я переписав більшість веб-сторінок і замінив HTML-вставлення в коді на рішення, засноване на шаблоні HTML. Останнє було декількома сотнями доручень за кілька місяців важкої роботи.

Я також проробляв кілька меркурійських робіт, але ті хлопці більш вибагливі, а технологія складніша, тому я досі не отримав жодних виправлень до основної роботи. Я зробив кілька повідомлень про помилки та написав кілька невеликих розширень, але наразі нічого більшого не отримав.

Сподіваюся, це допомагає.


+1 для buildbot - це фантастичний проект, з дуже приємними, корисними обслуговуючими особами. Якщо ви хочете почати з хорошого проекту, це, безумовно, варто переглянути.
Нейт

як щодо повних любителів? Люди, які мають низький рівень програмування та не мають офіційної освіти?
Рой

1
@Roy У такому випадку я б почав з фокусування і просто повозився з джерелом, щоб дізнатися з нього. Дістатись до точки, коли ви робите свій внесок ефективно, потрібно трохи більше часу. Ви, мабуть, краще починати, дотримуючись самих хороших навчальних посібників (для проекту та його фреймворків / бібліотек) та будуйте свої знання, щоб ви знали, де і як зробити свій внесок. Ігрові моди (і плагіни) можуть бути відмінним проміжком між тим, що опинитися в самому пісочниці та мати рівень основних розробників.
Макке

4

Заскочіть. Контролюйте списки розробок деякий час та представляйте себе, коли вам комфортно. У багатьох проектах є кілька спрощених завдань щодо виправлення помилок або документації, на які регулярні люди з радістю звернуть увагу. Більшість проектів досить дружні до нових рук, і вони змусять вас почухатись досить швидко, щоб ви могли стати справжнім надбанням Проекту.

Через деякий час ви ознайомитесь зі структурою та найважливішими частинами кодової бази. Навчитися розуміти такий код - це дійсно важлива частина програмування, а відкритий код - це чудовий спосіб дізнатися його.


2

Дій. Там багато початківців роблять те саме. Керівник проекту може допомогти вам знайти речі, над якими ви працюєте, а не з вашої ліги. Ви поступово переростаєте в решту.

О, і те, що ви не розумієте код, не означає, що це добре . Я бачив там якийсь серйозно жахливий код. Деякі з них важко зрозуміти, оскільки це погано написано і зроблено набагато складніше, ніж це має бути.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.