دانستنی‌ها

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

بسیاری از کسانی که در زمینه علوم کامپیوتری صاحب نظر هستند بر این باورند که فراگیری یک زبان برنامه نویسی تا حد بسیار زیادی شبیه به یادگیری زبانی گفتاری (همچون زبان‌های فارسی، عربی، و انگلیسی) است.

تحقیقاتی که در زمینه ی فعالیت های مغزی بشر از طریق ام آر آی (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

 

 

 

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

‫4 دیدگاه ها

  1. خوشحال شدم که با خبر شدم به برخی از دانش آموزان کار با چرتکه را آموزش داده اند. من خودم با آن کار کرده ام و اثراتش را تجربه کرده ام، و می دانم آن دانش آموزان چه بهره ای از این تمرین برده اند؛ و خواهند برد. من درک کرده ام که تعداد سلول های فعال مغز افزایش می یابند، که بعدا در افزایش حافظه؛ و در حل مسائل دیگر کمک زیادی به فرد می کند. با آموزش این هنر نوعی برنامه نویسی روی مغز انجام می شود که در ریاضیاتِ پایه؛ جمع و تفریق اعداد؛ و حتی ضرب و تقسیم اعداد به کمک دانش آموز می آید. برای یاد گیری دوچرخه سواری؛ شنا؛ کار با یک ساز موسیقی؛ … ما باید مدتی را آموزش ببینیم؛ تمرین و تصحیح کنیم؛ تمرین و تصحیح کنیم؛ و تمرین کنیم، پس از مدتی، که برای هر آموزشی متفاوت است، آن برنامه نویسی روی مغز ما تکمیل می شود. پس از آن با دست گرفتن چرتکه؛ سوار شدن روی دوچرخه؛ پریدن توی آب؛ بدست گرفتن ساز؛ … این برنامه بلافاصله Run میشود و مانند یک مهارت یا یک هنر ما را یاری می دهد.
    این مهارت ها یا برنامه ها در مقاطع مختلف زندگی کمک های زیادی به ما می کنند. در طی عمر 120 سالۀ خود، برخی را کمتر و برخی را بیشتر به کار می گیریم، و مسلما برخی از این برنامه های نوشته شده روی مغز (که بهتر ویرایش شده)، جزو عشق و علاقمندی شخص قرار می گیرند. هر چه تعداد این برنامه ها را روی مغز بیشتر کنیم، کارآئی؛ هنر؛ راندمان فردی شخص در انجام کارهایش را بالاتر می بریم. مهم است بدانیم که این برنامه ها اثر منفی روی زندگی ما ندارند، و همواره مفید هستند.
    بهترین زمان برای درج این برنامه ها دوران ابتدائی است که حرف شنوی شخص در حد نرمال است، اما چون تعداد این برنامه ها بسیار زیاد و قابل درج در این 9 سال تحصیلی نیستند، باید موضوعات با توجه به نیاز جامعه اولویت بندی شوند و در برنامه آموزش و پرورش قرار گیرند، بطوریکه کارآئی جوانان در جهت مورد نیاز جامعه قرار داشته باشد. انجام درست این کار و تعیین سیلابست و موضوعات درسی کاری بسیار تخصصی؛ تجربی؛ و گروهی است، لذا باید از تجربیات مفید دیگر کشورها نیز استفاده شود. اگر این کار درست و مؤثر انجام نشود؛ اگر علاقۀ جوانان به موضوعات جذب نشود؛ موضوعات را علاقۀ دانش آموزان اِ بانفوذ در مدارس تعیین می کنند، و آنها هستند که هم دوره ای های خود را با موضوعاتِ کژ آموزش می دهند، که جامعۀ آتی را به انحراف می کشاند. ریشۀ فرهنگ کشورها در همین مدارس پایه گذاری می شود، اگر متخصصین جامعه نتوانند با تدوین موضوعات درسی درست؛ کنترل را بدست گیرند، علاقۀ دانش آموزان با نفوذ؛ فرهنگ جامعۀ آتی ما را پایه گذاری می کند، که نتیجه ای کاملاً تصادفی (Random) در پی خواهد داشت. در حالتیکه آموزش و پرورش هنوز اولویت بندی را تعیین نکرده وظیفۀ والدین استکه برای فرزند خودشان این کار را انجام دهند؛ قبل از اینکه نوجوان آنها فرصت را از دست بدهد. متأسفانه این فرصت را ممکن است، هیچ زمان دیگری بدست نیاورد.
    مثلا با وجود پیشرفت IT و کامپیوتر در اکثر مشاغل جامعه در طی سالیان اخیر، شاید بهتر باشد زبان انگلیسی را که پیش نیاز و پایۀ آموزش کامپیوتر است، از اواخر دبستان به دانش آموزان بیاموزیم و سپس کامپیوتر را به آنها بیاموزیم، بطوریکه در 9 سال اول تحصیلات، کامپیوتر را حداقل مانند یک کارمند بانک بدانند. در نظر داشته باشید که تربیتِ نرم افزار نویس باید قبل از 15 سالگی آغاز شده باشد. نیاز دنیا به نرم افزار نویس باتجربه هر روز بیشتر می شود؛ و بازار کار پر رونقی است؛ برای علاقمندان به این رشته.
    موسیقی از مواردی است که؛ همه به آن نیاز دارند، و باید هر روز از آن استفاده کنند. حال آنکه آموزش الفبای موسیقی و نواختن یک ساز در هیچ زمانی جزو دروس ابتدائی قرار نگرفته است. این زنگ خطری استکه کامل نبودن سیستم آموزش و پرورش را نشان می دهد، و نشان میدهد؛ مسئولین اهمیت موضوعات درسی 9 سال تحصیل و عواقب آن را باور ندارند. یا اینطور هم می شود استنباط کرد: برآیندِ سیستم آموزش و پرورش؛ به ضرورتِ نیاز روان انسان به موسیقی، آگاهی ندارد.
    آموزش چرتکه و آموزش شورتکاتهای ریاضی(مثل توان دوم اعداد با یکان 5؛ 4225=2^65)، بخاطر اثرات مثبتش روی آموزش ریاضیاتِ پایه؛ و علاقمند کردن فراگیر به درس ریاضیات، نیز باید از نظر اولویت بندی و نیاز جامعه بررسی شود. مسلماً همه معلمینِ با تجربه و نیز متخصصین جامعه شناسی و … نیز باید در تعیین اولویت بندی نیاز جامعه شرکت داشته باشند.
    از تجربیاتِ عملی دیگر کشورها در این موارد، باید در تصمیم گیری ها استفاده شود. وقتی فقط دستوراتِ مقام بالا اجرا شود، سیستم آموزش و پرورش با انتقادهای جدی روبرو خواهد شد. دانش آموز از زیادی تکالیف خسته شده؛ و از درس خواندن بیزار می شود.
    نکته مهم: در سنین بازنشستگی و پیری نیز باید آموزش این مطالب به افراد ادامه یابد. اما نه توسط آموزش و پرورش بلکه توسط نهاد دیگری مانند سازمان بازنشستگی. موضوعات آموزشی لازم نیست اولویت بندی شود، بلکه علاقۀ شخص باید تعیین کننده باشد. مثلا ممکن است یکنفر به یک ساز موسیقی علاقمند باشد؛ یکنفر به کار با چرتکه؛ یکنفر به شطرنج؛ یکنفر به شنا؛ یکنفر به کوهنوردی؛ …

    1396/10/19 سه شنبه

  2. منطق یک ابزار شگفت انگیز خدادادی برای بشر هست..که به همه جنبه های زندگی آدمی مرتبط هست.
    و چه راهی بهتر از یادگیری یک زبان برنامه نویسی برای تقویت آن.

  3. یادمه تو دانشگاه وقتی وارد سایت دانشکده مون می شدیم این جمله رو میدیم که نوشته شده بود:
    “برنامه نویسی یک هنر است”

  4. جالب بود. یعنی موسیقی و برنامه‌نویسی خاستگاه مشتری در ذهن دارند؟ یعنی برنامه‌نویسی هم به نوعی یک «هنر» محسوب می‌شود؟!

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

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

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