چرا به جز زبان های گفتاری باید به یک زبان برنامه نویسی هم تسلط داشته باشیم؟

بسیاری از کسانی که در زمینه علوم کامپیوتری صاحب نظر هستند بر این باورند که فراگیری یک زبان برنامه نویسی تا حد بسیار زیادی شبیه به یادگیری زبانی گفتاری (همچون زبانهای فارسی، عربی، و انگلیسی) است.
تحقیقاتی که در زمینه ی فعالیت های مغزی بشر از طریق ام آر آی (MRI) انجام شده نیز شاهد این ادعا است. وقتی فردی در دستگاه ام آر آی قرار گرفته و از وی درخواست شده تا کاری را انجام دهد، دانشمندان مشاهده کردند که بخشهایی از مغز وی اکسیژن بیشتری استفاده کرده اند که این مسأله نشانگر آن است که بخش های فوق الذکر مرتبط با کاری هستند که فرد مورد آزمایش قبلاً انجام داده است. این تحقیق نشان داده است که مغز بشر در ارتباط با زبان های برنامه نویسی نیز عملکردی مشابه با شیوه ی ارتباطی با موسیقی، صحبت کردن، حل مسئله، حفظ کردن، تکرار کردن، استدلال کردن و غیره دارد.
به عنوان مثال واژگان هم آوا (مانند میز، چیز، و ریز) مغز را همان گونه درگیر میکنند که کد زیر درگیر می کند:
while (x > 1) { result = result * x; x–; }
اتفاق جالب تر این است که تحقیقات ثابت کردهاند که همانطور که ما ماهیچه های خود را تمرین می دهیم، میتوانیم مغز خود را نیز تمرین دهیم. صحبت کردن و برنامه نویسی، بخش واحدی از مغز را درگیر میکنند لذا این احتمال وجود دارد که برنامه نویسی منجر به بهبود عملکرد افراد در صحبت کردن شود. با این تفاسیر، میتوان نتیجه گرفت که فراگیری برنامه نویسی میتواند منجر به بهبود سایر مهارت های فردی شود. برای روشن شدن این مسئله، به ذکر مثالهای زیر اکتفا می کنیم:
اگر از علاقه مندان به سینما باشید، حتماً فیلم «درباره الی» را دیده اید. در بخشی از این فیلم، هنرپیشه ها به ترتیب میآیند و شروع به پانتومیم بازی میکنند تا سایر افراد در اتاق حدس بزنند که وی چه چیزی را مد نظر دارد. مغز مخاطبین با نگاه کردن به ژستهایی (gesture) که فرد میگیرد فرایند هایی را انجام میدهد زیرا باید مفهوم ژستهای فرد مقابل را کشف کند. زمانی که ما دستوری مثل public static void main در زبان برنامه نویسی جاوا را می بینیم، مغز ما دقیقاً همان کاری را میکند که در حین مواجهه با پانتومیم انجام می دهد. به عبارت دیگر، ما باید از روی کلید واژگان حدس بزنیم که مثلاً با متدی با سطح دسترسی public سروکار داریم که static است و غیره.
بسیاری از افراد در حین صحبت کردن بیش تر از از حرکات صورت، بدن و دستهای خود استفاده می کنند تا واژگان. به عبارت دیگر، به صورت کاملاً انتزاعی مفهومی را به طرف مقابل خود می فهمانند (مثلاً به نشانه تأیید، سر خود را تکان میدهند و یا اگر میخواهند عصبانیت خود را نشان دهند، اخم می کنند). در واقع این افراد از مفهومی تحت عنوان انتزاع (Abstraction) استفاده میکنند؛ این مفهوم در بسیاری از زبان های برنامه نویسی مورد استفاده قرار میگیرد (مثلاً در برنامه نویسی شئ گرا، این اصطلاح حاکی از آن است که به جای نمایش کلیه خصوصیات یک شئ صرفاً به ویژگی های ضروری آن شئ اکتفا شود). به طور خلاصه، برنامه نویسی راهی است که از آن طریق میتوان به صورت کاملاً منطقی به ارتباط با سایر افراد یا سایر برنامهها پرداخت.
بسیاری بر این باورند که ارتباط کلامی بهترین راه ارتباط با سایر افراد جامعه است، در حالی که ارتباط کلامیِ بدون زبان بدن و ژستهای مختلف، ارتباطی بی روح و بسیار ابتدایی خواهد بود (فردی را تصور کنید که مثل مجسمه ایستاده و شروع به صحبت کردن می کند، مسلماً کمتر کسی با ایشان ارتباط برقرار خواهد کرد). برنامه نویسی و ژست گرفتن زادگاه یکسانی در مغز انسان دارند. شاید روزی برسد که ما با ایما و اشاره های مختلف بتوانیم به جای کدزنی، برنامه نویسی کنیم!
شرلوک هولمز (Sherlock Holmes) کاراگاه معروفی بوده است، چرا که همواره به دنبال یافتن مضنون بود. این خصوصیت جستجو، استنتاج و نتیجهگیری جزء خصوصیاتی است که با برنامه نویسی وجه اشتراک بسیار زیادی دارد. برنامه نویسی یا بهتر بگوییم تفکر کامپیوتری نیاز به تحلیل بسیار موشکافانه داده ها دارد (شبیه به همان کاری که شرلوک هولمز برای یافتن قاتل می کرد). تحقیقات روی بخشهایی از مغز که مسئول انجام کارهای منطقی هستند حاکی از آن هستند که مغز ما پر شده است از دستورات if X then Y (دقیقاً مشابه به اتفاقاتی که در برنامه نویسی میافتد)!
درنتیجه، جای هیچ گونه شگفتی نیست که بخش واحدی از مغز ما درگیر مسائل منطقی است که در زندگی روزمره ما اتفاق میافتند و یا در نوشتن یک الگوریتم در یکی از زبانهای برنامه نویسی لازم هستند. در نتیجه، یکی از راه های بهبود اصول منطقی، یادگیری یک زبان برنامه نویسی است.
تحقیقاتی که از طریق ام آر آی بر روی مغز انسان انجام شده اند نشان میدهند که نواختن موسیقی و برنامه نویسی به نوعی ماهیت یکسانی دارند. به عبارت دیگر، فکر کردن در مورد نواختن یک قطعه موسیقی بسیار شبیه به نوشتن چند خط کد است. تحقیقات حاکی از آن هستند که زمانی که ما قصد نواختن یک قطعه موسیقی داریم، ناحیه ای تحت عنوان Brodmann`s Area 40 که کمی بالا تر از گوش قرار گرفته است فعال می شود. ده سال پس از این آزمایش، محققین از هفده برنامه نویس خواستند تا مادامی که داخل دستگاه ام آر آی قرار دارند اقدام به تفسیر چند خط کد کنند و جالب است بدانید که نتایج از بسیاری جهات مشابه با نواختن موسیقی بود (بهخصوص در ناحیه ی بالای گوش که در بالا به آن اشاره شد).
فرایند حل مسأله کاری است که ما هر روز با آن سر و کار داریم. از حساب کردن فاکتور خرید میوه گرفته تا محاسبه امور مالیاتی یک شرکت بزرگ. تمامی اینها به نوعی یک مسأله محسوب میشوند که فرد باید آنها را حل نماید. برنامه نویسی از این بعد هم شبیه به زندگی روزمره ما است چرا که در برنامه نویسی ما دائماً با مسائلی رو به رو میشویم که برای درست کار کردن برنامه، اپلیکیشن (application) یا وب اپلیکیشن (web application)، لازم است پاسخی برای تمامی مسائل یافته شود.
بنی آدم اعضای یکدیگرند که در آفرینش ز یک گوهرند
در این مثال اصلاً قصد نداریم در مورد انسانیت صحبت کنیم بلکه هدف ما نشان دادن ارتباط مابین قافیه و برنامه نویسی است. زمانی که شعری را میخوانیم که موزون است، ناحیه چهل از مغز انسان، که در بخشهای قبلی به آن اشاره شد، اکسیژن بیشتری مصرف میکند و این به معنی آن است که این ناحیه اصطلاحاً فعال تر (more active) می شود. جالب این است که وقتی ما کدهایی که تاحدودی موزون به نظر میرسند را مطالعه میکنیم نیز این بخش از مغز فعال تر می شود. برای مثال کد زیر را در نظر بگیرید:
if (index1 != –1)
System.out.println (“Subtracting is contained: ” + key1);
else
System.out.println (“Subtracting is not contained” + key1);
بنابراین نیاز به توضیح ندارد که شعر، موسیقی و برنامه نویسی فرایندهای ذهنی مشابه ای را نیاز دارند.
دانشمندان و محققین به اثبات رسانده اند که فراگیری برنامه نویسی میتواند به فراگیری سایر علوم و مهارت ها کمک کند. زبانهای برنامه نویسی به منظور حل کردن مسائل مختلف، انجام یک کار و در کل برداشتن باری از روی دوش کاربران برنامههای مختلف ایجاد شده اند. بنابراین ما با یادگیری اصول کد نویسی، اگر هم علاقهای به برنامه نویس شدن نداشته باشیم، راه را برای یادگیری سایر مهارت ها باز خواهیم نمود.
دانشگاه ام آی تی (MIT) آمریکا زبانی تحت عنوان زبان برنامه نویسی اسکرچ (scratch) را ابداع کرده است که از آن طریق بچههای هفت سال به بالا میتوانند اصول برنامه نویسی را در محیطی کاملاً گرافیکی و جذاب فرا گیرند اما جالب است است که در دانشگاه های معتبر دنیا افراد بزرگسالی هم که با اصول برنامه نویسی آشنا نیستند را به سمت این زبان برنامه نویسی محبوب سوق می دهند.
نظر شما چیست؟ آیا یادگیری برنامه نویسی تأثیری بر ارتقاء سایر مهارت های زندگی می گذارد؟ می توانید در زیر همین مطلب نظرات خود را با سایر اعضای انجمن جاوا کاپ به اشتراک بگذارید.
منبع :
[1] Code as a Second Language And Why It Matters