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

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

кроки

  1. Become a Free Software Hacker Step 1
1. Придбайте хороший дистрибутив Unix. GNU / Linux - одні з найпопулярніших для злому, але часто використовуються GNU Hurd, BSD, Solaris і (в деякій мірі) Mac OS X.
  • Become a Free Software Hacker Step 2
    2. Дізнайтеся, як використовувати командний рядок. Ви можете зробити набагато більше з Unix-подібними операційними системами, якщо використовуєте командний рядок.
  • Become a Free Software Hacker Step 3
    3. Вивчіть деякі популярні мови програмування, поки не досягнете більш-менш задовільного рівня. Без цього ви не можете внести свій внесок в код (найважливіша частина будь-якого програмного проекту) для спільноти вільного програмного забезпечення. Деякі джерела пропонують починати відразу з двох мов: один системний мову (C, Java або аналогічний) і один скриптова мова (Python, Ruby, Perl або аналогічний).
  • Become a Free Software Hacker Step 4
    4. Щоб бути більш продуктивним, вивчіть Eclipse або інший подібний інтегрований інструмент розробки.
  • Become a Free Software Hacker Step 5
    5. Вивчіть і використовуйте розширений редактор начебто VI або Emacs. Вони не прості у вивченні, але ви можете зробити набагато більше з ними.
  • Become a Free Software Hacker Step 6
    6. ІзучітеVersion control. Version control, ймовірно, найважливіший інструмент співпраці для загального розвитку програмного забезпечення. Усвідомте, як створювати і застосовувати патчі (текстові зміни файлів). Більшість розробок вільного програмного забезпечення в суспільстві виконує створення, обговорення та застосування різних патчів.
  • Become a Free Software Hacker Step 7
    7. Пошук найбільш вдалого небольшойпрограммний безкоштовний проект, до якого ви могли б легко приєднатися, щоб отримати досвід. Більшість таких проектів зараз можна знайти на сайті SourceForge.net.Відповідний проект повинен:
  • використовувати мову програмування, який ви знаєте.
  • Бути активним, з останніми релізами.
  • Уже мати 3-5 розробників.
  • Використовувати систему управління версіями.
  • Мати частина, до реалізації якої, на вашу думку, можна відразу приступити без великого зміни існуючого коду.
  • Крім коду, хороший проект також має активні дискусійні списки, звіти про помилки, приймає і реалізує запити на поліпшення і показує інші аналогічні дії.
  • Become a Free Software Hacker Step 8
    8. Зверніться до адміністратора обраного проекту. У невеликому проекті з кількома розробниками ваша допомога, як правило, відразу ж буде прийнята.
  • Become a Free Software Hacker Step 9
    9. Уважно прочитайте правила проекту, і більш-менш дотримуйтеся їх. Правила стилю кодування або необхідність документувати свої зміни в окремому текстовому файлі може здатися вам на перший погляд безглуздим. Однак мета цих правил - уможливити спільну роботу, і більшість проектів дійсно мають їх.
  • Become a Free Software Hacker Step 10
    10. Працюйте в цьому проекті протягом декількох місяців. Слухайте уважно, що адміністратор та інші учасники проекту кажуть. Крім програмування, у вас є багато всього для вивчення. Але якщо вам дійсно щось не подобається, просто підіть в інший проект.
  • Become a Free Software Hacker Step 11
    11. Чи не потягнути таємного проекту занадто довго. Як тільки ви зрозумієте, що успішно работаеть цій команді, пора шукати серйозний проект.
  • Become a Free Software Hacker Step 12
    12. Знайдіть серйозний проект вільного програмного забезпечення або проект з відкритим кодом. Більшість таких проектів є власністю GNU або Apache організацій.
  • Become a Free Software Hacker Step 13
    13. Як тільки зробите серйозний стрибок, будьте готові до набагато більш прохолодного визнанням. Вам, імовірно, буде запропоновано працювати протягом деякого часу без прямого доступу до записів репозиторії коду. Попередній таємний проект повинен, однак, навчити вас багато чому - так що після кількох місяців продуктивного вкладу ви можете попробоватьтребовать прав, які, як ви думаєте, у вас повинні бути.
  • Become a Free Software Hacker Step 14
    14. Візьміть і зробіть серйозне завдання. Час прийшов. Не бійтеся. Завзято продовжуйте, навіть якщо ви виявите, що це завдання - набагато складніше, ніж ви спочатку думали. На цьому етапі важливо не здаватися.
  • Become a Free Software Hacker Step 15
    15. Якщо можете, зверніться з серйозним завданням вініціатівную програму компанії Google "Summer of Code", щоб отримати трохи грошей з цієї "авантюри". Але тільки не хвилюйтеся, якщо заявка не прийнята, оскільки вони набагато менше фінансують посади, ніж дійсно хороших хакер.
  • Become a Free Software Hacker Step 16
    16. Шукайте відповідну конференцію, проводящуюсяпоблізості ( "Дні Linux" або щось подібне), і спробуйте уявити свій проект там (весь проект, а не тільки частина, яку ви програмуєте). Після того як ви розкажіть, що ви уявляєте серйозний Free / з відкритим вихідним кодом проект, організатори часто звільняють вас від вартості участі в конференції (якщо вони так не роблять, конференція, швидше за все, невідповідна в будь-якому випадку). Принесіть свій ноутбук Linux (якщо у вас є) і запустіть демо-версію. Зверніться до адміністратора проекту за матеріалом, який ви можете використовувати при підготовці до свого виступу або плаката.
  • Become a Free Software Hacker Step 17
    17. Пошукайте в Інтернеті оголошення про захід «Install party", що відбувається поблизу, і спробуйте приєднатися до нього в перший раз, як користувач (прослідкуйте за всіма проблемами і як хакери їх вирішують), а в наступний раз - в якості інсталятора.
  • Become a Free Software Hacker Step 18
    18. Завершіть завдання, застосуєте автоматичні тести і свій внесок в проект. Все зроблено! Треба відзначити: спробуйте зустрітися з деякими хакерами проекту в реальному житті і випити з ними по келиху пива.
  • Become a Free Software Hacker Step 19
    19. Для кращого розуміння загляньте в реальний приклад історії розробки проекту 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)) могли б скористатися своїм власним ноутбуком. Як би не було недобре працювати вдома, купіть його, тільки якщо ви можете дозволити собі другий комп`ютер.
    • Щоб стати реальним хакером з помощьюопісанного вище способу, вам буде потрібно, щонайменше, близько двох років.
    Cхоже