Станьте програмістом відкритого програмного забезпечення

Автор: Morris Wright
Дата Створення: 24 Квітень 2021
Дата Оновлення: 1 Липня 2024
Anonim
Как стать ПО программистом? - Ответ профессионала
Відеоролик: Как стать ПО программистом? - Ответ профессионала

Зміст

Написання та використання відкритого програмного забезпечення - це не просто форма програмування (у світі програмістів її також називають «злом»), це свого роду філософія. Хоча вам потрібно лише знати мову програмування, щоб мати можливість кодувати, ця стаття розповідає про те, як приєднатися до спільноти, завести друзів, співпрацювати над чудовими проектами та стати поважним спеціалістом із профілем, якого ви не можете знайти в іншому місці. У світі відкритого програмного забезпечення вам досить легко можуть бути призначені завдання, які в компанії дозволяють виконувати лише елітні програмісти вищого рівня. Подумайте, скільки досвіду це може вам принести. Однак, коли ви вирішили стати програмістом з відкритим програмним забезпеченням, ви повинні бути готові вкласти час у цю мету. Це також стосується, якщо ви вже студент ІТ. Майте на увазі, ця стаття не про те, як стати хакером чи зломщиком.

Крок

  1. Завантажте хороший дистрибутив Unix. GNU / Linux є одним з найпопулярніших для програмування, але GNU Hurd, BSD, Solaris та (певною мірою) Mac OS X також часто використовуються.
  2. Дізнайтеся, як користуватися командним рядком. Якщо ви використовуєте командний рядок, ви можете зробити набагато більше із Unix-подібними операційними системами.
  3. Вивчайте деякі популярні мови програмування, поки не досягнете більш-менш задовільного рівня. В іншому випадку ви не можете внести код (найважливішу частину будь-якого програмного проекту) у відкрите програмне співтовариство. Деякі джерела пропонують починати з двох мов одночасно: однієї системної мови (C, Java або подібної) та мови сценаріїв (Python, Ruby, Perl або подібної).
  4. Щоб бути більш продуктивним, вам потрібен NetBeans або подібне інтегроване середовище розробки.
  5. Навчіться користуватися вдосконаленим редактором, таким як vi або Emacs. Вони мають вищий рівень навчання, але ви можете зробити з ними набагато більше.
  6. Дізнайтеся про контроль версій. Контроль версій - це, мабуть, найважливіший інструмент співпраці для спільної розробки програмного забезпечення. Зрозумійте, як створювати та застосовувати виправлення. Більша частина відкритої розробки програмного забезпечення в спільноті здійснюється шляхом створення, обговорення та застосування різних патчів.
  7. Знайдіть відповідний, невеликий проект з відкритим програмним забезпеченням, в якому ви зможете легко взяти участь, щоб отримати досвід. Більшість таких проектів сьогодні можна знайти на SourceForge.net. Відповідний проект повинен включати:
    1. Використовуйте мову програмування, яку ви знаєте.
    2. Будьте активними, з останніми випусками.
    3. Вже складається з трьох-п’яти розробників.
    4. Використовувати контроль версій.
    5. Майте частину, з якої ви можете розпочати роботу відразу, не змінюючи при цьому занадто багато існуючого коду.
    6. На додаток до коду, хороший проект також має активні списки обговорень, звіти про помилки, отримує та реалізує запити на вдосконалення та подібні заходи.
  8. Зверніться до адміністратора обраного проекту. У невеликому проекті, де мало розробників, ваша допомога, як правило, приймається негайно.
  9. Уважно читайте правила проекту і більш-менш дотримуйтесь їх. Правила стилю програмування або необхідність документувати ваші зміни в окремому текстовому файлі спочатку можуть здатися смішними. Однак метою цих правил є забезпечення спільної роботи - і більшість проектів працює з ними.
  10. Працюйте над цим проектом кілька місяців. Уважно слухайте, що скажуть адміністратор та інші учасники проекту. Окрім програмування, вам є чому навчитися. Але якщо вам щось дійсно не подобається, просто зупиніться і перейдіть на інший проект.
  11. Не застрягай у підземному проекті занадто довго. Як тільки ви виявите можливість успішно працювати в цій команді, пора починати шукати щось більш серйозне.
  12. Шукайте серйозного відкритого програмного забезпечення високого рівня або проекту з відкритим кодом. Більшість таких проектів належать організаціям GNU або Apache.
  13. Оскільки ми робимо тут серйозний стрибок, ви повинні врахувати набагато менш теплий прийом. Швидше за все, вас вперше попросять запустити без прямого доступу до сховища коду. Однак попередній андеграунд повинен був навчити вас багато чому - тож, після кількох місяців продуктивного внеску, ви можете претендувати на права, які, на вашу думку, повинні мати.
  14. Візьміться за серйозне завдання і розробіть його. Настав час. Не бійся. Продовжуйте, навіть якщо ви виявите, що завдання набагато складніше, ніж ви спочатку думали - на цьому кроці важливо не здаватися.
  15. Якщо можете, зверніться до Google "Summer of Code", щоб вкласти трохи грошей у цю пригоду. Але не хвилюйтеся, якщо заявку не прийматимуть, оскільки вони мають набагато менше позицій, що фінансуються, ніж справді хороші програмісти.
  16. Знайдіть підходящу конференцію, яка відбувається поблизу ("дні Linux" або подібні) та спробуйте представити свій проект там (весь проект, і не тільки частина, яку ви програмуєте). Після того, як ви згадаєте, що представляєте серйозний проект з безкоштовним / відкритим кодом, організатори часто відшкодовують вам вартість конференції (якщо ні, то конференція, імовірно, буде непридатною в будь-якому випадку). Принесіть свій ноутбук Linux (якщо у вас є) і запустіть кілька демонстраційних версій. Запитайте керівника проекту про матеріали, за якими ви можете підготувати свою презентацію чи афішу.
  17. Шукайте в Інтернеті оголошення про подію встановлення поблизу та спробуйте взяти участь спочатку як користувач (зверніть увагу на всі виникаючі проблеми та те, як їх виправляють хакери), і запропонуйте встановити програми наступного разу.
  18. Виконайте завдання, перевірте свою роботу за допомогою автоматичних тестів та внесіть свій внесок у проект. Ви закінчили! Звичайно, спробуйте познайомитися з деякими програмістами проекту та підняти келих пива разом про результат.
  19. Для кращого розуміння подивіться на реальний приклад історії розвитку відкритого програмного проекту (див. Вище). Кожна крива, що зростає, представляє внесок (рядки коду) від одного розробника. Розробники, як правило, стають менш активними з віком, але проект часто пришвидшується, навіть коли приєднуються нові люди. Тож якщо ви приїжджаєте з деякими корисними навичками у кишені, немає причин, чому команда не повинна запрошувати вас.

Поради

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

Попередження

  • Ваш статус хакера в проекті спільноти - це більше відображення вашого сьогодення, ніж вашого минулого.Якщо ви хочете отримати рекомендацію або подібне від керівника проекту, будь ласка, запитайте, чи все ще ви активно сприяєте.
  • Не вдавайтесь до дрібних оптимізацій коду, зайвих коментарів, вдосконалення стилю кодування та інших подібних "дрібних" речей. Це може спричинити набагато більше критики, ніж серйозний внесок. Натомість ви можете включити ці зміни в один патч "очищення".
  • Якщо ви плануєте особисто зустрітися з відкритими хакерами програмного забезпечення, залиште ноутбук Windows вдома. Mac OS трохи більш терпима, але це насправді також не вітається. Якщо ви берете свій ноутбук, він повинен працювати під Linux або якоюсь іншою операційною системою, яку вони вважають "відкритим програмним забезпеченням".
  • Якщо ваш поштовий клієнт підтримує повідомлення HTML, вам слід вимкнути цю функцію. Ніколи не вкладайте документи, які лише комерційне програмне забезпечення (наприклад, Microsoft Word) може правильно відкрити. Хакери вважають це образливим.
  • Не працюйте добровольцями у проектах компанії, чий код не поширюється на затверджену ліцензію з відкритим кодом. У таких випадках дійсно важливі частини проекту, ймовірно, залишатимуться за зачиненими дверима від власника, не даючи вам дізнатися щось корисне.
  • Уникайте будь-яких питань про основи програмування чи інструменти програмування. Час відкритого програміста є дорогоцінним. Натомість обговоріть основи програмування в аматорських або починаючих програмістських групах.
  • Створені та дуже успішні проекти можуть мати письмову або неписану політику щодо того, щоб ніколи не відшкодовувати вашу роботу (ні грошей, ні можливості просувати себе, ні підвищеного статусу незалежно від вашого внеску тощо - див .: Do_not_expect_reward Wikipedia). Якщо ви не можете з цим погодитися, дотримуйтесь більш поширених проектів, які не можуть собі дозволити такого ставлення.
  • Не починайте власний проект, якщо тільки ви завжди не хочете провести в гордій самоті. З тієї ж причини краще не починати спроб відродити вже занедбаний проект, який його попередня команда вже програла.
  • У випадку неофіційної зустрічі щодо проекту, до якої ви ніколи не вносили жодного коду, у вас буде неприємне відчуття, що вас повністю ігнорують. Не хвилюйтеся, деякі хакери можуть стати хорошими друзями пізніше, коли ви завоюєте їх повагу за допомогою власного коду.
  • Великі відкриті програмні проекти, особливо ті, що стосуються домену GNU, не сприймають вашу роботу як свою особисту справу. Після того, як ви влаштуєтесь на роботу в компанію, пов’язану з програмним забезпеченням, вони просять вашого роботодавця підписати певні угоди [1], які компанія підпише або не підпише. Це може змусити вас вибрати проект із менш жорсткими вимогами.

Потреби

  • Linux. Багато відкритих програмних проектів є складнішими для побудови на Windows, або вони будуються зовсім неправильно. Це особливо актуально для просунутих проектів, присвячених програмуванню стільникових телефонів, USB-ключів та інших пристроїв.
  • Комп’ютер із відносно хорошим з’єднанням з Інтернетом. Якщо ви хочете зберегти подвійне завантаження з Windows, хорошим рішенням може стати другий жорсткий диск або розділ для Linux.
  • Базові знання принаймні однієї мови програмування та твердий намір дізнатися більше. Найпопулярнішими мовами на сьогодні є C та Java.
  • Значна кількість часу, принаймні п’ять годин на тиждень (типовий хардкорний програміст вносить колосальні 14 годин).
  • Хоча офіційна ІТ-освіта значно полегшить вам шлях, це все ні обов’язкова вимога, і жодна справжня хакерська спільнота ніколи не запитає вас про це. Програмісти / хакери судять один одного за чиїмсь програмуванням, а не за фальшивими критеріями, такими як оцінки, вік, раса чи посада. Майте на увазі, щонайменше 60% хакерів з відкритим кодом, які оцінюють ваші патчі, мають "правильний" ступінь коледжу і не дозволять вам вносити дурниці у проект.
  • На останніх етапах (конференція та «інсталяція») ви можете скористатися власним ноутбуком. Але працювати над цим вдома не годиться, тож купуйте лише одну, якщо можете дозволити собі другу машину.
  • Шлях, описаний для того, щоб стати програмним хакером з відкритим кодом, займає щонайменше два роки.