چکیده ی ارائه «ضرورت آموزش برنامه نویسی به کودکان» در اولین گردهمایی بزرگ برنامه نویسان ایران

چکیده ی ارائه «ضرورت آموزش برنامه نویسی به کودکان» در اولین گردهمایی بزرگ برنامه نویسان ایران

اولین گردهمایی بزرگ برنامه نویسان ایران در مورخ ۲۸ مرداد ماه ۱۳۹۵ برگزار شد که گروه دانش بنیان سکان آکادمی هم با مقاله یی تحت عنوان «ضرورت آموزش برنامه نویسی به کودکان» در این رویداد حضور به هم رساند. مقوله ی آموزش مهارت های کدنویسی به نسل جوان جزو اولویت های کشورهای های جهان اول بوده لذا تمام تلاش خود را به کار بستیم تا روی این مسئله بیشتر تمرکز کرده و حضار را با اهمیت این موضوع آشناتر سازیم. آنچه در ادامه مطالعه خواهید کرد، چکیده یی از این ارائه است که در کتابچه ی PDF همایش نیز منتشر شده است. در ادامه با سکان آکادمی همراه باشید.

در حال حاضر دنیا نه تنها با کمبود آب، صلح، انسانیت، آرامش و … مواجه است بلکه با کمبود چیز دیگری تحت عنوان «برنامه نویس» نیز مواجه می باشد و به نظر هم می‌رسد که با فراگیر تر شدن IoT یا «اینترنت اشیاء» هم این کمبود بیش از این احساس گردد. در‌ واقع، با توجه به این که دنیا بیش از پیش به سوی فناوری های جدید پیش می رود، این نیاز احساس می‌گردد تا دانش آموزان و دانشجویان نیز بیش از گذشته با نحوه ی کار کردن این فناوری ها آشنا شوند و یکی از راه‌های این آشنایی، یادگیری اصول برنامه نویسی است. حال ممکن است این سؤال برای شما پیش بیاید که "فرزندم اصلاً به برنامه نویسی علاقه‌ای ندارد، پس چرا باید برنامه نویسی یاد بگیرد؟" و یا "فرزند من دوست دارد نقاش شود، چرا باید او را مجبور به یادگیری برنامه نویسی کنم؟"

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

علاوه بر این، عنوانی بهتر از «عصر تکنولوژی» برای عصری که در آن به سر می‌بریم نمی‌توان یافت و شاهد چنین ادعایی هم آن است که در عصر کنونی، تکنولوژی در تمامی جنبه های زندگی ما از حریم خصوصی گرفته تا محیط کار و … رخنه کرده است و زندگی بدون نمونه‌های عملی از تکنولوژی همچون تلفن همراه، اینترنت، بانکداری الکترونیک و … تقریباً غیر ممکن است!

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

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

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

برای روشن شدن این مسأله می‌توان مبحث آموزش زبان را مد نظر قرار داد. کسی که چند عبارت یک زبان خارجی را فرا می‌گیرد نمی‌تواند ادعا کند که آن زبان را بلد است هرچند در برخی موقعیت ها بتواند به سادگی گلیم خود را از آب بیرون بکشد (برای آشنایی بیشتر با روش های یادگیری یک زبان خارجه، به مقاله ی آسیب شناسی آموزش زبان انگلیسی در سکان آکادمی مراجعه نمایید.) کسی هم که بلد است کامپیوتر را روشن/خاموش کند، با ایمیل کار کند، در شبکه‌های اجتماعی عضو باشد و … هرگز نمی‌تواند ادعا کند که سواد کامپیوتری دارد.

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

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

رویکرد کشورهای مختلف نسبت به برنامه نویسی
در دهه های گذشته، گفته می‌شد هر فردی که زبان و کامپیوتر بلد نباشد به نوعی بی‌سواد است اما میشل رسنیک دانشمند مطرح علوم کامپیوتری دانشگاه MIT، مدیر بخش گروه Lifelong Kindergarter در MIT Media Lab و همچنین خالق زبان برنامه نویسی اسکرچ که مخصوص کودکان ۸ سال به بالا است، اعتقاد دارد که:

در قرن بیست و یکم هر بچه‌ای که اصول برنامه نویسی را بلد نباشد بی‌سواد است!

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

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

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

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

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

علاوه بر این، خیلی دور از ذهن نیست که در آینده ای نه چندان دور زبان برنامه نویسی هم به عنوان درسی اجباری در مدارس ایران تبدیل شود همان طور که برخی از کشورهای تراز جهان اول بر آن شده‌اند تا آموزش برنامه نویسی را همچون دروس ریاضی، علوم و غیره، در مدارس به صورت اجباری درآورند که از آن جمله می‌توان به کشور ژاپن اشاره کرد که دولت این کشور تصمیم گرفته تا برای بهبود بخشیدن به خلاقیت و ارتقاء تفکر منطقی در کودکان، آموزش برنامه نویسی را در مدارس این کشور اجباری کند به طوری که قرار است که این برنامه آموزشی در مدارس ابتدایی از سال ۲۰۲۰ و در مدارس راهنمایی از سال ۲۰۲۱ و در دبیرستان از سال ۲۰۲۲ اجرایی شود. 

به غیر از ژاپن، برخی کشورها هستند که گوی سبقت را از سایرین ربوده و در آموزش برنامه نویسی به کودکان پیش قدم شده‌اند که از آن جمله می‌توان به کشورهای چین، ایالات متحده، انگلستان، استونی و … اشاره کرد.

جالب اینجا است که چینی ها آموزش کدنویسی را حتی از قبل از ورود به پیش دبستانی آغاز کرده اند و برخی خانوارهای چینی قبل از این که کودکانشان به پیش دبستانی بروند، برنامه نویسی را به آن ها می آموزند. در بریتانیا هم کلاس های آموزشی برنامه نویسی برای کودکان بالای ۵ سال برگزار می شود. دولت آمریکا نیز از اهمیت آموزش برنامه نویسی در مدارس آگاه است و باراک اوباما رییس جمهور کنونی این کشور در ماه ژانویه ۲۰۱۶ اعلام کرد که دولت مبلغ ۴ میلیارد دلار را برای اجرای این طرح آموزشی سرمایه گذاری کرده است. بسیاری از دیگر کشورها نیز اختصاص بودجه به آموزش کودکان زیر ۷ سال را به خاطر اهمیت این موضوع در دستور کار خود قرار داده‌اند که از آن جمله می‌توان به استونی اشاره کرد.

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

از اینرو، همچون زبان انگلیسی که امروزه لازم و ضروری است، فراگیری یک زبان برنامه نویسی هم می تواند تاثیرات غیر قابل انکاری در زندگی کاری و فردی کودکان امروز -بزرگسالان فردا- داشته باشد.

تأثیرات آموزش برنامه نویسی به کودکان
نکته یی که امروزه به کرات دیده می شود، وابستگی بیش از حد کودکان به بازی های کامپیوتری است. در واقع این وابستگی چنانچه هدفمند نباشد می تواند کودک را به فردی مصرف کننده، غیر خلاق و تک بعدی مبدل سازد. نیاز است تا کودکان از همین سنین ابتدایی خلاقیت خود را شکوفا سازند و مسئولیت پروژه های کوچکی همچون یک بازی کوچک، یک انیمیشن کوتاه و .. را به عهده گیرند تا در سنین بزرگسالی بتوانند یک شرکت را رهبری کرده، تشکیل خانواده دهند و تاثیر مثبتی در جامعه خود به جای بگذارند. به طور خلاصه، شایان ذکر است با آموزش اصول برنامه نویسی به کودکان خود به شکلی نوین می توان «نسل دیجیتالی» آینده ایران را به گونه ای تربیت کنیم که متفاوت از نسل های قبل فکر کنند، خلق کنند و تاثیر گذار باشند.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

تحقیقات حاکی از آنند زمانی که ما قصد نواختن یک قطعه موسیقی داریم، ناحیه ای تحت عنوان Brodmann`s Area 40 که کمی بالای گوش قرار گرفته است فعال می شود. ۱۰ سال پس از این آزمایش، محققین از هفده برنامه نویس خواستند تا مادامی که داخل دستگاه ام آر آی قرار دارند اقدام به تفسیر چند خط کد کنند و جالب است بدانید که نتایج از بسیاری جهات مشابه با نواختن موسیقی بود به‌خصوص در ناحیه یی که در بالا بدان اشاره شد. فرایند حل مسأله کاری است که ما هر روزه با آن سر و کار داریم. از حساب کردن فاکتور خرید میوه گرفته تا محاسبه امور مالیاتی یک شرکت بزرگ و این همان چیزی که یادگیری کدنویسی به ما می آموزد.

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

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

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

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

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

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

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

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

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

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

kodable
اپلیکیشنی برای رنج سنی 4 تا 11 سال برای پلتفرم های آیپد، اندروید، مک و پی سی و تحت وب

Daisy The Dinosaur
برای گروه سنی ۶ تا ۱۰ سال برای پلتفرم آیپد.

movetheturtle
پلتفرمی برای آیپد و آیفون برای آموزش اصول کدنویسی به کودکان ۵ سال به بالا است.

playcodemonkey
یک محیط بازی آموزشی و سرگرم کننده که کودکان با استفاده از آن می‌توانند کدنویسی را تجربه کنند.

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

Kodu
پلتفرم برای ویندوز و ایکس باکس برای ساخت بازی است که در سال ۲۰۰۹ به دنیا عرضه شد.

Turtle Academy
این سایت مجموعه آموزش‌های کاربردی برای زبان Logo را برای علاقمندان فراهم آورده است.

code.org
این سایت در سال ۲۰۱۳ توسط برادران هادی و علی پرتوی شروع به کار کرد که جنبش آموزش برنامه نویس به کودکان در سراسر دنیا در قالب Hour of Code یا «زنگ کدنویسی» را به راه انداخته اند.

gethopscotch.com
برای گروه سنی ۹ تا ۱۱ سال برای آیپد و آیفون

gamesalad.com
برای سیستم عامل های مک و ویندوز برای ساخت بازی‌های ساده

appinventor.org
نرم‌افزار تحت وب گوگل تحت رهبری دانشگاه MIT برای ساخت اپ های اندرویدی

kidsruby.com
برنامه یی برای یادگیری زبان روبی در پلتفرم های مک، ویندوز، لینوکس

tynker.com
پلفترمی برای آموزش اصول برنامه نویسی به کودکان است که در دسته بندی های ۷ سال به بالا، ۱۰ سال به بالا و ۱۲ سال به بالا طراحی شده است.

Scratch
زبان برنامه نویسی اسکرچ در ماه مه سال ۲۰۰۷ به دنیا عرضه شد که در حال حاضر هم غول‌های فناوری دنیا همچون گوگل، اینتل، لگو، آمازون، گیت هاب و غیره از جمله حامیان اصلی این زبان برنامه نویسی هستند. اسکرچ در قالب محیطی کاملاً بصری و منطبق بر نیازهای کودکان طراحی شده است. این زبان برنامه نویسی با هدف آموزش به کودکان ۸ الی ۱۶ سال طراحی شده است اما این در حالی است که افراد خارج از این طیف سنی نیز می‌توانند بنا به نیاز خود از آن استفاده نمایند. معنی لغوی اسکرچ یعنی سرهم بندی کردن به این شکل که کودکان می توانند بلوک های کد مختلف را سر هم بندی کرده و پروژه های مختلفی خلق کنند. کودکان با فراگیری اصول زبان برنامه نویس اسکرچ قادر خواهند گشت تا به ساخت انیمیشن، طراحی بازی‌های کامپیوتری و حتی داستان سرایی بپردازند. از جمله مزایای زبان برنامه نویسی اسکرچ نسبت به سایر زبان‌ها می‌توان به موارد زیر اشاره کرد:
- پشتیبانی از بیش از ۴۰ زبان زنده دنیا از جمله زبان فارسی
- قابلیت استفاده در سیستم عامل های مختلف از ویندوز و لینوکس گرفته تا مکینتاش و حتی به صورت آنلاین
- برخورداری از جامعه ای از کودکان برنامه نویس به تعداد بیش از یک میلیون کودک برنامه نویس
- ایجاد بستری برای رشد خلاقیت کودکان
- امکان به اشتراک گذاری پروژه های کودکان به صورت آنلاین
- فراهم آوردن فرصتی برای کودکان به منظور رشد مهارت های میان فردی و …
- استفاده از این زبان در دانشگاه‌های هاروارد و برکلی به عنوان زبان برنامه نویسی مقدماتی
- گرفتن امکان اشتباه کردن کودک

یکی از پروژه هایی که توسط دختر 12 ساله ای در Scratch انجام شده بود، یک کارت کریسمس با تصاویر کارتونی بابانوئل و گوزن های شمالی او بود. هر گوزن یک آلت موسیقی داشت که موقع کلیک بر روی آن ها، هر کدام قسمتی از آهنگ «کریسمس مبارک» را می خواندند. این دختر جوان که با نام BlueSaturn در این سایت معروف است، برای تمام دوستانش لینکی از این پروژه را به عنوان هدیه روز کریسمس فرستاد.

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

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

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

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

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

آینده ی برنامه نویسی
بر اساس گزارشی که مایکروسافت در سال ۲۰۱۲ منتشر کرد، تا سال ۲۰۲۰ چیزی در حدود ۱۴۰۰۰۰۰ فرصت شغلی حوزه ی آی تی و برنامه نویسی در ایالات متحده ی آمریکا به وجود خواهد آمد که دانشگاه‌ها صرفاً ۴۰۰۰۰۰ مورد آن را تأمین می‌کنند که در چنین شرایطی شاهد یک رشد بیش از ۲۰ درصدی بازار کار برنامه نویسی هستیم! اگرچه فضای آموزشی و کسب و کار ایران تا حدودی متفاوت از سایر کشورهای دنیا است، اما تا حدودی می‌توان کمبود برنامه نویسان حرفه یی در سال‌های پیش رو را در فضای کسب و کار ایران نیز پیش‌بینی کرد.

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

بر اساس سرویس پرسش و پاسخ استک اورفلو در سال ۲۰۱۶، مشاغل مرتبط با برنامه نویسی همچون مدیر فنی، توسعه‌دهنده ی موبایل، توسعه‌دهنده ی وب و غیره در ایالات متحده سالانه چیزی مابین ۱۰۰ تا ۱۵۰ هزار دلار دریافتی دارد. از جمله دیگر کشورهایی که درآمد برنامه نویسان نسبت به میانگین جامعه بالا است، می‌توان به کشورهای سوئیس، نروژ و دانمارک اشاره کرد. همین آمار و ارقام نیز حاکی از آنند که چیزی در حدود ۷۰ درصد از برنامه نویسان دنیا به صورت خودآموز اقدام به فراگیری برنامه نویسی کرده اند.

اگر شما هم جزو کسانی هستید که از حقوق اندک خود شاکی می باشید، جالب است بدانید که بر اساس تحقیقی که در ایالات متحده آمریکا انجام شده مشخص گردید که اکثر توسعه دهندگان یا بهتر بگوییم کسانی که از کدنویسی کسب درآمد می‌کنند از افرادی که به سایر مشاغل مشغولند خوشحال تر هستند و یکی از دلایل خوشحالی ایشان میزان درآمد نسبتاً بالای ایشان است. این تحقیق که توسط سایت SkilledUp رهبری شد حاکی از آن است که ۸۸ درصد از ۳۰۳ توسعه‌دهنده ای که مورد بررسی قرار گرفتند کاملاً از کار خود راضی بودند و ۱۱ درصد هم تاحدودی راضی بوده و تنها ۱ درصد از این گروه توسعه دهندگان از شغل خود ناراضی بودند. بیشتر این توسعه دهندگان خوشحال در زمینه طراحی اپ موبایل و طراحی واکنش گرا فعالیت می کردند.

این تنها تحقیقی نیست که حاکی از برتری درآمدی توسعه دهندگان نسبت به سایر مشاغل در سرتاسر دنیا به‌خصوص ایالات متحده است بلکه تحقیق دیگری هم در سال ۲۰۱۵ توسط مؤسسه CreerBliss انجام شد که بر اساس نتایج این تحقیق، توسعه دهندگی وب جزو ۱۰ شغل خوشحال کننده است. با توجه به این که برنامه نویسان را اغلب می‌توان پای یک لپ تاپ شخصی یافت و اکثر ایشان از تنوع در محیط کار، گشت زنی و … محروم هستند، این سؤال به ذهن خطور می‌کند که چه می‌شود تا یک برنامه نویس تا اینقدر از شغل خود راضی باشد؟

تعادل کار و زندگی،‌ تنوع شغلی، محل کار و … جزو چیزهایی اند که منجر گردیده تا برنامه نویسان جزو پرسنل خوشحال جامعه کاری محسوب گردند. برخی شرکت کنندگان در این تحقیق اظهار داشتند که ایشان حتی این فرصت را داشته‌اند تا از منزل به کار خود ادامه دهند بدون این که نیاز باشد تا سختی تردد مسیر منزل تا محل کار را متحمل شوند. نیاز به توضیح نیست که درآمد قابل توجه برنامه نویسان در کشورهای غربی در زمینه میزان خوشحالی برنامه نویسان مزید علت شده است. اکثر برنامه نویسان در این تحقیق حقوقی مابین ۵۰ هزار تا ۱۴۹ هزار دلار در سال داشتند که جالب است بدانیم ۸۲ درصد از ایشان اظهار داشته‌اند که ظرف ۶ ماه آینده قرار است تا ترفیع شغلی هم بگیرند.

به گفته برخی از آن ها، کسانی که به زبان‌های پایتون و روبی تسلط دارند شرکت های زیادی را خواهند یافت که به دنبال این دست برنامه نویسان می گردند. بر اساس این تحقیق، ۹۵ درصد از این گروه ۳۰۳ نفری گفتند که نیاز به مهارت های ایشان در بازار کار بسیار بالا است، ۹۰ درصد اظهار داشتند که شغل مورد نیاز آن‌ها همواره موجود است و ۵۷ درصد گفتند که مرتبا فرصت های شغلی متنوعی به ایشان از طرف مدیران منابع انسانی شرکت های مختلف پیشنهاد می شود. ۶۲ درصد هم گفتند شرکتی که در آن مشغول به کار هستند به دنبال توسعه دهندگان بیشتری است.

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

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

در پایان هم به این سخن از استیو جابز -اسطوره ی دنیای تکنولوژی- اکتفا می‌کنیم با این مضمون که

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