السلام عليكم يا اخت تينا
بالنسبة لسؤالك انا اعمل كـ Software Engineer منذ سنين و طبعا المهمات التي ذكرتيها هي من صميم عمل اي مهندس سوفت وير لكن السوفت وير يختلف عن المجالات الاخرى كالشبكات مثلا لانه لا توجد هناك شركات عالمية تتطرح له شهادات علمية و هذا لان لغات البرمجة ليست مملوكة لشركات معينه
طيب نرجع لسؤالك كيف يمكن ان نتعلم هذه الاشياء
الطريقة الاولى هي ان تدرسيها في الجامعة مثلا تدرسي علوم كومبيوتر و تتخصصي برمجة
الطريقة الثانية و في الغالب تكون مكملة للاولى هي باخذ كورسات اضافية في لغات البرمجة مثل لغات C, C++ , Java, Visual Basic, XML, PERL ...الخ طبعا اهمية هذه اللغات تختلف حسب المجال و البرامج التي تنتجها الشركة لانه في الغالب انك لن تحتاجي لكل هذه اللغات مجتمعة
هذا بالنسبة لل programming اما ال design فهذا ياتي بالخبرة و عموما اذا كنت مبرمجة جيدة ستستطيعين ان تعملي تصميم جيد للبرامج التي تكتبيها. ال Testing يعتمد على ال Tools و ال Compilers و ال Emulators المستخدمة لانك في كل الحالات ستحتاجي لان تختبري البرنامج الذي قمت بكتابته للتاكد من انه يعمل بصورة جيدة. باقي المهمات هي مهام عامة و لا تختص بمهندس السوفت وير
الشئ الذي يخطئ فيه الناس غالبا هو الخلط بين عمل ال software engineer و ال programmer . و الفرق هو ان ال software engineer هو الشخص الذي يقوم بمراجعة و مناقشة ال requirements and specifications التي طلبها الزبون و التاكد من صحتها و من ثم عمل software design و من ثم كتابة ال software و عمل test له
اما ال Programmer فهو من يقوم بكتابة ال software و لكن لا يقوم بعمل ال desgin له و لا متابعة ال requirements و مناقشتها مع الزبون
اذا كنت خريجة علوم او هندسة كومبيوتر او هندسة الكترونيات فيمكنك اخذ كورسات اضافية للغات البرمجة في معاهد كومبيوتر و الاحتفاظ بالشهادة التي يعطيها لك المعهد كنوع من الاثبات لمعرفتك باللغة. اما ماهي اللغات التي ينبغي دراستها فهذا يختلف باختلاف طبيعة عمل الشركة
المفضلات