ارى ان اكثر لغات البرمجه ونظم التشغيل كانت من صنع المهندسين وليس المبرمجين وان كبار الموضفين في الشركات الكبرى هم مهندسين فهل هذا يعني ان المهندسين افضل من المبرمجين في برمجة مثل هذه البرامج الكبيره
لماذا المهندسين هم الذين يقومون ببرمجة كبار البرامج وليس المبرمجين
اول دليل هو المسمى "مهندس البرمجيات" و "مبرمج".
مهندس البرمجيات هو الذي المسؤول عن انشاء البرنامج كاملاً توفير المتطلبات، الخوارزميات، الرسوم البيانية، التسنيد (Documentation) في المقابل المبرمج يتعامل مع لغة البرمجة. أي يترجم الخوارزميات المكتوبة أمامه الى شفرة برمجية فقط. ولا يطلق على المبرمج مهندّس ولا اظن هناك تخصص جامعي فقط يعلم البرمجة.
أعتقد أن الخط الفاصل بين مهندس البرمجيات والمبرمج شبه معدوم كمبرمج أستطيع القيام بالعديد من الأمور التي من المفترض أن يقوم بها مهندس البرمجيات وليس ذلك فحسب بل تتداخل الأدوار ويصبح المبرمج مديرا لقواعد البيانات إن إقتضت الحاجة.
في الوقت الحالي أصبحت هناك إلى شخص يستطيع إرتداء أكثر من قبعة بل أن هذا النوع يعتبر مطلوباً أكثر من المتخصص البحت.
ليس معدوماً هنا أقصد، يستطيع المبرمج عمل تطبيق بدون الحاجة الى مهندس برمجيات وينجح في عملة وكما قلت يستطيع ان يرتدي أكثر من قبعة ولكن في بعض الحالات.
فمثلاً: عندما يريد المبرمج عمل تطبيق مثل المدونة او مشابه لـ Arabia.io قد ينجح في هندسته لوحده او مع فريق مبرمجين كلهم يلبسون أكثر من قبّعة ولكن تخيل عمل شركات البرمجيات الكبرى مثل Adobe و Google.
المبرمج فنّي يتعامل مع لغة البرمجة، كأغلب الهواة. ولديه معلومات عامة عن التحليل والتصميم. (لا اقصد تصميم الواجهات هنا)
مهندس البرمجيات: يتعامل مع التحليل والتصميم، ولديه معلومات لابأس بها عن لغات البرمجة. (بحكم دراستة الجامعية)، ومهندس البرمجيات قد درس مناهج علمية لضمان عمل البرنامج لمدة طويلة وقد تكون مدى الحياة. وبتحديثات مستمرة لاتنقطع.
فتخيّل ان مبرمجاً بداء في كتابة كود وصمم ايضاً قاعدة بيانات وصنع برنامج مثل Photoshop في اول اصدار تجريبي له. وانتهت مدة عمل هذا المبرمج في الشركة. ثم احتاجت الشركة تطوير هذا المنتج للأفضل واستدعتني الشركة كمبرمج. (أحتاج وقت لكي أفهم ماكتبه المبرمج السابق) حتى استطيع التطوير حتى ولو كان التطوير شيئاً يسيرا. فعندما انتهي من عملية التطوير. تستدعي الشركة مبرمج اخر فليكون أنت. تحتاج مدة قرابة ضعف المدة التي قضيتها أنا في دراستي لشفرة المبرمج السابق ويحتاج المبرمج الذي سوف يأتي بعدك قرابة أربع اضعاف المدة. على حسب معدّل تضخم البرنامج.
لذلك وجد علم (هندسة البرمجيات)، فما دور مهندس البرمجيات هنا. هو تقليص وقت دراسة الشفرة (بالنسبة للمبرمج) فبعد عمل مهندس البرمجيات. المبرمج يحتاج فقط دراسة الجزئية التي سوف يعمل عليها ويعرف مالذي يضيف لها ولا يحتاج التفرع الى جزئيات أكثر.
ماهي الاشياء التي يقوم بها مهندس البرمجيات بالضبط ؟ سوف أستحق ساندويتش شاورما على حسابك في موضوع سوف اطرحه لاحقاً أوضح فيه ما اعرف عن عمل مهندس البرمجيات واتبادل مع الجميع الخبرات في هذا المجال.
نقطتك ليست واضحة, ماذا تقصد بمهندس؟
المهندس فى عرفنا هو المتخرج من كلية الهندسة, أما فى العالم الغربى فالمهندس هو أى شخص يعمل فى مجال الصناعات الهندسية, و غالبا ما يكون فى الغرب فنى بلا شهادة علمية و لكن ذو خبرة, أو لديه بضع كورسات.
يطلق على المبرمج أو المطور أيضا Software Engineer, و بحسب معرفتى فان معظم المبرمجين يكتبون مهنتهم كمهندس برمجيات أو software engineer.
لو كنت تقصد المهندسين الغير متخصصين فى الحاسوب, فكانت لهم اسهاماتهم المهمة فى عالم البرمجة, مثلا ستيف ووزنياك هو مهندس الكترونيات, و هو من صمم نظم تشغيل أبل الاولية كلها DOS 3.3 و Prodos و هى نظم التى كانت تعمل عليها اجهزة أبل 2 (قبل الماك).
بقية المبرمجين المهمين ليسوا مهندسين, بعضهم لم ينل شهادة فى اى شىء حتى, مثل أندرس هيزنبرج الذى كتب و أشرف على تطوير معظم لغات البرمجة التى نستخدمها اليوم مثل دلفى, و فيجوال سى#.
السلام عليكم اخي نعم قصدت بالتحديد أندرس هيزنبرج فقد قرأت انه مهندس (واعتقدت انه مهندس كمبيوتر ) هذا رجل رائع فقد مجرد قرات سيرته الذاتيه وقرائت لقب مهندس تجعلك تشك في امكانيات المبرمج ولكن هل انت متاكد انه لا يحمل شهاده ابدا
أندرس هيزنبرج درس الهندسة بالفعل لكنه لم يكمل دراسته و لم ينل شهادة التخرج يمكنك مراجعة صفحة الwikipedia
و هو فعلا من أفضل المبرمجين فى العصر الحالى, و هو كلمة السر فى جميع أدوات التطوير الحديثة.
تحياتى لك.
من أين لك هذا الكلام؟ من هم المهندسين في نظرك؟ هل هم أولئك الحاصلين على درجة البكالوريوس في الهندسة ؟ أم أولئك الذين يعملون في وظائف تحت مسمى مهندس (كمهندس برمجيات)؟
أنا أدرس البرمجة بشكل مستقل
و أدرسها بشكل أكاديمي بحكم دراستي الجامعية
و أجزم لك بأن هناك طلاب سوف يتخرجون بشهادة هندسة معلوماتية لا يستطعون برمجة أكثر من آلة حاسبة
و هناك أشخاص لم يدرسوا في الجامعات أبدا و لا يحملون شهادة الهندسة و لكن حبهم للبرمجة جعلهم يتفوقون على المدرسيين الجامعيين
الميزة التي قد يملكها المهندسون هي معرفتهم بالخوارزميات عكس أغلب المبرمجين الغير أكادميين و الذين بدأو تعلمهم بلغة برمجة معينة دون الرجوع للخوارزميات و لكن بالنهاية الخوارزميات هي طريقة تفكير و مع الممارسة سوف لن يحتاجها المبرمج الغير أكاديمي كثيرا
ربما الأساتذة الذين يدرسونك مستواهم ضعيف فكما نعرف مستوى الأساتذة يختلف حسب الجامعة فمثلا ،الأساتذة الذين يدرسونني مستواهم عالى جدا فهم يعتبرون من بين أفضل الأساتذة في البلاد لهذا لم أرى لحد الآن طالب يتفوق على الأستاذ.
أنا أعرف المناهج و أرى كيف يجلب الطلاب العلامات التي تؤهلهم لعمل الماجستر و الدكتوراة
و ما الدراسة الجامعية سوى عملية حفظ معلومات ثم استرجاعها + إعطاء الطالب جميع اللغات البرمجية تقريبا و الكثير من المواد التي ليس لها علاقة بالبرمجة و بالتالي يصاب بالتشتت
أما المبرمج الغير أكاديمي إن أحب المجال فهو سوف يتفرغ له و يختص بلغة واحدة و يكون مقياس نجاحه هو إبداعه و عمله و ليس علاماته
وأنا لا أعمم المسألة فقد يوجد من يتفوق على المدرسيين الجامعيين و يوجد من لا يقارن بهم (فالتعميم دائما خاطئ )
مهندس البرمجيات ينصب عمله على دورة حياة البرنامج فهو الذي يقابل العميل ويفهم منه ماذا يريد
يقوم بالتخطيط والتصميم والتكويد ( وربما مهمة التكويد تحال الى مبرمج ) ومن ثم الاختبار والصيانة
في تخصص هندسة البرمجيات نأخذ مواد برمجة ولكن مقارنة بمتخصصي علوم الحاسوب فهم اقوى منا في البرمجة
لذلك نجد اغلب المبرمجين هم خريجي علوم الحاسوب
أهمية مهندس البرمجيات بدأت تزداد مع ازدياد حجم البرامج فلا يمكننا مثلا عمل موقع مثل فيسبوك وتكليف مجموعة مبرمجين بالعمل
من دون مهندسي برمجيات .. !! لان هندسة البرمجيات تساعد في تقليل الاخطاء وخلق برنامج ممتاز
التعليقات