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

همان‌طور که هنر می‌تواند ذهن شما را به طرق مختلف شکل دهد، برنامه‌نویسی کامپیوتر هم می‌تواند روی مغز شما و نوع فکر کردن شما تأثیر بگذارد. احتمالا این تأثیرات به شکلی است که انتظار آن را ندارید.

1- کدنویسی مدل‌های ذهنی شما را شکل می‌دهد

آیا مهم است که اول از همه چه زبان برنامه‌نویسی را برای یادگیری انتخاب می‌کنید؟ بله!

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

هیچ شکی نیست که نوع زبان‌های برنامه‌نویسی که برای یادگیری انتخاب می‌کنید نحوه فکر کردن شما را تغییر می‌دهد. یکی از تأثیرگذارترین دانشمندان کامپیوتر در طول تاریخ به‌نام Edsger Dijkstra در این رابطه گفت:

ابزاری که استفاده می‌کنیم تأثیر بسزایی روی عادت‌ها و در نتیجه توانایی‌های فکری ما می‌گذارند.

وی در ادامه گفت: “استفاده از COBOL ذهن را فلج می‌کند، به‌همین دلیل آموزش آن باید به‌عنوان یک اقدام جنایی شناخته شود.” او در جایی دیگر گفت: “آموزش برنامه‌نویسی خوب به دانش‌آموزانی که تجربه کار با بیسیک را داشته‌اند کار سخت و دشواری است. چون برنامه‌نویسان بالقوه از نظر ذهنی دچار مشکل شده‌اند.”

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

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

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

2- برنامه‌نویسی به تقویت سلامت مغز کمک می‌کند

بعضی‌ها معتقد هستند که مغز هم یک عضله است و اگر می‌خواهید تندرست بمانید باید آن را ورزش دهید. اما آیا واقعا این حرف درست است؟ و اگر صحت دارد، آیا برنامه‌نویسی را می‌توان یک ورزش ذهنی دانست که روی سلامت مغز تأثیرگذار باشد؟

در تحقیق جامعی که در سال 1991 انجام شد در خصوص تأثیرات برنامه‌نویسی کامپیوتر بر روی نتایج شناختی مطالعه شد و در آخر مشخص شد دانشجویانی که تجربه برنامه‌نویسی کامپیوتر داشتند در تست‌های مربوط به توانایی‌های شناختی از نظر امتیازی 16 درصد بالاتر از آنهایی بودند که دانش برنامه‌نویسی کامپیوتر نداشتند.

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

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

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

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

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

توجه داشته باشید که هیچ‌وقت برای شروع یادگیری کدنویسی و برنامه‌نویسی دیر نیست. برنامه‌نویسی برای سلامت ذهن شما فوق‌العاده است.

3- کدنویسی فقط ریاضی و منطق نیست

در سال 2014 تحقیقی مبتنی بر اسکن‌های fMRI انجام شد تا فعالیت مغزی که مشغول برنامه‌نویسی است و تلاش می‌کند تا اسنیپت‌های کد را درک کند مورد بررسی قرار دهد. نتایج این تحقیق نشان داد که 5 ناحیه مشخص از مغز درگیر درک و شناخت کدها هستند:

– BA 6: ژیروس میانی (توجه، زبان، حافظه در حال کار)

– BA 21: ژیروس میانی موقت (بازیابی حافظه معنایی)

– BA 40: لوبول جداری پایین‌تر (حافظه در حال کار)

– BA 44: ژیروس جلویی پایین‌تر (حافظه در حال کار)

– BA 47: ژیروس جلویی پایین‌تر (زبان، حافظه در حال کار)

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

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

البته، این تحقیق چندان کامل نیست، مسئله‌ای که محققان هم به آن اشاره دارند:

– اسنیپت‌های موجود در این تحقیق کمتر از 20 خط کد و محدود به زمان بودند، یعنی آنقدر قوی نبودند که چالش ایجاد کنند.

– شواهد نشان نمی‌دهند که زبان‌های برنامه‌نویسی مانند زبان‌های خارجی هستند، فقط اینکه همان منطقه از مغز را شامل می‌شوند.

– شرکت‌کنندگان نباید کدهای خودشان را می‌نوشتند، که به احتمال زیاد بخش‌های دیگری از مغز را درگیر می‌کند.

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

پس این تحقیق چندان هم بی‌ثمر نیست. برنامه‌نویسی فقط یک فعالیت مرتبط با بخش چپ مغز نیست.

منبع :shabakeh-mag

6- Blockly Games

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

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

7- RoboZZle

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

حتی بزرگسالانی که به پازل علاقه دارند هم می‌توانند این بازی را انجام دهند.

8- CodeMonkey

برخلاف اکثر گیم‌هایی که تا به‌حال معرفی کردیم، CodeMonkey اساسا برای معلمان نوشته شده است. به‌همین دلیل است که قیمت آن نسبت به ماینکرافت بیشتر است.

CodeMonkey تماما در داخل مرورگر اجرا می‌شود. نکته‌ای که باید به آن اشاره کرد آن است که به‌نظر می‌رسد این بازی بیشتر برای کروم نوشته شده است. اجرای آن در مرورگرهای دیگر می‌تواند منجر به بروز رفتارهای غیرمنتظره شود یا حتی ممکن است گیم به‌درستی کار نکند.

9- Machineers

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

برای اجرا، حتما باید آن‌را دانلود کنید. Machineers برای پلتفرم‌های ویندوز، لینوکس و macOS در دسترس است.

10- Cargo-Bot

Cargo-Bot از چند جهت، خاص است. اول اینکه فقط مخصوص آیپد است. دوم اینکه روی یک آیپد ساخته شده است. سازندگان Cargo-Bot این گیم را با استفاده از Codea app طراحی کردند.

گیم Cargo-Bot از 36 پازل تشکیل شده و بهترین گیم موجود برای تشویق هرچه بیشتر کودکان به برنامه‌نویسی است.

11- Scratch

Scratch چیزی بیشتر از یک گیم برنامه‌نویسی است. یک پلتفرم کامل که کاربران می‌توانند هم گیم‌های ارسال شده سایر کاربران را بازی کنند و هم گیم‌های خودشان را روی آن قرار دهند. بیشتر جذابیت Scratch مانند ماینکرافت امکان ساخت بازی‌های خود کودکان است.

Scratch که توسط Lifelong Kindergarten Group در MIT Media Lab ساخته شده کاملا رایگان است.

منبع:shabakeh-mag

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

معمولا کودکان علاقه چندانی به شروع یادگیری اصول اولیه هیچ زبانی ندارند. اما اگر از روش‌های جالب و جذاب استفاده می‌کنید می‌توانید آنها را علاقمند به یادگیری برنامه‌نویسی کنید.

لیستی از بهترین گیم‌های موجود برای آموزش برنامه‌نویسی به کودکان

1- ماینکرافت

ماینکرافت (Minecraft) هیچ احتیاجی به معرفی ندارد. حتی اگر تا به‌حال بازی ماینکرافت را انجام نداده باشید حتما نام آن به گوش‌تان خورده است. این روزها ماینکرافت روی هر دستگاهی که فکرش را بکنید وجود دارد. جالب اینکه کودکان نمی‌توانند از ماینکرافت دست بکشند. همین محبوبیت بیش از اندازه باعث می‌شود تا ماینکرافت یکی از بهترین گیم‌ها برای آموزش کدنویسی و برنامه‌نویسی برای کودکان باشد.

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

ماینکرافت را برای پلتفرم‌های گوناگون از لینک‌های زیر دانلود کنید:

ویندوز

مک

لینوکس

iOS

اندروید

2- CodeCombat

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

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

3- Lego Mindstorms

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

حتی کودکان برای برنامه دادن به کیت‌های جدیدتر EV3 نیازی به کامپیوتر ندارند. اپ برنامه‌نویس EV3 که هم برای اندروید و هم برای iOS در دسترس است به شما اجازه می‌دهد تا روبات خود را با تنها داشتن یک تبلت بسازید و به آن برنامه بدهید.

4- لایت‌بات

لایت‌بات (Lightbot) که هسته آن پازل است با هدف آموزش مهارت‌های برنامه‌نویسی طراحی شده است. جالب اینکه فردی که با آن کار می‌کند اصلا متوجه نمی‌شود که در حال یادگیری برنامه‌نویسی است. لایت‌بات از لحاظ شهرت به پای ماینکرافت یا LEGO نمی‌رسد اما به‌نوبه خود بسیار خوب عمل کرده است و تا به‌امروز بیشتر از 20 میلیون کودک با لایت‌بات بازی کرده‌اند.

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

لایت‌بات را بر حسب دستگاه خود از لینک‌های زیر دانلود کنید:

iOS

اندروید

5- Code Monster

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

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

منبع:shabakeh-mag