إيمانك بهذه المبادئ مهم بالنسبة إليك فسوف يساعدك و يدفعك إلى التعلم سيزيد في الحافز التعليمي لديك . مثل كل الفنون الإبداعية أفضل الطرق لتصبح محترف هو أن تفكر بعقل محترف ليس فقط فكريا و إنما عاطفيا أيضاً يجب أن تقنع نفسك أنك محترف.
راقب المحترف , تتبع المحترف, فكر بعقل المحترف, كن محترف.
هيئ نفسك للمشاكل التي تنتظرك
كونك محترف سيصبح مصدر رضي لك و لكنه رضي يحتاج لمجهود شاق. هذا المجهود يحتاج إلى دافع و حافز قوي، يحصل الرياضيون على الدافع من نوع السعادة عند جعل أجسادهم في حالة أفضل و عند النظر إليها في المرآة، فهي تخطت حدود طاقتهم الجسدية. بالمثل، لتصبح محترف يجب أن تحصل على السعادة من حل المشاكل و عمل البرامج الخارقة التي عجز عنها الكثير ، يجب عليك تطوير مهاراتك، و استعمال ذكائك حتى يتخطى الحدود ولا يوجد حدود للعقل ،مهمتك كمحترف برمجة هي حل المشاكل مهما كانت ويجب أن تكون لديك دائما الحلول الجديدة و بمصادر مفتوحة فلو أن المسلمين تبادلوا المشاريع المفتوحة المصدر بينهم و تشاركوا في تطويرها يدا بيد ل استفاد الكل و هذا يسمح للمبتدئين بتطوير أسلوبهم بالاعتماد على هته المشاريع أما أن يطور كل واحد برنامج يجعله مفلوق المصدر فلن يستفيد أحد بل ستنتج طبقية فكرية في المجتمع يا إخواني موضوع المصدر المفتوح موضوع مهم جدا وهو أحد ركائز الاحتراف أضرب مثال بالجامعات الأمريكية فهي تطور كل شهر برامج مفتوحة المصدر وتشارك معها كل الجامعات الأخرى ويستطيع كل الطلاب تعديل هته البرامج و متابعة تطورها مجانا فما كانت النتيجة طالب(لينوس تورفالدس) استطاع أن يضع حجر الأساس لليونيكس أعظم نظام في العلم. وهو في سن العشرين.
عالم المعلوماتية عالم معقد و سريع لكي تقتحم هدا العالم يجب أن تكون لديك القدرة على سرعة التأقلم وتكون لديك القدرة على رؤية الأشياء على حقيقتها ،فإذا طرحت في السوق تقنية جديدة تستطيع تحليلها وفهم طريقة عملها والأهم المشاكل و الثغرات التي تحتويها ،هنا يبدأ عملك يا محترف طرح الحلول و سد الثغرات وهدا هو التميز بعينه لأننا قلنا أن المبرمجين ينقسمون إلى قسمين فالأول يكتفي بكتابة البرامج أما الثاني فيقوم بتطويرها و حل المشاكل التي تواجهها .ولا يخفى عليكم أن عالم البرمجة هو عالم المشاكل بحد ذاته فلإنجاز مشروع صغير ستواجه العشرات من المشاكل لدى هيئ نفسك لما ينتظرك وإن واجهتك مشكلة أدرس أسبابها أولا ثم عالج الأسباب واحدا تل و الآخر وحاول تجديد أفكارك لكي لا تقع في فخ التكرار إذا لم تصل إلى الحل لا تعيد نفس الفكرة بل غيرها تماما حاول تغيير الإستراتيجيات التي تواجه بها المشكل مع كل مرة و حاول إدخال بعض الأمور الجديدة على أسلوبك مع كل مرة حتى تبقى دائم التطور و التجدد.
اللغات التي يستعملها المحترف
طريقة تفكير المحترف مطلوبة و لكنها لا تغني عن المهارات الأساسية التي يجب أن تتوفر لديه قبل أن يستطيع أي شخص أن يلقبه بلقب المحترف . يملك المحترف عدة لغات برمجة معينة تساعده على حل المشاكل و عمل برامج و مشاريع متميزة , إذا كنت أخي القارئ لا تعرف أي من لغات البرمجة فاتبع المنهج التالي الذي سيقودك للاحتراف بسهولة
لغات البرمجة كثيرة ومتنوعة منها السهلة ومنها الصعبة منها القوية ومنها الضعيفة منها مايفيد و منها ما يضر . إﺫا كنت لا تعرف أيا من لغات البرمجة أنصحك بالبدء بتعلم لغة البايثون python فهي لغة رائعة و حديثة و سهلة على المبتدئين .أنشأت هذه اللغة خصيصا لمستعملي لغة السي حتى يستعينوا بها لعمل مشاريع في وقت قصير .كتبت هذه اللغة بلغة السي و هي تعمل كل ما تعمله لغة السي طبعا لن تعطيك الحرية كحرية السي و لكن من حيث الفعالية لا يوجد فرق بينهما و لا تغرك سهولة هذه اللغة و تضن أنها ضعيفة فقد كتب بواسطة هذه اللغة كل أدوات توزيعة الردهات redhatو لمن لا يعرف الردهات هي توزيعة لينيكس المستعملة من طرف أغلب الخوادم server و يغيضني في قلبي عندما أرى المسلمين يجهلون عن هذه اللغة الرائعة بل إن البعض يشكك في فعاليتها و هذه أخي القارء بعض المشاريع التي استعملت لغة البايثون فيها .
Google, NASA, YouTube, Industrial Light & Magic, One Laptop Per Child,
Opie sur pocket PC,
كما نرى لغة البايثون قوية و واسعة الإستعمال فبالرغم من كونها لغة جيده للبدأ بها فهي ليست لعبة بل انها لغة قوية و مناسبة للمشاريع الكبيرة إنها لغة لن تجد صعوبة كبيرة في تعلمها و ستكسبك الثقة في النفس وستتعلم معها أساسيات البرمجة في ظرف زماني قصير لأنها لغة سلسة و غير معقدة.
لغة البيرل perl أو الجافا java تعتبر أحسن إختيار ثاني لك أنا أفضل أن تتعلم البيرل أولا فهي اللغة التي تستعمل في إدارة أنظمة الشبكات و التحكم في الخوادم عن بعد كما تستعمل في برامج التواصل عن بعد إذا تعلمت لغة البايثون لن تجد صعوبة في تعلم لغة البيرل لأنهما متشابهتان نوعا ما .
لغة الجافا أصعب قليلا و لكنها تنتج أكواد أسرع من لغة البايثون كما أنها أصبحت واسعة الإستعمال .
لكن احذر، لن تصل إلى مستوى المحترف أو حتى إلى مستوى المبرمج العادي إذا تعرفت على لغة برمجة واحده أو اتنتين. يجب أن تتعلم كيفية التفكير في المشاكل البرمجية بشكل عام. مستقلا عن أية لغة برمجة لا تربط نفسك بلغة معينة. لكي تصبح محترف يجب أن تصل إلى مستوي حيث يمكنك تعلم لغة برمجة في أيام عن طريق ربط ما هو موجود في كتيب هذه اللغه بما تعرفه انت مسبقا. و هذا يعني تعلمك للعديد من لغات البرمجة , يجب أن يكون لديك أسلوبك الخاص لا تربط نفسك بأسلوب لغة معينة لأنك إذا غيرت اللغة ستضطر إلا تغير أسلوبك بالكامل .
اذا بدأت في التعمق في برمجة بجدية فسوف يجب عليك تعلم لغة السي، لغة العصر , قلب نظام التشغيل يونكس. لغة السي++ قريبه جدا من لغة السي، إذا تعلمت واحده فسوف يصبح من السهل عليك تعلم الأخرى. ليست أي منهما الاختيار الصحيح لكي تبدأ به. في الحقيقة كلما استطعت الابتعاد عن البرمجة بالسي كلما أصبحت أكثر انتاجية. السي لغة قوية و موفرة لمصادر جهازك ولكن لكي توفر السي هذه الميزة يتوجب عليك عمل العديد من الوظائف بنفسك للتحكم في المصادر ( كالذاكرة مثلا). كل هذه الشيفرة البرمجية تزيد من احتمالات الخطأ و سوف تتطلب منك وقت أطول في تتبع الأخطاء بالبرنامج. هذه الميزة ليست في غاية الأهمية هذه الأيام مع وجود أجهزة قوية كالموجودة حاليا. يفضل استخدام لغة برمجة تقوم بإهدار مصادر الجهاز و لكنها ستقوم بتوفير وقتك مثل البايثون. إﺫ أنك تستطيع حل مشكل بواسطة البايثون في 15سطر ولو حاولت حل هذا المشكل بلغة السي سيكون الكود 60 سطر و خلاصة القول إتجه إلى السي إٍِلآْ إﺫا احتجت إليها حتى توفر وقتك و جهدك. بعض الناس يعتبروني أهاجم لغة السي بهذا الكلام و هذا خطأ لأني مهوس بهذه اللغة و لكن الحق حق , و كما قلت لك لا تربط نفسك بلغة معينة . اجعل السي دائما آخر الحلول .
تستحق لغة ليسب lisp لفت الانتباه لها لسبب مختلف، بسبب التجربة الرائعة التي سوف تحظى بها عندما تصل إلى فهم هذه اللغه المخصصة ل برمجة الذكاء الإصطناعي . هذه الخبرة سوف تجعلك مبرمج أفضل لباقية حياتك حتى لو لم تستخدم هذه اللغه كثيرا.
لغة PHP أيضا صارت من تعتبر من أهم اللغات لأن جل الصفحات الديناميكية أو صفحات الويب صارت تكتب بها لدى يجب عليك تعلمها أو على الأقل فهم الأكواد المكتوبة بها كما أنك تستطيع إدماجها مع لغة السي ( على الينيكس) و تستفيد من ميزاتها كما قلت من قبل لحفظ الوقت و المجهود.
أفضل اختيار بالطبع أن تتعلم الخمس لغات. البايثون، السي، السي++، الجافا، البيرل, بي إتش بي ، و الليسب. إلى جانب أنهم أهم اللغات المحترفين فهم يمثلون تعريف بأكثر من تقنية برمجية و كل منهم سوف يعلمك شئ ذو قيمة عاليه و ستكتسب من كل لغة أفضل ما فيها و تأخذ منها ما يفيدك فقط..
تعلم البرمجة يكاد يكون مثل تعلم أي لغه بشريه حيث أفضل طريقة لتعلم اللغات البشريه هي قراءة بعض ما هو مكتوب من قبل أساتذ تلك اللغات و كتابة بعض الأشياء بنفسك و قراءة المزيد و كتابة المزيد مع إدخال معاني جديدة حتى تبدأ كتاباتك في التطور لتصل إلى المستوى الذي تريده لدى حاول دائما قرئة أكواد مشاريع كبيرة حللها و افهمها و حاول التغير فيها ان استطعت فهذا سيساعدك على تطوير مهاراتك..
المحترف لا يتقن إلا البرمجة توجد أمور أخرى يتوجب عليه تعلمها و هذا ما سنراه في الموضوع الثاني .
أرجو أن أكون قد أفدتكم بهذا الموضوع المتواضع و انتظرو الموضوع الثاني بإذن الله الذي سنتطرق فيه لأمور أخرى مفيدة ل كل مبرمج حتى يصبح محترف .
تم بحمد الله