كَيفَ تُصبح مُهندس بَرمجيات خَارق؟

» عَبقريٌ خَارِق مُهِمَتهُ صُنعُ شيءٍ مِن لا شيء «

هو فقط مُهندس البَرمجيات القَادر على فعلِ ذلك، أيًا يَكن المَشروع المَطلوب يستطيع تحليلهُ بكفاءةَ عالية، ووضع أُسس واضحة ومُتسلسلة، يَضمنُ سيرَ عمليةِ العمل بسلاسة كبيرة

مَاذا يَفعلُ مُهندسُ البرمجيات؟

يقفز بشكل واسع بين تطبيقات الكمبيوتر، الموبايل وتطبيقات الويب، يتنقل بين الذكاء الصناعي، أنظمة التشغيل والشبكات، يتحدثُ بالعديدِ من لغاتِ البرمجة مِن أوسعِ أطيافها، مرتبط بالمُخدمات، قواعدِ البيانات، وأطر عمل (Frameworks) متنوعة ليصل إلى المُنتج المطلوب والمرغوبِ به

ولأنه يعمل في الكثيرِ مِن المشاريعِ فَهو أيضًا يتنقلُ بالأدوار، فالجلوس خلف شاشة الكمبيوتر ليسَ كلُّ ما يفعلهُ، لأنهُ يُديرُ المشاريعَ عَن بُعد وعَن كَثب، تارةً تَجدهُ مديرًا بينَ يديهِ مِئاتُ الموظفين وتارةً أخرى يَكتبُ نصًا برمجيًا لحل خوارزمية مُراسلة بينَ عدّةِ بنوك

لَكنْ مَا هو الفَرق الجوهري بينَ »مهندس البرمجيات« و »مطور البرمجيات«؟

صحيح أن الإثنين يتقاطعان ويتبادلان الكثير من الخبرات والمعارف لكن مهندس البرمجيات يقوم بتطبيق علوم الحاسوب ومبادئ هندسية للتعامل مع المشاريع وفهم النصوص البرمجية وكيف يمكن استثمارها بأقصى طاقتها الإنتاجية وأقلها كلفة زمنيًا، بينما مطور البرمجيات يعتبر المحرك الأساسي الخفي داخل جميع نصوص البرمجيات المعقدة، باختصار فمهندس البرمجيات »يهندس معماريًا« الأنظمة عبر خطط وتصاميم متنوعة ومطور البرمجيات يقوم ب »بناء« هذه المنظومات

أين يعمل مهندس البرمجيات؟

إن كانَ ضمن شركة مُختصة بالمشاريع المالية، قواعد البيانات أو في تطوير البرامج بأنواعِها فستجدهُ في كل ما سبق وهذه لائحة مُبسّطة عن المهام التي يقوم بها في تلك الشركات:

• تصميم، تطبيق، فحص وصيانة العناصر المنطقية والأجزاء البرمجية

• تصميم وبناء أنظمة بالاستفادة من الأدوات المؤتمتة ومراقبتها

• يعمل بشكل مستمر على تحسين استقرار بنية النصوص البرمجية

• التعاون مع فرق العمليات حول المنتجات والأعمال لترجمتها إلى متطلبات وبناءها بشكل صحّي وقابلة للتوسع

• التعاون مع مصممي الوجهات الأمامية وحل مشاكل الارتباطات لوجهات التطبيقات البرمجية (API)

• تطوير وتأمين خدمات الويب واسعة الطيف

• بناء نصوص برمجية ومكتبات برمجية قابلة للتعديل والاستخدام لاحقًا

• تحليل وتصحيح الأخطاء في جو معقّد بين المخدمات والزبائن

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

• توقع الأداء الأفضل والاستجابة الأسرع للمعلومات لحل مشاكل “عنق الزجاجة” في ذروة الاستهلاك للموارد

• استرجاع وإعادة توزيع المعلومات من عدّة مصادر لتصبح قابلة للاستخدام بنماذج قابلة للتطبيق

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

إن حياة مهندس البرمجيات لا تبدأ عند وصوله إلى مكان عمله ولا تنتهي عند مغادرته، لأنه يمتد إلى ساعات طويلة في الليل لمساعدة الزبائن وحل مشاكل طارئة، هو طبيب الحالات الحرجة والمستعصية، فيوم العمل لديه يتنوع بين استلام المهام من مدير المشاريع إلى تطبيقها ومراقبتها وتوزيعها على شركاءه في العمل، ومن يظن أنه فقط يقوم بكتابة النصوص البرمجية فحسب استبيان أجرته شركة «Electric Cloud» تظهر 54% من وقت مهندس البرمجيات يُصرف على مهام لا تتعلق بكتابة هذه النصوص

ما هي المهن التي يمكن أن يمر خلالها مهندس البرمجيات؟

• مطور ويپ

• مطور تطبيقات موبايل

• مهندس تجريب وضمان الجودة

• مهندس نظم

• مهندس التعلم الآلي وعالم بيانات

• مهندس معلومات

• مدير نظام قواعد بيانات

• مدير مشاريع

• مديرًا أو مالك لمنتجات

• مدير إزالة عقبات

ما لذي يتطلبه لتصبح مهندس برمجيات؟

• مهارات تواصل بشرية جيدة

• الخبرة بلغة برمجية واحدة على الأقل

• الممارسة على التفكير المنطقي وحل المشاكل

• القدرة على الحفاظ على مستوى التحفيز في التحديات والمثابرة على تطوير بيئة العمل

• فهم عالي لعملية تطوير البرامج

• الابداع بتطوير البرمجيات من أفكار

• قدرة تحليل جيدة لفهم متطلبات المستخدمين وتحويلها إلى حلول

• الانتماء أو تقبل لثقافة أجواء العمل ضمن الشركات والأشخاص فيها

• القدرة على كتابة تجارب جيدة

• فهم للكمبيوتر وانظمته

كيف تصبح مهندس برمجيات؟

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

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

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

بقلم المهندس جورج زيتون

Website Built with WordPress.com.

Up ↑