Станете програмист на отворен софтуер

Автор: Morris Wright
Дата На Създаване: 24 Април 2021
Дата На Актуализиране: 1 Юли 2024
Anonim
Аз,инженерът 2017 - Даниел Георгиев, програмист, тема:"Аз, програмистът "
Видео: Аз,инженерът 2017 - Даниел Георгиев, програмист, тема:"Аз, програмистът "

Съдържание

Писането и използването на отворен софтуер не е просто форма на програмиране (наричана още „хакване“ в света на програмистите), това е един вид философия. Въпреки че трябва само да знаете език за програмиране, за да можете да кодирате, тази статия е за това как да се присъедините към общността, да създадете приятели, да си сътрудничите по страхотни проекти и да станете уважаван специалист с профил, който не можете да получите другаде. В света на отворения софтуер можете доста лесно да възлагате задачи, които само елитните програмисти от най-високо ниво имат право да правят в една компания. Помислете колко опит може да ви донесе това. След като обаче сте решили да станете отворен софтуерен програмист, трябва да сте готови да инвестирате време в тази цел. Това важи и ако вече сте студент по ИТ. Имайте предвид, че тази статия не е за това как да станете хакер или хакер.

Стъпвам

  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. Ако можете, кандидатствайте за „Summer of Code“ на Google, за да вложите малко пари в това приключение. Но не се притеснявайте, ако кандидатурата не бъде приета, тъй като те имат много по-малко финансирани позиции, отколкото има наистина добри програмисти.
  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% от хакерите с отворен код, които оценяват вашите корекции, имат „правилната“ колежска степен и няма да ви позволят да допринасяте за глупости в проекта.
  • По време на последните стъпки (конференция и „инсталиране на страна“) можете да се възползвате от собствения си лаптоп. Но не е добре да работите по него у дома, така че купете само един, ако можете да си позволите втората машина.
  • Описаният път за превръщане в софтуер с отворен код „хакер“ отнема поне две години.