مع إقتراب عودة الحياة الجامعية وبدء إختيار الطلاب لتخصصاتهم .. حبيت في هذا الثريد أتكلم بتوسع شوي عن تخصص هندسة البرمجيات .. عل وعسى يكون هذا الثريد مرجع وساحة أسئلة وأجوبة لكل طالب ناوي على هذا التخصص أو محتار بينه وبين تخصصات حاسب ثانية
#kfupm #ksu #psu #هندسة_البرمجيات #swe
#kfupm #ksu #psu #هندسة_البرمجيات #swe
رح نبدأ نشرح الهدف من التخصص ومعلومات عامة عنه .. وبعدها رح نتكلم في أهم المواد الدراسية المشتركة في أغلب الجامعات وناخذ نبذة بسيطة عنها .. وبعدها رح نختم ببعض النصائح لتطوير نفسك على المستوى الشخصي بعيداً عن الجامعة استعداداً لسوق العمل
طبعاً التخصص يُدرس بشكل رسمي في جامعات قليلة في السعودية منها جامعة البترول – جامعة الملك سعود – جامعة الأمير سلطان وغيرها .. ولاحظت تشابه بين أغلب المواد في الخطط الدراسية اللي تقدمها هذه الجامعات .. فـ رح تكون المهمة أسهل في شرح المواد
تخصص هندسة البرمجيات يعتبر من أجدد التخصصات الموجودة في الساحة .. عمره ما يتجاوز النصف قرن تقريباً .. وهذا ممكن يعطيك إنطباع عن أن مجال التطور في هذا التخصص كبير جداً وخصوصاً مع التقدم التقني اللي قاعدين نشهده حالياً ..
3- عدم وجود خطط واضحة ممكن يمشي عليها الفريق البرمجي لبناء المنتج .. فاتسمت المرحلة بالعشوائية
هذه المشاكل كانت السبب وراء بناء مجموعة من الاطارات والـ " قوالب " الجاهزة اللي ممكن تُتبع من قبل فريق التطوير لضمان بناء برنامج بشكل سريع وموثوق وبنتائج مضمونة نوعاً ما ..
هذه المشاكل كانت السبب وراء بناء مجموعة من الاطارات والـ " قوالب " الجاهزة اللي ممكن تُتبع من قبل فريق التطوير لضمان بناء برنامج بشكل سريع وموثوق وبنتائج مضمونة نوعاً ما ..
مع توسع هندسة البرمجيات وشمول دورة حياة البرنامج المراد تطويره لأكثر من مرحلة .. صرنا نشوف مهندسين برمجيات مختصين في مجال أو مرحلة معينة فقط .. ودراستهم وعملهم منصب عليها بشكل كامل .. سواء في عملية تصميم البرنامج أو مرحلة التطوير أو حتى مرحلة الإختبار
نقطة مهمة جداً .. التخصص يغلب عليه طابع الحفظ بشكل كبير وخصوصاً في بداياته .. رح تبدأ تتعرف أكثر على الاطارات المستخدمة في تطوير البرمجيات .. ومميزات كل اطار وعيوبه .. وغيرها من المعلومات النظرية البحتة .. الجانب العملي موجود في التخصص ولكنه مختزل في المشروع النهائي لكل مادة
التخصص مشتق من تخصص علوم الحاسب .. لذلك طبيعي جداً تكون أغلب المواد المهمة اللي ياخذها طلاب علوم الحاسب .. ياخذوها طلاب هندسة البرمجيات .. مثل الشبكات وقواعد البيانات والـ data structure وغيرها .. لكن المواد اللي رح نتكلم عنها هي مواد التخصص الأساسية
- مقدمة في هندسة البرمجيات
هذه المادة رح تعطيك نبذة عن التخصص والهدف منه ورح تكون مدخل لواحد من أهم الإطارات المشهورة وهو إطار الـ waterfall بمراحله الخمسة مع شرح موجز لكل مرحلة .. وممكن تتطرق لإطارات ثانية مثل الـ agile – spiral وغيرها
هذه المادة رح تعطيك نبذة عن التخصص والهدف منه ورح تكون مدخل لواحد من أهم الإطارات المشهورة وهو إطار الـ waterfall بمراحله الخمسة مع شرح موجز لكل مرحلة .. وممكن تتطرق لإطارات ثانية مثل الـ agile – spiral وغيرها
مرحلة التصميم تعتبر من أعقد المراحل .. لازم تركز على عدة أمور أهمها:
- هل التصميم شمل كل الـ requirements المطلوبة؟
- هل مستوى الـ abstraction فيه عالي بحيث ممكن نعيد استخدام بعض الـ components في مشاريع مستقبلية؟
- مامدى سهولة إصلاح أو إضافة مميزات جديدة على البرنامج؟
- هل التصميم شمل كل الـ requirements المطلوبة؟
- هل مستوى الـ abstraction فيه عالي بحيث ممكن نعيد استخدام بعض الـ components في مشاريع مستقبلية؟
- مامدى سهولة إصلاح أو إضافة مميزات جديدة على البرنامج؟
بعد الانتهاء من مرحلة التصميم بشكل كامل .. يتم إسناد المهمة للمبرمجين حتى يحولوا الأفكار والـ diagrams المرسومة على ورق إلى أكواد شغالة بشكل صحيح
- إختبار البرامج (Testing)
في هذه المادة رح تبدأ تاخذ أهم الطرق المتبعة لإختبار البرامج والتأكد من عملها بشكل سليم .. بالإضافة إلى معرفة الطريقة الأفضل لكتابة test-cases بحيث تمتاز بالشمول والدقة في استخراج الأخطاء
في هذه المادة رح تبدأ تاخذ أهم الطرق المتبعة لإختبار البرامج والتأكد من عملها بشكل سليم .. بالإضافة إلى معرفة الطريقة الأفضل لكتابة test-cases بحيث تمتاز بالشمول والدقة في استخراج الأخطاء
هذه هي المواد الأساسية واللي لازم تشتمل عليها أي خطة .. يتبقى بعض المواد الأخرى اللي ممكن تختلف من جامعة لجامعة ومن خطة لخطة.
إنتهينا من الجانب الأكاديمي .. وصار لازم نركز في الجانب الأهم .. الجانب التطبيقي والعملي .. والمستقبل اللي ينتظر طلاب هندسة البرمجيات ..
إنتهينا من الجانب الأكاديمي .. وصار لازم نركز في الجانب الأهم .. الجانب التطبيقي والعملي .. والمستقبل اللي ينتظر طلاب هندسة البرمجيات ..
خلينا نكون واضحين من البداية إنه دور مهندس البرمجيات دور شبه إداري .. وقراراته حاسمة جداً في عملية بناء التطبيق .. خصوصاً في مراحل التصميم وجمع المتطلبات واللي تتطلب خبرة عملية كبيرة .. لذلك من الصعب جداً إنه يتم توظيف خريجين جدد في هذه المراكز الحساسة ..
خبرتك في هذه المراكز مارح تكتسبها إلا إذا بدأت في مرحلة التطوير (development) وبدأت تتعرف أكثر على اللغات والإطارات المستخدمة ومشاكل ومميزات كل إطار .. بحيث لما تبدأ تشتغل في مراحل أعلى .. تكون عندك الصورة كاملة عن أهم التقنيات المستخدمة حالياً وبالتالي إختياراتك رح تكون أفضل
نصيحتي لك في أول سنة من التخصص .. حاول تدور على شغفك وعلى المسار اللي حابب تركز فيه ..
حالياً في كثير من المسارات اللي ممكن تتخصص فيها كمهندس برمجيات .. فممكن تواجه صعوبة في معرفة المسار المفضل بالنسبة لك
حالياً في كثير من المسارات اللي ممكن تتخصص فيها كمهندس برمجيات .. فممكن تواجه صعوبة في معرفة المسار المفضل بالنسبة لك
بعد إختيار المسار .. إبدأ أقرأ عنه بشكل موسع .. وحاول تعرف أفضل الكورسات المقدمة في هذا المسار وإحصل عليها بشكل تدريجي وفق خطة يفرضها المسار نفسه .. لا تبدأ بشكل عشوائي حتى ما تتشتت وخصوصاً في البداية
العائق الأكبر اللي نواجه بعد التخرج هي الخبرة .. وخصوصاً في المسارات اللي تتعلق بالتطوير .. الحل يكمن في البحث عن وظائف part-time واللي توفرها الشركات الناشئة (start-ups) بشكل كبير ولو بدون مقابل أو حتى مقابل بسيط .. الخبرة اللي رح تحصل عليها في هذه المرحلة أهم من أي عائد مادي
كثير من الشركات التقنية الناشئة تدور على طلاب يشتغلوا على تطوير تطبيقاتهم .. والكل مستفيد .. الشركات رح تستفيد من ناحية التوفير .. وإنت رح تستفيد كـ خبرة عملية في بيئة عمل حقيقية ..
لازم تخصص وقت معين كل أسبوع تقرأ في مجالك وتتطلع على آخر التقنيات والتطورات الحاصلة فيه .. التقنية ماشية بسرعة رهيبة .. إبتعادك عنها ولو لفترة قصيرة رح يضعف من سهمك وقت التوظيف .. وخصوصاً بأنه أغلب توجه الشركات حالياً هو تطبيق وإحتضان كل ماهو جديد
هذه المهارات بدأت توفرها الهاكاثونات بشكل كبير .. 3 أيام من الضغط والعمل المتواصل ضمن فريق ما تعرف فيه أحد .. لازم تحل مشكلة أو تحدي ما تعرف عنه شي .. تطلع بفكرة وتشرحها وتسوقها بشكل رهيب .. مهارات لازم كل مهندس برمجيات يمتلكها
المشاركة في الهاكاثونات رح تفيدك على المستوى الشخصي بشكل كبير .. منها تتعرف على ناس جدد وتبدأ توسع من دائرة معارفك .. تتعرف على تقنيات جديدة .. تتعود على الضغوطات والمشاكل اللي ممكن تواجهها خلال الهاكاثون .. تتعلم مهارات ثانية مثل التسويق والإدارة والتخطيط وشوية business
لا تضيع هذه الفرص بحجة إنك ما تعرف أحد .. أو (أعرف نفسي مارح أفوز) .. أو ما أعرف التقنية اللي يتكلم عنها الهاكاثون .. فوائد الهاكاثونات أكبر بكثير من هذه الحجج 😉👌
محدثكم ما ترك هاكاثون ماشارك فيه .. في هذا البودكاست حبينا نتكلم عن تجربتنا في عالم الهاكاثونات .. وشوية نصايح ممكن تستفيد منها إذا ناوي تبدأ تشارك فيها
anchor.fm
anchor.fm
أخيراً .. صحيح الطلب صار متزايد على خريجين تخصصات الحاسب .. لكن الاستعداد لسوق العمل بشكل مبكر عامل مهم رح يعطيك أفضلية على باقي الخريجين .. التقدم التقني الرهيب اللي عايشينه ما كان موجود من عشر سنين .. في فرصة إنه يتطور أكثر وأكثر .. بانتظار إنك تكون جزء من هذا التطور .. انتهى😊
جاري تحميل الاقتراحات...