انتقل إلى المحتوى الرئيسي

تجربة الكاتو

يا هلا انا الكاتو طالب هندسة برمجيات ومطور موقع el cato اللي اشرح فيه مواد الجامعة (خصوصي)، باتكلم عن تجربتي الشخصية مع تخصص هندسة البرمجيات كطالب بدفعة 44 معدله 4 وباقيله اقل من 10 مواد على التخرج

من ناحية:

  1. تجربتي الدراسية بالجامعة
  2. التطوير الذاتي وتجربتي بالعمل

تجربة الدراسة بالجامعة

تجربتي كطالب في العابدية

تختلف تجارب الطالبات في الزاهر لاختلاف الدكاترة وحتى المنهج/السلايدات

دفعتنا كانت الأولى في دراسة التخصص، وكثير من الجوانب السلبية ابلغنا عنها الإدارة وراح تتحسن ان شاء الله

فحتى اذا لاحظت اغلب تجربتي بالدراسة سلبية، فالسبب راجع لكونه تخصص جديد ولا يزالوا يحسنوا فيه

الفكرة العامة للتخصص

تركز الجامعة على مواضيع مهمة جدا بمجال العمل مثل:

  • ادارة المشاريع
  • جمع وتحليل متطلبات المشروع
  • تصميم هيكل البرنامج وطريقة تقسيم الاكواد
  • انشاء البرنامج فعليا
  • اختبار البرنامج بشكل تلقائي
  • صيانة البرنامج
  • الحفاظ على جودة عالية في البرامج

والهدف هو تحسين عملية "هندسة البرمجيات" بحيث تخرج ببرنامج يرضي المستخدمين وبحدود المدة والتكلفة المحددة

يعني الفكرة العامة للتخصص واسماء المواد اشوفها جدا ممتازة واتقانها بيفيدك ويميزك في سوق العمل

محتوى المقررات

الجزء السيء

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

على سبيل المثال مقرر "تصميم وانشاء البرمجيات" دراسته كانت عبارة عن:

  1. انشاء رسوم ومخططات تشبه ال flowcharts لكن لاهداف مختلفة
  2. حفظ اسماء/مصطلحات بمجال تصميم البرمجيات بدون فهمها وبدون تطبيقها فعليا بالعملي
  3. جزئية "الانشاء" اللي تتوقع انك بتتعلم تنشئ فيها برنامج انسحب عليها بالكامل

للأسف النظري كثير في معظم المواد وال diagrams اللي بترسمها جدا كثيرة كانك داخل تخصص رسم مو برمجة، واتكررت مواضيع كثيرة بين المقررات، طبيعي تدرس نفس الشيء في 3 مقررات مختلفة او حتى انك تدرس نفس المقرر مرتين ... زي مادة "اساسيات قواعد البيانات" ومادة "هندسة البيانات" تكرار لبعض، او مادة "صيانة البرمجيات" و"جودة البرمجيات" كمان تكرار لبعض

ولاحظت كثير من المقررات محتواها مأخوذ من كتب مغبرة نشرت بعام 1990 او بالكثير 2010 واللي يعتبر قديم بحكم التطور السريع جدا بالتقنية، وحاليا وانا اكتب تجربتي جالس ادرس سلايدات مكتوبة بعام 2004 ...

النظري والحفظ كثير لدرجة مقرر "هندسة تطبيقات الجوال" تجلس تحفظ فيه ما تفهم

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

الجزء الجيد

بعض الدكاترة لاحظوا هذه المشكلة وبدأوا يحاولوا يطوروا

مثل مقرر "اختبار البرمجيات" درسناه بشكل تطبيقي بحت وكان احد افضل المقررات:

  1. تسوي اختبارات تلقائية لبرنامجك
  2. تجرب تخترق ثغرات في برنامجك (اذكر اتعلمنا كيف نخلي مليون مستخدم يدخل موقع معين بنفس الوقت)
  3. تخلي الاختبارات التلقائية تشتغل تلقائيا مع كل اصدار جديد تطلقه

ومثل مقرر "اطر وادوات" واللي كان بالاساس مقرر نظري يتكلم عن مجموعة ادوات وتاريخها تحفظها وبس ... لكن مدرس المادة كان شايفها مشكلة فاعطانا المادة بشكل تطبيقي وباختصار كانت تركز ع شيئين:

  1. full stack development (backend + frontend)
  2. machine learning تعلم الآلة
فيعني تجربتك بتختلف بشكل كبير ع حسب الدكتور اللي يدرسك، اما يخليك تحفظ، او يخليك تشتغل
المهم انك تطور نفسك بنفسك

الجزء الغريب

فيه مواد سيئة، وفيه مواد جيدة، بس فيه مواد غريبة الى الآن ما فهمت الهدف منها

مثل "الرياضيات لهندسة البرمجيات" واللي تتناول موضوع ال functional programming واللي من اسمها تتوقع فيها برمجة، صح؟

لا غلط، بتجلس تسوي نفسك كمبيوتر وتحل كل شي بنفسك بالورقة والقلم، وفوقها موضوع المقرر قديم حتى شروحات اليوتيوب اقدم من ١٠ سنين وما عاد منه فايدة

او مقرر "الحوسبة العلمية" اللي مرة ثانية ما يعترف بالحاسب وبس ورقة وقلم، وموضوع المقرر جبر خطي 2 ...

ويتبعهم مقرر "بحوث وعمليات" ومقرر "نماذج وطرق"

الضغط الدراسي

الجدول

معظم الاترام الجدول خفيف والدوام قليل، وانا اكتب هذا المنشور عندي ٣ ايام دوام ويومين اوف (مع مادة عن بعد + مشروع تخرج) والاترام السابقة معظمها يوم واحد اوف على الاقل، الحمدلله ادارة القسم جدا جدا متعاونين

الصعوبات

ما واجهت اي صعوبات الحمدلله، لو تسلم التكاليف بيومين الى ثلاثة قبل موعد التسليم ما بتنضغط ابدا

المذاكرة

معظم المواد نرسل سلايداتنا ل chatgpt ونخليه يسوي عليها اسئلة كثيرة .. كثيرة جدا (اخر ترم فيه مقرر وصل ٦٠٠ سؤال)، ونحل الاسئلة هذه وبس والله تقدر تضمن درجة عالية لانه مرة ثانية فيه حفظ كثير بالتخصص، المواد تشبه مقرر التفكير الحاسوبي بشكل كبير وحتى بنفس طريقة الطرح وانك تجلس تحاول تحفظ السلايدات مزعج جدا، فكرة انك تحل اسئلة حتى تذاكر كانت فعليا اسهل

المشاريع

استعد انك تسوي مشروع لكل مادة بالترم، مو صعب لو ما تزنق نفسك، المشاريع بعضها تسوي ملف documentation، وبعضها رسوم diagrams، وبعضها تبرمج اشياء

الزبدة

ما اشوف تجربة الدراسة بتخصص هندسة البرمجيات احسن تجربة، وصراحة لو ارجع بالزمن احتمال ما ادخل هذا التخصص واتوجه لتخصص فيه تطبيق/برمجة أكثر زي علوم الحاسب

لكن حاليا مو نادم الحمدلله واتعلمت بنفسي واتطورت كثير بمجال "هندسة البرمجيات" واللي هو المجال اللي كنت راح ادخل فيه حتى لو درست تخصص ثاني بالجامعة

التطوير الذاتي وتجربتي بالعمل

اكتفي بمواد الجامعة؟

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

مثلا تقنية Laravel هي الأشهر بالسعودية لتطوير ال backend، لكن ما بتدرس عنها بالجامعة اي شيء

بس كيف اتعلم ذاتيا؟

طيب صراحة تحتاج اول شي لغة انجليزية، لانها للاسف اللغة العالمية اللي الكل يتكلمها واللي تقدر تحصل فيها مصادر جدا كثيرة تتعلم منها

تحديدا ركز على:

  1. قوقل والمقالات
  2. اليوتيوب
  3. مواقع الكورسات زي Udemy

حاول تتعود تستعمل قوقل وتبحث فيه عن المعلومات اللي تحتاجها

مثلا الدكتور شرح جزئية simplex method in linear programming وانت ما فهمت ايش جالس يقول، ادخل قوقل اكتب عنوان الموضوع بيطلعلك مية مصدر يشرحه

او مثلا قررت تتعلم backend ابدأ ابحث عن best backend framework to learn ومن ثم اذا اخترت شي معين ابحث عنه وخذ لك كورس فيه او اقرأ مقالات تشرحه

القراءة دايما اسرع من المشاهدة، والتطبيق العملي للاشياء اللي تتعلمها ضروري

بس كيف اعرف ايش اتعلم اساسا؟؟

اول شي حاول تعرف سوق العمل ايش يحتاج، تقدر تكتب في قوقل وتبحث عن أهم/أشهر الوظايف في مجال الحاسب او في مجال هندسة البرمجيات best career jobs for software engineering

مثلا في اخر احصائية ل stack overflow كانت هذه هي اشهر الوظايف: https://survey.stackoverflow.co/2024/developer-profile#4-developer-type

امسك كل اسم وظيفي من هذه وابدأ اقرأ عنه وكيف طبيعة عمله، مثلا

  • what does full stack developers do?
  • how can I become a full stack developer?

بالنهاية راح تعرف فين ميولك، واذا ما حصلت ميول عاد شوف ايت تجيب لك فلوس اكثر

اخترت مجال ابغا اتعلمه واحترفه، كيف؟

  1. زي ما ذكرت فوق في كيف اتعلم ذاتيا
  2. اذا شفت المصادر كثيرة ومو عارف كيف تبدأ، ابحث عن خريطة تعلم roadmap، مثال: https://roadmap.sh/
  3. ركز على انك تطبق بنفسك لا تجلس تقرأ/تتفرج وخلاص، حتنسى وما تستفيد. سوي مشاريع وضيفها للسيرة الذاتية من بدري لأن البعض الآن وصل مرحلة التدريب التعاوني وسيرته الذاتية فاضية

طيب الذكاء الاصطناعي؟

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

الشي المهم انك تكون فاهم وتستعمله لصالحك، اما انك تكون ضايع وتحاول تخليه يسوي كامل الشغل عنك فراح تضيع اكثر

الذكاء ما يقدر يستبدلنا لأن لسا عيوبه كثيرة، ممكن بالمستقبل يقدر وممكن لا، محد يعرف الغيب

لكن من أهم وأفضل ادوات الذكاء الاصطناعي اللي تقدر تستعملها بشكل مجاني بفضل الايميل الجامعي هو اكمال الاكواد التلقائي من Code Pilot

عن نفسي جربت كل تقنيات الذكاء الاصطناعي حتى الآن وولا وحدة فيها تقدر فعلا تستبدل شغلي، لكن الاكيد انها تقدر تسرعه وتخليه افضل

تجربتي بالعمل

انا حصلت شغفي في تطوير المواقع، full stack web development وبدأت تعلم ذاتي من اول سنة بالجامعة والحمدالله اتممت اكثر من عقد عمل بتطوير المواقع

بدات التعلم بشكل عشوائي شوي، لكن بعدها صرت امشي على هذه الخريطة واللي توفر طريق واضح مع مصادر مجانية: https://roadmap.sh/full-stack

طبيعة عملي هي برمجة، ما يهم انا تخصصي هندسة برمجيات ولا علوم حاسب، المهم اني اقدر اسوي المطلوب اللي يحتاجوه، فحاول تعرف سوق العمل وتدرس المطلوب فيه

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

  • Laravel
  • HTML, CSS, TailwindCSS, JavaScript/TypeScript
  • VueJS
  • MySQL
  • Docker
  • Linux
  • Git & GitHub

ومن التقنيات المشهورة اللي مرت عليا شركات تطلبها:

  • NodeJS (With NestJS)
  • FastAPI
  • React
  • Flutter
  • Figma

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

وفالكم التوفيق!