Як стати хакером вільного програмного забезпечення

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

Кроки

  1. 1

    Придбайте хороший дистрибутив Unix. GNU / Linux - одні з найпопулярніших для злому, але часто використовуються GNU Hurd, BSD, Solaris і (в деякій мірі) Mac OS X.

  2. 2

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

  3. 3

    Вивчіть деякі популярні мови програмування, поки не досягнете більш-менш задовільного рівня. Без цього ви не можете внести свій внесок у код (найважливіша частина будь-якого програмного проекту) для спільноти вільного програмного забезпечення. Деякі джерела пропонують починати відразу з двох мов: один системний мова (C, Java або аналогічний) і один скриптова мова (Python, Ruby, Perl або аналогічний).

  4. 4

    Щоб бути більш продуктивним, вивчіть Eclipse або інший подібний інтегрований інструмент розробки.

  5. 5

    Вивчіть і використовуйте розширений редактор начебто VI або Emacs. Вони не прості у вивченні, але ви можете зробити набагато більше з ними.

  6. 6

    Вивчіть Version control. Version control, ймовірно, найважливіший інструмент співпраці для загального розвитку програмного забезпечення. Усвідомте, як створювати і застосовувати патчі (текстові зміни файлів). Більшість розробок вільного програмного забезпечення в суспільстві виконує створення, обговорення та застосування різних патчів.

  7. 7

    Знайдіть відповідний невеликої програмний безкоштовний проект, до якого ви могли б легко приєднатися, щоб отримати досвід. Більшість таких проектів зараз можна знайти на сайті SourceForge.net.Подходящій проект повинен:
    1. використовувати мову програмування, який ви знаєте.
    2. Бути активним, з останніми релізами.
    3. Уже мати 3-5 розробників.
    4. Використовувати систему керування версіями.
    5. Мати частину, до реалізації якої, на вашу думку, можна відразу приступити без великого зміни існуючого коду.
    6. Крім коду, хороший проект також має активні дискусійні списки, звіти про помилки, приймає і реалізує запити на поліпшення і показує інші аналогічні дії.




  8. 8

    Зверніться до адміністратора обраного проекту. У невеликому проекті з кількома розробниками ваша допомога, як правило, відразу ж буде прийнята.

  9. 9

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

  10. 10

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

  11. 11

    Чи не потягнути таємного проекту занадто довго. Як тільки ви зрозумієте, що успішно працюєте в цій команді, пора шукати серйозний проект.

  12. 12

    Знайдіть серйозний проект вільного програмного забезпечення або проект з відкритим кодом. Більшість таких проектів є власністю GNU або Apache організацій.

  13. 13

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

  14. 14

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

  15. 15

    Якщо можете, зверніться з серйозним завданням в ініціативну програму компанії Google "Summer of Code", щоб отримати трохи грошей з цієї "авантюри". Але тільки не хвилюйтеся, якщо заявка не прийнята, оскільки вони набагато менше фінансують посади, ніж дійсно хороших хакер.

  16. 16

    Шукайте відповідну конференцію, проводящуюся поблизу ("Дні Linux" або щось подібне), і спробуйте представити свій проект там (весь проект, а не тільки частина, яку ви програмуєте). Після того як ви розкажіть, що ви представляєте серйозний Free / з відкритим вихідним кодом проект, організатори часто звільняють вас від вартості участі в конференції (якщо вони так не роблять, конференція, швидше за все, невідповідна в будь-якому випадку). Принесіть свій ноутбук Linux (якщо у вас є) і запустіть демо-версію. Зверніться до адміністратора проекту за матеріалом, який ви можете використовувати при підготовці до свого виступу або плаката.

  17. 17

    Пошукайте в Інтернеті оголошення про захід «Install party", що відбувається поблизу, і спробуйте приєднатися до нього в перший раз, як користувач (прослідкуйте за всіма проблемами і як хакери їх вирішують), а наступного разу - в якості інсталятора.

  18. 18

    Завершіть завдання, застосуйте автоматичні тести і свій внесок в проект. Все зроблено! Треба відзначити: спробуйте зустрітися з деякими хакерами проекту в реальному житті і випити з ними по келиху пива.

  19. Як стати хакером вільного програмного забезпечення

    19

  20. 20

    Для кращого розуміння загляньте в реальний приклад історії розробки проекту Free Software (вище). Кожне підвищення кривої являє собою внесок (рядки коду) від одного розробника. Розробники, як правило, стають менш активними протягом багатьох років, але проект часто навіть прискорюється, коли приєднуються нові люди. Тому, якщо ви вже приходите з деякими корисними навичками, у команди немає ніяких причин не запросити вас.

Поради



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

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

  • Не починайте з оптимізацій невеликих кодів, додаткових коментарів, поліпшень стилю кодування та іншого аналогічного "дрібного" матеріалу. Це може викликати набагато більше критики, ніж будь-який серйозний внесок. Замість цього, збирайте їх в єдиний патч «очищення».
  • На неформальній зустрічі проекту (на пиві) про те, що ви ніколи не сприяли створенню будь-якого коду, у вас буде неприємне почуття того, що вас вельми ігнорують. Не хвилюйтеся, деякі хакери стають великими друзями пізніше, після того, як ви заробите повагу за свій код.
  • Якщо ви плануєте зустрітися з хакерами безкоштовного програмного забезпечення віч-на-віч, завжди залишайте свій ноутбук Windows будинку. Mac OS - варіант трохи краще, але і не вітається. Якщо у вас з собою ноутбук, він повинен працювати на ОС Linux або іншої операційної системи, яку вони вважають "Free software".
  • Ваш статус хакера в співтоваристві проекту відображає ваше справжнє більше, ніж минуле. Зокрема, якщо ви хочете рекомендацію від керівника проекту або що-небудь подібне, задавайте питання, поки ви все ще активно співпрацюєте.
  • Не починайте зі старту свого власного проекту, якщо ви не хочете залишитися в гордій самоті назавжди. З тієї ж причини, не починайте з спроби відродити покинутий проект, який вже втратив свою попередню команду, (дивіться чому).
  • З тієї ж причини ніколи не чекайте, що хакер з досвідом напише докладний опис вашого завдання або навіть забезпечить любимо видом спостереження завамі. У той час як проекти з відкритим кодом можуть мати багато строгих правил, вони зазвичай працюють за аналогією з тим, що відомо під назвою програмування в методології програмування.
  • У узгоджено чинному світі безкоштовного ПЗ ви кодуєте, і в окремих випадках, навіть весь проект вашої групи може бути несподівано замінений яким-небудь іншим внеском. Приклади великомасштабних перезаписів: Harmony або, наприклад, більш недавня історія GNU Classpath. Зрілі хакери говорять "ласкаво просимо" і використовують переваги нового коду, який стає доступним - просто немає кращого способу відреагувати. Це, однак, не приходить легко і цьому треба вчитися. Дивіться приклад такої позиції.
  • Уникайте задавати будь-яке питання, пов`язаний з основами програмування або програмними засобами. Час програміста вільного програмного забезпечення - цінне. Замість цього обговоріть основи програмування в спільнотах для любителів або початківців програмістів.
  • Хоча слово "хакер" звучить з «повагою» у більшості навчальних середовищ, для деяких необізнаних людей воно може асоціюватися з проникненням в системи безпеки та іншими пов`язаними з комп`ютерами злочинами, які різні соціальні групи (крекери або зломщики) роблять. Якщо ви не готові пояснити, подивіться на тих, кому ви говорите це слово. Реальні хакери, про які йде мова в цій статті, ніколи не будуть зв`язуватися з діяльністю в програмуванні, яка здається для них незаконною. По-перше, вони пишаються притримуванням хакерської етики. По-друге, порушення закону не обов`язково краще оплачуються.
  • Якщо ваш поштовий клієнт підтримує HTML повідомлення, вимкніть цю функцію. Ніколи не приєднуйте документи, які тільки пропрієтарне програмне забезпечення (наприклад, MS Word) може відкривати належним чином. Хакери сприймають це як образу.
  • Не пропонуйте свої послуги для приналежним компаніям проектів, які не випускають деякі частини їх коду під затвердженої ліцензією approved Open Source.В таких випадках дійсно важливі частини проекту, ймовірно, «залишаться за закритими дверима» власника, заважаючи вам навчитися чогось корисного.
  • Вже дуже успішні проекти, можливо, мають письмову або усну політику ніколи не повертати нічого за вашу роботу (ні грошей, ні можливості для самостійного просування, ні високого статусу, не звертаючи увагу на внесок, тощо - дивіться Wikipedia) .Якщо ви не згодні з цим, дотримуйтеся проектів середнього діапазону, які не можуть дозволити собі таку позицію. Великі проекти вільного

програмного забезпечення, особливо навколо домену GNU, не розглядають вашу роботу як ваш особиста справа. Після того як ви отримаєте або змініть роботу в компанії, пов`язаної з програмним забезпеченням, вони попросять вашого роботодавця підписати певні угоди [1], які можна підписувати чи ні. Це може змусити вибрати проект з більш вільними вимогами.

Що вам знадобиться

  • Linux. Багато проектів вільного програмного забезпечення або складніше побудувати під управлінням ОСWindows, або не створюються належним чином взагалі. Це особливо вірно для просунутих проектів, присвячених програмуванню телефонів, мініатюрних комп`ютерів, ключів USB та інших дивовижних пристроїв.
  • Комп`ютер з відносно хорошим доступом до Інтернету. Якщо ви хочете зберегти подвійну завантаження з Windows, другий жорсткий диск або розділ для Linux буде хорошим рішенням.
  • Базові знання принаймні однієї мови програмування і твердим наміром дізнатися більше. Найпопулярніші мови в даний час - C і Java.
  • Значна кількість часу, не менше 5 годин на тиждень (типовий хардкор-хакер жертвує більше, ніж 14 ч.).
  • У той час як офіційну освіту в галузі інформатики могло б зробити ваш шлях набагато простіше, воно вам не потрібно як обов`язкова умова, і ніяке реальне Спільнота хакерів не запитуватиме вас про це. Хакери судять один про одного по своїх зломи, а не фіктивних критеріях, таких як ступеня, вік, походження або положення. Однак, принаймні 60% хакерів, які дивляться ваші патчі, мають "потрібне" вищу освіту і не дозволять вам зробити будь-яку дурість в проекті.
  • Під час останніх кроків (конференції та Install party)) могли б скористатися своїм власним ноутбуком. Як би не було недобре працювати вдома, купіть його, тільки якщо ви можете дозволити собі другий комп`ютер.
  • Щоб стати реальним хакером за допомогою описаного вище способу, вам буде потрібно, щонайменше, близько двох років.