همانطور که در پست وبلاگ ماه گذشته بحث کردیم، یکی از هدفهای کلیدی ما برای سال آینده بازآرایی ساختار مسیرهاست، هم برای لذت بیشتر دانشجو و هم برای آسانتر شدن مربیگری. در سال گذشته با پروژهی Track Anatomy که مود ده فریس رهبریاش کرد پیشرفت چشمگیری داشتهایم و از دل آن چند مشکل بنیادین در ساختار مسیرها شناسایی کردهایم که به باور ما باید در اولویت برطرف شوند. در دو ماه گذشته، تیم رهبری دربارهی اینکه چگونه به این موضوع بپردازیم و چه باید انجام شود تا مسیرهایمان را به وضعیت لازم برسانیم بحث کردهاند؛ وضعیتی که یادگیری بومی و درست زبانهای مختلف را در زمانی معقول ممکن کند.
امروز با هیجان بسیار اعلام میکنم که پروژهای را با همراهی جیمز ایوانز و گری لوپیان از دانشگاه شیکاگو و با حمایت بنیاد اسلون آغاز میکنیم؛ پروژهای که به ما امکان میدهد تمرکز و انرژی جدیای صرف بازاندیشی مسیرهای Exercism از پایه و اجرای آن تغییرات در چند زبان کنیم. علاوه بر این، خوشحالم که اعلام کنم اریک شیربوم را برای رهبری این پروژه استخدام کردهایم.
پیشزمینه
جیمز و گری در دو سال گذشته بررسی کردهاند که زبانهایی که یک برنامهنویس به کار میبرد چگونه بر کارآمدی، خلاقیت و همکاری او اثر میگذارند. با پشتیبانی کمک مالی بنیاد اسلون به این نتیجه رسیدهاند که بخشی حیاتی از این پژوهش، درک این نکته است که برنامهنویسان چگونه زبانهای مختلف را میآموزند و دانش موجودشان چگونه یادگیری تازه را آسان یا دشوار میکند. این دقیقاً همان پرسشی است که خود ما دربارهی مسیرهای زبانی در Exercism از خود پرسیدهایم. تجربهی پیشین فرد چگونه بر آنچه در مسیرهای ما لازم دارد و بر سبک و محتوای مربیگریای که به آن بهترین پاسخ را میدهد اثر میگذارد؟
جیمز، گری و بنیاد اسلون تصمیم گرفتهاند بخشی از منابع خود را صرف این کنند که Exercism بتواند انرژی خود را بر بازطراحی مسیرها متمرکز کند تا این مسیرها بیشتر بر ویژگیهای منحصربهفرد هر زبان تمرکز کنند و بر پایهی تجربهی موجود دانشجو شخصیسازیشدهتر شوند.
پروژه
در هفتهها و ماههای آینده بسیار بیشتر دربارهی این موضوع خواهیم نوشت، اما میخواهم هدفهای اصلیای را که امیدواریم در این پروژه به آنها برسیم و همچنین تأثیری که بر Exercism خواهند گذاشت، بهطور خلاصه شرح دهم.
بازنگری در هستهی مسیرها: هدف مسیرهای ما آموزش زبانهای برنامهنویسی است، نه خود برنامهنویسی. میخواهیم این نکته را در مسیرهایمان بگنجانیم و مسیرهای اصلی خود را بازنگری کنیم تا بر آموزش آن دسته از «زبانویژه»ها که هر زبان را منحصربهفرد میکنند متمرکز شوند. قصد داریم تمرینهای تازهای طراحی و توسعه دهیم که هر یک بهطور مشخص بر یک زبانویژه تمرکز داشته باشد. مثلاً در Ruby ممکن است تمرینی داشته باشیم که پیمایش مجموعهها را به جای حلقهزنی آموزش میدهد، یا در JavaScript مفهوم Prototypes یا Binding را.
توسعهی پوشش جامع تحلیل خودکار برای تمرینهای اصلی: میخواهیم دانشجو بتواند بهسرعت از هستهی یک مسیر بگذرد. در طراحی تمرینها آگاهانه بر این تمرکز خواهیم کرد که چگونه برای راهحلهای ممکن پوشش ۹۵٪ تحلیل خودکار فراهم کنیم. این یعنی تعامل مربیان با آن ۵٪ دانشجوهایی خواهد بود که واقعاً به کمکشان نیاز دارند، یا با تمرینهای جانبی جذابتر و متنوعتر. در همین راستا میخواهیم ابزارهایی بسازیم که مربیانمان بتوانند بدون کاوش در کد پروژه در تحلیلگرهای خودکار مشارکت کنند.
ارائهی مربیگری خودکار و راهنماییهای متناسب بر پایهی تجربهی پیشین: وقتی مراحل پیشین را کامل کردیم، میخواهیم بررسی کنیم که چگونه بازخورد دانشجو را با تجربهی پیشین او هماهنگ کنیم، چه در قالب پاسخهای خودکاری که دریافت میکند و چه در قالب راهنماییهایی که به مربیان میدهیم. بازخوردی که فرد هنگام یادگیری یک زبان مشخص به آن نیاز دارد، بهشدت به دانش پیشین او بستگی دارد. نقاط اتکای او متفاوت است و ممکن است کنار گذاشتن دانش پیشینش دشوارتر باشد؛ پس با در نظر گرفتن تجربهی پیشین فرد میتوانیم تجربهای شخصیسازیشده و سودمندتر برای دانشجوها فراهم کنیم.
افزودن پشتیبانی از کدنویسی در مرورگر: در کنار بازنگری مسیرهای اصلی، یکی از پرتقاضاترین قابلیتهایمان را هم اضافه میکنیم: امکان حل تمرینها در مرورگر. این قابلیت جایگزین استفاده از CLI نمیشود؛ به باور ما CLI روشی بسیار ارزشمند برای یادگیری است. اما به افراد امکان میدهد بهسرعت زبانها را امتحان و کاوش کنند، بدون اینکه لازم باشد آن زبان و ابزارهایش را نصب کنند.
بودجه
بودجهای که از طریق جیمز و گری از بنیاد اسلون دریافت میکنیم، به جرمی، نیکول، چارلز و کارلو امکان میدهد تا در ۱۲ ماه آینده بیشتر وقت خود را صرف کار محصول، کار توسعه و معماری لازم برای رسیدن به هدفهای بالا کنند.
همچنین به ما امکان میدهد اریک را برای رهبری بخش «برنامهی درسی» پروژه استخدام کنیم. اریک از سال ۲۰۱۶ مشارکتکنندهای مهم در Exercism بوده است: نگهداری مسیرهای C#، F# و Scala، ساخت تحلیلگرها، طراحی تمرینها، مشارکت در project-specifications و مربیگری. او به زبانهای برنامهنویسی هم علاقهی زیادی دارد و بخش قابلتوجهی از مسیرهای Exercism را گذرانده است. از همه مهمتر، او در جامعهی Exercism فردی است که همه دوستش دارند و به او احترام میگذارند و بنابراین در جایگاهی است که میتواند به ما کمک کند بفهمیم چگونه مسیرها و سامانههایی طراحی کنیم که تفاوتها و شباهتهای ۵۰ زبان برنامهنویسی مختلف در آنها بدرخشد.
مشارکت
تیم مشخصی را برای کمک به این پروژه تشکیل خواهیم داد. این تیم مسئول تعریف زبانویژهها در مسیرهای مختلف، طراحی تمرینهای اصلی تازه، کمک به ما در طراحی چارچوبها و استانداردها برای تحلیلگرها و اندیشیدن به اینکه دانش پیشین چگونه بر یادگیری اثر میگذارد خواهد بود.
اگر مربی و نگهدارندهی باتجربهاید و دوست دارید در این پروژه مشارکت کنید، خوشحال میشویم از شما بشنویم. لطفاً در Slack برایم پیام بگذارید.
جمعبندی
برای این مرحلهی بعدی واقعاً هیجانزده هستیم. باور داریم که به Exercism کمک میکند گامهای بزرگی به جلو بردارد و بهتر به دانشجوها و مربیانمان خدمت کند. از جیمز، گری و بنیاد اسلون برای حمایتشان بسیار سپاسگزاریم.