بهروزرسانی: با هیجان اعلام میکنیم که موزیلا برای این پروژه جایزهی پشتیبانی از متنباز را به ما اعطا کرده است. میتوانید اینجا بیشتر بخوانید.
این پست وبلاگ، آغاز پروژهی پشتیبانی خودکار از مربیگری Exercism را نشان میدهد؛ پروژهای که در آن frameworkی میسازیم که راهحلهای کاربران را بهصورت برنامهای تحلیل میکند تا حلقهی بازخورد یادگیرندگان بهتر شود و بار مربیان کاهش یابد. هدف کوتاهمدت ما این است که راهحلهایی را که معیارهای پذیرش را برآورده میکنند بهصورت خودکار تأیید کنیم و برای بهبودهای پرتکراری که دیده میشود، بازخورد ارائه دهیم.
هدف این پست، توصیف مسئلهای است که میخواهیم حل کنیم و برنامهی کلی برای چگونگی پرداختن به آن در ماههای آینده است. در پستهای بعدی، به پیشینهی این مسئله و تاریخ تحلیل خودکار در Exercism میپردازیم و جزئیات بیشتری دربارهی راهبرد پیادهسازیمان ارائه میدهیم.
چرا پشتیبانی خودکار از مربیگری؟
مهمترین مانع Exercism، توانایی کنار آمدن با مقیاس است.
مربیان داوطلب ما نقشی حیاتی در موفقیت Exercism دارند. آنها راهحلهای یادگیرندگان را بررسی میکنند، تحلیل میکنند که آیا معیارهای موفقیت تمرین را برآورده میکنند یا باید بهتر شوند، با همدلی فرایند فکری یادگیرنده را درک میکنند، بازخوردی تشویقکننده و مفید میدهند و افراد را با اصطلاحات و شیوههای خاص یک زبان آشنا میکنند. امروز، بهسختی از پس تقاضای مربیگری برمیآییم. اگر میخواهیم رشد کنیم، به راهبردی بهتر از «افزودن مربیان بیشتر» نیاز داریم.
برآورد ما این است که برای تمرینهای اصلی که ستون فقرات یک مسیر زبانی Exercism را تشکیل میدهند، حدود ۲۵٪ از راهحلهای ارسالی بهقدری خوب هستند که در همان تلاش اول بتوان آنها را کامل علامت زد. ۵۵٪ دیگر از راهحلهای ارسالی مشکلاتی دارند که در دستههای رایجی میگنجند و با کپی و پیست کردن قطعههای بازخورد میتوان به آنها پاسخ داد. فقط حدود ۲۰٪ از راهحلها نیاز دارند که مربی در بازخوردش خلاق و سنجیده عمل کند.
۸۰٪ راهحلهایی که واقعاً ذهن مربی را درگیر نمیکنند، برای کسانی که مایلاند وقتشان را داوطلبانه صرف کمک به دیگران کنند، اتلافوقتی آزاردهندهاند و از تخصص آنها به بهترین شکل استفاده نمیشود.
به همین ترتیب، ممکن است یادگیرنده بین یک روز تا یک هفته منتظر بازخورد بماند و در این فاصله نتواند در مسیر جلو برود. برای کسانی که نسخهای ارسال کردهاند که در آن ۲۵٪ راهحلهای کاملاً معتبر جای میگیرد، این تأخیر بهشدت آزاردهنده است. برای بقیه، در بهترین حالت هم مطلوب نیست. یادگیرندگان اغلب بهخاطر این تأخیر انگیزهشان را از دست میدهند و از این فرایند دلسرد میشوند.
با توسعهی سیستمی که بتواند یک راهحل را بهصورت خودکار تحلیل کند و آن را یا تأیید کند یا برای مشکلات شناختهشده بازخورد آماده ارائه دهد، برآورد میکنیم که بتوانیم با حذف بخشهای «کسلکننده»، حجم کار مربیان را بهشکل چشمگیری کاهش دهیم و در همان حال تجربهی یادگیرنده را هم بهطور معناداری بهتر کنیم. بهعنوان یک مزیت اضافه، افراد در مسائل ساختاری و سبکی بازخورد یکدستتری دریافت میکنند و همین زمینه را فراهم میکند که دربارهی موضوعهای کمتر روشن، گفتوگوهای جالبتری داشته باشند.
این سیستم چگونه کار میکند؟
هدف بلندمدت ما توسعهی الگوریتمهای یادگیری عمیقی است که بتوانند درختهای نحو انتزاعی (AST) نزدیک به یک میلیون راهحل ارسالی را از زمان راهاندازی Exercism در سال ۲۰۱۳ تاکنون تحلیل کنند. چنین ابزاری میتواند الگوهای رایج و نظرات مرتبط مربیان را تشخیص دهد. در کوتاهمدت، هدف ما استفاده از تحلیل ایستا برای تعیین این است که بر اساس پرتکرارترین خطاهایی که مربیان میبینند، چه بازخوردی میتوان ارائه داد.
این پروژه تقریباً به این حوزهها تقسیم میشود:
- تغییرات محصول: باید مشخص کنیم که این تحلیل خودکار چگونه با رابط کاربری فعلی مربیگری جفت میشود، این بازخورد را چگونه منتقل میکنیم (پیامهای سیستمی، یک «ربات» و مانند آن) و سپس آن را برای وبسایت Exercism پیادهسازی کنیم.
- زیرساخت: زیرساختی طراحی و میسازیم که بتواند اجرای تحلیل ایستا را در چندین زبان بهشکل کارآمد پشتیبانی کند.
- نمونهی اولیهی تحلیل ایستا: تحلیلگری نمونهای توسعه میدهیم که راهحلهای خوب تمرین Ruby / Two-fer را خودکار تأیید میکند و این فرایند را مستند میکنیم تا جامعهی گستردهتر هم بتواند مشارکت کند.
قصد داریم نمونهی اولیه را تا اواسط ۲۰۱۹ عرضه کنیم. وقتی پایهها آماده شد، انتظار داریم این کار را به زبانهایی غیر از Ruby و تمرینهایی غیر از Two Fer گسترش دهیم. هرچند تا زمانی که در نمونهی اولیه پیشرفت نکرده باشیم، frameworkی برای ادغام زبانها و تمرینهای دیگر در وبسایت نخواهیم داشت، اگر میخواهید نوشتن تحلیلگر برای زبانها و تمرینهای محبوبتان را شروع کنید، هیچ دلیلی برای صبر کردن نیست! یک ایشو در مخزن گیتهاب این پروژه باز کنید و بگویید به چه کاری علاقه دارید.
ما بسیار مشتاقیم که با دیگران در جامعهی Exercism کار کنیم، کسانی که پیش از این از تحلیل ایستا برای کمک به مربیگری استفاده کردهاند؛ مانند tehsphinx و bitfield که یک ابزار تحلیل ایستا برای مربیان مسیر Go توسعه دادهاند. اینکه این ابزار مسیر را از داشتن انبوهی از کارهای عقبافتاده به یکی از پاسخگوترین مسیرهای زبانی Exercism رسانده، نشان میدهد پشتیبانی خودکار از مربیگری چقدر میتواند تأثیرگذار باشد.
در چند هفتهی آینده، دربارهی این گامهای کلیدی نخست و اینکه همهچیز چگونه پیش خواهد رفت، بیشتر توضیح میدهیم.
خوشحال میشویم به هر یک از پرسشهایتان در بخش نظرات پایین پاسخ دهیم! :)