كيفية زيادة درجاتك في CodersRank

TL، DR:

  • يمكن زيادة الدرجات من خلال المساهمة أكثر في المستودعات العامة أو زيادة نجوم مستودعك العام أو الإجابة على الأسئلة في StackOverflow.
  • يؤدي الالتزام في مستودع التخزين إلى زيادة النتيجة بنسبة نسبة لغات البرمجة في الريبو التي التزمت بها.
  • علامات التقدم في السن ، لذلك بحلول الوقت ، تتناقص قيمتها.

ماذا نقيس؟

الهدف من خوارزمية التسجيل لدينا هو قياس تجربة المطورين. هذا يعني أنه إذا كان لدى شخص ما درجة أعلى ، فربما تكون أكثر خبرة من أي شخص آخر لديه درجة أقل. لا أستطيع أن أؤكد بما فيه الكفاية. هذا احتمال. إنشاء هدف بنسبة 100 ٪ ودقة دقيقة أمر مستحيل لأن التجربة ليست فقط عدد السنوات.

شخص ما بدأ تشغيل الكود قبل 10 سنوات في Java ويكتب الكود مرة واحدة في الأسبوع على الأرجح أقل خبرة من شخص بدأ قبل 3 سنوات ولكنه يكتب الكود كل يوم.

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

عندما نحسب درجاتك ، نستخدم مصدرين: GitHub و StackOverflow. دعونا نتحقق من كيفية استخدامهم لهما.

جيثب

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

يمكنك القيام بعدة أشياء على جيثب. كما يمكنك فتح المشكلات والتعليق على المشكلات ومراجعة التعليمات البرمجية ، وما إلى ذلك للتسجيل ، فإننا نعتبر حدثين فقط: "PushEvent" و "PullRequestEvent". لذلك فقط الالتزامات وسحب طلب سوف تؤثر على درجاتك النهائية. عندما نحسب النتيجة لحدث ما ، فإننا نعتبر المعلمات التالية:

  • عدد نجوم المستودع
  • عصر الالتزام

فيما يلي الصيغة الدقيقة التي نستخدمها لحساب النتيجة لحدث ما:

النتيجة = الوزن * الشيخوخة
الوزن = 2 ^ (log10 (S + 1))
الشيخوخة = e ^ (- D / 1000)

حيث "S" هو عدد نجوم المستودع الذي حدث فيه الحدث.
D هي الأيام التي مرت منذ وقوع الحدث.

على سبيل المثال ، إذا التزمت بمستودع يحتوي على 99 نجمة قبل 200 يوم ، فستحصل على هذه النتيجة لهذا الحدث:

الوزن = 2 ^ (log10 (99 + 1)) = 4
الشيخوخة = هـ ^ (- 200/1000) = 0.818
النتيجة = 4 * 0.818 = 3.272

فيما يلي مخطط لكيفية تقدم نتائج الأحداث:

في الأساس ، تبلغ قيمة حدث ما بعد سنة واحدة حوالي 67٪ وبعد 3 سنوات 33٪ من النتيجة الأصلية.

سجل لغات البرمجة

يتم توزيع النتائج بين لغات البرمجة في المستودع. لذلك إذا كنت تلتزم بمستودع يتكون من 500 بايت من كود PHP و 500 بايت من Shell ، فسيتم تقاسم النتيجة بين 50 ٪ و 50 ٪ من اللغتين. حسب المثال السابق سيتم تقسيم درجات 3.272 كالتالي: PHP: 1.636 و Shell: 1.636.

نستخدم واجهة برمجة تطبيقات GitHub للحصول على نسبة لغات البرمجة لمستودع معين. فيما يلي مثال: https://api.github.com/repos/vuejs/vue/languages

{
 جافا سكريبت: 2798346 ،
 TypeScript: 20905 ،
 HTML: 17839 ،
 الفضيلة: 13258 ،
 CSS: 11301 ،
 شل: 3351
}

النتيجة الإجمالية تساوي مجموع درجات جميع لغات البرمجة التي استخدمتها.

يتتبع GitHub اللغة الأساسية للمستودع. ومع ذلك ، في بعض الأحيان يتعذر على GitHub التعرف على لغة مستودع التخزين ولكن لحسن الحظ ، يمكنك تغييره يدويًا.

المواضيع التهديف

يمكنك إضافة موضوعات إلى مستودع GitHub الخاص بك. على سبيل المثال ، لديك مستودع PHP حيث تستخدم Symfony والملحن. يمكنك إضافة موضوعات Symfony والملحن إلى مستودعك ، ثم يمكننا التعرف على استخدامك لهذه التقنيات والحصول على الدرجات الخاصة بها.

لنأخذ المثال السابق. حصلت على 3.272 نتيجة لالتزامك تم تقسيمها بين PHP و Shell. سيحصل كل موضوع قمت بتعيينه للمستودع على 3.272 نتيجة. ستكون Symfony 3.272 وستكون الملحن 3.272. لكن المواضيع ليست مدرجة في النتيجة الإجمالية (انظر أدناه).

لما نفعل هذا؟ إذا قمنا بتقسيم الدرجات بين الموضوعات ، فلن تكون متحمسًا لإضافة جميع الموضوعات المتعلقة بالمستودع. إذا أضفنا درجات المواضيع إلى إجمالي الدرجات ، فسيكون من السهل جدًا زيادة درجاتك بإضافة المزيد والمزيد من الموضوعات إلى مستودعك.

قائمة بيضاء من المواضيع

نظرًا لوجود المئات من الموضوعات وبعضها ليس له معنى كبير. مثل "البرمجة" ، "جيد" ولغات البرمجة يتم تمثيلها أيضًا كمواضيع. لذلك نحن نستخدم قائمة بيضاء من المواضيع التي سننظر فيها.

هذه القائمة متاحة هنا ، فنحن نرحب بك للمساهمة: https://github.com/codersrankOrg/tags_white_list/

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

ستاكوفيرفلوو

StackOverflow هو التكامل المطبق الثاني والأحدث. حساب النتيجة بسيط جدا. نحصل على الدرجات المحسوبة بواسطة StackOverflow لعلاماتك (وليس السمعة ، ولكن يسجلها) ونضيفها إلى نقاط GitHub.

فيما يلي شرح لكيفية حساب الدرجات من خلال StackOverflow

فمثلا:
إذا كان لديك 100 نتيجة في Java من GitHub وكان لديك 20 نتيجة من StackOverflow من Java ، فستكون النتيجة 120.

كيف يتم حساب النتيجة الإجمالية؟

مجموع الدرجات = عشرات GitHub + عشرات StackOverflow.

عندما نحسب نتائج GitHub ، فإننا نعتبر النتائج من لغات البرمجة فقط (انظر أعلاه) ، يتم تجاهل النتائج من الموضوعات.

تحديث علاماتك

كل أسبوع نقوم بتجديد النتائج بشكل افتراضي لكل من قام بالتسجيل. ولكن إذا كنت ترغب في تحديث علاماتك ، يمكنك القيام بذلك يدويًا أيضًا.

اذهب إلى ملف التعريف الخاص بك واضغط على زر التحديث تحت رقم الترتيب الكلي.

ومع ذلك ، ضع في اعتبارك أنه إذا قمت بالتعهد ، فسيستغرق الأمر حوالي 24 ساعة حتى يتعرف نظامنا على هذا الالتزام.

نستنتج

نحن نعلم أن هذا التسجيل ليس بلا عيوب. ومع ذلك ، نحن نعمل باستمرار على تحسينه. إذا كان لديك أي سؤال أو تعليق ، فلا تتردد في مناقشته على Reddit أو الانضمام إلى مجتمع Slack الخاص بنا.