نحوه آموزش برنامه نویسی

برنامه نویسی یک موضوع چالش برانگیز برای آموزش است. تعداد کمی از مزارع روی بسیاری از لایه های انتزاع قرار دارند. از پایه ترانزیستورها ، به 1 و 0 های باینری ، به زبان های سریع و سطح پایین شعله ور مانند C ، به زبان های کامپایل و تفسیر شده مانند پایتون یا جاوا اسکریپت ، و در آخر به فریم هایی که روی آن قرار دارند . این قبل از آن است که فکر کنید چیزی را در وب ارسال کنید. توجه داشته باشید مطلب ابتدا در سایت یوزرکد منتشر شده است و این فقط یک رونوشت از مطلب اصلی میباشد.

 

پرده را خیلی سریع بالا ببرید و یادگیرنده خطر گم شدن در این لایه های انتزاع را دارد. آموزش برنامه نویسی به کسی بیشتر مربوط به مواردی است که شما آموزش نمی دهید. حداقل تا وقتش فرا برسد.

 

من یک برنامه نویس خودآموخته هستم ، همچنین اصول برنامه نویسی را به چند نفر آموزش دادم. ابتدا به عنوان دستیار معلم دبستان برای معلمین در مدارس دولتی که می خواستند کد نویسی را یاد بگیرند. بعداً ، به عنوان مربی ، مهارت های برنامه نویسی پناهندگان را آموزش می دهم که امیدوارم منجر به شغل در صنعت فن آوری شود. من هم دانشجو بوده ام و هم معلم بوده و در هر دو نقش اشتباهاتم را مرتکب شده ام و از آنها آموخته ام. من در حال نوشتن این مقاله هستم زیرا آموزش کسی برای حمایت از زندگی خود با برنامه نویسی آسان نیست و می خواهم آنچه را که آموخته ام به اشتراک بگذارم.

 

منظور از “آموزش برنامه نویسی” چیست؟

چه کسی واقعاً می داند چگونه برنامه نویسی کند؟ اگر هدف آنها ساخت یک بازی Executioner برای خط فرمان باشد ، سطح دانش مورد نیاز بسیار کمتر از کسی است که هدفش ایجاد پرفروش ترین بازی موبایل است. اهداف شما به عنوان یک معلم باید بر اساس اهداف دانش آموز هدایت شود.

 

خواهید فهمید که بیشتر افرادی که می خواهند برنامه نویسی یاد بگیرند اهداف بلند پروازانه ای مانند یافتن شغل به عنوان توسعه دهنده ارشد یا ایجاد پرفروش ترین اپلیکیشن موبایل دارند. محال است که آنها را تا آخر با دست نگه دارید. در عوض ، هدف شما باید کمک به آنها برای دستیابی به خودکفایی در برنامه نویسی باشد. در این مرحله ، آنها می توانند به تنهایی به اهداف خود ادامه دهند.

اگر قیاس را دوست دارید ، این می تواند کمک کند. تصور کنید کودکی را می شناسید که روزی آرزو دارد دوچرخه سوار مسابقه شود. مشکل این است که در حال حاضر آنها حتی نمی توانند دوچرخه سواری کنند. اولین هدف شما احتمالاً این خواهد بود که آنها را با کمک دوچرخه های ورزشی سوار کنید. هنگامی که آنها در دوچرخه راحت شدند ، چرخ های تمرینی را برداشته و کمی فشار دهید.

و بنابراین با برنامه نویسی هم پیش می رود. شما می خواهید دانش آموزان خود را به مرحله ای برسانید که بتوانید به آنها فشار بیاورید و آنها به تنهایی موفق به یادگیری مفاهیم جدید و رفع اشکال شوند. به عبارت دیگر ، شما می خواهید به آنها کمک کنید تا به خودکفایی برنامه نویسی برسند.

 

تنظیم محیط تدریس

زبان آموزان وقتی می بینند انگشتان شما از روی صفحه کلید می رقصند ، کد می نویسند و دستوراتی را با سرعت غیرممکن اجرا می کنند ، پیشرفت کمی دارند. آنها بدون اینکه درک واقعی داشته باشند ، به سرعت به حالت غیرفعال در می آیند.

 

تا زمانی که ناامیدانه گیر نکنند ، دانش آموز شما باید کیبورد را تا آنجا که ممکن است انسانی رانندگی کند. بله ، این ممکن است به معنای دشوار نوشتن دستورات بلند برای تایپ کردن آنها در ترمینال باشد و اشکالی ندارد! آنها هنوز چیزهایی بیشتر از آنچه شما فقط برای آنها انجام می دهید یاد می گیرند.

 

محیط های رو در رو. یکی از بزرگترین اشتباهاتی که می بینم مربیان برنامه نویسی مرتکب می شوند ، تشویق برنامه نویسان برای اولین بار به استفاده از ابزارهای ناآشنایی مانند Vim است که بار شناختی غیرضروری را برای زبان آموز ایجاد می کند. آنها ممکن است بتوانند فشار بیاورند اما دو برابر کندتر خواهند شد. درعوض ، آنها را با یک محیط توسعه شروع کنید که به آنها امکان می دهد از ماوس استفاده کنند ، برای قرار دادن نشانگر کلیک کرده و با کلیدهای جهت دار حرکت می کنند. این نوع ویرایشگر کد بیشتر شبیه ابزارهایی است که از قبل با آنها راحت هستند ، مانند Microsoft Word یا مرورگر. با این کار منابع شناختی دانش آموز آزاد می شود تا کاملاً روی یادگیری برنامه نویسی متمرکز شود. آنها سریعتر پیشرفت می کنند و شما همیشه می توانید آنها را به ویرایشگر مورد علاقه خود معرفی کنید ، زیرا آنها اصول را فرا گرفتند.

 

برخط. کالیبره ابزارهای به اشتراک گذاری صفحه موجود ، امکان آموزش برنامه نویسی از راه دور به کسی را فراهم می کند و نکات بخش قبلی همچنان پابرجا هستند. علاوه بر این ، اطمینان حاصل کنید که کیفیت میکروفون شما خوب است ، اتصال شما پایدار است و نویز پس زمینه را به حداقل برسانید. یک کافه یا فضای کار می تواند از وقتی تنها هستید مکان خوبی برای کار باشد ، اما یک اتاق آرام بهترین محیط برای آموزش و یادگیری از راه دور است.

 

از اهداف دانشجو به عقب کار کنید

روش شما باید به این دلیل باشد که دانش آموز شما می خواهد برنامه نویسی را یاد بگیرد. اگر آنها رویای ایجاد یک بازی موبایل را دارند ، منطقی نیست که با ایجاد یک وب سایت (و بالعکس) آموزش را شروع کنند. هر کاری که تعیین می کنید باید به نوعی دانش آموز را به سمت هدف خود نزدیک کند. این به دانش آموز شما روحیه می بخشد. من مشاهده کرده ام که یکی از مهمترین دلایلی که دانش آموزان از یادگیری برنامه نویسی منصرف می شوند این است که وقتی نمی توانند ببینند آنچه که یاد می گیرند چگونه به هدف کلی آنها کمک می کند ناامید می شوند.

 

پروژه ای ایجاد کنید که مربوط به هدف یادگیرنده باشد

بیشتر فراگیران اهدافی دارند که بسیار فراتر از سطح مهارت فعلی آنها است. بهترین راه برای شروع این است که از آنها بخواهید چیزی را بسازند که یک نسخه کاملاً ساده و کوچک از آنچه در نهایت دوست دارند بسازند باشد.

 

اگر دانشجو می خواهد به عنوان یک توسعه دهنده شغل پیدا کند ، از آنها بخواهید یک وب سایت نمونه کارهای یک صفحه ای بسازند. برای اولین گذر ، فقط از HTML استفاده کنید ، سپس CSS را اضافه کنید. سپس مقداری JavaScript اضافه کنید. و سرانجام ، وقتی منطقی باشد می توانید چارچوبی را معرفی کنید.

اگر دانش آموز می خواهد یک بازی موبایل سه بعدی اصلی بسازد ، از آنها بخواهید با ساخت یک کلون 2D Tetris شروع کنند.

اگر دانشجو می خواهد دانشمند داده شود ، از آنها بخواهید با یک مجموعه داده مانند این لیست از مسافران تایتانیک کار کنند.

فراگیران باید مشق شب داشته باشند

خودکفایی با برنامه نویسی به یادگیرندگان نیاز دارد که کارهای بیشتری را به تنهایی از زمانی که با شما هستند انجام دهند. در روزهای ابتدایی این مسئله می تواند دشوار باشد زیرا آنها در هنگام گیر کردن دانش کافی برای رفع اشکال ندارند. با افزایش مهارت در فراگیری زبان ، شما باید آهسته آهسته یادگیری خود را تغییر دهید تا در درجه اول به تنهایی انجام شود ، این امر به صورت یک به یک انجام می شود و فقط به اشکال زدایی و بازخورد درباره کار آنها اختصاص می یابد.

 

مشق شب. png

 

فراگیران باید تکالیف خود را انجام دهند

این ممکن است خشن به نظر برسد ، اما من هرگز ندیده ام کسی با موفقیت برنامه نویسی را یاد بگیرد که در زمان خودشان زیاد روی آن کار نکرده باشد. چیزهای زیادی برای یادگیری وجود دارد که پوشش دادن همه آنها در جلسات یک به یک غیرممکن است. زبان آموزانی که فقط در جلسات شما برنامه ریزی می کنند و تکالیف محوله را انجام نمی دهند مانند ایده دانستن نحوه برنامه ریزی اما متأسفانه آماده نیستند که کارهای لازم را انجام دهند. من می گویم که تقریباً از هر 5 نفر از کسانی که سعی می کنند برنامه نویسی را یاد بگیرند ، در این اردوگاه حضور دارند و آنها می توانند خیلی راحت وقت زیادی را صرف کنند در حالی که پیشرفت بسیار کمی دارند.

 

گاهی اوقات زندگی مانع می شود ، اما شما می توانید بین شخصی که بیشترین تلاش خود را برای تمرین خارج از کلاس انجام می دهد و فردی که از تکالیف خود اجتناب می کند تفاوت را تشخیص دهید. این الزام را به شما می آموزد که برای تدریس شما ، زبان آموز باید در بیشتر هفته ها ، کار را خارج از کلاس انجام دهد. در غیر این صورت ممکن است هر دو وقت خود را تلف کنید.

 

سبک یادگیرنده را مشخص کنید

من مشاهده کرده ام که بیشتر افراد هنگام برنامه نویسی یکی از سه سبک یادگیری را دارند.

 

آنالوگ شناسان

اگر آنها بتوانند بدون افتادن از دوچرخه تعادل خود را حفظ کنند ، بقیه سفر به آنها بستگی دارد. آنها می دانند که چگونه تعادل را حفظ کنند ، چگونه رکاب بزنند و چگونه سرعت را بگیرند. آنها تمام مهارتهای اساسی لازم برای رسیدن به هدف خود را دارند. شما می توانید در این راه راهنمایی و مشاوره کنید ، اما در نهایت موفقیت آنها با توجه به تمایل آنها به انجام ساعتها ، روزها و هفته ها در یک عمل هوشمندانه تعیین خواهد شد.

این زبان آموزان قیاس هایی را دوست دارند که مفاهیم برنامه نویسی را با مفاهیم دنیای واقعی که قبلاً با آنها آشنا شده اند ارتباط دهند. هنگامی که من برای اولین بار برنامه نویسی را یاد می گرفتم ، مفید بود که فکر کنم یک متغیر مانند جعبه ای باشد که روی آن نامی نوشته شده است. به همین ترتیب ، فکر کردن روی روش ها / توابع به عنوان دستور العمل برای من مفید بود. برای برخی از زبان آموزان ، تشبیه مناسب انتخاب شده به یک مفهوم کمک می کند تا تقریباً بلافاصله کلیک کند. سایر دانش آموزان صحبت درباره “جعبه” و “دستور العمل” را بسیار گیج کننده می دانند! این زبان آموزان در یکی از دو سبک دیگر قرار می گیرند.

چگونه می توان آنالوگ شناسان را شناسایی کرد: آنها قیاس های خاص خود را برای توضیح همه چیز ارائه می دهند.

غواصان عمیق برخی از فراگیران نیاز سیری ناپذیری دارند که در زیر لایه های انتزاع نگاه کنند و به درستی درک کنند که چگونه کار می کنند. هنگامی که با مفهوم متغیرها آشنا می شویم ، اولین سوال آنها اغلب این خواهد بود: چگونه و کجا مقدار یک متغیر ذخیره می شود؟ توضیحات دست تکان دادن به راحتی برای این زبان آموزان کاهش پیدا نمی کند. خواهید فهمید که آنها مرتباً دانش علوم رایانه ای خود را آزمایش می کنند. اگر جواب یکی از س theirالات آنها را نمی دانید ، برای تحقیق در مورد آن وقت بگذارید. این باعث می شود شما یک برنامه نویس بهتر باشید.

نحوه شناسایی غواصان عمیق: آنها سالات چالش برانگیز زیادی را مطرح می کنند.

3. آزمایشگران. برخی از زبان آموزان می خواهند شما دیگر صحبت نکنید و اجازه دهید آنها خودشان آن را امتحان کنند! آنها با آزمایش موارد در خط فرمان ، اختصاص و اختصاص مجدد متغیرها ، دادن نام های عجیب و غریب و آزمایش محدودیت های سیستم تا زمان شکستن ، در مورد متغیرها یاد خواهند گرفت. برای این زبان آموزان ، پیام خطا نشانه پاداش این است که آنها یکی از مرزهای سیستم را یاد گرفته اند. این دانش آموزان شکوفا می شوند وقتی شما به آنها ابزار آزمایش و خلاص شدن از مسیر را بدهید.

نحوه شناسایی آزمایشگران: آنها قبل از اینکه شما توضیح آن را برای آنها تمام کنید ، با یک مفهوم جدید شروع به آزمایش می کنند.

هر بار یک ابزار / زبان / چارچوب جدید را معرفی کنید

با ارائه چیزهای جدید بسیار زیاد به یکباره ، می توانید زبان آموز را تحت فشار قرار دهید. معلمان برنامه نویسی غالباً فراموش می کنند که چه تعداد ابزار ، مفاهیم و مجموعه مهارتهای مختلف حتی در اساسی ترین کارهای برنامه نویسی دخیل هستند. به عنوان مثال ، بیشتر افرادی که فکر می کنند خیلی سریع در حال برنامه نویسی هستند ، می فهمند که آموزش استفاده از Git یا خط فرمان به کسی نیز می تواند به همین سختی باشد!

 

شروع کنید تا جایی که ممکن است پایین بیفتید. برای کسی که سعی در یادگیری علم داده دارد ، قبل از اینکه بخواهد اولین اسکریپت پایتون خود را بنویسد ، از او بخواهید که راحت در اطراف خط فرمان حرکت کند و دستورات اساسی Python را در REPL اجرا کند. برای شخصی که قصد ایجاد وب سایت را دارد ، قبل از معرفی CSS از وی بخواهید که فقط با استفاده از HTML نسخه اول را بسازد.

 

بدون زمینه مناسب ، این پروژه های ساده می توانند خیلی دور از اهداف نهایی زبان آموز باشند. وقت بگذارید و توضیح دهید که چیزهایی که یاد می گیرند به آنها کمک می کند تا پیشرفت کنند.