أعزائي المتابعين، المشاهدين أو كما يشتهي أن يسميكم البعض "الفانز" ، توصلني رسائل كثيرة و أسئلة عن تخصص هندسة البرمجيات أو تقنية المعلومات بشكل عام 👩🏻💻.
اليوم بحاول أتكلم عن كل ما يتعلق بالتخصص في ثريد، و أشارك معاكم ملاحظات من تجربتي الشخصية اللي أتمنى تجاوب عن أسئلتكم 🙏🏻.
-🧵
اليوم بحاول أتكلم عن كل ما يتعلق بالتخصص في ثريد، و أشارك معاكم ملاحظات من تجربتي الشخصية اللي أتمنى تجاوب عن أسئلتكم 🙏🏻.
-🧵
تنويه شديد اللهجة ١ : هذا الثريد لا يجيب عن الأسئة من نوع "هل التخصص ممكن يعجبني؟ هل التخصص سهل؟ هل التخصص حلو؟" أو الأسئلة ذات الطابع الخنفشاري "بالله إيش المادة اللي تحسي إذا أخذتها بيعجبني التخصص ؟" أنا ما عندي أي إحساس تجاه التخصص، اعتقوني بارك الله فيكم.
تنويه شديد اللهجة ٢: التالي ليس محاولة لإرغامك على اختيار التخصص أو إقناعك بأنه مجال مطلوب في سوق العمل، و أنه سيتقافز عليك موظفي الHR فور تخرجك. الواقع مختلف، و التخصص الذي اخترته عن سابق رغبة و إصرار هو "اللي بيوكلك عيش مو الترند" هذه مجرد ملاحظات و استنتاجات عامة، بكل حيادية.
ما هو تخصص هندسة البرمجيات؟
هندسة البرمجيات تعتبر فرع من فروع علوم الحاسب تهتم بتطوير البرمجيات: تطوير تطبيقات جوال، مواقع، برامج ديسكتوب. و التطوير هنا ما يعني كتابة الأكواد فقط، إنما يشمل مهام متعددة بدايةً من تحديد المتطلبات و انتهاءً باختبار البرمجيات و التأكد من جودتها.
هندسة البرمجيات تعتبر فرع من فروع علوم الحاسب تهتم بتطوير البرمجيات: تطوير تطبيقات جوال، مواقع، برامج ديسكتوب. و التطوير هنا ما يعني كتابة الأكواد فقط، إنما يشمل مهام متعددة بدايةً من تحديد المتطلبات و انتهاءً باختبار البرمجيات و التأكد من جودتها.
النقطة المهمة، إن كل مرحلة من مراحل تطوير البرمجيات هي مجال كامل بحاله، ممكن تختاره كتخصص عميق و تكمل فيه بمسمى وظيفي مناسب 👍🏻.
عشان توضح الصورة ، خلينا نتخيل إنك في يوم قررت تجهز وجبة الغداء لأهلك.
١- أول خطوة بديت تسأل أهلك إيش أكثر وجبة يفضلوها؟ إيش المكونات اللي المفروض تستبعدها أو ممكن تسبب لهم حساسية؟ إيش النكهات اللي تناسبهم ككل؟ و هل كلهم يحبوا الأكل سبايسي؟ أو لازم نراعي اختلاف الأذواق؟
١- أول خطوة بديت تسأل أهلك إيش أكثر وجبة يفضلوها؟ إيش المكونات اللي المفروض تستبعدها أو ممكن تسبب لهم حساسية؟ إيش النكهات اللي تناسبهم ككل؟ و هل كلهم يحبوا الأكل سبايسي؟ أو لازم نراعي اختلاف الأذواق؟
هذه خطوة تحديد و جمع المتطلبات عشان تصمم نظام يتناسب مع المستخدم، تعرف من المستخدمين نفسهم إيش المشاكل و الأخطاء اللي لازم تتجنبها بالإضافة لإيش يفضلوا. على فكرة، ما في أي شي عشوائي في تطوير البرمجيات، حتى اختيار الألوان و طريقة عرض الخيارات، كله مدروس بالمللي 👌🏻.
٢- ثاني خطوة، حددت الطبق مبدئيًا و بديت تشوف الوصفات الناجحة على الانستقرام و تقارن بينها و تحاول تحدد أنسب وصفة ترضي أذواق الكل و في نفس الوقت مكوناتها متوفرة عندك، و تشوف الأخطاء اللي غيرك وقع فيها عشان تتجنبها، و إن أمكن تضيف لمستك و نكهتك الخاصة، هذه خطوة التحليل.
٣- ثالث خطوة، بديت تكتب على جنب الوصفة اللي بتنفذها و أضفت تعديلاتك، و غيرت ف الوصفة الأساسية حسب ما يتناسب مع ذائقة العيلة، هذه خطوة التصميم.
٤- رابع خطوة، بديت تطبق الوصفة بحذافيرها، تقطع و تعجن و تخبز و تقلي. هذه خطوة التنفيذ أو كتابة الكود.
٤- رابع خطوة، بديت تطبق الوصفة بحذافيرها، تقطع و تعجن و تخبز و تقلي. هذه خطوة التنفيذ أو كتابة الكود.
٥- أثناء الطبخ، كل شوية تذوق و تشيّك ع الطعم، تشيّك ع الملح و الاستواء و تتأكد إنه الطعم مطابق لما يتوقعه الجمهور، هذه خطوة الاختبار و التحقق.
٦- سادس خطوة، طلعت الطبق من الفرن و قدمته ع الطاولة و صار جاهز للأكل؟ إذن هذه خطوة الdeployment، الي هي إنك تخلي السوفتوير جاهز للاستخدام، مثلًا ترفعه على الآب ستور.
٧- آخر خطوة، الآن بعد ما الكل انتهى من الوجبة، بديت تأخذ فيدباك و تسمع شكاوي و اقتراحات الأهل، و تعرف إيش ممكن تعمل تعديلات و تحسينات، هذه خطوة الصيانة بحيث المرة الجاية تعمل نفس الطبق بجودة أفضل ✅.
طيب إيش هي المسميات الوظيفية اللي تندرج تحت الخطوات اللي ذكرتها؟
• ممكن تتخصص في مجال التحليل، تدرس المشكلة و تحللها، تدرس الخيارات المتاحة قدامك و الأنظمة المشابهة، و تقترح الحل الأنسب و بالتالي تصير System analyst.
• ممكن تتخصص في مجال التحليل، تدرس المشكلة و تحللها، تدرس الخيارات المتاحة قدامك و الأنظمة المشابهة، و تقترح الحل الأنسب و بالتالي تصير System analyst.
• ممكن تكون مهتم بالتصميم، و الألوان و مرونة الواجهات تبع السوفتوير و بالتالي تصير UI Designer.
• ممكن تكون شخص مبتكر، المنطق عندك 100% و القدرة على حل المشكلات و اكتشاف الأخطاء عال العال، تحب تبحث و تشتغل في مجموعات، و تحب تدور الغلط و تصلحه، و الأهم عندك صبر لا متناهي، هنا ينفع تكون Programmer.
• ممكن إنت شخص ما تحب تكتب كود من الصفر و تبرمج نظام كامل، ما تحب تبحث عن حل للمشكلة. بس إيش؟ تحب تدور الزلة، و تقعد تجرب و تتأكد إن كله شغال زي الفل، تحب الحل و الكود يجيك جاهز و إنت تتأكد من جودته و تستقعد للمبرمج اللي كتب الكود قبلك، إذن هنا تنفع تصير Software tester.
طيب من وين جات فكرة هندسة البرمجيات من الأساس؟
في أي مشروع عندنا ٣ ركائز أساسية. جودة الناتج النهائي للمشروع: بمعنى هل المخرجات تطابق اللي طلبه العميل أو لا. الميزانية لتنفيذ المشروع، و المدة الزمنية اللي المفروض ما نتجاوزها.
في أي مشروع عندنا ٣ ركائز أساسية. جودة الناتج النهائي للمشروع: بمعنى هل المخرجات تطابق اللي طلبه العميل أو لا. الميزانية لتنفيذ المشروع، و المدة الزمنية اللي المفروض ما نتجاوزها.
دائمًا عندنا قيمة ثابتة منهم، و القيمتين الثانية يكونوا عكس بعض. كيف؟ 🤔
لمن يجيك عميل و يقولك لو سمحت أبغاك تنفذلي مشروع تقني بس أهم نقطة عندي ما أقدر أتنازل عنها هي الجودة، أبغاه ممتاز، حتقوله أوك حعملك هو بس الميزانية حتكون مرتفعة لو تبغى المشروع في وقت قصير، و حتكون متوسطة لو مدة التنفيذ معقولة.
لو قالك أبغى المشروع يتنفذ في أسرع وقت ممكن، حتقوله كمان أوك بس الجودة حتكون أي كلام لو تبغاه بسعر رخيص و حتكون الجودة عالية لو ما عندك مانع تبيع كليتك!
لو قالك أبغى المشروع يتنفذ بأقل ميزانية ممكنة، حتقوله أبشر، بس إذا تبغاه بجود ممتازة حتضطر تستنى كثير، و لو طز في الجودة يصير أخلص لك هوا في أسبوع زمان!
إنك تنتج مشروع متكامل في وقت قصير بميزانية منخفضة و جودة مرتفعة شي مستحيل، لازم تعمل موازنة بين هذه القيم الثلاثة اللي احنا نمشي عليها في أي مشروع، طيب وين المشكلة؟
قبل سنين، كانت أغلب المشاريع التقنية تعاني من إنه الناتج النهائي جودته تكون سيئة و مدة تنفيذ المشروع تتجاوز الفترة الزمنية المحددة، و فوق هذا كله يضطروا يستهلكوا موارد أكثر من اللي محدد في الميزانية!! يعني ولا ركن متحقق صح!
و السبب بكل بساطة إن ما كان عندهم منهجية يمشوا عليها في تنفيذ المشاريع التقنية، كان الموضوع أقرب للعشوائية يعني ما في شي معتمد يمشوا عليه و لا فيه خطوات و مراحل محددة.
و من هنا ظهر مفهوم هندسة البرمجيات. اللي رتب العملية كاملة في ٧ مراحل زي ما شرحتها فوق:
١- جمع المتطلبات.
٢- التحليل.
٣- التصميم.
٤- التنفيذ.
٥- الاختبار و التحقق.
٦- النشر - رفع التطبيق بحيث يصير متاح للكل.
٧- الصيانة.
١- جمع المتطلبات.
٢- التحليل.
٣- التصميم.
٤- التنفيذ.
٥- الاختبار و التحقق.
٦- النشر - رفع التطبيق بحيث يصير متاح للكل.
٧- الصيانة.
إنت كمهندس برمجيات المفروض يكون عندك فهم كامل للأساسيات السبعة هذه، وقادر على إنك تطبقها بشكل صحيح و تنتج سوفتوير شغال صح. و طبعًا قلنا يدخل في المراحل هذه مجالات و تخصصات كثير. فإنت ممكن تختار مجال لنفسك و تتعمق أكثر فيه بحيث تصير مبرمج، مصمم، محلل، مختبر..إلخ.
انتهينا الآن من شرح التخصص و مجالاته. في التغريدات الجاية، بجاوب على الأسئلة الأكثر تكرار:
📍إيش أفضل جهاز - لاب توب - يناسب التخصص؟ و هل أحتاج جهاز جديد؟
في أول ترم غالبًا تقدر تعتمد ع جهاز قديم عندك،
و بعد ما تقيّم الوضع و تتأكد إن جهازك ما عنده إمكانية يستحمل ضغط البرامج اللي حتحملها مستقبلًا تشتري جديد.
في أول ترم غالبًا تقدر تعتمد ع جهاز قديم عندك،
و بعد ما تقيّم الوضع و تتأكد إن جهازك ما عنده إمكانية يستحمل ضغط البرامج اللي حتحملها مستقبلًا تشتري جديد.
المواصفات المناسبة هي:
• معالج من نوع Core i7 و أعلى. و إذا الميزانية يا دوبك 🤏🏻 خذ i5 يمشي زي الفل.
• سرعة المعالج ١.٨ أو ٢.٤ و أعلى.
• حجم الهارددسك يفضّل ١ تيرا و النوع SSD.
• الرام ١٦ جيجا و برضو لو الميزانية 🤏🏻 ٨ تمشي الحال.
• معالج من نوع Core i7 و أعلى. و إذا الميزانية يا دوبك 🤏🏻 خذ i5 يمشي زي الفل.
• سرعة المعالج ١.٨ أو ٢.٤ و أعلى.
• حجم الهارددسك يفضّل ١ تيرا و النوع SSD.
• الرام ١٦ جيجا و برضو لو الميزانية 🤏🏻 ٨ تمشي الحال.
• إذا عندك نية تأخذ اللاب توب معاك في كل مكان، اختار لاب توب وزنه خفيف و حجم الشاشة معقول، غالبًا ١٣ بوصة مناسب ✅.
• بالنسبة للشركات، ما في شركة أحسن من الثانية، المواصفات اللي فوق إذا مشيت عليها و إنت تبحث حتلاقي جهاز يناسبك بسعر معقول. لكن حسب تجربتي أنا و زميلاتي اسوس و لينوفو ممتازين من ناحية الوزن الخفيف و الحجم المناسب و يتفقوا مع المواصفات المعروضة.
📍التخصص وين يُدرّس؟
في جامعة الملك عبدالعزيز ندرسه كمسار دقيق (فقط ٣ مواد) بعد دراسة تخصص عام سواء تقنية معلومات أو علوم حاسب. في جامعة الملك سعود يُدرّس كتخصص كامل لمدة ٤ سنوات. و فيه برنامج ماجستير هندسة البرمجيات في سعود.
في جامعة الملك عبدالعزيز ندرسه كمسار دقيق (فقط ٣ مواد) بعد دراسة تخصص عام سواء تقنية معلومات أو علوم حاسب. في جامعة الملك سعود يُدرّس كتخصص كامل لمدة ٤ سنوات. و فيه برنامج ماجستير هندسة البرمجيات في سعود.
📍السؤال التاريخي: هل لازم أكون الأولى على المجرة عشان أحصّل وظيفة؟
يا عزيزي القارئ، لازم تكون إنسان واضح مع نفسك، عندك أهداف و خطة واضحة و رؤية للمستقبل. إذا عندك ميل للمجال الأكاديمي و نفسك تدرّس في الجامعات "أو" تبغى تكمل دراسات عليا إذن الإجابة هي نعم، لازم درجات تفتح النفس.
يا عزيزي القارئ، لازم تكون إنسان واضح مع نفسك، عندك أهداف و خطة واضحة و رؤية للمستقبل. إذا عندك ميل للمجال الأكاديمي و نفسك تدرّس في الجامعات "أو" تبغى تكمل دراسات عليا إذن الإجابة هي نعم، لازم درجات تفتح النفس.
إذا إنت إنسان ما عندك نية تكمل دراسات عليا، و تميل أكثر للعمل في شركات غير حكومية - أظن الحكومي يركزوا ع المعدل - إذن اجتهد و ذاكر و اسعى لكن المعدل العالي هنا مو أولوية، الحصول ع المرتبة الأولى أو الثانية يكفي و زيادة.
📍هل الجامعة تعلمني أبرمج تطبيقات جوال؟ أو تعلمني كيف أكتشف ثغرات؟
الإجابة باختصار لا. الحاسب مجال واسع جدًا جدًا و جدًا. عشان تقدر تبني تطبيق جوال أو موقع أو تصير مكتشف ثغررات، تحتاج أصلًا يكون عندك أساس سليم.
الإجابة باختصار لا. الحاسب مجال واسع جدًا جدًا و جدًا. عشان تقدر تبني تطبيق جوال أو موقع أو تصير مكتشف ثغررات، تحتاج أصلًا يكون عندك أساس سليم.
لازم تكون عارف مفاهيم بديهية بالضبط زي الأحرف في اللغة و زي عمليات الجمع و الضرب و القسمة في الماث. مثال على أساسيات الحاسب : أنظمة التشغيل، قواعد البيانات، الشبكات، القرافيكس، تحليل الأنظمة، بنيان الحاسب، وغيرهم. هذه الأساسيات هية اللي تعطيها إياك الجامعة خلال ٤ سنوات.
📍طيب كيف أتعلم أطور تطبيقات و أسلك مسار مهني واحد و أحترفه؟
ميزة التخصصات التقنية، إن مصدرها على الإنترنت بحر! والدورات والشهادات المعتمدة في كل مكان. وأحيانًا تلاقي كورسات مكثفة من مؤسسات ضخمة و معروفة زي يوداسيتي و جنرال أسمبلي متوفرة بشكل مجاني من خلال مسك أو وزارة الاتصالات.
ميزة التخصصات التقنية، إن مصدرها على الإنترنت بحر! والدورات والشهادات المعتمدة في كل مكان. وأحيانًا تلاقي كورسات مكثفة من مؤسسات ضخمة و معروفة زي يوداسيتي و جنرال أسمبلي متوفرة بشكل مجاني من خلال مسك أو وزارة الاتصالات.
استغل الإجازة الصيفية و اشترك في وحدة منها علشان تحترف المجال اللي تحبه.
٤- اللغة الإنجليزية هل ممكن تكون عائق؟
أقولكم على سر؟ أكثر نقطة المستجدين يحسبوها ممكن تكون عائق و يشيلوا همها أكثر من أي شيء ثاني هي اللغة، بس حرفيًا حتدخل التخصص و تمشي فيه و تلاقي نفسك فجأة تتفرج فيديوهات كاملة من دون ترجمة!
أقولكم على سر؟ أكثر نقطة المستجدين يحسبوها ممكن تكون عائق و يشيلوا همها أكثر من أي شيء ثاني هي اللغة، بس حرفيًا حتدخل التخصص و تمشي فيه و تلاقي نفسك فجأة تتفرج فيديوهات كاملة من دون ترجمة!
في البداية تحتاج ترجمة بسيطة للكلمات غير المفهومة إذا مستواك أقل من المتوسط، بعد فترة حتلاحظ تكرار و تتعود.
لكن نفس المصطلحات التقنية ما تحتاج ترجمة أصلًا لإنه كل مصطلح تدرسه يكون مشروح بالإنجليزي، و معناه واضح، فإنت هنا عندك المصطلح و مفهومه بالانجليزي و من دون ترجمة و هذا أفضل! لا تترجم كل حرف جزاك الله خير. خليك فاهم بالإنجليزي فقط ✅.
اكتبوا و اقرؤوا في التخصص كثيرررررر بالانجليزي و لا تعتمدوا ع الترجمة أبدًا، لإن فيه كتابة تقارير مرة كثير و ما رح تقدر تتعذر ب"ما أعرف أعبر أو لغتي ضعيفة". عشان تقوي لغتك، حتى لمن تذاكر من النت اعتمد مصادر أجنبية مو عربية، أبدًا لا تبحث بالعربي.
هل فيه مهارات معينة لازم أمتلكها عشان أكون مهندس برمجيات فنان؟
بشكل عام إيوا، و يمكن اكتسابها أثناء الدراسة. حأذكر هنا بعض المهارات اللي لو امتلكتها تساعدك في التخصص. أولها حل المشكلات، و بعطيكم مثال:
بشكل عام إيوا، و يمكن اكتسابها أثناء الدراسة. حأذكر هنا بعض المهارات اللي لو امتلكتها تساعدك في التخصص. أولها حل المشكلات، و بعطيكم مثال:
شفتوا لمن تلاقوا ف المحلات عينة تجريبية توزع مجانًا من منتج جديد لشركة مثلا زي غارنييه؟ ويعطوكم عشان تجربوا ولو عجبكم تشتروا مستقبلًا؟
العملية دي مرة عشوائية، ممكن نوزع كمية كبيرة على ناس أصلًا ما هي مهتمة تشتري من غارنييه فكدة احنا ضيعنا ع نفسنا فرص بيع -و كسب عميل- كثيرة، كيف نحلها بشكل تقني؟
فيه ستارت-أب، قالوا احنا بنستخدم التقنية عشان نوصّل عينات من المنتجات الجديدة الي تحت التجربة، بس بدل ما العملية عشوائية؟ احنا بنوصلها للناس المهتمين! كل اللي بيسووه إنهم بيستخدموا خوارزميات معينة تعمل تشييك و تحلل بيانات العملاء في مواقع الE-commerce زي نمشي ونون و نايس ون.
مثلًا، انتي قد اشتريتي منتجات من شركة غارنييه؟ أو عملتيلها لايك و حطيتيها في المفضلة في تطبيق نمشي؟ المرة الجاية مع طلبك بيحطوا لك عينة من المنتج الجديد لغارنييه لأنهم يعرفوا انك الريدي مهتمة في الشركة دي. فتخيلوا إنه ستارت-أب كامل بموقع وبزنس و رأس مال بدأ من فكرة زي دي؟
فهنا همة حلوا مشكلة بتواجهها شركات مرة كثير باستخدام التقنية و دا كمان جواب لسؤال كيف ممكن التقنية تخدم مجالات كثير و تكون سبب في تغيير إيجابي. من المهارات المهمة، مهارة البحث و التعلم الذاتي و إدارة الوقت و الصبررررررررر.
النقطة الأخيرة اللي حابة أذكرها، لا تكتفوا بالتعليم الجامعي. لا تتخرج و إنت ما عندك غير الشهادة. شاركوا في أي فعالية تبهركم، بادروا، ابحثوا، لا تضيعوا على نفسكم فرص.
أي فرصة تدريب، كورس، معسكر، وظيفة بدوام جزئي تلفتكم قدموا عليها، حتى لو تحس نفسك أقل، قدم إذا كنت متأكد إن عندك العزيمة عشان تغلط و تتعلم و الأهم تكمل للأخير 💪🏻. و حتى الإفنتات التقنية تعتبر مكان ممتاز عشان تكوّن علاقات ممكن تكون بكرا سبب في حصولك ع وظيفة في مكان ما كنت تحلم بيه!
جاري تحميل الاقتراحات...