مستويات المبرمجين في الشركات

مستويات المبرمجين في الشركات

 شركات التوظيف والموارد البشرية  في الشركات لديها معايير محددة لتوظيف المبرمجين حيث يقومون بتوظيفهم بناء على تصنيفات او مستويات حيث يقسمونهم الى (Junior -Mid-level -Senior )مع الاهتمام بسنوات الخبرة في العمل ومستوى الخبرة ومجال العمل والمسؤولية التي ستسند اليه ، سأشرح كل مستوى والفرق بينها في هذا المقالة على شكل نقاط.

Junior Developer

  • هذا المستوى غالبا تبدأ سنوات خبرته عملية من 0 الى عامين خبرة

  • مفاهيم بسيطة ونظرة عامة حول علوم الحاسب متعلقة بالsoftware و hardware 

  • علم ببعض المفاهيم الاساسية المتعلقة بلغات البرمجة وادواتها 

  • لديه علم  على الاقل في لغة برمجية واحدة مع القابلية لكتابة كود بسيط بها

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

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

  • في اغلب الحالات مبرمج junior يحتاج دوما مساعدة واخذ بعض الوقت من المبرمجين الاخرين لأنه غالبا لايستطيع اتمام عمل معقد بنفسه دون الاعتماد على احد.

  • مستوى junoir مقارب لمفهوم مبرمج هدفه فقط بناء منتج يشتغل “making it work.”

  • دوما يحتاج مساعدة ويسأل باستمرار

 

Mid-level Developer 

  • هذا المستوى غالبا تبدأ سنوات خبرته عملية من 2 الى 4 سنوات ويكون قد اشتغل بالفعل في تطوير بعض  مشاريع ولديه بعض الخبرة في اكتشاف الاخطاء وتتبعها وتصحيحها.

  • لديه بعض الخبرة في بعض مراحل دورة تطوير البرمجيات SDLC* (التحليل - التصميم - التطوير - وتجريب testing )

  • يستطيع وصف وشرح طريقة وايجاد حل لمشكلة قائمة واقتراح حلول فعالة لها.

  • يستطيع تثبيت وتجهيز بيئة تطوير لوحده ولديه ايضا القابلية لتسيير مبرمجي مستوى junior

  • لديه القابلية لاداء مهام عدة مشاريع في نفس الوقت.

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

  • يمكنه انشاء وبناء وحدات الاختبار بسيطة unit tests

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

  • تكون له قابلية لتعلم بعض المعماريات الاساسية وحول تحسين الاداء performance والحماية وسد الثغرات

 

​​​​​​​Senior Developer

  • هذا المستوى غالبا تبدأ سنوات خبرته عملية من 5 الى 8 سنوات تتضمن خبرة اضافية في حل المشكلات باختلاف تعقيدها

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

  • امكانية القيام بمعالجة الكود البرمجي لتطوير بنيته وتحسين جودته وكفاءته.

  • يمكنه التواصل مع العملاء للنقاش حول تفاصيل المشروع و business processes ويمكنه تحويل business processes الى كود برمجي 

  • يمكنه ادارة مبرمجي junior - mid-level وتوزيع المهام للفريق بطريقة متوازنة وفعالة

  • يمكنه فهم المشروع بسهولة واعطاء افضل المقترحات والطرق لتطوير وتنفيذ وصيانة المشروع

  • يكون مسؤول عن تدريب ومساعدة مبرمجي junior في تنفيذ مهام معقدة نوعا ما

  • لديه امكانية القيام بمراجعة الاكواد المكتوبة من المبرمجين الاقل خبرة مهنة وابداء رأيه حولها لتحسين الكود وجعله اكثر كفاءة

  • يمكنه كتابة وبناء وحدات اختبار معقدة

  • الانتقال من مستوى Mid-level الى senior صعب نوعا ما وبعض المبرمجين يبقون في مستوى mid في طول حياتهم المهنية.

  • مبرمجي senior  يعرفون الجوانب التي يمكن قصها وتعديلها وتطويرها وماهي الجوانب التي لايجب ان تمس ابدا وهذا نتاج خبرة من دروس مستفادة عن طريق ارتكاب العديد من الاخطاء في الماضي.

  • اذا كنت تريد الانتقال الى مستوى senior فعليك ان تكون مستعدا ان تواجه مشاكل لايستطيع احد حلها الا انت فيجب عليك ان تعلم اكثر مما ان تعلم كيف تنتهي فقط من عمل ما.

  • ضع في اعتبارك انك عندما تكون مبرمج senior انك ستساعد المبرمجي الاقل خبرة منك لذا فانت تعتبر كحبل نجاة لأولاءك الذين لايعرفون كيف يعملون أمر ما.

  • لا يفاجئك ان يتقن senior مجموعة من stacks ومهارات ولغات البرمجة لانه يوجد امور اكثر اهمية منها ولذلك على senior معرفة وتعلم جميع الادوات والتطبيقات المستخدمة في الشركة التي يعمل فيها فهو العمود الذي يلجأ اليه المبرمجين الاقل خبرة لتعلم كل ماهو متعلق بما هو مستخدم في شركة ومنهجية بناءها للمشاريع.

  • مايختلف senior عن مستويات الاخرى ليست فقط الخبرة البرمجية بل طريقة ايجاد افضل الحلول للمشاكل في مختلف مستويات المشروع وتحسين الحلول السابقة وربطها ببعضها لتحسين المشروع وجعله اكثر كفاءة.