بسم الله الرحمن الرحيم
إخواني الكرام هده أول مرة أكتب فيها موضوع في المنتدى فأردت أن يكون أول موضوع عبارة عن نصائح ومنهج جديد لكل من يحب البرمجة و يريد أن يتعلم فنونها بمنطق جديد و عقلية جديدة تواكب العصر وننهض بجيل جديد حر الفكر يستطيع أن يطور البرامج في شتى المجالات في كل الأنظمة .
يناقش هﺫه الموضوع مصطلح المحترف ،تعريفه،من هو المحترف،كيفية تفكير المحترف،العلوم التي يتقنها المحترف،والأهم كيف تصبح محترف.(الهاكر)
يقوم المحترفون بحل المشاكل و بناء الأشياء. و يؤمنون بالحرية و بالعمل التطوعي. لكي تعرف كمحترف يجب أن تتصرف بهذا المنطق. و لكي تتصرف بهذا المنطق يجب أن تؤمن بهذا المنطق. و لكن إذا ادعيت الإيمان بهذه المبادئ لكي تكتسب القبول في هذا المجتمع فسوف تفقد الهدف الأساسي. إيمانك بهذه المبادئ مهم بالنسبة إليك فسوف يساعدك و يدفعك إلى التعلم. مثل كل الفنون الإبداعية أفضل الطرق لتصبح المعلم هو أن تفكر بعقل المعلم ليس فقط فكريا و انما عاطفيا أيضاً.
راقب المعلم، اتبع المعلم، امشي مع المعلم، انظر عبر المعلم، كن المعلم.
يبدأ طريق الإحتراف من النية فاجعل نيتك ل لله و دع عنك كل الزيف والمظاهر والتباهي لأن المظاهر تشتت الفكر وكل ما يحتاج إليه المحترف هو قوة التركيز ،فلتكن نيتك العمل لصالح الإسلام و المسلمين و لو علم الله أنك صادق سيفتح لك أبواب العلوم و المعارف و ستحصل العلم والثواب معا وﺫلك هو الفوز المبين.
- هيئ نفسك للمشاكل التي تنتظرك
كونك محترف سيصبح مصدررضى لك و لكنه رضى يحتاج لمجهود شاق. هذا المجهود يحتاج إلى دافع، يحصل الرياضيون على الدافع من نوع السعاده عند جعل أجسادهم في حالة أفضل، فهي تخطي حدود طاقتهم الجسدية. بالمثل، لتصبح محترف يجب أن تحصل على السعادة من حل المشكلات، تطوير مهاراتك، و تدريب و استعمال ذكائك حتى يتخطى الحدود ولا يوجد حدود للعقل ،مهمتك كمحترف برمجة هي حل المشاكل مهما كانت ويجب أن تكون لديك دائما الحلول الجديدة و بمصادر مفتوحة فلو أن المسلمين تبادلو المشاريع المفتوحة المصدر بينهم و تشاركو في تطويرها يدا بيد لستفاد الكل و هﺫا يسمح للمبتدئين بتطوير أسلوبهم بالإعتماد على هته المشاريع أما أن يطور كل واحد برنامج يجعله مغلوق المصدر فلن يستفيد أحد بل ستنتج طبقية فكرية في المجتمع يا إخواني موضوع المصدر المفتوح موضوع مهم جدا وهو أحد ركائز الإحتراف أضرب مثال بالجامعات الأمريكية فهي تطور كل شهر برامج مفتوحة المصدر وتشارك معها كل الجامعات الأخرى ويستطيع كل الطلاب تعديل هته البرامج و متابعة تطورها مجانا فما كانت النتيجة طالب(لينوس تورفالدس) استطاع أن يضع حجر الأساس لليونيكس أعظم نظام في العلم. وهو في العشرين .
عالم المعلوماتية عالم معقد و سريع لكي تقتحم هدا العالم يجب أن تكون لديك القدرة على سرعة التأقلم وتكون لديك القدرة على رأية الأشياء على حقيقتها ،فإدا طرحت في السوق تقنية جديدة تستطيع تحليلها وفهم طريقة عملها والأهم المشاكل و الثغرات التي تحتويها ،هنا يبدأ عملك يا محترف طرح الحلول و سد الثغرات وهدا هو التميز بعينه لأن المبرمجين ينقسمون إلى قسمين المبرمجProgrammeur والمطورDevloppeurفالأول يكتفي بكتابة البرامج أنا الثاني فيقوم بتطويرها و حل المشاكل التي تواجهها .ولا يخفى عليكم أن عالم البرمجة هو عالم المشاكل بحد داته فلإنجاز مشروع صغير ستواجه عشراة المشاكل لدى هيئ نفسك لما ينتظرك وإن واجهتك مشكلة أدرس أسبابها أولا ثم عالج الأسباب واحدا تل و اللآخر وحاول تجديد أفكارك لكي لا تقع في فخ التكرار إدا ام تصل إتى الحل لا تعيد نفس الفكرة بل غيرها تماما.
-المهارات الأساسية للمحترف.
طريقة تفكير المحترف مطلوبة و لكنها لا تغني عن المهارات الأساسية التي يجب أن تتوفر لديه قبل أن يستطيع أي شخص أن يلقبه بلقب المحترف.
1 تعلم البرمجهالبرمجة هي الطريقة الوحيدة للتواصل مع الجهاز و بواسطتها تستطيع أن تطلب من الجهاز أن يفعل ماشئت لأنك قلبت المعادلة صرت أنت من يتحكم في الجهاز وليس العكس .
لغاة البرمجة كثيرة ومتنوعة منها السهلة ومنها الصعبة منها القوية ومنها الضعيفة إﺫا كنت لا تعرف أيا من لغاة البرمجة أنصحك بالبدأ بتعلم لغة python. يوجد وثائق تعليمية جيده لها و سهلة للمبتدئين. و بالرغم من كونها لغة جيده للبدأ بها فهي ليست لعبة بل انها لغة قوية و مناسبة للمشاريع الكبيرة إنها لغة رائعة وسهلة وحديثة لن تجد صعوبة كبيرة في تعلمها و ستكسبك الثقة في النفس وستتعلم معها أساسيات البرمجة في ظرف زماني قصير لأنها لغة سلسة و غير معقدة.
الجافا لغة برمجة جيده أخرى. هي أصعب من البايثون و لكنها تنتج كود أسرع من البايثون. برأي انها تمثل أفضل اختيار ثاني لك.(أي بعد تعلمك لل python).ستحتاج للجافا كثيرا لأنها واسعة الإستعمال ومن أحسن اللغاة الحالية لدى يجب أن تتقنها جيدا.
لكن احذر، لن تصل إلى مستوى المحترف أو حتى إلى مستوى المبرمج العادي إذا تعرفت على لغة برمجة واحده أو اتنتين. يجب أن تتعلم كيفية التفكير في المشاكل البرمجية بشكل عام. مستقلا عن أية لغة برمجة لا تربط نفسك بلغة معينة. لكي تصبح محترف يجب أن تصل إلى مستوي حيث يمكنك تعلم لغة برمجة في أيام عن طريق ربط ما هو موجود في كتيب هذه اللغه بما تعرفه انت مسبقا. و هذا يعني تعلمك للعديد من لغات البرمجة.
اذا بدأت في التعمق في برمجة جدية فسوف يجب عليك تعلم لغة السي، قلب نظام التشغيل يونكس. لغة السي++ قريبه جدا من لغة السي، إذا تعلمت واحده فسوف يصبح من السهل عليك تعلم الأخرى. ليست أي منهما الاختيار الصحيح لكي تبدأ به. في الحقيقة كلما استطعت الابتعاد عن البرمجة بالسي كلما أصبحت أكثر انتاجية. السي لغة قوية و موفرة لمصادر جهازك ولكن لكي توفر السي هذه الميزة يتوجب عليك عمل العديد من الوظائف بنفسك للتحكم في المصادر ( كالذاكرة مثلا). كل هذه الشيفرة البرمجية تزيد من احتمالات الخطأ و سوف تتطلب منك وقت أطول في تتبع الأخطاء بالبرنامج. هذه الميزة ليست في غاية الأهمية هذه الأيام مع وجود أجهزة قوية كالموجودة حاليا. يفضل استخدام لغة برمجة تقوم بإهدار مصادر الجهاز و لكنها ستقوم بتوفير وقتك مثل البايثون. إﺫ أنك تستطيع حل مشكل بواسطة البايثون في 15سطر ولو حاولت حل هﺫا المشكل بلغة السي سيكون الكود 60سطر و خلاصة القول إتجه إلى السي إٍِلآْ إﺫا احتجت إليها حتى توفر وقتك و جهدك
يوجد لغات أخرى تعتبر مهمة للمبرمج من ضمنها البيرلPerl و اليسب Lisp مهمة لأسباب عملية، فهي تستخدم للصفحات الديناميكية و يستخدمها مديرين النظم. لذلك حتى لو لم تتعلم البرمجة بلغة بيرل فعليك أن تستطيع فهم الكود المكتوب بها. يستخدم العديد من المبرمجين البيرل بنفس الصورة التي أقترح عليك استخدام البايثون بها لتجنب البرمجة بالسي عندما لا تحتاج إلى هذا القدر من التحكم في مصادر الجهاز. سوف تحتاج أن تفهم الكود الذي يكتبه هؤلاء المبرمجين.
تستحق لغة ليسب لفت الانتباه لها لسبب مختلف، بسبب التجربة الرائعة التي سوف تحظى بها عندما تصل إلى فهم هذه اللغه. هذه الخبرة سوف تجعلك مبرمج أفضل لباقية حياتك حتى لو لم تستخدم هذه اللغه كثيرا.
فضل اختيار بالطبع أن تتعلم الخمس لغات. البايثون، السي، السي++، الجافا، البيرل، و الليسب. إلى جانب أنهم أهم اللغات المحترفين فهم يمثلون تعريف بأكثر من تقنية برمجية و كل منهم سوف يعلمك شئ ذو قيمة عاليه.
تعلم البرمجة يكاد يكون مثل تعلم أي لغه بشريه حيث أفضل طريقة لتعلم اللغات البشريه هي قراءة بعض ما هو مكتوب من قبل أساتذة تلك اللغات و كتابة بعض الأشياء بنفسك و قراءة المزيد و كتابة المزيد حتى تبدأ كتاباتك في التطور لتصل إلى المستوى الذي تريده.
2احصل على أحد أنظمة يونكس مفتوحة المصدر و تعلم كيفية تشغيله و استخدامه
يونيكس هو الأب الروحي لكل الأنظمة الحالية وهو أقوى نظام تشغيل و أثبت نظام حتى لآن إﺫ أنه يستطيع العمل لسنواة بدون إغلاق و الأهم من ﺫالك أنه مفتوح المصدر و أهم مميزاته هي :
• أسرع ،وأقوى ، وآمن ، وأكثر استقراراً -لايعلق- وعلمي وموثوق
• صمم من الأساس ليكون نظام شبكات ونظام محمي وصمم ليدوم
• انخفاض كلفة الإدامة (التطورات تكون خاضعة GPL ومتوفرة)
• حر/مجاني وغير احتكاري وهو ملك للبشرية GPL
• قادر على بناء نفسه
•مطابق للمواصفات والمقاييس مثل POSIX و ANSI و ISO و ... قد يساعد ذلك على أن يكشف الأخطاء المصنعية والتلاعب بالموصفات
•عالمي ويدعم لغات مختلفة منها العربية عن طريق معايير Unicode
•خال من الفيروسات والجواسيس
•نظام 32-بت (فما فوق) حقيقي ،متعدد المستخدمين والمهام و خيوط المعالجة و تعدد المعالجات
•التحكم في أولويات البرامج
•كامل الأدوات ولغات البرمجة
•يمكن تركيب الأدوات لأتمتة الأعمال
•زلايين (ملايين الملايين) من البرامج بإنتظارك
•سريع التطور، والمزايا الجديدة تنطبق حتى على البرامج القديمة وليس على البرامج التي صممت لها
•يعطيك بيئة التكنولوجيا المتطورة في عالم UNIX على الأجهزة الشخصية
•مدعوم من شركات ضخمة وتاريخية مثل IBM و HP
لذلك قم بجلب نظام تشغيل مثل اليونكس، أنا أفضل اللينكس و لكن يوجد أنظمة أخرى ( نعم يمكنك تثبيت نظامي لينكس و نظام وندوز على نفس الكمبيوتر جنبا إلى جنب). تعلم النظام و قم بالعمل عليه و ادخل على الانترنت عن طريقه. إقرأ الكود و عدل به. سوف تحصل على أدوات أفضل بكثير للبرمجة من أي أدوات يمكن أن تراها على نظام التشغيل وندوز. سوف تحصل على المرح و على الكثير من المعلومات أكثر مما تتخيل أثناء استخدامك و سوف تدرك هذا الشيئ عندما تنظر إلى الوراء لترى ما كنت عليه قبل أن تصبح محترف.
يسمح لك نظام اليونيكس بإستغلال كل موارده ويمكنك من تعديلها ستكتشف عمل النظام على حقيقته و بطريقة مباشرة دون تدخل أي وسائط لأنه نظام مرن جدا يسمح لك بالتوغل داخله كيف ماشئت ستتعلم معه الكثير الكثير .أما البرمجة على اليونيكس فلا أستطيع أن أصف لك روعتها حتى تجربها بنفسك لأنه يتوافق مع كل لغاة البرمجة حتى أنك لا تحتاج إلى مترجم لكتابة أكوادك .
3إذا لم تكن تعرف الإنجليزية، إبدأ في تعلمها
كل الكتب التي ستحتاجها في مشوارك مكتوبة بالغة الإنجليزية و قوانين حقوق الملكية في الدول أمريكا أيسر من أوروبا بحيث أنك تستطيع تحميل آلاف الكتب المجانية زد إتى ﺫلك أن 90بالمئة من المراجع بالغة الإنجليزية
تستطيع تحميل الكتب المجانية من الموقع التالي http://www.dbebooks.com
متي يجب أن يبدأ الشخص؟ هل أصبحت كبيرا في السن لكي أبدأ في التعلم؟
ج: يعتمد هذا على موهبتك الطبيعية و على مدى اجتهادك في العمل. معظم الناس يكتسبون مهارات تستحق الاحترام في غضون ثمانية عشر شهر أو سنتين لو ركزوا و لكن التعلم لا يقف عند هذا الحد. اذا كنت محترف حقيقي سوف تقضي بقية حياتك في محاولة التعلم و تطوير مهاراتك.
س: هل الفيجوال بيسك و السي# مناسبتين لأبدأ بهما؟
ج: اذا كنت تسأل هذا السؤال فهذا يعني أنك تريد تعلم و ممارسة البرمجة على نظام ميكروسوفت وندوز و هذه فكرة سيئة للغاية لن تتعلم الكثير مع ميكروسوفت ولو تعلمت البرمجة على الوندوز ستبقى مقيد به لأنه مغلوق المصدر لن تستطيع البرمجة أو حتى فهم لأنظمة أخرى ويا إخواني ميكروسوفت على طريق الإنهيار صدقوني لن تبقى لمدة طويلة لأنها لم تستطع مواجهة المنافسة الشديدة من الينيكس كما أن كل الشركات الكبرى صارت تعتمد على لينيكس لإدارة شبكاتها ندكر منها IBM HP Google Dell … هل تريد االإحتراف على نظام زائغ مليئ بالمشاكل ? لن تنال منه إلى المشاكل.
هناك مشاكل معينة في الفيجوال بيسك من اهمها انها لن تعمل الا على نظام واحد.بالرغم من وجود أكثر من بيئة عمل مفتوحة المصدر لهما و لكنها لا تغطي غير جزء بسيط من أدوات اللغة. و على الوندوز معظم المكتبات البرمجية التي تدعم تلك اللغات مغلقة المصدر و ملك لشركة واحده هي ميكروسوفت. إذا لم تكن حريصا للغاية في اختيار الأشياء التي ستعتمد عليها أثناء برمجتك بهذه اللغات و غالبا كل المبتدئين يكونون هكذا فسوف ينتهي بك الأمر محاصرا بالأنظمة التي تدعمها ميكروسوفت فقط. إذا بدأت مع اليونكس فهناك لغات برمجة افضل و مكتبات برمجية.
الفيجوال بيسك بذات لغة فظيعة. فهي مصممة بشكل ضعيف و سوف تعلمك العديد من العادات البرمجية السيئة للغاية و لا يسعني أن أشرح هذه العيوب لأنها كثيرة للغاية و يمكن ملئ كتاب بها. الأفضل لك أن تتعلم لغة برمجة مصممة بشكل جيد . واحد من هذه العيوب هو ان هذه اللغة تعتمد على بيئة عمل واحده و على أدوات تطوير واحده. و عموما إذا كانت لغة البرمجة لا تدعم العمل في ثلاثة بيئات مختلفه فهي لغة ضعيفة لكي تتعلم البرمجة بها.
لا يمكنك Visual Basic من ادارة الداآرة Memory Managementبطريقة سهلة –مقنعة للمبرمجين- وذلك بسبب ضعف تعامله مع المؤشرات
و عند الحديث عن المشاريع العملاقة، فطاقة Visual Basic لا تستوعب اكواد حجمها اكثر من K64 في نافذة نموذج واحدة او اجراء واحد، وهذا القصور يكفي ان يجعل Visual Basic اسوأ منصة تطوير التطبيقات في نظر آلاف –ان لم يكن ملايين- المبرمجين حول العالم ايضا!
لا ان المبرمجين الموالين ل Visual Basic قدموا عشرات الحلول لمحاولة تغطية والالتفاف حول قصور اللغة في القضايا السابقة، والمبرمجين المعادين ل Visual Basicاثبتوا ان تلك الحلول قد أعمت القصور بدلا من تكحيلها، فهي قد اضعفت آفاءة التنفيذ وزادت الاآواد تعقيدا.
أنا أعلم أن معضم القراء مولعون بالباسيك و من الصعب عليهم تقبل الفكرة و لكن هدا ليس رأيي بل رأي اغلبية المتخصصين في مجال البرمجة وولله ما سبقنا الغرب إلى لتبعيتنا العمياء و القبول بكل شيئ ولله في عقر دار ميكروسوفت لا يبرمجون بالباسك ولا يستعملون الوندوز ونحن نرفع لها الشعارات و بالمجان.
لغة السي شارب أحسن بكثير من الباسيك فهي لغة لا بأس بها ولكن يبقى مشكل البرمجة على منصة وندوز(المصادر المغلوقة).;ولكنها لا تخلو من المشاكل هي أيضا.
أرجو من القراء أن لا يقعو في فخ القرصنة لأن معضم المبتدئين يتجهون نحو القرصنة و هدا خطأ كبير لأنك ستغلق على نفسك تحصر نفسك في مجال ضيق فتجعل كل تركيزك موجه نحو القرصنة و تضيع على نفسك العلوم المهمة ولله لقد رأينا أناسا يدعون إحتراف القرصنة لايعرفون مبادء الكمبيوتر ولو سألته سؤالا بسيطا ستفاجئ بالرد ولا يتسوي مفتعل المشكل مع الدي يحل المشكل و يحول دون وقوعه مرة أخرى أبدا لايستون.
هناك أمر آخر يجب على المحترف إتقانه يتمثل في علوم الشبكات لأنك إدا أتقنت البرمجة على اليونيكس و أتقنت معهما الشبكات ستصبح بكل بساطة حكيم زمانك ستقلب العالم رأسا على عقب لأنك أتقنت 80بالمئة من المعلوماتية .
كل ما كتبته في هدا المقال يتطلب وقت طويل نسبا لتطبيقه لدى لا تدع الإحباط يصيبك إن واجهتك المشاكل وتأكد أن ما ستجنيه في النهاية لا يقدر بثمن.
أرجو أن ينال الموضوع إعجابكم وأن تفكرو جديا في محتواه ومن لم يقتنع به على الاقل يبحث حوله .
بعض أجزاء هدا المقال مؤخودة و مترجمة من مقال إيريك ستيفين ريموند .
تم بحمد الله.


