محتويات
هندسة البرمجيات
من المُمكن أن تكون أحد خرّيجي الثانوية العامة وتطمح لدراسة بعض التخصصات المُتعلقة بالهندسة، فيقترح عليك أحد المُقرّبين تخصص هندسة البرمجيات، وبالتأكيد ستبحث جيدًا عنه قبل اتخاذ القرار وتسأل نفسك، ما هي هندسة البرمجيات؟ وما هي أقسامها ومجالات عملها؟ توجد لهندسة البرمجيات تعريفات عدة، منها:[١]
- التعريف العام: هو عملية تحليل للمتطلبات المُتعلقة بالمستخدم، من خلال تصميم جميع التطبيقات البرمجية وتشغيلها وصيانتها، وبالتالي ستُسَد الاحتياجات البرمجية لكل المستخدمين.
- تعريف Fritz Bauer: عرّف فريتز هندسة البرمجيات على أنّه التخصص الذي جمع كل مبادئ الهندسات الثابتة، كما أنّه يساعد على الحصول على برامج اقتصادية موثوقة تعمل بكفاءة عالية.
- تعريف منظمة IEEE: هو عبارة عن تطبيق منهجي ومُنضبط، يُستخدم لتطوير البرامج وصيانتها وتشغيلها.
- تعريف Boehm: عرّف بوهِم هندسة البرمجيات على أنّها التطبيق العملي لكل المعرفة العلمية، بالاعتماد على بناء برامج الكمبيوتر والتصميم الإبداعي، بالإضافة إلى احتوائه على جميع الوثائق التي تساعد في تطوير هذا التخصص وصيانته وتشغيله.
فروع وأقسام هندسة البرمجيات
تندرج تحت هذا التخصص (هندسة البرمجيات) عدة فروع مختلفة، إليك هي:[٢]
- الحوسبة المعرفية، وهو جزء من الذكاء الاصطناعي.
- ربط البيانات، والمُتخصص في إنشاء العلاقات الدلالية على الشبكة العنكبوتية.
- نظم المعلومات الجغرافية (GIS).
- إدارة عمليات الأعمال (BPM).
- نظم تخطيط موارد المؤسسات (ERP).
- قواعد العمل وإدارة الحالات.
مجالات عمل هندسة البرمجيات
قد تُلاحظ أنّ التكنولوجيا في وقتنا هذا تتطور وتتقدّم بسرعة، وبالتالي أنت وغيرك تتطّلعون لدراسة التخصصات المتصلة بها، ومنها هندسة البرمجيات، لكن قد تسأل نفسك، ما المجال الذي سأدخله بعد تخرجيّ؟ من مجالات العمل التي تساعدك في تحديد مستقبلك:[٣]
- مُطوّر ويب جونيور (Junior Web Developer): وهو أحد المجالات التي تستطيع التقديم لها بعد التخرّج، لكن عيك أن تكون على معرفة كاملة بكل من لغات البرمجة: CSS و JavaScript و HTML، بالإضافة إلى jQuery، إذ يمكنك دراستها من خلال الإنترنت، أو مدارس التدريب، لكن عليك أن تكون على علم بكتابة نصوص البرمجة المبتدئة، وأن تكون فاهمًا لأساسيات قواعد البيانات، وخدمات التطبيقات التي تُتيح لك التخزين وغيرها الكثير من المهارات المطلوبة.
- مُطوّر برامج ويب (Software Web Developer): في هذه الوظيفة، عليك أن تكون مُبرمجًا بخبرة طويلة جدًا، ومتمكنًا من كتابة نصوص البرمجة، ولك القدرة على إنشاء تطبيقات برمجية كاملة، ومعرفة بخدمات التطبيقات، وقواعد البيانات.
- مهندس تقنيّ (Technical Architect) أو مهندس برمجيّات (Lead Software Engineer) : وهو أن تكون من المهندسين الإداريين في الطبقة المُتوسطة، وفي عملك هذا، يبقى المهندسون الذين في الدرجة الأولى هم من يكتبون كل ما يتعلق بتعليمات ونصوص البرمجة، كما أنّك لست أنت من يُدير الفريق، لأنّك تتلقّى الأوامر من المهندسين الأعلى منك، ولكن التعاون في اتخاذ القرارات يبقى موجودًا بينك وبينهم.
- رئيس فريق تطوير البرمجيات (Development Team Lead, Software Development Manager): أي تكون إداريًا للعديد من المشاريع الكبيرة، أو فِرق التطوير، كما لك السُلطة لتوظيف المُبرمجين وإحالتهم، ولا تنسَ أنّها من الوظائف التي تتطلّب أن تكون قياديًا قويًا.
- نائب الرئيس أو الرئيس التنفيذي تكنولوجيًا (Director, Vice President, Chief Technology Officer): وهي الوظيفة التي تُتيح لك وضع الاستراتيجيات واتخاذ القرارات، كما لديك السُلطة في فصل بعض الإداريين من المستوى الإداري المُتوسّط، عدا عن إمكانية تحديد الأهداف.
نسبة الطلب على هندسة البرمجيات
إذا أردت أن تدخل تخصص هندسة البرمجيات فعليك قبل ذلك أن تعرف نسبة الطلب عليه للتفكير قليلًا في دخوله من عدمه، وقد تبين أنّ الطلب على مهندسي البرمجيّات في تزايد، ومن الممكن أن ترتفع نسبة الطلب على المبرمجين إلى 21% من الآن وحتّى سنة 2028:[٤]
- منذ عام 2017 وإلى 2018: ارتفعت نسبة الطلب على المهندسين ابتداءً من الربع الثاني من سنة 2017 وإلى الرُبع الثاني من سنة 2018 لتصل إلى 32%.
- عام 2018 وحدَه: توفّرت في عام 2018 حوالي 1365500 وظيفة مُتعلقة بهندسة البرمجيّات.
- مهندسو بلوكشين ومهندسو الحماية: ارتفعت نسبة الطلب على مهندسي البلوكشين (BLOCKCHAIN) لتصل إلى 517 %، ووصل الطلب على مهندسي الحماية إلى 132 %.
مَعْلومَة
قد تسأل نفسك، ما الفرق بين هندسة البرمجيات وعلم الحاسوب؟ نقول لك، أنّ هناك العديد من الاختلافات بينهما، وهي:[٥]
- الدراسات الثقافية الأساسية: يوجد تشابه قليل بينهما، لكن الفرق هو أنّ علم الحاسوب يُركز على العلوم الموجودة في كيفية عمل أجهزة الحاسوب، أمّا هندسة البرمجيّات، فتّركّز على كل المبادئ الرياضيّة والعلمية التي تساعد في تصميم وتنفيذ وبناء البرامج والأجهزة.
- تفاعل البرامج والأجهزة: يتعامل علم الحاسوب مع البرامج والكمبيوتر سويًا، أما هندسة البرمجيّات فتتعامل مع البرامج فقط.
- التطوير والبرمجة: يُركّز علم الحاسوب على حساب الطرق الأفضل لبرمجة كل البرامج، عدا عن العمل في إيجاد الحسابات التي تسمح لكل من المطورين والمُهندسين بتصميم البرامج المطلوبة، أما في علم الحاسوب، فيُركّز المهندسون على تحليل وتطوير وبناء أفضل البرمجيات.
- المسارات الوظيفية: تختلف المسارات الوظيفية في علم الحاسوب عن تلك الموجودة في هندسة البرمجيّات، إذ يحتوي علم الحاسوب على مجالات أوسع، ويمكنك أن تعمل كمصمم مواقع، ومُبرمج كمبيوتر، أو حتّى مطوّر ألعاب، أمّا في هندسة البرمجيات، المجالات أقل بعض الشيء، إذ مجالك يكون في الشركات المُتعلقة بالبرمجة فقط.
- النظريات العلمية: يُركّز علم الحاسوب على النظريات العلمية التابعة لكل من عمليات الحوسبة وطريقة تصميم البرامج، بالإضافة إلى أنظمة البيانات، كما أنّه يستخدم هذه النظريات في تصميم وبناء الأجهزة والتطبيقات والبرامج، وهندسة البرمجيّات، تستخدم هذه النظريات لتبني وتُصمم تطبيقات الكمبيوتر كلّها.
- المفاهيم الهندسية: يقتصر علم الحاسوب على معرفة المبادئ الهندسية فقط، أمّا في هندسة البرمجيّات، فتتطبّق المفاهيم الهندسية كلّها على أرض الواقع.
المراجع
- ↑ "What is Software Engineering? Definition, Basics, Characteristics", guru99, Retrieved 16-7-2020. Edited.
- ↑ Pepijn van de Vorst, "What are some interesting branches of software engineering?"، quora, Retrieved 16-7-2020. Edited.
- ↑ "What does a software engineer do?", careerexplorer, Retrieved 16-7-2020. Edited.
- ↑ Kate Heinz (8-6-2020), "HOW TO OVERCOME THE DEMAND FOR SOFTWARE ENGINEERS"، builtin, Retrieved 16-7-2020. Edited.
- ↑ "Computer Science vs. Software Engineering: 10 Key Differences", indeed,25-2-2020، Retrieved 16-7-2020. Edited.