برنامه نویسی

ادامه سلام جهان – انجمن DEV

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

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

بیش از یک دهه به تدریس ادامه دادم. این به این دلیل نبود که من خوب بودم (من نبودم)، اما از بازخوردهایی که دریافت کردم نمی توانید این را تشخیص دهید. اکثر دانش‌آموزان به من رتبه‌های بالایی می‌دهند، چرا آنها به من امتیاز دادند؟

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

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

افرادی مثل من که معلم طبیعی نیستند باید در بخش های دیگر جبران کنند. یکی از بزرگترین ترفندهای من، رویکرد من به یادگیری است. من تئوری را به صورت دوره‌ای کوتاه تدریس می‌کنم در حالی که بر ساختن چیزی جالب تمرکز می‌کنم.

چرا ما Hello World را داریم؟

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

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

اگر این کار را بکنید می‌بازید و اگر نکنید بازنده می‌شوید. در این زمینه “برنده” بسیار کمی وجود دارد.

به همین دلیل است که ما “سلام جهان” را داریم. این فقط برای نشان دادن ظاهر زبان یا نحوه عملکرد ابزارها نیست. این یک “برد” است. هنگامی که نسخه‌ای از «سلام جهان» را کامپایل و اجرا می‌کنیم، «چیزی» را انجام می‌دهیم و این مهم‌ترین بخش است. این به دانش آموزان انگیزه می دهد که ادامه دهند و دو برابر شوند. حتی اگر هنگام تدریس چیزی را از دست دادم، آنها ممکن است تلاش بیشتری کنند تا به عقب برگردند و یاد بگیرند یا اگر احساس موفقیت کنند سؤالی بپرسند.

چند سال پیش گیمیفیکیشن یک “روند داغ” بود. خوشبختانه از مد افتاده است، من هرگز آن را دوست نداشتم. سرریز پشته عالی است (این بیانیه اعمال ناظران سرکش بیش از حد متعصب را تایید نمی کند)، اما چیزی که در مورد سرریز پشته دوست داشتم، گیمیفیکیشن نبود. این موفقیت است که به آن پاداش داد. من از امتیازها یا نشان ها لذت می برم نه به این دلیل که آنها امتیاز یا نشان هستند. من از آنها لذت می برم زیرا آنها را با دادن یک پاسخ عالی به دست آورده ام. این اصل موضوع و چیزی است که بیشتر تجربیات یادگیری از دست می دهند: برنده شدن.

در آن به پیروزی

من یک برنامه درسی مانند این را عملاً در هر دوره آموزشی “مبتدی” می بینم:

  • سلام دنیا

  • متغیرها

  • اگر اظهارات

  • حلقه ها

ما یک چیز را انجام می دهیم. سپس “مطالعه” است، هیچ “پاداش” برای موفقیت یا چیزی اندازه گیری شده که باعث ایجاد هیجان شود وجود ندارد. متوجه شدم که چرا ما به این روش تدریس می کنیم… مردم به این نظریه نیاز دارند. اما آیا اگر ما آن را به طور متوالی یاد بگیریم، این نظریه غرق می شود؟

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

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

https://www.youtube.com/watch?v=1Bum2gYETUQ

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

موفقیت بدست آمد

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

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

یک جنبه مهم ارتباط نقطه عطف است. فرد باید اهداف کوتاه مدت و بلند مدت را درک کند. وقتی درس می دهم با بحث در مورد آنچه که در پایان درس می دانند شروع می کنم: چرا باید توجه کنید؟

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

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا