1. یادگیری برنامهنویسی زمانبر بوده و به صبوری نیاز دارد
شاید این حرف به مذاق بسیاری از مردم خوش نیاید، اما یادگیری فشرده و سریع یکزبان، بدترین اشتباهی است که بسیاری از کاربران مرتکب میشوند. پژوهشگران ثابت کردهاند یادگیری سریع هر موضوع با بهسرعت از یاد رفتنش ارتباط مستقیم دارد. برای مثال، دانشجویی را تصور کنید که هیچچیزی از یکزبان برنامهنویسی نمیداند و تنها دو ماه و نیم آن هم یک روز در هفته فرصت دارد تا در کنار سایر دروس دانشگاهی یکزبان برنامهنویسی شبیه سی شارپ را یاد بگیرد. طبیعی است این دانشجو بهدرستی زبان فوق را یاد نخواهد گرفت. این مشکل در رابطه با مفاهیمی که مفهومی هستند و رویکرد غیر حفظی داشته، صدق کرده و برنامهنویسی نیز از این قاعده مستثنا نیست. در سال 2018 دانشگاه کالیفرنیا در این رابطه پژوهشی انجام داد. پژوهش انجام شده بیانگر این بود که اگر فرآیند یادگیری به شکل بخشبهبخش طی چند جلسه انجام شود، بازدهی بهمراتب بهتری خواهد داشت تا اینکه یک مطلب به شکل تمام و کمال در یک جلسه ارائه شود. این مسئله بهواسطه مفهومی که روانشناسان به آن اثر موقعیت در زنجیره (Serial Position Effect) میگویند، رخ میدهد. این مفهوم به بیان این حقیقت میپردازد که هر انسانی به ابتدا و انتهای یک زنجیره (یادگیری) علاقه زیادی داشته، اما به بخش میانی کمترین علاقه را دارد. بهعبارتدیگر، در هر مطالعه و یادگیری، همواره این احتمال وجود دارد که بخش ابتدایی و انتهایی آموزش را بهخوبی به یاد آورید، اما بخش میانی را فراموش کنید. در نتیجه، سعی کنید تعداد بخشهای ابتدایی و انتهای یادگیری را بیشتر کرده و جلسههای مطالعه را کوتاهتر کنید تا بازده یادگیری افزایش پیدا کند. اگر در آینده تصمیم گرفتید، برنامهنویسی یاد بگیرید، گامبهگام حرکت کرده و میان هر موضوع زمان استراحتی به مغز خود بدهید. البته در نظر داشته باشید که زمان استراحت طولانی هم مانعی بر سر راه یادگیری است.
2. مرور کنید، مرور کنید و باز هم مرور کنید
تضاد حافظه، یکی دیگر از دلایل مهمی است که باعث میشود به شما توصیه کنیم در یادگیری برنامهنویسی عجله نکنید. موضوعی که روانشناسان به آن Antithetical میگویند. البته حافظه انسان همیشه این مشکل را ندارد و شما میتوانید بیشتر خاطرات دوران کودکی خود را به یاد آورید، اما این یادآوری تنها در رابطه با خاطرات مرتبط با احساسات صدق میکند. تا به امروز فرضیهها و نظریههای مختلفی ارائهشده است. گروهی از پژوهشگران حوزه علوم روانشناختی و پژوهشگران دنیای کامپیوتر معتقدند، اطلاعات حافظه بلندمدت هیچگاه از میان نمیرود، بلکه آدرس دسترسی به اطلاعات از میان میرود. این دیدگاه شباهت زیادی به نحوه دسترسی کامپیوتر به اطلاعات دارد، بهویژه زمانیکه میگوییم شما با حذف فایلها از روی هارددیسک آنها را بهطور کامل پاک نمیکنید، بلکه آدرس دسترسی به آنها را پاک میکنید. اما گروه دوم از پژوهشگران معتقدند، اطلاعات حافظه بلندمدت با خاطرات جدید جایگزین یا به عبارت دقیقتر رونویسی میشود. مهم نیست، کدامیک از این نظریهها درستتر هستند، زیرا در هر دو صورت پس از گذشت مدتزمانی به برخی از اطلاعات حافظه دسترسی نخواهید داشت. درست در همین نقطه است که مرور کردن مطالب حائز اهمیت میشود. تصور کنید در جنگلی از حافظهها (حافظه بهجای درختان) قدم میزنید، هر زمان تصمیم بگیرید به حافظهای دسترسی داشته باشید، ابتدا باید مسیر عصبی منتهی به حافظه را پیدا کنید. هر زمان به سمت آن بخش از حافظه میروید، مسیر برای شما هموارتر میشود، درست مشابه با مسیری که ابتدا خاکی است، اما با گذشت زمان و ترددهای بسیار شکل یک جاده به خود میگیرد. اگر از این مسیر برای دسترسی به حافظه استفاده نکنید، با گذشت زمان این مسیر از دست رفته و آن حافظه در جنگل گم میشود. پیش از ورود به دنیای پر رمز و راز روانشناسی، اجازه دهید به مطلب خود بازگردیم، زمانیکه صحبت از برنامهنویسی به میان میآید، یادگیری به تنهایی کافی نیست. باید هر یک از مباحثی را که یاد گرفتهاید، بهطور مرتب تکرار کنید تا ملکه ذهنتان شوند. اگر به رویکرد یادگیری در یکشب اعتقاد دارید، شاید در ابتدا راه موفق نشوید که بهراحتی از این رویکرد استفاده کنید، اما با گذشت زمان مشاهده خواهید کرد، این تکنیک چقدر راهگشا است.
3.از منابع آموزشی مختلف استفاده کنید
برای یک برنامهنویس مبتدی یادگیری یک زبان برنامهنویسی کار دشواری به نظر میرسد، زیرا با انبوهی از اطلاعات و جزییات مختلف روبهرو است که برخی بیشازاندازه گسترده هستند. پس برای شروع لازم است که به همه موارد توجه شود. متاسفانه تا زمانیکه موفق نشوید درک درستی از جزییات به دست آورید، همواره علامت سوال بزرگی در ارتباط با موضوعها در ذهن شما نقش خواهد بست. هر زبان دستورالعملهای خاص خود را دارد که باید یاد بگیرید. این دستورالعملها شامل کلیدواژه، بهکارگیری درست تورفتگیها، پرانتزها، براکتها و هر آن چیزی است که یک زبان برنامهنویسی بر مبنای آن کار میکند. برخی از زبانها در ارتباط با دستورالعملها سختگیر هستند و برخی ترکیب نحوی خاص خود را دارند. زبان برنامهنویسی اسمبلی نمونهای از این موارد است. اگر پیشزمینهای در برنامهنویسی نداشته باشید، این مسائل باعث سردرگمیتان میشود یا اگر از مفاهیم ویژه هر زبان صرفنظر کنیم، باز هم مفاهیم خاصی همچون شیگرایی، الگوهای مبتنی بر ماژولها، الگوهای طراحی خاص یک زبان و... وجود دارند که یادگیری این موارد در مرحله اول کمی دشوار است. برای نمونه، تصور کنید، شخصی یک عکس از یک مجسمه به شما نشان داده؛ در نگاه اول دید کلی در ارتباط با مجسمه دارید، ولی جزییات آن را متوجه نخواهید شد. با هر بار دیدن تصویر جزییات جدیدی همچون بافتها، اندازه، زوایا و برشها را مشاهده خواهید کرد. یادگیری زبان یک موضوع شخصی است. ممکن است همه افراد برای یادگیری یکزبان به منبع واحدی اشاره کنند یا به منبع خاصی علاقه نداشته باشند اما شما در نگاه اول مجذوب آن منبع شوید. به همین دلیل توصیه میشود، همواره از منابع مختلف استفاده کنید، زیرا برداشت هر فرد از یک موضوع متفاوت از دیگری است. اگر موضوعی را بهدرستی متوجه نمیشوید، از منبع دیگری بهعنوان مکمل استفاده کنید تا درک موضوع سادهتر شود. برنامهنویسان متبحر از منابع مختلف استفاده میکنند، زیرا همیشه نکتههای جدید و کشف نشدهای برای یادگیری وجود دارد.
4.به دنبال آموزش مفاهیمی باشید که یاد گرفتهاید
در دنیای برنامهنویسی اصطلاحی به نام اردک پلاستیکی وجود دارد؛ یعنی کدهایی را که نوشتهاید خط به خط برای یک اردک پلاستیکی تشریح کنید. این ترفند زمانی استفاده میشود که بخشی از یک کد مشکل دارد، اما دلیل مشخصی برای آن وجود ندارد. بیشتر برنامهنویسان در زمان تشریح کدها علت منطقی بروز مشکل را کشف میکنند.
صحبت کردن درباره مشکل، بخش متفاوتی از مغز را فعال کرده و شما را متقاعد میکند که به مشکل از دید دیگری نگاه کنید. این رویکرد در یادگیری مباحث جدید کاملا راهگشا است. دانشمند فقید آلبرت انیشتین در اینباره جمله معروفی دارد که میگوید: «اگر درباره مبحثی نمیتوانید توضیحی ارائه کنید، به معنای آن است که آن مطلب را خوب یاد نگرفتهاید.» این جمله حکیمانه در اینجا مصداق عینی پیدا میکند. هر چه سطح آگاهی شما از موضوعی بیشتر شود، دقیقتر و بدون آمادگی قبلی میتوانید درباره آن موضوع صحبت کنید. نکته جالبتوجه آنکه هنگام تدریس تازه متوجه میشوید بهخوبی نمیتوانید مطالب را به زبان بیاورید، زیر آن مطالب را بهدرستی یاد نگرفتهاید. برای نمونه، اگر استاد دانشگاه هستید و بدون جزوه، تبلت یا گوشی هوشمند نمیتوانید یک جلسه کلاس را مدیریت کنید، بهتر است به فکر ارتقای سطح دانش خود باشید. این رویکرد در اصطلاح تخصصی یادگیری با تدریس (Learning By Teaching) نامیده میشود که شباهت زیادی بهاصطلاح اردک پلاستیکی دارد.
5.تمرین با برنامه نتیجه میدهد
اصطلاحی که خیلی زیاد در جامعه شنیده میشود و علم روانشناسی ثابت کرده که زیاد درست نیست، بهکارگیری بیمورد واژه استعداد است. هیچ انسانی به شکل مادرزادی یک نوازنده ویولن، نقاش یا برنامهنویس ماهر به دنیا نمیآید. این موضوع که هر انسانی به رشته خاصی علاقه دارد، درست است، اما استعداد بدون تجربه هیچگونه منفعتی برای شما نخواهد داشت. در نظر داشته باشید که سختکوشی و تمرین همیشه ارزش بیشتری نسبت به استعداد دارد. مالکوم گلادول، جامعهشناس شهیر که ابداعکننده نظریه 10 هزار ساعت است، اعلام میدارد: «اگر شما برای هر موضوع 10 هزار ساعت زمان صرف کنید، روی آن مبحث تسلط پیدا خواهید کرد.» این حرف درست است، اما برداشتهایی نهچندان درست از این جمله تفسیر شده است. دقت کنید 10 هزار ساعت هیچگاه تضمینکننده موفقیت صددرصد نیست، بلکه این زمان یک تمرین آگاهانه را رقم میزند. خوب تمرین کردن سطح مهارتهای شما را ارتقا میدهد.
آموزش تئوری باید با تمرین عملی همراه باشد. تمرین عملی مباحث برنامهنویسی فوقالعاده حائز اهمیت است.
6.به فکر ساخت پروژههای شخصی برای خودتان باشید
دوران مدرسه را به یاد آورید. معلمان با عنوان مشق شب تکالیفی را به دانشآموزان میدادند که در خانه انجام دهند. اکنونکه به گذشته نگاه میکنیم، مشاهده میکنیم این تکالیف دانش جدیدی به ما منتقل میکردند که بر خواسته از یک تمرین عملی بود. به تکالیف عملی کلاسهای برنامهنویسی بهعنوان یک پروژه جدی نگاه کنید. این تکالیف عملی کمک میکنند تا آموزشها در حافظه بلندمدتتان ماندگارتر شوند. برخی موارد تکالیف به تنهایی کافی نیستند و خودتان باید روی یک پروژه هر چند ساده کار کنید تا مطالب را بهتر متوجه شوید.
7. آرام باشید و به نشانهگذاری مباحث بپردازید
هیچ برنامهنویسی نمیتواند تمام مطالبی را که یاد گرفته، به یاد آورد. پس اگر شما هم به شکل تماموقت روی یادگیری یک کتابخانه یا چهارچوب متمرکز شوید، بازهم این احتمال وجود دارد که توابع یا خصلتهای آن کتابخانه یا چهارچوب را به یاد نیاورید. اگر به فکر آن هستید که همه نکتهها را حفظ کنید، تنها زمان و انرژی خود را هدر دادهاید. اصل مهم این است که شما باید زمان حفظ مطالب و یادداشت مطالب را بدانید. مباحث مفهومی را باید حفظ کنید، اما در موضوعاتی شبیه توابع، فهرست پارامترها یا دستورالعملهای یکزبان نیازی نیست که همه مباحث را حفظ کنید. یادداشت کردن اینگونه مباحث کافی است. هرچه مباحث را بیشتر یادداشت کنید و این کار را تکرار کنید، مطالب بهتر در ذهنتان نقش میبندد.
در نهایت، توجه داشته باشید که هر فردی در زمینه یادگیری برنامهنویسی با مشکلهایی روبهرو خواهد شد، پس اگر با مشکلی روبهرو شدید خود را سرزنش نکنید و روی یادگیری تمرکز کنید.
به این مطلب چند ستاره میدهید؟(امتیاز: 4.9 - رای: 3)
- منبع: ماهنامه شبکه
- نویسنده: حمیدرضا تائبی