نصيحه مهمه للمبتدئين فى البرمجه البدايه

 بسم الله الرحمن الرحيم
نصيحه مهمه للمبتدئين فى البرمجه البدايه


زوار wasfh الكرام سلام الله عليكم ورحمته وبركاته اما بعد ، فى حال ما كنتم من متابعى مدونتى وليست تلك هى الزياره الاولى لكم ، فبالتأكيد انكم تعلمون انه من عادتى أنى أحب اعادة نشر ومشاركة ، ما اعجبنى كثيراً من معلومات مهمه ومفيده أطلعت عليها او قرأتها فى كتب او مقالات سواء كانت عربيه أو اجنبيه ، بالشكل الملائم من خلال الاقتباس أوالترجمه  أو أعادة الطرح والمناقشه ، كلما أتيحت لى الفرصه وتيسر لى ذلك ، ومن افضل الكتب العربيه التى تتحدث عن البرمجه التى قرأتها واعجبتنى للغايه ، كتاب مختصر دليل لغات البرمجه للأستاذ على آل ياسين جزاه الله كل خير ، على المجهود الذى بذله فى تأليف هذا الكتاب الثرى بالمعلومات المهمه والمفيده لكل مبرمج سواء كان مبتدىء او فى بداية مسيرته لتعلم البرمجه ، وللجميع عموماً وأوصى كل المهتمين بالمجال بقرائته ، وللعلم الكتاب مجانى ومنشور تحت رخصة المشاع الإبداعى نَسب المصنف - غير تجارى - الترخيص بالمثل ، على موقع كتب عربيه حره يمكنكم قرائته بالكامل او تحميله من هنا 👈 _  مختصر دليل لغات البرمجه _ ، وللعلم هذا الكتاب لايشرح لغه او لغات برمجه معينه ، انما يناقش ابرز المفاهيم البرمجيه وطرق التفكير البرمجيه ، بلغة سهله وبشكلاً مختصر بدون الغوص فى التفاصيل التقنيه الدقيقه التى قد تدفع القارىء للملل وعدم اكمال قراءة الكتاب خصوصاً الوافدين الجدد لعالم البرمجه ، وفى بداية الكتاب ذكر المؤلف ماهو بمثابة نصيحه من ذهب لكل مبتدىء او دارس دخل حديثاً لعالم البرمجه وتمكنت منه الحيره و عنوانها البدايه ، وكانت كالتالى " لا أريد أن أمثل دور المبرمج المحنك هنا ، فأنا فى الواقع لست مؤهلاً لذلك ، ولكن بحكم تخصصى فى هذا المجال وأهتمامى بالجانب النظرى منه ، ولأننى رأيت الكثير من المواضيع والأسئله فى المنتديات عن البدايه فى البرمجه ، أحببت أن أكتب بعض الأسطر لمن لديهم اهتمام بالبرمجه ولكنهم لم يقدموا بعد ، هناك نقاط كثيره يجب أن تؤخذ فى الحسبان قبل الشروع فى تعلم لغة برمجه ، ولكن لاحظت أن المشكله الأساسيه عندنا هى ليست فى عدم القدره على اختيار لغه معينه ، بل فى عدم العزم على التعلم ابتداء ، من منا لايحب أن يقال عنه مبرمج ؟ خاصة أن البرمجه مثل الرياضيات يوصف اصحابها بالذكاء والعبقريه ، الكثير منا يقول ويتمنى ويخطط أن يكون مبرمجاً عندما يقرأ عن المبرمجين والمخترقين وقصص نجاح البرامج والمواقع ، ولكن عندما يبدأ أول خطوه فى الدراسه يعرف أن هناك الكثير ليتعلمه وان الماده ليست ممتعه كما كان يتصور ويبدأ الشعور بالملل ، ومن ثم يترك ماشرع فى قراءته من كتاب أو دوره تعليميه ، وهناك حكمه يابانيه تقول (( الطموح بدون عمل مجرد حلم يقظه )) شخصياً كنت اعانى من هذه المشكله وهى تكديس الكتب والدورات والمحاضرات وغيرها على أمل أنى سأقرأها واشرع فى تعلمها فى وقتا ما ، والآن لها سنوات ولم أقرأ الكثير منها ، وهذه مشكلة عامه فى عصر الانفجار المعلوماتى فالإنسان فعلياً يغرق فى بحر من المعلومات والمصادر المتوافره ، لذلك يجب أن ندرك أن مجرد تحميل الكتب والدورات والتنقل فى المنتديات وقراءة المقارنات ، سواء فى البرمجه او غيرها من الفنون لن يجعل منا شيئاً ، بل هو التوكل على الله والبدء والإصرار فى تعلم هذه الأشياء الممله والمواد الثقيله وإكمال الكتب والدورات إلى نهايتها ، بالإضافه إلى الممارسه والتفكير هو ما يضيف إلى حصيلتنا الشىء المفيد وإلا فكل العلوم والفنون بعد أن تتوغل قليلاً وتذهب نشوة الحماس تجد نفسك فى تفاصيل ممله ومعان معقده يجب أن تتقنها وتحفظها وتمارسها كى تبدء فعلياً عملية الانتقال من مرحلة الاطلاع والثقافه العامه إلى مرحلة الاحتراف والتخصص ، حسناً الآن انت عازم على المواصله والجد فى تعلم لغة برمجه معينه ولكنك لا تستطيع أن تختار أى لغه تناسبك؟ هذه المشكله الثانيه ، ونرى الكثير من المواضيع فى المنتديات على هذه الشاكله أى لغة برمجه اختار؟ ماهى افضل لغة برمجه؟ ما هى اقوى لغة برمجه؟ أيهما الأقوى بيرل أو بايثون ؟ جافا أو سى شارب؟ ، فى حقيقة الأمر لا يوجد شيء اسمه اللغه الأقوى وكل من يقول هناك شيء من هذا القبيل فهو أما متعصب أو واهم ، فكل لغه قويه فى جانب معين وعادة ما يكون هو الجانب الذى أنشئت من اجله اساساً ، طبعاً يوجد لغات تصلح لكل شىء تقريباً ولكن يبقى أنها لا تقدم كفاءه وانتاجيه عاليه فى كل شىء، فمثلاً لغه مخصصه للويب مثل php وأن كان هناك إمكانية عمل برامج سطح المكتب بها فهى لن تكون بقوة وسهولة وانتاجية لغات البرمجه المخصصه لهذا الجانب والعكس صحيح ، على هذا فسيكون الجواب على سؤالك عدة اسئله ، ماهى احتياجاتك ؟ ماذا تريد أن تبرمج ؟ هل تريد تعلم البرمجه لنفسك أو لسوق العمل ؟ هل المشروع يحتاج إلى السرعه فى الأداء أم أن السهوله فى التطوير أهم ؟ ما طبيعة البيانات المراد التعامل معها هل هى مستندات نصيه ام صور ام احصائيات؟ الخ ، سترى أنه بالإجابه على كل هذه الأسئله ستختلف اللغه المطلوبه لذلك تجد أن أغلب المبرمجين يعرفون أكثر من لغه ، وذلك لأنهم يختارون الأداه المناسبه لكل مهمه ، أيضا هذا الكتاب ربما يكون جيداً فى اختيار لغة برمجتك الأولى فهو يعرفك بالأهداف الرئيسيه التى أنشئت من اجلها لغات البرمجه المختلفه وأهم التطبيقات التى تستخدم فيها هذه اللغات ، والنقطه الجديره بالذكر هنا ايضا هى اطلاعك على أمثله من طريقة كتابة الأكواد فى لغات مختلفه باعتقادى الشخصى سيؤثر على اهتمامك واستمتاعك بلغة البرمجه التى تختارها ، فهناك الكثير من المبرمجين يستخدمون لغات معينه فقط لأنهم يحبون أسلوبها فى الكتابه ، وايضا طريقة معالجتها للمشاكل البرمجيه ، مثلاً إذا كنت تحب أن يكون كل شيء واضحاً فى اسماء المتغيرات والكلمات المفتاحيه وغيرها ، وتكره استخدام الكثير من الاختصارات والرموز  كالأقواس الكثيره فى لغة البرمجه Lisp والأقواس المعقوفه وما إلى ذلك ، فذلك بالطبع سيؤثر على اختيارك||||تعليق:لذلك نجد البعض تعجبه لغة بايثون لأن كل شيء بها واضح كأنك تكتب باللغه الانجليزيه وليست أكواد |||| ، وبمناسبة الكلام عن الأقواس فبعض المبرمجين يصف كثرة استخدام الأقواس فى لغة Lisp بجهنم الأقواس ، ولكن يقول الآخر " عندما وصلت إلى مرحلة التنوير ارتفعت الأقواس" هذه الامور النفسيه والذوقيه ربما يستصغرها البعض لكن هذه الأمور فطريه ولا يمكن تجاهلها ، أتذكر انى كنت فى غاية الشوق لقراءة أحد الكتب لما سمعت عنه وتلمست من مؤلفه وكان الكتاب صعب المنال ، لندرته وكنت أتوقع أنى لو تحصلت عليه سأقرأه فى جلسه ولكن عندما حصلت عليه لم استطع أن أقرأ إلا مقاله واحده ، لأن الورق كان رديئاً والخط كان صغيراً وضعيفاً بشكل أفسد على متعة القرأءه بشكل كامل .
الشيىء الأهم هو أن تعلم أن :
تعلمك لأى لغة برمجه سيفيدك كثيراً حتى لو انتقلت إلى لغه آخرى
لغات البرمجه تشترك فى مفاهيم ومبادىء أساسيه أن فهمتها سهل عليك الانتقال حسب الحاجه والرغبه إلى لغات آخرى
ولهذا كما أشرنا نرى أن أغلب المبرمجين يعرفون أكثر من لغه ويسهل عليهم التأقلم مع أي لغه جديده يفرضها عليهم سوق العمل ، وكمثال فى بيرل لم أكن أعرف كيف أقوم بعمل برنامج ذو واجهه رسوميه لأننى كنت معتاد على عمل برامجى على الويب أو سطر ألاوامر ، ولكن بعد تعلمى مكتبة TK وفهمى لكيفية عمل الواجهات الرسوميه استطعت بكل بساطه ويسر أن أنقل برنامجى إلى مكتبة wxperl ، لذلك شخصياً أرى الأهميه المطلقه التى يغفل عنها الكثيرون للجانب النظرى والمنطقى للبرمجه ، عوضاً عن التركيز على حفظ الدوال والأكواد فهذه اشياء بسيطه يمكن الرجوع إليها بسرعه من خلال كتيب الدليل والبحث فى الأنترنت ، فالأفضل أن نعرف كـيـف يـعـمـل الـبـرنـامـج لا كيف يُكتب البرنامج ، شىء آخر يجب أن نشير إليه ألا وهو عدم الاهتمام كثيراً بما يشاع عن أفضلية طريقه معينه فى البرمجه ، مثلاً هناك اشاره دائمه من خلال دراستى فى الجامعه إلى أفضلية البرمجه الكائنيه oop ، ولكن يجب أن ندرك أن البرمجه الكائنيه ليست دائما هى الحل الافضل للمشكله ، فقد توجد مشاكل وبرامج استخدام البرمجه الكائنيه فيها مجرد تطويل وتعقيد للحل ، وكما قالوا" فى البرمجه الكائنيه إذا أردت موزه ستتحصل على غوريلا يمسك بموزه مع الغابه كله"، ولكن طبعاً فى برامج ونواحى آخرى سيكون من الصعب البرمجه  باستخدام البرمجه الأجرائيه بدلاً من البرمجه الكائنيه ، لذلك دائما أحب أن أشير إلى أهمية الجانب النظرى فى البرمجه وهو فهم طرق البرمجه ومبادئها ومن ثم أختيار الطريقه الأفضل|||| تعليق: بالفعل يرى مؤسسى لغة البرمجه Go أن  البرمجه كائنية التوجه بها العديد من العيوب والتعقيدات ويمكن الغائها  من خلال التخلى عن بعضها ، لذلك كانت لغة Go غير كائنية التوجه بمعنى لايوجد فيها مفهوم class وبالتالى لايوجد object ولا وراثه inheritance، وعلى الرغم من ذلك لغة Go بها بعض مميزات البرمجه الكائنية التوجه مثل Interface وStruct methods دوال البيانات و الـ Struct composition تراكيب البيانات ، ويعتبر كورس/ مسار cs50 المقدم من جامعة هارفارد من افضل مسارات الـ iT المفيده للراغبين بتعلم البرمجه، لأنه يعلم اساسيات البرمجه بلغة C بمميزاتها وامكانياتها ثم بلغة بايثون حيث يتعرف الدارس على اساليب ومفاهيم البرمجه الكائنيه oop الغير موجوده بلغة C لأنها لغه غير كائنية التوجه، لمزيد من المعلومات عن كورس cs50 |||| ، ختاماً أشير إلى أن الإنسان لا يستمر على شيىء إلا إذا كان ممتعاً والبرمجه ممتعه إذا كانت تحل مشكله نحتاج لحلها ، وإلا ستكون البرمجه ممله ورتيبه وعادة ما نترك المشروع قبل إتمامه ، على سبيل المثال لينوس تورفالدز Linus Torvalds مبرمج نواة لينكس لم يشرع فى برمجة نظامه إلا من مشكله عاناها مع نظم التشغيل الموجوده فى وقته وغيره من الأمثله كثيره وهنا نصل إلى نقطه آخرى وهى أن البرامج العملاقه سيكون من الصعب جداً على شخص واحد فقط تطويرها وكتابتها وهنا تظهر أهمية العمل الجماعى والاحتكاك بالمبرمجين الآخرين ، والمشاركه فى المحافل البرمجيه ودراسة أكواد الغير ، للعمل من حيث انتهى الآخرون ، وليس تضييع الوقت فى أعادة اختراع العجله وتشتيت الجهود ، النقطه الاخيره التى أحب أن أختم بها هى مسألة الدراسه البرمجيه ، ففى الجامعه نمل ونتضجر من الأشياء النظريه التى نتعلمها ، ونريد تعلم الاشياء "الكوول" على مايقال ، ولكن لاحقاً ندرك أن هذه الاشياء النظريه الممله ، هى أهم ما تعلمناه ونرى لاحقاً مكانها فى عالم البرمجه ، كمثال كان هناك شخص دائماً يتضجر من البرمجه لسطر الأوامر ويقول أن هذا الشيىء قديم أكل الدهر عليه وشرب وأنه علينا أن نتعلم البرمجه الحديثه فما نفع برامج سطر الأوامر هذه الايام ، ولكن فى حقيقة الأمر الجامعه والكتب بشكل عام تعلمك البرمجه لسطر الأوامر لأنها تركز على المنطق فى حل المشاكل البرمجيه ، وما سطر الأوامر إلا مجرد أداه لاستلام المتغيرات والتفاعل مع المستخدم ، لاحقاً أدركنا أن الواجهات الرسوميه وبرامج الويب والآن برامج الموبايل مجرد قشور لا تنفع إذا لم يكن خلفها أكواد برمجيه سحريه تعمل بصمت خلف الستار ، وأن الذى تعلم  الأكواد والمبادىء  وتمكن منها لم يجد صعوبه فى أن يغلفها بواجهات حديثه مثل QT او GTK . "
المصدر:
كتاب/ مختصر دليل لغات البرمجه ، المؤلف: على آل ياسين ، ا مايو 2014م ، 2 رجب 1435 هجري ، المملكه العربيه السعوديه ، الأحساء .

اتمنى أن أكون قد وفقت فى نقل معلومه مفيده لكم، وإن أحسنت فمن الله ، وإن أسأت أو أخطأت فمن نفسى والشيطان


موضوعات ذات صله:


تعليقات

‏قال Lèguān‬‏
يامل السعاده شكرآ على المعلومه
‏قال مطور
اعتقد أن المقال جميل , ولكن يحتاج إلى ترتيب , لقد تعبت حتى أفهمه , واسمح لي بنسخه لإستعماله في محاضراتي , أنا أستاذ جامعة
‏قال Just someone
شكراً اخى الكريم ( مطور) على مرورك بالمدونه وعلى تقديرك وعلى نصيحتكم الكريمه،على الرحب والسعه يمكنك استعمال المقال كما تشاء لأنه منشور فى مصدره الاصلى تحت رخصة المشاع الابداعى، ومصدر هذا المقال الاصلى هو كتاب/ مختصر دليل لغات البرمجه يمكنك قرائته او تحميله مجاناً من موقع كتب عربيه حره او غيره