یک اصل که در تمام زمینه های آموزشی اعمال آموزش برنامه نویسی می شود این است که انتقال تنها با تسلط به دست می آید [22]. بنابراین، دوره ها باید به یک زبان بچسبند تا زمانی که زبان آموزان به اندازه کافی با آن پیشرفت کنند تا بتوانند جنگل را از درختان تشخیص دهند. در حالی که یک برنامه نویس باتجربه می تواند،
برای مثال، آنچه را که درباره حلقه ها و فراخوانی های تابع می داند در یک زبان دریافت کند و از آن درک مجدد در زبانی با نحو یا معنایی متفاوت استفاده کند، یک تازه وارد هنوز نمی داند کدام عناصر دانش او مرکزی هستند و کدام یک. تصادفی هستند تلاش برای انتقال اجباری خیلی زود - به عنوان مثال، نیاز به تغییر از پایتون به جاوا اسکریپت برای گذراندن دوره برنامه نویسی وب در اوایل تحصیلشان - باعث سردرگمی زبان آموزان و کاهش اعتماد به نفس آنها می شود.نکته 8: از وظایف معتبر استفاده کنید
گوزیال و همکاران دریافتند که دستکاری کردن تصاویر، صدا و ویدئو توسط فراگیران در تکالیف برنامهنویسی اولیه باعث افزایش ماندگاری در دو معنا میشود: یادگیرندگان پس از تأخیر مجدداً مطالب را به خاطر میآورند و احتمال بیشتری برای ماندن در برنامههای محاسباتی داشتند [23]. این یک نمونه خاص از یک مشاهده بزرگتر است: یادگیرندگان وظایف معتبر را جذاب تر از نمونه های انتزاعی می یابند.
یک سوال کلاسیک در آموزش محاسبات (و ریاضیات) این است که آیا مسائل با زمینه (مثلاً یافتن بالاترین نمره دانش آموز) بهتر است یا بدون (مثلاً یافتن حداکثر لیست اعداد). بوویر و همکاران آموزش برنامه نویسی [24] این موضوع را با یک مطالعه چند دانشگاهی بررسی کرد و هیچ تفاوتی بین این دو پیدا نکرد. آنها پیشنهاد می کنند که چون تفاوتی ندارد، ملاحظات دیگر (مانند انگیزه) باید در اولویت قرار گیرند.
یکی از احتیاطات در مورد انتخاب زمینه این است که زمینه می تواند به طور ناخواسته برخی از افراد را کنار بگذارد در حالی که دیگران را به خود جذب می کند. برای مثال، بسیاری از مربیان از بازی های رایانه ای به عنوان نمونه انگیزشی برای کلاس های برنامه نویسی استفاده می کنند، اما برخی از زبان آموزان ممکن است آنها را با خشونت و کلیشه های نژادی یا جنسیتی مرتبط کنند یا به سادگی پیدا کنند. لذت بخش نیستند هر مثالی که انتخاب شود، هدف باید این باشد که فراگیران را در سریع ترین زمان ممکن از «سخت و خسته کننده» به «آسان و هیجان انگیز» منتقل کنیم [25].
برای کمک به دانشآموزان برای آموزش برنامه نویسی دستیابی سریع به یک نتیجه قابل مشاهده و رضایتبخش، مربیان میتوانند تعدادی کتابخانه نرمافزاری از پیش نوشته شده یا کد منبع ارائه کنند که دانشآموزان را به هدف نهایی نزدیکتر کند. این ایده که دانشآموزان باید از صفر شروع کنند و تمام کدهای مورد نیاز خود را بنویسند، یادگار دوران گذشته میکرو رایانههای خانگی است (و حتی در آن زمان هم درست نبود). وظیفه ای را انتخاب کنید که واقعاً می خواهید دانش آموزان در آن شرکت کنند و هر چیز دیگری را از قبل آماده کنید.نکته 9: به یاد داشته باشید که تازه کارها متخصص نیستند
این اصل توتولوژیک است، اما به راحتی فراموش می شود. افراد تازه کار متفاوت از متخصصان [26] برنامه ریزی می کنند و به رویکردها یا ابزارهای متفاوتی نیاز دارند. اگر از یک برنامه نویس حرفه ای بخواهید که فهرستی از اعداد صحیح را تکرار کند و میانگین را تولید کند، آنها می توانند با استفاده از دانش ذخیره شده از الگوی دقیق مورد نیاز، کد را در عرض چند ثانیه بنویسند. تازه کارها کاملاً متفاوت با این مشکل برخورد می کنند: آنها باید نحو را برای قسمت های مختلف به خاطر بسپارند، بدانند چگونه روی یک لیست تکرار کنند، بدانند چگونه از یک متغیر انباشت کننده استفاده کنند و غیره.
تازه کارها ممکن است نیاز داشته باشند تا زمانی را آموزش برنامه نویسی صرف فکر کردن در مورد یک الگوریتم روی کاغذ کنند (چیزی که برنامه نویسان متخصص به ندرت به آن نیاز دارند، زیرا آنها معمولاً اغلب الگوهای الگوریتمی رایج را به خاطر می سپارند). آنها ممکن است نیاز به منفی داشته باشندنمونه های تراکت در مراحل هدایت شده آنها ممکن است برای رفع اشکال مشکل داشته باشند. اشکال زدایی معمولاً شامل تضاد آنچه اتفاق می افتد با آنچه باید اتفاق بیفتد، است، اما درک یک تازه کار از آنچه باید اتفاق بیفتد معمولاً شکننده است.
تازه کارها فقط با انجام کاری که حرفه ای ها با سرعت کمتری انجام می دهند، حرفه ای نمی شوند. ما خواندن را با خواندن یک رمان کلاسیک و صرفاً آهسته تر نمی آموزیم. ما با استفاده از کتابهای کوتاهتر با کلمات سادهتر و چاپ بزرگتر آموزش میدهیم. بنابراین در برنامه نویسی باید مراقب باشیم که از کارهای کوچک و مستقل در سطحی مناسب برای تازه کارها، با ابزارهای متناسب با نیاز آنها و بدون تمسخر استفاده کنیم.نکته 10: فقط کد نویسی نکنید
نکته نهایی ما برای آموزش برنامه نویسی این است که آموزش برنامه نویسی برای انجام آن نیازی به برنامه نویسی ندارید. در مواجهه با چالشهای یادگیری نحو، معناشناسی، الگوریتمها و طراحی، نمونههایی که برای مربیان کوچک به نظر میرسند همچنان میتوانند به راحتی