كيف تصبح هاكر برمجيات حرة؟

نشره زايد في
كتابة واستخدام البرامج الحرة ليست بمسألة برمجية بحتة ، وإنما تعتبر بحد ذاتها مسألة فلسفية من نوع ما. وفي حين ان كل ما تحتاجه لتكون مبرمجا هو لغة برمجية ما ، إلا أننا في هذا المقال نناقش قضايا مثل كيفية الانضمام الى مجتمع برمجي ما ، الحصول على الأصدقاء ، والقيام معا بعمل عظيم ، وتصبح بعد ذلك أحد المختصين ذو المكانة الرفيعة في عالم البرمجة مع سيرة لا يمكنك الحصول عليها في أي مكان آخر. حيث في عالم البرمجيات الحرة يمكنك الحصول بسهولة على مهام يسمح فقط لنخبة المبرمجين في شركة ما بتسلمها ؛ فتمعن في مقدار الخبرة التي ستكتسبها. لذلك في حالة قررت أن تصبح هاكر برمجيات حرة في يوم من الأيام ، فيجب أن تكون على استعداد لقضاء بعض الوقت في تحقيق هذا الهدف. وينطبق هذا الأمر أيضا حتى وإن كنت ما تزال طالبا تقنيا. كما أن هذا المقال لا يتطرق بتاتا لموضوع "كيف يمكن أن تصبح مخربا".

الخطوات

1- تعلم بعض اللغات البرمجية المشهورة مثل (C, C++, java أو لغات مشابهة) حتى تصل لمستوى مرضي تقريبا. وبدون ذلك ، فأنت عديم الفائدة لمجتمع المبرمجين وسيتم تجاهلك من قبل الجميع. ولتكون أكثر إنتاجية ، تعلم أداة Eclipse أو بعض الأدوات التطويرية المشابهة.
2- تعلم أداة تحكم بالإصدارات مثل (CVS, SVN, Git). بحيث من المحتمل أن تكون أداة التعاون الأكثر أهمية لتطوير البرامج بصورة مشتركة. تعلم طريقة إنشاء وتطبيق الرقع (ملفات اختلاف النصوص). من أكثر الأعمال التي تقام في عملية تطوير البرامج الحرة هو كيفية إنشاء ، ومناقشة وتطبيق مختلف الرقع.
3- قم بالبحث عن مشروع برمجي حر صغير ومناسب بحيث يمكنك الانضمام إليه بسهولة لاكتساب بعض الخبرة. يمكن إيجاد أغلب هذه المشاريع على الموقع التالي SourceForge.net. وهذه بعض مواصفات المشروع الملائم:
* استخدامه للغة برمجية تعرفها.
* يكون نشيطا واحتوائه على إصدارات حديثة.
* امتلاكه على 3-5 مبرمجين على الأقل.
* يستخدم أداة تحكم بالإصدارات.
* أن يكون بعض أجزاء البرامج بحاجة لتنفيذ فوري بدون المساس بالشفرة المصدرية الحالية كثيرا.
* بغض النظر عن الشفرة المصدرية ، يجب أن يحتوي المشروع الجيد على مجموعات مناقشة نشطة ، تقارير بالعلل الموجودة ، ويستقبل و ينفذ ما يتلقاه من طلبات لتطوير المشروع ، وغيرها من الأنشطة المماثلة.
4- بعد اختيار المشروع الملائم قم بمخاطبة المسؤول عنه. فعادة ما يتم قبول طلب المساعدة إذا كان المشروع صغيرا مع عدد قليل من المطورين.
5- قم بقراءة واتباع قوانين المشروع بعناية. ربما ستبدو لك كل من قواعد كتابة الشفرة المصدرية و ضرورة توثيق التغييرات التي ستقوم بها في ملف منفصل أمور سخيفة لأول وهلة. ولكن على أية حال الغاية من كل هذه القوانين هو توفير قاعدة للعمل المشترك ، وأغلب المشاريع تقوم بذلك.
6- شارك في هذا المشروع لعدة شهور. استمع جيدا لما يقوله مدير المشروع أو غيره من أعضاء الآخرين. وبعيدا عن البرمجة عليك تعلم العديد من الأمور. ولكن إذا لم يعجبك أمر ما بالمشروع فقط قم بالانتقال لمشروع آخر.
7- لا تمكث في المشروع التأسيسي لفترة طويلة. عندما ترى نفسك أنك تعمل بنجاح ضمن ذلك الفريق. فقد حان الوقت لتنتقل لمشروع أكثر جدية.
8- ابحث عن مشروع حر أو مفتوح المصدر جاد عالي المستوى. أغلب هذه المشاريع مملوكة من قبل مؤسسات مثل GNU أو Apache.
9- بما أننا نقوم بقفزة قوية للأمام الآن ، كن مستعدا للاستقبال الفاتر. بحيث سيطلب منك في الغالب العمل لبعض الوقت دون السماح لك بالوصول لمستودع الشفرة المصدرية للمشروع. ومع ذلك من المفترض أن تكون قد تعلمت الكثير من المشروع التأسيسي السابق. ولذلك وبعد عدة أشهر من مساهماتك الناجحة ، بإمكانك محاولة المطالبة بالحقوق التي ترى أنك تستحقها.
10- تولى القيام بمهمة صعبة. فهذا وقتها ولا تخف. استمر وعندما تكتشف أن المهمة التي استلمتها أصعب بكثير مما كنت تتوقعه في البداية ، ففي هذه الخطوة من الأهمية بمكان أن لا تستسلم لليأس.
11- إذا كنت تستطيع ، تقدم بمشروعك الجاد لمسابقة جوجل "Summer of Code” للحصول على بعض المال من هذه المغامرة. ولكن لا تهتم كثيرا إذا لم يقبل تطبيقك ضمن المسابقة.
12- ابحث عن مؤتمر مناسب مجاور لك (“Linux days” أو مؤتمر مماثل) وحاول عرض تطبيقك هناك (كل المشروع وليس الجزء الذي ساهمت فيه فقط). بعد أن تخبر المنظمين أنك بصدد عرض تطبيق جاد حر/مفتوح المصدر ، في أغلب الأحوال سيعفيك المنظمون من دفع أجرة المؤتمر (إذا لم يقوموا بذلك ، فمن المحتمل أن يكون المؤتمر غير مناسبا على أية حال). احضر جهازك المحمول (إذا كنت تملك واحدا) واعرض عليهم بعض نماذج التطبيق. اطلب من مدير المشروع تزويدك بالمواد التي من المحتمل أن تقوم بالاستعانة بها عند إعدادك للحديث أو تصميم الملصقات.
13- ابحث في الإنترنت عن إعلانات حفلات التثبيت (install party) قريبة منك وحاول الانضمام كمستخدم أولا (لمشاهدة جميع المشاكل وكيف يقوم المبرمجين بمعالجتها) وفي المرة القادمة يمكن الاشتراك كمثبت برامج.
14- أكمل المهمة ، مع تغطية الاختبارات التلقائية و المساهمة لصالح المشروع. لقد أكملت المهمة! ولتتأكد من ذلك ، حاول مقابلة بعض المبرمجين المشاركين بالمشروع وجها لوجه وشاركه احتساء كوبا من الشاي.
Image removed.
15- لتوضيح الفكرة بصورة أفضل ، قم بمشاهدة مثال حقيقي لتاريخ تطوير مشروع برنامج حر (الصورة أعلاه). بحيث كل ارتفاع بالمنحى تمثل مساهمة (سطور من الشفرة المصدرية) من مطور واحد. ولكن ومع مرور السنين يميل المطورون أن يصبحوا أقل نشاطا ولكن مع انضمام مطورين جدد تزداد سرعة تطوير البرنامج. لذلك إذا كنت تملك بعض المهارات المفيدة ، فلن يكون لدى الفريق أي أسباب تسوغ له عدم دعوتك للانضمام اليهم.

أفكار مفيدة

* إذا كنت ما زلت لا تثق بنفسك بما فيه كفاية ، يمكنك البدء ببعض أجزاء الشفرة المصدرية التي تظن أنها مفقودة ويمكنك كتابتها من البداية. فمن المحتمل جدا أن تجتذب بعض الانتقادات إذا أجريت بعض التغييرات في الشفرة المصدرية الحالية.
* كبداية ، قم باختيار فئة ، تركيبة ما بحيث لا يعمل عليها أحد بنشاط في الوقت الحالي. العمل بصورة مشتركة على فئة معينة أو حتى دالة ما ، يحتاج إلى مزيد من المهارات والكثير من العناية من كل الجوانب.
* قبل السؤال عن القوانين المعمول بها في المشروع ، حاول الحصول على إجابة لسؤالك من خلال البحث في توثيق المشروع وأرشفة القوائم البريدية.
* يبدو أن مدراء بعض الهاكر يشعرون بحماسة كافية ليسمحوا لهم بالمساهمة بالمشروع في وقت الدوام الرسمي (عادة لأن المؤسسة تستخدم البرنامج المجاني/المفتوح المصدر الذي يقوم المبرمج بتطويره). فكر بهذا الخيار ؛ حيث يمكنك بهذه الطريقة الحصول على بعض الوقت الذي تحتاجه للمساهمة في المشروع.
* أكمل دائما ما بدأت ببرمجته. التطبيق لا يعمل ، يتوقف أثناء التشغيل؟؟ هناك دائما أسباب لكل معضلة تواجهها وإذا كنت تملك الشفرة المصدرية للتطبيق ، فبالتالي يمكنك أجبار النظام على القيام بكل المهام التي ترغب بها ، لا سيما مع مساعدة البحث في مواقع الإنترنت. طبعا لهذه القاعدة حدودها ، ولكنها في الواقع لم تنتج من فراغ.
* فقط ادعي بأنك هاكر عند اعتراف مجتمع هاكر حقيقي بذلك.

تحذيرات

+ إذا كنت بصدد حضور لقاء لهاكر برمجيات حرة وجها لوجه ، فدائما قم بترك جهازك المحمول بالمنزل إذا كان يعمل على نظام ويندوز. يمكن التغاضي عن نظام ماكنتوش أحيانا ولكنه ليس بموضع ترحيب أيضا. إذا كان لا بد منه فيجب أن يكون الجهاز يعمل بنظام لينكس أو أي نظام تشغيلي آخر يمكن اعتباره "تطبيق حر”.
+ اذا كان التطبيق الذي تستخدمه لاستقبال البريد الإلكتروني يدعم رسائل html ، فقم بتعطيل هذه الخاصية. لا تقم أبدا بارفاق مستندات يمكن فتحها بطريقة سليمة فقط باستخدام برامج غير مجانية (مثل MS Word). يعتبر الهاكر هذه النقطة كإهانة لهم.
+ في حين يتم التعامل باحترام مع كلمة "هاكر” في معظم الأوساط الأكاديمية ، يمكن أن ترتبط هذه الكلمة لبعض الناس غير المطلعين بقضية اقتحام الأنظمة الأمنية والجرائم الأخرى المتعلقة بأجهزة الحاسوب ، والتي يقوم بها مجموعة اجتماعية مختلفة يطلق عليهم "مخربين”. ما لم تكن على استعداد لتفسير ذلك ، فانتبه لمن تقول هذا المصطلح. الهاكر الحقيقين -كما نقصدهم في هذا المقال- لا يشاركوا أبدا في أنشطة برمجية غير قانونية. فهم فخورون أولا باتباع أخلاقيات الهاكر ، كما أنه ليس بالضرورة أن يكون دخل من يخالف القوانين مجزيا.
+ لا تتطوع بالمساهمة في مشاريع مملوكة من قبل شركة ما لا تسمح بالإفراج عن بعض أجزاء المشروع تحت رخصة مفتوحة المصدر معترف بها. فعلى الأرجح وفي مثل هذه الحالات ، أن الأجزاء المهمة من المشروع ستبقى خلف أبواب المالك المغلقة ، مما يحول دون تعلمك أي شيء مفيد.
+ لا تبدأ مشوارك من خلال المساهمة بوضع تحسينات طفيفة بالشفرة المصدرية ،أو إضافة تعليقات إضافية ، أو القيام بتحسينات على أسلوب كتابة البرامج أو أية مساهمات "صغيرة المستوى” مشابهة . بحيث يمكن أن تجذب انتقادات أكثر بكثير مقارنة من القيام بمساهمات جذرية بالمشروع.
+ تجنب طرح أي سؤال يتعلق بأساسيات البرمجة أو الأدوات المستخدمة. فوقت هاكر البرمجيات الحرة ثمين. وبدلا من ذلك ، ناقش هذه القضايا في مجتمعات المبرمجين الجدد أو الهواة.
+ ولنفس السبب ، لا تتوقع أبدا أن يقوم مبرمج متمرس بكتابة وصف تفصيلي للمهمة التي ستقوم بها أو حتى أن يقوم بالأشراف عليك. بينما تمتلك مشاريع البرامج الحرة الكثير من القوانين الصارمة ، فهم يعملون في العادة على غرار ما يسمى بالبرمجة المتطرفة في ميثولوجيا البرمجة.
+ في الجلسات الغير رسمية مثل شرب العصير لمشروع لم تساهم فيه بكتابة أي شفرة مصدرية سيتولد لديك شعور غير سار بسبب تجاهلهم لك. لا تقلق ، سيتحولون هم أنفسهم لأصدقا حميمين بعد أن تكتسب احترامهم من خلال مساهماتك بكتابة بعض أجزاء الشفرة المصدرية للبرنامج.
+ لا تبدأ مشوارك من خلال إنشاء مشروع خاص ، إلا إذا كنت ترغب في البقاء في وحدة أزلية. ولنفس السبب لا تحاول إحياء مشروع مهجور والذي سبق أن خسر فريقه السابق .

أشياء ستحتاجها

* نظام لينكس. بحيث العديد من مشاريع البرامج الحرة إما تكون معقدة لتعمل على نظام ويندوز أو أنها لا تعمل على الإطلاق. وهذا ينطبق بشكل خاص على المشاريع المتقدمة ، المخصصة لبرمجة الهواتف النقالة ،الحواسيب المصغرة ، مفاتيح يو أس بي وأدوات مدهشة اخرى.
* جهاز حاسوب مع اتصال جيد نسبيا بالإنترنت. في حالة رغبتك بالاحتفاظ بنظام ويندوز فمن الأفضل الحصول على قرص صلب آخر لنظام لينكس.
* معرفة أساسية بلغة برمجية واحدة على الأقل مع نية قوية لتعلم الكثير. بحيث تبدو كل من لغة سي و جافا من اللغات الأكثر شعبية حاليا.
* قدرا كافيا من الوقت ، 5 ساعات أسبوعيا على الأقل (يساهم الهاكر المثالي بحدود 14 ساعة).
* في حين أن التعليم النظامي في مجال المعلوماتية من شأنه أن يسهل من مشوارك بعالم الهاكر ، ولكنه لا يعتبر متطلب أساسي ولن يسألك أحد ضمن مجتمع هاكر حقيقي. بحيث يحكم الهاكر على بعضهم البعض من خلال أعمالهم البرمجية ، وليس من خلال معيار زائف مثل الدرجة العلمية ، العمر ، الجنس أو المنصب. على أية حال ، على الأقل 60% من الهاكر الذين يشاهدون أعمالك يملكون درجات علمية "مناسبة” ولن يسمحوا لك بإضافة أي ترهات للمشروع.
* أثناء قيامك بالخطوات الأخيرة (المؤتمرات وتركيب الحزم) ، ستستفيد من استخدام جهازك المحمول الخاص. على كل حال فأنه ليس مناسب للعمل في المنزل ، لذلك قم بشراء جهاز محمول ثاني عند قدرتك فقط على تحمل تكاليفه.
* الطريق لأن تصبح هاكرا ليس بالسهل فهو بحاجة لسنتين على الأقل حتى يتسنى لك إكماله ، فحظا موفقا.

ترجمة للمقال:How to Become a Free Software Hacker بواسطة: زاهر النوتكي

الترخيص : Creative Commons