Spaced Repetition: روشی مؤثر برای یادگیری یک زبان زنده و یک زبان برنامه‌نویسی


Spaced Repetition که به صورت تحت‌الفظی می‌شود معادلی همچون «تکرار در فواصل زمانی مشخص» برایش در نظر گرفت، تا حد قابل‌توجهی می‌تواند بر معضل فراموشی واژگان جدید در حین فراگیری زبانی همچون انگلیسی و یا فراموشی توابع یک زبان برنامه‌نویسی فائق آید (جالب است بدانید که فِلش‌کارت‌ها نیز از همین ترفند برای نهادینه کردن نکات آموزشی استفاده می‌کنند.)

منحنی فراموشی چیست؟
تئوری Spaced Repetition مبتنی بر ایده‌ای است که روانشناس آلمانی Hermann Ebbinghaus در قرن نوزدهم مطرح کرد تحت عنوان Forgetting Curve (منحنی فراموشی) که این نمودار کاهش ضریب نگهداری چیزهایی که از حفظ کرده‌ایم را در طول زمان نشان می‌دهد (برای درک بهتر این موضوع، Forgetting Curve را می‌توانید نقطهٔ مقابل Learning Curve در نظر بگیرید.)

سازوکار منحنی فراموشی بدین شکل است که پس از فراگیری چیزی جدید، سرعت فراموشی آن بسیار بالا است و شاهد این ادعا هم درس خواندن برای شبِ امتحان است که گرچه کمک می‌کند امتحان خود را پاس کنیم، اما ماندگاری آنچه شبِ قبل از امتحان خوانده‌ایم بسیار پایین است به طوری که تا چند روز پس از امتحان احتمال خیلی ضعیفی وجود دارد که آموخته‌های خود را به خاطر آوریم اما نکتهٔ جالب اینجا است که اگر طبق یک برنامهٔ زمان‌بندی‌شده و در بازه‌های زمانی مختلف دست به مرور (ریویو) مطالب آموزشی بزنیم، منحنی فراموشی به مرور کم‌شیب و کم‌شیب‌تر شده تا جایی که مطالب از حافظهٔ کوتاه‌مدت به حافظه‌ٔ بلندمدت ما منتقل می‌شوند به طوری که داریم:

 Spaced Repetition: روشی مؤثر برای یادگیری یک زبان زنده و یک زبان برنامه‌نویسی

برای درک بهتر این موضوع، فرض کنیم قصد داریم واژه‌ای همچون Miscellaneous را حفظ کنیم. همان‌طور که در تصویر فوق می‌بینیم، به محض حفظ کردن این واژه (روز صفر)، منحنی فراموشی بسیار پرشیب است به طوری که نهایتاً ظرف دو الی سه روز آن را به دست فراموشی خواهیم سپرد اما این در حالی است که اگر در بازه‌های زمانی مشخصی اقدام به مرور این لغت کنیم، به مرور زمان منحنی فراموشی کم‌شیب و کم‌شیب‌تر می‌شود تا جایی که نهایتاً می‌توانیم اطمینان حاصل کنیم که از حافظهٔ کوتاه‌مدت به حافظه‌ٔ بلندمدت منتقل شده است. چنانچه بخواهیم سازوکار Spaced Repetition را در قالب یک فرمول نشان دهیم، خواهیم داشت:

R=e-ts

Retrievability یا به اختصار R نشانگر این است که میزان بازیابی اطلاعات از حافظه چه‌قدر با سهولت انجام می‌گیرد و Stability یا به اختصار S نشان‌دهندهٔ ماندگاری داده‌ها در حافظه بوده و time یا به اختصار t هم نشانگر عامل زمان است.

یادگیری یک زبان زنده و یک زبان برنامه‌نویسی وجوه اشتراک بسیاری دارند که در مقاله‌‌ای تحت عنوان استراتژی‌هایی برای یادگیری یک زبان خارجی و یک زبان برنامه‌نویسی این موضوع بررسی شده است اما در عین حال یادگیری زبانی همچون انگلیسی و یا فراگیری یک زبان برنامه‌نویسی همچون پی‌اچ‌پی در سنین بالا به مراتب دشوارتر می‌شود و اینجا است که ابزاری رایگان و اپن‌سورس تحت عنوان Anki این امکان را در اختیار ما قرار می‌دهد تا خواه برای روش‌های یادگیری و آموزش زبان انگلیسی و خواه برای آموزش برنامه‌نویسی آن را مورد استفاده قرار دهیم. به طور مثال،‌ کد جاوااسکریپت زیر را در نظر می‌گیریم:

var a = 3 + '5';
var b = 3 * '5';
console.log(a);
console.log(b);

در چنین شرایطی فرض را بر این می‌گذاریم که مفسر جاوااسکریپت یا هر دو استرینگ '5' را تبدیل به عدد صحیح کرده و خروجی به ترتیب ۸ و 15 می‌شود یا اینکه عدد صحیح سه را به استرینگ '3' تبدیل کرده و خروجی به ترتیب ۳۵ و 15 می‌شود! برای درک بهتر این موضوع، اسکریپت فوق را یک بار اجرا می‌کنیم:

35
15

می‌بینیم که مفسر جاوااسکریپت در مورد اپراتور + عدد صحیح را به استرینگ مبدل می‌سازد اما در مورد اپراتور * استرینگ را به اینتِجر تبدیل کرده است (برای کسب اطلاعات بیشتر در این خصوص، می‌توانید به آموزش آشنایی با انواع Data Type در زبان برنامه‌نویسی جاوااسکریپت مراجعه نمایید.)

علاوه بر جاوااسکریپت، سایر زبان‌های برنامه‌نویسی نیز ترفندهای خاص خود را دارند و این در حالی است که به خاطر سپردن تک‌تک آن‌ها کار به نسبت دشواری است اما با استفاده از روش Spaced Repetition می‌توان تا حد زیادی بر این معضل فائق آمد بدین صورت که طبق یک سازوکار زمان‌بندی‌شده باید این نکات را در بازه‌های زمانی مشخصی تکرار کرد تا ملکهٔ ذهن شوند تا در آینده حتی بدون فکر کردن بتوان تَسک مورد نظر را عملی ساخت.

به عنوان مثالی دیگر که اغلب اوقات به دست فراموشی سپرده می‌شود، کامندهای #لینوکس است که هر دفعه که به آن‌ها نیاز پیدا می‌کنیم باید در گوگل جستجو کنیم! به طور مثال، کامندی که برای نصب یک فایل اجرایی مورد استفاده قرار می‌گیرد را مد نظر قرار می‌دهیم:

$ sudo dpkg -i /path/to/deb/file

کامند و آپشن dpkg -i چیزی نیست که به راحتی ملکهٔ‌ ذهن شود و نیاز به تمرینی داریم تا آن‌ها ملکهٔ ذهن خود نماییم و اینجا است که Spaced Repetition می‌تواند کارساز واقع گردد بدین صورت که اولاً در حین استفاده از کامندهایی از این دست هرگز آن‌ها را کپی/پیست ننماییم بلکه آن‌ها را تایپ کنیم که در این صورت احتمال ماندگاری در ذهن بیشتر می‌گردد و ثانیاً باید در بازه‌های زمانی مختلف (مثلاً پس از یک روز، سه روز، یک هفته، دو هفته، سه هفته و نهایتاً یک ماه) آن را به کار بریم تا اطمینان حاصل کنیم این کامند ملکه‌ٔ ذهن‌مان شده است.

جمع‌بندی
Spaced Repetition روشی است که برای به خاطر سپردن هر نوع داده‌ای می‌تواند مورد استفاده قرار گیرد اما نکتهٔ مهم آن است که این روش به درستی مورد استفاده قرار گیرد. اپلیکیشن‌های بسیاری به بازار عرضه شده‌اند که با استفاده از این استراتژی پروسهٔ یادگیری را تسهیل می‌کنند اما حتی اگر علاقمند به استفاده فناوری‌هایی از این دست نباشید هم به سادگی قادر خواهید بود تا طبق یک برنامه‌ریزی منظم برای مرور آنچه فرا گرفته‌اید، آموخته‌های خود را نهادینه نمایید (جهت آشنایی با اپلیکیشن‌های برتر این حوزه، می‌توانید به مقالهٔ نقد و بررسی اپلیکیشن‌های آموزش زبان مراجعه نمایید.)

حال نوبت به نظرات شما می‌رسد. آیا تاکنون این روش را برای یادگیری زبانی همچون انگلیسی یا یک زبان برنامه‌نویسی به کار گرفته‌اید؟ اگر پاسخ مثبت است، می‌توانید نظرات، دیدگاه‌ها و تجربیات خود را با دیگر کاربران سکان آکادمی به اشتراک بگذارید.