اعلي الاجابات كانت من نصيب Jayesh Lalwani

افتراض ان ال computer science تقتصر علي البرمجة خرافة واقتصار دور خريج هذا القسم علي البرمجه مثل افتراض ان الجراح مجرد قاطع لحم والمعماري مجرد رسام فوظيفتك لا تقتصر علي الخطوات التي تفعلها ولكن الاهداف التي تحاول الوصول لها.

تجنب هذا الخطا اذا كنت خريج علوم حاسب والذي يقع فيه حديثي التخرج

"أنا لست مبرمج, انا اقوم بالبرمجه ولكني لست مبرمج"

يتوقع هولاء أنهم سيواجهون متطلبات واضحة وتصميمات نظيفة منتظرين شخصا اخر ان يقم بفك غموض المتطلبات. فقط لاني مبرمج واريد ان اقوم فقط بالبرمجة.

وظيفتك كمبرمج هي التعمق في المشروع ومتطلباته. أنت كاشف الأسرار ونتاج هذه العملية هو البرنامج الذي تقوم بصنعه. فوظيفتك ان تحقق هدف المشروع وليس كتابه البرنامج.

ولكن السوال. من المفترض ان هذه وظيفه صاحب المشروع او خبير المجال؟ فاذا كنت تقوم بعمل برنامج طبي أليس من المفترض ان اذهب لطبيب ليحل هذا الغموض؟

تم تجربه الامر مسبقا ولم ينجح. قبل ان يكون لدينا مبرمجين محترفين. كان الاعتقاد ان الكمبيوتر مجرد الة حاسبه عملاقه. وكما تم تدريب المهندسين و العلماء علي استخدام الالة الحاسبة سيتم تدريبهم علي استخدام الكمبيوتر. نتج عن هذا مشاكل كثيره مثل:

1) غير المبرمجين ينتجون برامج سيئه

قليلون من يستطيعوا عمل برنامج جيد يسهل صيانته وتطويره. وعمل هذا البرنامج مع فريق عمل شيء اصعب.

2) البشر كائنات غامضة. الكمبيوتر كائن خاص بالموصفات

تواصل البشر مع بعضهم من الممكن ان يودي سوء فهم. ولكن الكمبيوتر يحتاج الي مواصفات معينه. لذلك نحتاج الي اشخاص لنقل اهدافنا الي الكمبيوتر دون غموض.

السوال من الشخص الافضل في هذا الشان الخبير (الطبيب) ام شخص اخر متخصص في البرمجه؟

حين يترك المبرمجين هذه المهمه لخبراء المجال تحدث المشاكل والشكاوي. خلاصه الامر, اذا استطاع المبرمج فهم المجال, فسيقوم بعمل حلول اكثر اناقه. لانه يجب ان تعلم كيف تحدث الامور داخل الكمبيوتر, كيف يعمل نظام التشغيل وكيف تعمل قواعد البيانات وكيف تسير البيانات داخل الشبكه. مع فهم المبرمج للمجال, يستطيع التنبؤ بالمستقبل وعمل برنامج يتم تطويره بسعر افضل في المستقبل.

بالطبع يريد المبرمج مساعده من الخبير في المجال ولكن مسئوليه المبرمج هي استنباط متطلبات محدده وواضحه.

فعملية جمع المتطبات الخاصه بالمشروع هي نتاج مجهود مشترك بين الخبير والمبرمج, ولا يستطيع المبرمج التنصل من هذا الدور والقائه علي شخص اخر.

3) لا يستطيع الجميع البرمجه

يستطيع الفيزيائي وعالم الرياضيات ان يصنعوا برامج جيده ولا يستطيع المحلل المالي. فبعض الناس يصعب عليهم فهم البرمجه.

الموضوع الاصلي:

https://www.quora.com/Since-programming-can-be-self-taught-why-not-major-in-something-other-than-computer-science/answer/Jayesh-Lalwani?ref=fb_page