هل من الممكن البرمجة رغم الفشل في الرياضيات ؟
- imadelahmadi
- 2014-05-29T18:43:23+00:00
السلام عليكم و رحمة الله و بركاته،
أود أن أطرح موضوعا للنقاش يتعلق بالبرمجة و الرياضيات، حيث أنه عند الكثيرين يتعلق إتقان البرمجة باتقان الرياضيات، بينما يرى آخرون أنه لا علاقة للبرمجة بالرياضيات اللهم إن كان البرنامج المراد تطويره يهتم مباشرة بالرياضيات، فما هو رأيكم و تحليلكم ؟
البرمجة هي نمط تفكير مبني على تحليل المسألة باعتبارها مشكلة وأنك سنقوم بحل المشكلة بعمل برنامج يؤدي إلى حل هذه المشكلة
ولكتابة البرنامج يجب تجزئة المسألة الكلية إلى مسائل جزئية ومحاولة تحويلها إلى خطوات أمرية تخضع لمنطق البرمجة وقواعد اللغة التي ستبرمج بها ومن ثم محاولة ربطها مع بعض لتؤدي العمل المطلوب في النتيجة
يعني يمكن تشبيه المسألة باستحداث وزارة أو مؤسسة أو مصلحة
ليس من المعقول أن تستأجر مكان كبير وتضع فيه جميع الموظفين
لا بد من تقسيم الوزارة إلى إدارات وأقسام و تحدد لكل واحد مسؤولياته وتخصص له هرم إداري وتحدد له صلاحيات وما هي المهام التي من اختصاص كل واحد منها ويكون هناك آلية للتواصل والترابط بين الأقسام المختلفة ثم هناك مكتب للتواصل مع الجمهور يأخذ منهم المعاملات كمداخيل ومثم يجري عليها العمليات المناسبة ثم يتم إرجاع نتائج معينة كمخاريج
بنفس التفكير يتم بناء التطبيقات والبرمجة بشكل عام
الرياضيات لها أقسام مختلفة منها ما هو جبري أو منطقي ومنها ما هو هندسة تحليلية و منها ما هو عملياتي وكل نوع يكون الحاجة إليه حسب طبيعة المسألة المراد حلها برمجيا
فبرنامج يعتمد على الرسوم سيحتاج هندسة تحليلية ومعادلات مجسمات ومسطحات
برنامج ألعاب ربما يحتاج معادلات متعلقة بالحركة والطاقة والدوران والتصادم والارتداد والأمواج وغيرها
برنامج يعتمد على حل مشاكل أو اصلاح أعطال ربما يقوم على الاحتمالات والمنطق والجبر والعمليات البوليانية بشكل عام
يعني الخلاصة أنه لا يشترط كامل الرياضيات وإنما فرع منها بحسب المجال الذي ستبرمج به
في البداية لنوضح شيء مهم ، ولنعيد صياغة السؤال هل من الممكن التعمق في علوم الحاسب دون معرفة الرياضيات ..
لماذا علوم الحاسب وليست البرمجة ؟
ببساطة علم الحاسوب هو الذي يقوم على حل المشكلات والأمور التي نواجهها على أرض الواقع باستخدام الحاسوب ، والبرمجة هي عملية محاكاة هذا الحل أو هي الطريقة التي يخاطب بها الإنسان الحاسوب لكي يقول له ماذا يفعل، ولهذا لدينا مصطلح (لغات البرمجة)
هل علم الحاسوب مرتبط بالرياضيات ؟
نعم ، في الحقيقة كان علم الحاسوب فرع من فروع الرياضيات أو الرياضيات التطبيقية. والأن أصبح علم منفصل ولكن ما زال هناك إرتباط قوي جداً بينه وبين الرياضيات.
أين تستخدم الرياضيات في مجال علم الحاسوب ؟
إذا أردت أن تتعمق وتبدع في اخد مجالات علم الحاسوب كـ (Machine Learning أو NLP أو أي مجال من مجالات الذكاء الصناعي) أو تحليل الـ Big Data أو لكتابة الخوارزميات بشتى أنواعها أو التشفير ،، سوف تجد أنك لن تتعامل مع كود إلا عند تطبيق المشروع ولكن في البداية سوف يكون كل شغلك رياضيات. يمكنك عمل بحث بسيط عن أحد هذه المجالات وشاهد من يغلب في المقال الذي تقرأه المعادلات الرياضية أم الكود !!
قد تسأل : هناك الكثير من المبرمجين يعتبروا محترفين ولا يستخدمون الرياضيات !!!
أرد عليك : لماذا حكمت عليهم بالإحتراف ، وما هي طبيعة البرامج التي صمموها (مواقع ويب مثلاً أم برنامج يقوم بعمليات إدخال واستدعاء من قاعدة البيانات ، مع العلم أنك قد تصمم برنامج كبير لا يقوم إلا بعمليات الإدخال والإستدعاء على قاعدة البيانات مع حسابات خفيفة).
طيب هل من الممكن أن يصمموا برنامج معالجة الصور أو معالجة الصوت مثلاً دون إستخدام المكتبات الجاهزة !!!
في النهاية يكنك أن تصمم برامج عادية ومواقع ويب وبرامج ضخمة تتعامل مع قواعد البيانات دون الحاجة للرياضيات سوى حسابات بسيطة ، ولكن لن تستطيع التعمق في علوم الحاسوب وتصميم ما تريد من برامج إحترافية أو كتابة خوارزميات إحترافية دون الرجوع للرياضيات.
البرمجة رياضيات و عمليات منطقية اصلا لانه اغلب مؤسسي البرمجة و علوم الحاسب هم علماء رياضيات اما بالنسبة لما قلته فالامر يعتمد على البرنامج الذي انت بصدد برمجته مثلا ان كنت تود برمجة لعبة فيجب عليك ان تكون متقنا لمبادئ الحساب في الفضاء و المستوى و الاحداثيات x y z في هاته الحالة اعتقد ان الشخص المتقن للبرمجة (بشكل فطري وليس اكتساب عن طريق الاجتهاد) سوف يكون متفوقا في الرياضيات طبعا :)
لا يوجد شخص مبرمج بالفطرة!
هذا شيء مكتسب وليس فطرة
اعني بالفطرة الموهبة وليس اجتهاد, نعم هناك اشخاص موهوبون في البرمجة سوف اعطيك مثال
لدينا شخصان طلب منهما برمجة مكتبة خاصة بمعالجة الصور مع العلم انهما الاثنان ليس لديهما اي خلفية سابقة عن هذا الموضوع
الاول قام بمراجعت بعض المشاريع المشابهة و تحليلها و انتهى من المشروع خلال شهر
الثاني بدا البرمجة مباشرة و انتهى من المشروع خلال اسبوعين
الاول نسميه مجتهد و الثاني نسميه موهوب
انا ممتاز جداً في البرمجة و اتقن العديد من اللغات بأحتراف و فاشل في مادة الرياضيات و الكيمياء و الفيزياء -_-
حتى العديد من الاساتذة نصحوني ان ادخل ادبي في البكلوريا او الثانوية ولآكني دخلت العلمي رغم فشلي في
مادة الرياضيات و الكيمياء و الفيزياء و ضعفي الشديد فيها فقط لأختص دراسة متعلقة بالحاسوب البرمجة او الشبكات او .. إلخ
لن تحتاج للرياضيات سواء أسياسياته البسيطه في أغلب برامجك وحتى لو أنشأت نظام محاسبة ضخم.
سأقول لك أنك ستحتاج للرياضيات بعمق عندما تبرمج خورازميات أو ما يخص التشفير و الألعاب وبرمجة برامج الرسوميات مثل Photoshop وغيرها من أنظمة معقدة. وأأكدلك أن أغلب المطورين العرب المحترفين لا يملكون العمق في الرياضيات.
الشىء الوحيد الذي استفدته من الرياضيات فى تخصص البرمجة هو المصفوفات
يا اخي لا علاقه للبرمجه بلرياضيات البعض يربط البرمجه بالرياضيات بسبب التفكير المنطقي ولقد رايت في حياتي اناس رأعيين في الرياضيات فشلو في البرمجه
سأجيبك عبر تجربة شخصية متواضعة.
قبل سنتين كان علي تحديد مساري الدراسي، كنت أحب البرمجة لكنني لا أجيد الرياضيات، فطرحت نفس سؤالك و لم أجد جواب قاطع، ثم بعد ذلك قررت دراسة البرمجة و خوض التحدي.
مرت سنتين الآن تعلمت و لازلت أتعلم، استطعت برمجة أشياء عديدة دون الحاجة للرياضيات. ادا أظن بامكانك بناء تطبيقات دون الحاجة للرياضيات، كل ما ستحتاجه هو تفكير منطقي سليم و القابلية على حل المشاكل.
لكني حين بدأت باكتشاق أشياء جديدة و متطورة في عالم البرمجة كـ التنقيب في المعلومات و التعلم الآلي اللذان يندرجان تحت الذكاء الاصطناعي، أدركت أهمية الرياضيات الكبرى. اذن الأمر متعلق بالتوجه و التقنيات التي ستعمل بها لكن أيضا بالمستوى الدي تريد الوصول اليه.
الرياضيات ليست ضرورة لكي تصبح مبرمج. لكن وجودها سيساعدك على الوصول الى مستويات عالية في البرمجة.
مشكورين جدا على الردود
مجتمع للمبرمجين من جميع المستويات لتبادل المعرفة والخبرات. ناقش لغات البرمجة المختلفة، الحلول البرمجية، والمشاريع.