Написання і використання вільного програмного забезпечення-це не тільки вид програмування, це свого роду філософія. Хоча знати мову програмування-це все, що потрібно для програмування, ця стаття про те, як приєднатися до спільноти, знайти друзів, робити великі справи разом, і стати шановним фахівцем з профілем, який ви не зможете отримати більше ніде. У суспільстві вільного ПЗ ви можете досить легко отримати завдання, які в компанії тільки елітні програмісти топ-рівня мають право робити. Подумайте про кількість досвіду, який це може принести. Однак, якщо ви одного разу вирішили стати хакером вільного програмного забезпечення, ви повинні бути готові витратити деякий час на досягнення цієї мети. Це як і раніше вірно, навіть якщо ви вже ІТ-студент. Крім того, ця стаття не про те, як стати зломщиком.
Кроки
- Придбайте хороший дистрибутив Unix. GNU / Linux-одні з найпопулярніших для злому, але часто використовуються GNU Hurd, BSD, Solaris і (в деякій мірі) Mac OS X.
- Дізнайтеся, як використовувати командний рядок.ви можете зробити набагато більше з UNIX-подібними операційними системами, якщо використовуєте командний рядок.
- Вивчіть деякі популярні мови програмування, поки не досягнете більш-менш задовільного рівня.Без цього ви не можете внести свій внесок у код (найважливіша частина будь-якого програмного проекту) для спільноти вільного програмного забезпечення. Деякі джерела пропонують починати відразу з двох мов: одна системна мова (C, Java або аналогічний) і одна скриптова мова (Python, Ruby, Perl або аналогічний).
- Щоб бути більш продуктивним, вивчіть Eclipse або інший подібний інтегрований інструмент розробки.
- Вивчіть і використовуйте розширений редактор на зразок VI або Emacs.вони не прості у вивченні, але ви можете зробити набагато більше з ними.
- Вивчіть Version control. Version control, ймовірно, найважливіший інструмент співпраці для загального розвитку програмного забезпечення. Зрозумійте, як створювати і застосовувати патчі (текстові зміни файлів). Більшість розробок вільного програмного забезпечення в суспільстві виконує створення, обговорення та застосування різних патчів.
- Знайдіть відповідний невеликий програмний безкоштовний проект, до якого ви могли б легко приєднатися, щоб отримати досвід.більшість таких проектів зараз можна знайти на сайті SourceForge.net. відповідний проект повинен:
- Використовувати мову програмування, який Ви знаєте.
- Бути активним, з останніми релізами.
- Вже мати 3-5 розробників.
- Використовувати систему управління версіями.
- Мати частину, до реалізації якої, на вашу думку, можна відразу приступити без великої зміни існуючого коду.
- Крім коду, хороший проект також має активні дискусійні списки, звіти про помилки, приймає і реалізує запити на поліпшення і показує інші аналогічні дії.
- Зверніться до адміністратора вибраного проекту.у невеликому проекті з декількома розробниками ваша допомога, як правило, відразу ж буде прийнята.
- Уважно прочитайте правила проекту, і більш-менш дотримуйтесь їх. Правила стилю кодування або необхідність документувати свої зміни в окремому текстовому файлі може здатися вам на перший погляд безглуздим. Однак мета цих правил - зробити можливою спільну роботу, і більшість проектів дійсно мають їх.
- Працюйте в цьому проекті протягом декількох місяців.Слухайте уважно, що адміністратор та інші учасники проекту говорять. Крім програмування, у вас є багато всього для вивчення. Але якщо вам дійсно щось не подобається, просто підіть в інший проект.
- Не тримайтеся таємного проекту занадто довго.як тільки ви зрозумієте, що успішно працюєте в цій команді, пора шукати серйозний проект.
- Знайдіть серйозний проект вільного програмного забезпечення або проект з відкритим кодом.більшість таких проектів є власністю GNU або Apache організацій.
- Як тільки зробите серйозний стрибок, будьте готові до набагато більш прохолодного визнання.вам, ймовірно, буде запропоновано працювати протягом деякого часу без прямого доступу до запису в репозиторії коду. Попередній таємний проект повинен, однак, навчити вас багато чому - так що після декількох місяців продуктивного вкладу ви можете спробувати вимагати прав, які, на вашу думку, у вас повинні бути.
- Візьміть і зробіть серйозне завдання. Час настав. Не бійтеся. Наполегливо продовжуйте, навіть якщо ви виявите, що це завдання - набагато складніше, ніж ви спочатку думали. На цьому етапі важливо не здаватися.
- Якщо можете, Зверніться з серйозним завданням в ініціативну програму компанії Google "Summer of Code", щоб отримати трохи грошей з цієї"авантюри".але тільки не хвилюйтеся, якщо заявка не прийнята, оскільки вони набагато менше фінансують посади, ніж дійсно хороших хакер.
- Шукайте відповідну конференцію, що проводиться поблизу ("дні Linux" або щось подібне), і спробуйте представити свій проект там (весь проект, а не тільки частина, яку ви програмуєте).після того як ви скажете, що ви представляєте серйозний проект Free/з відкритим кодом, організатори часто звільняють вас від вартості участі в конференції (якщо вони цього не роблять, конференція, швидше за все, невідповідна в будь-якому випадку). Принесіть свій ноутбук Linux (якщо у вас є) і запустіть демо-версію. Зверніться до адміністратора проекту за матеріалом, який ви можете використовувати при підготовці до свого виступу або плаката.
- Пошукайте в Інтернеті оголошення про захід "Install party", що відбувається поблизу, і спробуйте приєднатися до нього в перший раз, як користувач (простежте за всіма проблемами і як хакери їх вирішують), а в наступний раз - в якості інсталятора.
- Завершіть завдання, застосуйте автоматичні тести і свій внесок в проект. Все зроблено! Треба відзначити: спробуйте зустрітися з деякими хакерами проекту в реальному житті і випити з ними по келиху пива.
- Для кращого розуміння загляньте в реальний приклад історії розробки проекту 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)) могли б скористатися своїм власним ноутбуком. Як би не було недобре працювати вдома, купіть його, тільки якщо ви можете дозволити собі другий комп'ютер.
- щоб стати реальним хакером за допомогою описаного вище способу, вам буде потрібно, щонайменше, близько двох років.