السلام عليكم
ما هي هندسة البرمجيات، حاولت أن اقرا عن الموضوع لكن احسست بأن اغلب المقالات مبهمه..
اتمنى من مهندس برمجيات ان يشرح لنا معنى هذا التخصص وطبيعة العمل الذي يقوم به كمهندس برمجيات .
وهل ينصحني بدراسته جامعيا وشكرا 💚
لربما هندسة البرمجيات تخصص جميل جدًا نظراً لأهميته الاساسية في عالم البرمجيات، حتى أنه يحقق عائدًا ماليًا لا بأس به .
ودائمًا ما أرى من اساتذة جامعيين وخبراء ينصحون به
مجال عملي ليس له علاقة بتخصص البرمجة ، ولكن قرأتُ مساهمات هنا وتعليقات من قِبل الأعضاء الذن لديهم خبرة في التخصص
في المعنى العام لمهندس البرمجيات مطلوب منه أن يصمم البرنامج وفق جملة من القواعد حين دخلنا كلية الهندسة أخبرنا أساتذتنا بأنه ليس مطلوب منا أن نقوم بالبرمجة بأنفسنا فهناك مبرمجين يقومون بذلك فقط عليك أن تعرف لغة البرمجة المناسبة و التقتية التي يجب عليك إستعمالها ففي هذه الهندسة هناك عدة فروع مثل تخصص الشبكات و تخصص الذكاء الصناعي و تخصص هندسة البرمجة ،فتدرس أغلب لغات البرمجة بلمحة قصيرة مثل ال c و c++ و الجافا و php و الشبكات و البايثون و تصميم البرامج ب ال uml
أنت كمهندس دورك أن تقود الفريق لإنجاز البرنامج المطلوب من قبل مديرك أو تصميم البرنامج لقسم البرمجة أو إدارة فريق عمل صغير.
لكن التطبيق في الشركات هو أن تبرمج فتعطى جزءا من عملية البرمجة بلغة معينة مثل java فيعطيك المبرمج الأعلى منك درجة مهمة كل يوم لإنجازها و بتراكم الخبرة تكلف بحل مهام أكبر ...اتحدث عن بلدي تونس أنت بعد التخرج مهندس برمجيات مجرد مبرمج قد لا تختلف مع شخص تعلم البرمجة وحده من دورات أسامة الزيرو أو بغداد الجديدة الفرق الكبير بينك وبينه قدرتك على تصميم البرنامج و طريقة تفكيرك في حل المشاكل .
مثلا أنا في شركتي أدير فريقا من المبرمجين أحيانا أترك المبرمج يجتهد وحده لكنه لن يكون ملما بالحل الشامل للبرنامج فهناك أقسام يجعلها ...أتحدث عن العالم العربي فهناك تداخل بين البرمجة و هندستها ،فليست كالهندسة المدنية حيث يصمم المهندس المدني الأعمدة بالأوتوكاد و ينفذ العمل مسير الأشغال الذي يكلف رئيس العمال يالإنجاز الذي بدوره يكلف البنائين و العمال بصب الخرسانة ثم يأتي المهندس ليتثبت من سير العمل وفق المخطط ،أو في الهندسة الميكانيكية حيث يرسم المهندس الآلة على solidwork ثم يسلم المخطط لرئيس الورشة الذي يكلف عامل المخرطة و صانع القوالب و العامل على آلة اللف كل واحد بصنع جزء ثم يركبونها ليأتي مراقب القياسات للتثبت ثم يراجع المهندس القطعة
الأمر يختلف من المفروض أن ترسم مخططات diagrams و ينفذها المبرمجين أو المكودين و تكتب خطط عمل للرؤساء الفرق .الأمر يتداخل في هذا القطاع فستجد نفسك تكتب أكوادا مع بقية الفريق خاصة إذا عملت في شركات صغرى أو حتى كبرى ،فقط بعد سنوات أو بمحض الصدفة تعمل في شركة تتبع ال standards أو تهاجر لتعمل بطريقة صحيحة .
شكرا لك على هذا التفصيل 🌹
فهمت من تعليقك الرائع ان مهندس البرمجيات بالأصل عليه تنظيم العمل والتخطيط له، لكن ما طبيعة هذا التخطيط... هل هو يبني نموذج اولي للبرمجية على الحاسوب، اقصد كيف يخطط المهندس للبرنامج.. وهل يكون التخطيط عبارة عن حلول ورقية فقط ويجب على المبرمج ان يقوم بتحويلها حاسوبيا.
اتمنى ان تكون قد فهمت سؤالي 😅
شكرا على ردك مسبقا 🌹
هناك برامج لتخطيط البرامج.يكتب خطط عمل للمبرمجين ،مثل القائد في الحرب ،يرسم أشكال هندسية متعارف عليها بين المبرمجين وعليهم أن يحولوها لكود.و يعطي رأيه في حل مشكل ما .
هو دوره نظريا قيادي ،لكن تطبيقيا عليه أن ينزل للميدان أحيانا ،لا أعلم إذا كنت تلعب إحدى لعب القتال لنقل أنه كومنداوز حقيقي ومحنك يقود فريقا من المقاتلين من المفروض أن يعطي الأوامر و يقسم الأدوار لكن أحيانا عليه أن يكون في خط المواجهة فعليه أن يعرف إستعمال مختلف الأسلحة ففي كلية الهندسة في الخمس سنوات ،سنتين تحضيريتين تدرس الرياضيات و الإنجليزية و غيرها من الأشياء العامة ثم تتخصص هندسة إتصالات أو إلكترونيك أو كهرباء أو هندسة البرمجيات ستدرس ثلاث سنوات أو سنتين إذا كنت باكالويوس هندسة البرمجيات تدرس عدة لغات برمجة لكن ليس بشكل معمق حتى تعرفها و تعرف إستعمالاتها .
ثم لديك مشروع تخرج في السنة الأخيرة تنجز فيه مشروعا هو أول نزول للميدان لك ثم تعمل في شركة بعد التخرج فتعرف كيف يصنع البرنامج أو موقع الويب ،بعد التدريب من المفروض أن تقود فريق عمل صغير وسط مهمة كبيرة ...أتحدث نظريا لأن الواقع أن تعمل مبرمج لمدة فتحيد عن التعريف الحقيقي لمهندس و مهمته الحقيقية
أرجو أن أكون قد بسطت لك المفهوم ولم أعقده أكثر
"هندسة البرمجيات" هو مجال تطوير أنظمة الحاسوب (software development)
وهو المجال أو المهنية التي يتم فيها صناعة برامج الكومبيوتر وتمشل التطبيقات على الإنترنت والموبايل التي يستعملها الأفراد أو المؤسسات أو برامج تشغيل الحاسوب نفسه (الويندوز والماك إلخ) وقواعد البيانات (أي كل أنواع البرامج بشكل عام)
وهذا المجال أو هذه الصناعة تحتوى على تخصصات ومهارات (ومراحل) متعددة مثل:
1- "تحليل متطلبات النظام المرجو صناعته"
2- تصميم النظام نفسه بناء على هذه المتطلبات (ويشمل ذلك تصميم وظائف البرامج والشاشات وقواعد البيانات...)
وقد تمثل أول مرحلتين هنا تشبه بالمهندس المعماري الذي يضع تصاميم المبنى المراد إنشاؤه هندسيا بناء على متطلبات العملاء ومواصفات المكان إلخ
3- ومن ثم تأتي مرحلة التطوير نفسه وهي تشييد البناء (البرمجيات: بناء الكود بأجهزة الحسوب) بلغات البرمجة وقواعد البيانات المختلفة وهؤلاء يمثلون تخصص "المهندس المدني" الذي يقوم بالتنفيذ الإنشائي للمبنى المطلوب بأساس الحديد والأسمنت والطوب والزلط (حسب التصاميم التي تم وضعها بالمراحل السابقة)
4- ثم تكون مرحلة "الاختبار" (Testing) لاختبارات الجودة التي تجرى لتنفيذ البناء (الكود وعمل البرنامج)
5- ويتم حول ذلك تخصصات أخرى خاصة بوضع مخططات العمل ومتابعة سير التنفيذ (project management)
فهذا اختصار في عجالة لإعطاء نظرة سريعة عن عن معنى هذا المصطلح
التعليقات