وقتی دوست خوبم محمد، از من پرسید "چطور بفهمیم یک بچه میتونه برنامه نویس بشه؟" گیج شدم!
این سوال نسبتا سخت باعث شد روی این موضوع فکر و مطالعه کنم و این ترجمه+نوشته نتیجه این بررسی است. امیدوارم اینکار برای شما و فرزندانتان و برنامه نویس های آینده، مفید باشد.
احتمالا این سوالات برای شما هم پیش آمده باشه:
اگر در خانه کودک دارید و این فسقلی داره چند تا، یا تمام این ویژگی ها رو بُروز میده؛ تبریک میگم؛ احتمالا شما یک برنامهنویس در خانه دارید.
شاید در نگاه اول ساده و بدیهی به نظر برسد، که میتوان گفت مهمترین ویژگی یک برنامه نویس، خلاقیت اوست؛ اما این کمک بزرگی به کشف جوجه برنامه نویس ها میکنه?
برنامه نویس ها مدام در مواجهه با مساله های مختلف، باید توانایی ارائه راه حل های خلاقانه داشته باشند. حتی با خود مسئله هم باید برخوردی خلاقانه داشته باشند.
اگر فرزند شما با لِگوهایی که براش می خرید، چیزایی جالب میسازه، و مدام هیجان زده است از اینکه کارهای جدیدتر ارائه بده، بهتون تبریک میگم. این کودک داره رگههایی از خلاقیت نشون میده که میتونه به درد کاراکتر برنامه نویس آینده اش بخوره.
بهترین برنامه نویس ها، معمولا آدمایی خلاق هستن که در سایر رشته ها هم میتونن این خلاقیت رو به کار بگیرند. اگر کودک شما خلاقیت هایی مثلا در شعر گفتن، داستان نوشتن، نقاشی کردن، موسیقی و هنرهای دیگه داره، از کنارش ساده نگذرید.
تقریبا همه دوست داریم که چیزهایی ماندگار بسازیم، اما در عمل برخی انسانها و بعضی شغل ها شانس بیشتری دارند چیزهایی تاثیرگذار و ماندگار بسازند.
بی شک انگیزه اساسی برنامه نویس ها اینه که دوست دارند چیزی جدید و موثر بسازند که روی زندگی بقیه اثری داشته باشد.
ساختن یک نرم افزار گاهی به اندازه ساختن پل ها و آسمان خراش ها میتونه برای زندگی ها و افراد جامعه اطرافمون مهم باشه.
اگر دختر یا پسرتون رو میبینید که دوست داره چیزهایی معناردار بسازه، ساختن هر چیزی جدید از لِگوها بگیر تا شعر و نقاشی و موسیقی؛ و در این مسیر، خلاقیت نشون میده، این نشانه خوبی است.
حتی بهترین برنامه نویس ها، هر روز با مشکل و خطا برخورد می کنند.
دقیق تر اینکه، بیشتر زندگی برنامه نویس ها به آزمون و خطاهای مداوم برای رسیدن به پاسخ مسئله و مشکل میگذره. کشف مشکلات، پیدا کردن عامل و ریشه مساله، بررسی راه حل ها و پیدا کردن جواب برای اونها، کار کدنویس است.
مواجهه با این شکست ها و خطاهای پیدرپی میتونه خیلی خستهکننده باشه، و برای همین مهمه که کودک شما بدونه چطور باید از پس شکست ها بر بیاد و کم نیاره!
اگر کمی اهل توئیتر باشید، قطعا هر روز با برنامه نویس هایی برخورد میکنید که به مشکل خوردند و غر میزنند.
این یه بخش کاره؛ و مهم اینه که بدونیم چطور کنار بکشیم، رها کنیم و در آرامش به حل مساله برسیم. اینجا نکته مهم، یاد گرفتن از خطاها به جای مایوس شدن است.
فسقلی هایی که میدونن چطور شکست بخورن و مهمتر اینکه چطور از این شکستها و خطاها درس بگیرند، بعدها می تونن بهتر ریسک کنند و احتمالا کدنویسهای موفقتری بشوند.
هسته درونیِ کارِ برنامه نویسی، پیدا کردن مساله اصلی و جستجوی راه حل برای مشکل است. ما الگوریتمهایی میسازیم که به بهترین شکل ممکن، به مساله مطرح شده پاسخ میده.
آیا کودکی دارید که میتونه (به جای فرار یا پناه بردن به بزرگترها) برای مسائلی که پیش میاد، راه حل و جواب بده؟ مثلا از بازی های فکری، استراتژیک و پازل ها خوشش میاد؟
بچههایی که از حل مساله ها خوشحال میشن و درباره حل مشکلات، حوصله و پشتکار به خرج میدهند، و از به عهده گرفتن چالش های سخت نمیترسند، احتمالا مهندس های موفقی در دنیای کامپیوتر خواهند شد.
حتی ساده ترین برنامه های کامپیوتری و موبایلی، از تعداد زیادی تابع و متغیر ساخته میشن که نیاز به ذهنی متمرکز داره که به جزئیات و ارتباط اونها دقت بکنه.
یک تغییر به ظاهر ساده در یک پروژه نرم افزاری، میتواند تاثیرهای خواسته و ناخواسته فراوانی به دنبال داشته باشد.
هر چه شما در تمرکز روی جزئیات مهارت بیشتری داشته باشید، نتیجه کارتان بعنوان یک برنامه نویس، بهتر خواهد بود.
کودکانی که جزئیات حتی ساده و کوچک را جستجو میکنند و به اونها توجه دارند، موفقیت بیشتری امروز در بازی های کودکانه و در آینده، در دنیای برنامه نویسی کسب خواهند کرد.
در عصر ارتباطات و انفجار اطلاعات هستیم. فناوریها به سرعت در حال بهبود، توسعه و تغییر هستند.
برنامه نویسهای واقعا موفق میدانند که همیشه باید آماده هماهنگ شدن با ابزارها و تکنولوژیهای جدید باشند و این مهم میسر نخواهد بود مگر با متعهد بودن به مطالعه مستمر و یادگیری دایمی.
قرار نیست همیشه برای هر موضوع جدیدی معلم داشته باشیم و باید خودمان آماده کشف کردن و یادگرفتن باشیم.
هر چند این برای شما بعنوان معلم (و والدین) سخت خواهد بود؛ اما شاگرد شما بالاخره روزی به جایی میرسد که دیگر خودش باید کشف کند و یاد بگیرد.
بچههایی که میتوانند خودشان جستجو کنند و یادبگیرند، اگر بخواهند، میتوانند برنامه نویس های خوبی شوند.
پسر و دختر شما میتونه جواب سوالاتشو خودش جستجو کنه؟ چیزی به ظاهر ساده مثل جستجو در گوگل و ویکی پدیا، یا پیدا کردن و یاد گرفتن نحوه پیش رفتن در گیمها هم مهم است!
برنامه نویسهای موفقی که میخواهند در لبه دانش و تکنولوژی حرکت کنند، میدانند که به شدت به این خصوصیت نیاز دارند.
شاید در نگاه اول بگویید در کشور ما کار تیمی معنا ندارد!
یا شاید برنامه نویس ها را مثل جغدهای شببیدار تنهای افسردهای تصور میکنید که داخل اتاقی تاریک، هدفون به گوش، بدون احساس، و بدون ارتباط با انسانهای دیگر، فقط تایپ می کنند و تایپ می کنند. خیلی ها هنوز برنامه نویس ها را کاراکترهای به شدت درون گرایِ جامعه گریز میبینند!
لطفا این تصویرها را کلا دور بیندازید. اینها در عصر فناوری امروزی هیچ معنایی ندارند.
در فضای کاری فناورانه امروز دنیا، مهارتهای ارتباطی و اجتماعی، یکی از پارامترهای مهم و تاثیرگذار بر موفقیت همه، از جمله مهندسان کامپیوتر و برنامه نویس ها است.
برنامه نویس های خوب، نیاز دارند که در ارتباط با انسان ها مهارت خوبی داشته باشند، تا اولا تخصص و تواناییهای خود را ارائه کنند تا موقعیت های کاری بگیرند، ثانیا در حین کار، مساله و مشکل را به خوبی درک کرده، ایده های خلاقانه و پیچیده ی خود را به وضوح برای بقیه شرح دهند، و برای بهبود این ایده ها و راه حل ها، با کارفرمایان، اعضای تیم کاری، و کاربرانشان، هماهنگی و همکاری واقعی داشته باشند.
اگر فرزند شما از کارهای تیمی لذت می بره، با دوستانش وقت میگذرونه و میتونه مسائل رو به خوبی برای بقیه توضیح بده، این میتونه نشونه آینده ی روشنِ او در رشته برنامه نویسی باشه.
این یکی شاید به نظرتون تابلو بیاد! اگر کودکتان زمان زیادی پایِ کامپیوتر است و از دیدن تکنولوژیهای جدید هیجان زده میشه، پس داره در مسیری که باید، پیش میره!
این روزها بچه ها وسط کلی امکانات و تکنولوژی پا به دنیا میگذارند؛ و نمیشه به این سادگی ها چنین چیزی رو نتیجه گیری کرد.
برنامه نویس های آینده، دنبال درک عمیق تری از تکنولوژی های اطرافشون هستند.
این ابزار چرا داره اینطور کار میکنه؟ این ابزار چطوری اینکار را انجام میده؟
اگر کودک شما داره سوالاتی از لایه های عمیقتر فناوری میپرسه، این مهم خواهد بود. ممکنه اون دنبال راهی برای استفاده از یک ابزار برای حل مشکلی جدید یا ساختن چیزی جدید باشه؛ اینجاست که میتونیم بگیم او واقعا داره در مسیر برنامه نویس شدن و ورود به صنعت نرم افزار پیش میره.
در این نوشته سعی کردم با نگاهی کلی و خیلی کوتاه، برای کشف برنامه نویسهای آینده کمک کنم. مشخص است که نمی توان انسان ها رو به راحتی در چارچوب خاصی قرار داد یا اونها رو برچسب زد، اما این موارد حداقل می توانند سیگنال هایی برای شناخت بهتر کودکان اطرافمان باشند.
لطفا اگر به نظرتان نکته ای باقی مانده، خطایی در نوشته یا توضیحات وجود داره، یا ایده هایی بیشتر و بهتر در همین موضوع دارید، در بخش کامنت ها مطرح کنید تا به غنای این نوشته و ارزشش برای خوانندگان، کمک بشه. می توانید سایر مقالات من رو در وبسایتم بخوانید.