المقالات العامة

ماذا يفعل مهندس البرمجيات غير بناء التطبيقات والمواقع؟

ماذا يفعل مهندس البرمجيات غير بناء التطبيقات والمواقع؟

ماذا يفعل مهندس البرمجيات غير بناء التطبيقات والمواقع؟

ماذا يفعل مهندس البرمجيات غير بناء التطبيقات والمواقع؟

يفعل مهندس البرمجيات غير بناء التطبيقات والمواقع؟
يفعل مهندس البرمجيات غير بناء التطبيقات والمواقع؟

ماذا يفعل مهندس البرمجيات غير بناء التطبيقات والمواقع؟ معقول كل هذا العدد من المبرمجين في الشركات لبناء التطبيقات فقط ما كانو يخلصو؟

هذا عبارة عن كمية من الاسئلة نقف عند كل واحدة:

ماذا يفعل مهندس البرمجيات غير بناء التطبيقات والمواقع؟

عليك ان تعرف ان كل هؤلاء هم مهندسوا برمجيات:

  • مطور تطبيقات ويب
  • مطور تطبيقات سطح مكتب
  • مطور تطبيقات هاتف
  • مطور انظمة مدمجة
  • مطور تطبيقات لانترنت الاشياء – IoT

و كل واحد اعلاه مجال كبير [صحيح البعض اكثر تعقيدا و انتشارا من غير] لكن لكل منها تخصصات مختلفة من ضمنها:

  • تطوير API
  • تطوير سيرفرات – مطور طرف خلفي
  • تخطيط الانظمة

هناك تقنيات عديدة جدا و بتفقنيات نقصد:

  • لغة برمجة
  • مكاتب – Libraries
  • ايطارات عمل – Frameworks
  • Version control – (Git, Supversoin)
  • Packaging – (Webpacks)
  • Documentation – (Confulance, Gitbook)
  • CI/CD – (GitLab)
  • Maintenance & Manegment – (Fixx CMS)
  • testing – (Jest/Mockito/Pytest/Behave)
  • build automation – (Maven/Gradel)

و نحوه من ادوات مختلفة (حاولت على سريع اعطاء امثلة بين قوسين لكل من هذه الادوات).

كل هذا كوم و ان لغات المختلفة (بايثون، جافا، جافاسكريبت، جو، روبي…الخ) لديها ادواتها الخاصة (المذكورة اعلاه) عليك تعلمها و تعامل معها.

بينما لا يعد تحدي ضخم ان تنتقل بين اداة لاخرى بعد سنين من الخبرة الى ان الامر يحتاج (كما هو موضح) سنوات من تعلم و تعامل مع هذه الادوات.

لماذا؟

لانه لا يكفي تعلمها بل يجب اتقانها

لماذا؟

لان هناك خصائص معينة على الكود الناتج ان يتبعها، هذه الكفائة اللذي تقاس بمعايير مختلفة من ضمنها:

  • Perfomance
  • Scalability
  • Maintainability
  • Security

و نحوها، هي التحدي الحقيقي في تطوير سوفت وير، ناهيك ان هناك فرق بين ان تنفذ كل هذه الامور على سوفت وير يخدم ١٠٠ شخص و سوفت وير عالمي يخدم ملايين الاشخاص بأنظمة و سرعات انترنت مختلفة في ان واحد.

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

Security

هناك تخصص مثل:

Security Software Engineer

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


كل هذا كوم و ان تتعامل مع فريق من مختلف الجنسيات و خلفيات في مناطق مختلفة حول العالم يضف تحدي اخر تماما.

لكن لو تحدثنا عن العدد فلا تخف شركات التقنية (خاصيتا ما تجده في وادي السيلكون) شرسة جدا في تقليل التكلفة و حريصة جدا عند توظيف الايدي عاملة على سبيل مثال:

  • انستقرام: عندما بيع لفيس بوك الفريق كله كان مكون فقط من 6 مطورين و تم الاستحواذ ب ١ مليار، اليوم لديهم اكثر من ٣٠٠ شخص.

اقرأ قصة انستقرام اظنها اجابة جدا جيدة عن العدد، كختصار:

  • تلبية طلبات و توسع احتاجة مطورين كثر (يواكبون الخصائص، يفلترون البوست، Maintaine the infrastructure ) و نحوه.
  • اليوم انستقرام تجمع معلومات بشكل كبير جدا و فيها خصائص كثيرة فعليا تجعل من تطبيق انستقرام اكثر من تطبيق واحد (Reel هي فعليا مثل تيك توك، Stories فعليا مثل سناب شات ) لاضافة هذه الامور تحتاج ايدي عاملة اكثر.
  • تحتاج ايضا من يدير السيرفر و قاعدة البيانات
  • لا ننسى من يقوم بمعالجة الصور وتطبيقات الذكاء الاصطناعي.

فليس كل من في الفريق التقني مهندسي برمجيات كما اوضحت لكن هناك داعي لتوظيفهم كلهم.

قد لا يكون هذا هو الواقع في كل الشركات فهذا يرجع لشركة؛ في الواقع قد يكون هذا سبب نجاح او فشل شركة ما (نقاش هنا يطول و يتحول ل ادارة اعمال اكثر منه هندسة برمجيات).

على كلن الشق الاول من اجابتي يشرح لك بشكل كبير التحديات اللذي تحتاج ان تتعداها، على كل لماذا لا تحدد شركة و عدد مبرمجين و تقول لنا لماذا تظن ان هذا العدد اكبر من الحاجة.

زر الذهاب إلى الأعلى