الأجزاء التي يجيدها تطبيق المراسلة في تعلّم البرمجة: ترتيب أصدقائك أثناء المسابقة، ومسألة اليوم في موعدها، ومجموعة تلاحظ حين تتخطّى أسبوعًا. تعمل بوتات تيليجرام هذه إلى جانب Codeforces وLeetCode لا بدلًا منهما.
| # | البوت | السعر | اللغات | إنلاين | المجموعات | النتيجة |
|---|---|---|---|---|---|---|
| 1 | @codeforces_live_bot | مجاني | EN | لا | نعم | 73 |
| 2 | @MyLeetCodeDailybot | مجاني | EN | لا | لا | 69 |
| 3 | @CodingQuestionsBot | مجاني | EN | لا | نعم | 67 |
| 4 | @leetcode_daily_reminder_bot | مجاني | EN | لا | لا | 64 |
| 5 | @codeforces_bot | مجاني | EN | لا | نعم | 57 |
| 6 | @StackOverflowBot | مجاني | EN | لا | لا | 53 |
| 7 | @RegexpBot | مجاني | EN | لا | لا | 51 |
لم نشغّل هذه البوتات يدويًا: يعتمد التقييم على ما ينشره أصحابها. فتحنا لكل بوت صفحته على t.me للتأكد من أنه بوت يعمل، وقرأنا ملف README وشيفرة المستودع أو إعلان المؤلّف في مدوّنة Codeforces لنعرف ما يفعله فعلًا، ودوّنا تاريخ آخر تعديل، لأن البوت المبني على واجهة API لمنصّة ما يتعطّل حين تتغيّر تلك الواجهة. وفحصنا هل يعمل في مجموعة، وهل هو منتج رسمي للمنصّة التي يذكرها. أما البوتات التي لم ينشر أصحابها عنها شيئًا غير وصفها فتأتي في آخر القائمة.
تُكتب الشيفرة في محرّر، ويجري التدريب على منصّة فيها مصحّح آلي. وما يضيفه تطبيق المراسلة هو الجزء الذي يفشل فيه الناس: الاستمرار. فمتتبّع جماعي يسجّل فيه كل فرد ما حلّه من مسائل يحوّل النية الخاصة إلى سجلّ مرئي، وهذا وحده يوصل إلى نهاية شهر التحضير عددًا أكبر ممّا توصله أي سلسلة دروس.
لكل نوع من التدريب بوته. على Codeforces يعرض Codeforces Live Bot (@codeforces_live_bot) خلال الجولة لوحة ترتيب مباشرة لأصدقائك وحدهم مع توقّع تغيّر التصنيف، ويخبرك حين يجتاز حلّك اختبارات النظام أو يفشل فيها، ويُضاف الأصدقاء باسم المستخدم أو يُستوردون بمفتاح API. ولمسألة LeetCode اليومية يرسل Leetcode daily question reminder (@MyLeetCodeDailybot) نص المسألة كاملًا في الساعة التي تختارها ويُخفي التلميحات والصعوبة والمواضيع خلف أزرار، بينما يواصل LeetCode Daily Reminder (@leetcode_daily_reminder_bot) التذكير مرتين يوميًا حتى ترسل /done. يعتمد كلاهما على توقيت UTC ولا يرى أيّ منهما حسابك في LeetCode. وللتحضير للمقابلات مع الأصدقاء يحسب Coding Questions Tracker (@CodingQuestionsBot) المسائل التي حلّها كل عضو مقابل هدف أسبوعي من سبع مسائل ويقسّم الأعضاء إلى أزواج لمقابلات تجريبية، وإن لم تكن فيه تذكيرات تلقائية بعد. وواجهة كل هذه البوتات بالإنجليزية.
هذه الفئة مليئة ببوتات سُمّيت باسم منصّة لا علاقة لها بها. لم نجد بوتات رسمية على تيليجرام لـ LeetCode أو HackerRank أو Codewars أو freeCodeCamp أو Sololearn أو Codecademy أو Hyperskill، وبوتات Codeforces وLeetCode وStack Overflow في هذه القائمة صنعها مستخدمون لا المنصّات نفسها. وليس ذلك سيئًا بالضرورة - فمشروع معجبين فوق بيانات عامة قد يكون مفيدًا - لكنه يغيّر ما ينبغي توقّعه: لا دعم ولا ضمان، وخدمة تتوقّف حين يفقد مؤلّفها الاهتمام. ولم يُنشر شيء عن البوت المسمّى Codeforces فقط (@codeforces_bot) منذ 2015. فضّل بوتًا له مستودع عام أو مؤلّف واضح، وأبقِ المنصّة نفسها مرجعًا لما يهمّ، كموعد بدء مسابقة.
ليس وحده. تعلّم عبر دورة أو منصّة مسائل، واستخدم البوت لمسألة اليوم وتذكيرات المسابقات والالتزام أمام مجموعة الدراسة.
نعم، بوتان غير رسميين. يرسل Leetcode daily question reminder (@MyLeetCodeDailybot) نص المسألة كاملًا في الساعة التي تختارها مع إخفاء التلميحات خلف أزرار، ويذكّرك LeetCode Daily Reminder (@leetcode_daily_reminder_bot) مرتين يوميًا حتى تعلن أنك أنهيت مسألة اليوم. يعتمد كلاهما على توقيت UTC ولا يتصل أيّ منهما بحسابك في LeetCode.
ليست البوتات في هذه القائمة رسمية. فبوتات Codeforces وLeetCode صنعها مستخدمون لهذه المنصّات، وبوت Stack Overflow يذكر مطوّرًا فرديًا مؤلّفًا له؛ ابحث عن مستودع عام أو وسيلة تواصل مع المؤلّف، ولا تعتمد على مثل هذا البوت في موعد بدء مسابقة دون التأكّد من الموقع.