سریع و آهسته برنامه‌نویس شوید!

Karl Bewickیادگیری مهمترین و اصلی‌ترین مهارت برای هر فردی است. یادگیری به شخص امکان رشد، تغییر و پیشرفت را می‌دهد. با همین مهارت شما می‌توانید یک برنامه‌نویس موفق باشید!همه ما با این مهارت آشنا هستیم، نه؟ همه ما می‌دانیم چطور آموزش ببینیم. سال‌هاست که این کار را می‌کنیم، شاید از زمان مدرسه. با این وجود ممکن است دریافت و درک ما از یادگیری صحیح نباشد. یا حتی بدتر، شاید عادتی اشتباه برای یادگیری یک موضوع از زمان مدرسه در ما شکل گرفته باشد.پس فهم این موضوع و آشنایی با روش‌های حل اشتباهات رایج در شیوه یادگیری موثر، به عنوان مهمترین مهارت فردی از اهمیت بالایی برخوردار است.در این نوشته سعی داریم با اشباهات رایج در یادگیری و راهکارهای موجود آشنا شویم. Annie Spratt اشتباه اول: یادگیری با عجله و فشار زیاد در مدت کوتاهچون شاغل یا دانشجوام زمان زیادی ندارم. وقتی از سر کار برمی‌گردم خستم. حتی وقت مطالعه چند صفحه از یک کتاب رو ندارم چه برسه به برنامه نویسی! اما آخر هفته... درسته، آخر هفته وقت کافی دارم و می‌تونم کل آخر هفته رو برای برنامه نویسی وقت بذارم. جایی خوندم که برای یادگیری یه زبان برنامه نویسی لازمه که چند صد ساعت آموزش ببینم تا بتونم باهاش جایی استخدام بشم. خب پس اگه بتونم هر هفته حدود ۱۰ ساعت رو به یادگیری این زبان اختصاص بدم در طول یک سال بیشتر از ۵۰۰ ساعت براش وقت گذاشتم و احتمالا سال دیگه بتونم یه شغل مناسب پیدا کنم. چند هفتست که صادقانه دارم تمام تلاشم رو می‌کنم و هیچ آخر هفته ای رو از دست ندادم ولی هر هفته احساس می‌کنم همه چی رو فراموش کردم و باید از اول برگردم و دوباره همه چی رو مرور کنم.این احساس کاملا درست است. کاری که در حال انجامش هستیم دقیقا مانند مطالعه شب قبل امتحان است. احتمالا با این روش مطالعه می‌توانیم نمره قبولی یا حتی نمره عالی در این درس بگیریم اما دانش کسب شده پایدار نخواهد بود و خیلی زود فراموش خواهد شد. مغز ما مانند یک ماهیچه رفتار می‌کند. انتظار نداریم با یک بار ورزش در هفته و انجام آن برای ساعت‌های طولانی بدن ورزیده ای داشته باشیم. به همین دلیل نباید انتظار داشت با مطالعه و آموزش طولانی، ولی یک بار در هفته پیشرفت قابل توجهی در برنامه نویسی داشته باشیم.راهکارپاسخ ایجاد فواصل کوتاه است. یادگیری برنامه نویسی را بین روزهای مختلف هفته تقسیم کنید. یادگیری روزانه شاید غیر واقع بینانه به نظر برسد، اما سعی کنید تا حد امکان آن را عملی کنید. قرار نیست کسی شما را سرزنش کند فقط کافی است یک برنامه ریزی روزانه برای یادگیری برنامه نویسی داشته باشید و صادقانه تلاش کنید. حتی ۳۰ دقیقه آموزش برنامه نویسی روزانه قطعا نتایج بهتری از صرف ساعت‌ها در آخر هفته خواهد داشت. حتی اگر در یک روز زمان خالی بیشتری دارید باز هم بین یادگیری خود فاصله ایجاد کنید. زمان خود را به بخش‌های ۳۰ تا ۶۰ دقیقه تقسیم کنید. بین این زمان‌ها پیاده روی، گوش دادن به موسیقی و یا حتی خوابیدن بسیار مفید خواهد بود :) Magnet.meاشتباه دوم: یادگیری منفعلحدود چند هفته یا ماهه که دارم برنامه نویسی یاد می‌گیرم. مفاهیم و اصول رو یاد گرفتم و چند تا برنامه کوچیک و ساده هم نوشتم. تازه یه دوره سطح میانی رو شروع کردم و تقریبا همه چیزایی که توی این دوره گفته می‌شه رو درک می‌کنم. همه چیز منطقی به نظر می‌رسه و می‌دونم چطوری باید کد بنویسم. همه چیز داره خوب پیش می‌ره و مشکلی نیست. کار بزرگی رو انجام دادم :)دوره داره تموم می‌شه و من هنوز هیچ کدی ننوشتم. چرا بنویسم؟ همه چیز واضح و قابل فهمه. چرا باید وقتم رو هدر بدم و هرچیزی که طرف می‌نویسه منم بنویسم؟ معلومه که کاری نداره.بزرگترین اشتباه در حال رخ دادن است. تماشا ویدئو یا مطالعه کتاب به صورت منفعلانه هیچ چیز به ما یاد نمی‌دهد. اگر برای یادگیری ذهن را به کار وادار نکنیم مغز ارتباطات جدیدی نخواهد ساخت ( تطبیق پذیری رشته های عصبی و یادگیری برنامه نویسی ) و آموزشی شکل نخواهد گرفت و فقط این توهم را خواهیم داشت که در حال رشد هستیم.نگاه کردن به شخصی که در حال حل یک مسأله است با حل کردن مسأله تفاوت زیادی دارد. ممکن است فکر کنیم می‌دانیم چطور باید این کار را انجام دهیم، اما واقعا می‌دانیم؟ فقط بعد از حل کامل یک مسأله می‌توانیم مطمئن باشیم که در انجام این کار مهارت داریم.راهکارفوتبال بازی کردن بلد هستید؟ چند مسابقه فوتبال را دیده اید؟ در مورد نوشتن چطور؟ ریاضیات؟ برنامه نویسی؟ یادگیری فقط به صورت فعال شکل می‌گیرد.باید در اسرع وقت به فکر انجام پروژه‌های خود باشید. حتی اگر تازه کار باشید یا احتیاج به دیدن دوره‌های آموزشی بیشتری داشته باشید تنها در این صورت می‌توانید حداکثر بهره را از آن‌ها ببرید. یادگیری منفعل خود را به یادگیری فعال تغییر دهید. سعی کنید بین موضوعات مختلف ارتباط برقرار کنید. مفاهیم گفته شده در این جلسه با مفاهیم گذشته چه ارتباطی دارد؟ اگر بخواهید این موضوع را به شخص دیگری توضیح دهید از کجا شروع خواهید کرد و به کجا خواهید رسید؟اگر می‌خواهید یادگیری فعال داشته باشید همراه با مدرس دوره کد ننویسید. به روش انجام کار توجه کنید و هر ۵ یا ۱۵ دقیقه سعی کنید با کمک حافظه خود همان کار را تکرار کنید. تاثیر این نوع یادگیری را زودتر از چیزی که انتظار دارید خواهید دید :) the blowupاشتباه سوم: ترس از شکستچند تا دوره آموزش برنامه نویسی رو گذروندم. قدم بعدی چیه؟ فکر نکنم هنوز بتونم یه پروژه بگیرم یا جایی استخدام شم. فکر کنم بد نباشه چند تا دوره دیگه بگذرونم تا چیزایی که بلدم مرور بشه. بهتره برگردم و از مفاهیم شروع کنم. شاید یه دوره جدید بهم دید بهتری بده. تموم کردن یه دوره چند ساعته حس خوبی بهم می‌ده. یعنی توی تصمیم جدی هستم. خب بالاخره بعد از این همه دوره دارم روی یه برنامه کار می‌کنم. باید قسمت ثبت نام رو به برنامم اضافه کنم ولی نمی‌دونم چه جوری؟ ظاهرشم اونجوری نشده که می‌خواستم البته. قبل اینکه بخش ثبت نام رو اضافه کنم بهتره یه دستی به ظاهرش بکشم. باید یه دوره طراحی رابط کاربری بگذرونم.ترس از شکست مانع پیشرفت و یادگیری خواهد شد. مطمئن نی‌ستیم در مرحله باید چه کاری باید انجام شود و توانایی‌های خود را باور نداریم. ترجیح می‌دهیم کارهای ساده را انجام دهیم و از مشکلات دوری کنیم تا شکست نخوریم و بدین ترتیب از منطقه امن خودمان حفاظت کنیم. راهکارخودتان را به چالش بکشید. در ابتدای مسیر نیاز نیست موفق شوید. حس نیاز به موفقیت را دور بیاندازید و خطر کنید. زمانی رشد می‌کنید که مبارزه کنید. زمانی که ذهن شما برای حل یک موضوع به مشکل برخورد کند خلاقیت شکل می‌گیرد. ترس از شکست و راحت طلبی فقط زمان شما را به هدر می‌دهد. اشتباه و شکست از حقایق برنامه نویسی هستند. هر چه زوتر شکست بخورید زودتر رشد خواهید کرد. چالش‌های سخت را قبول کنید و بهترین کاری که می‌توانید انجام دهید.برای یادگیری برنامه نویسی به چیزی جز چالش نیاز نخواهید داشت :) Halacious اشتباه چهارم: عوامل حواس پرتی زیادطبق برنامه ریزی روزانم الان باید قسمت جدید آموزش رو شروع کنم. خب بریم. بذار قبلش توئیترم رو چک کنم. خبری نیست. عه یه پیام توی تلگرام دارم. شاید مهم باشه. یه جک بود. وقت کد نوشتنه. ۵ دقیقه بعد. یه پیام از واتساپ. بذار ببینم چیه؟ هیچی. بریم بقیش. چند دقیقه بعد. این دیگه کیه زنگ زده؟ بذار جواب بدم زود قطع می‌کنم. باید برم سراغ ایمیلم تا دنبال چیزی بگردم که دوستم خواسته. ای بابا، یک ساعت گذشت و باید برم سراغ کار بعدی توی لیستم.وقتی دائما حواس پرتی داشته باشیم نمی‌توانیم چیزی یاد بگیریم. حتی یک کار کوچک نیز می‌تواند دلیل عدم تمرکز باشد. بدون داشتن تمرکز و دقت کافی مغز نمی‌تواند از تمام ظرفیت خود برای یادگیری استفاده کند.راهکاربر روی یک چیز تمرکز کنید. انجام چند کار باهم هیچ فایده ای نخواهد داشت. گوشی خود را روی حالت سکوت یا در یک اتاق دیگر قرار دهید. در سکوت کامل و با تمرکز حواس کامل کار کنید. استفاده از موسیقی برای افزایش تمرکز بسیار موثر است. سعی کنید تمام عواملی که باعث حواس پرتی در حین یادگیری می‌شوند را از بین ببرید. حتی اگر نیاز به مرورگر دارید سعی کنید از مرورگری استفاده کنید که به صورت معمول از آن استفاده نمی‌کنید. با این کار به سراغ سایت‌های مورد علاقه و محبوبتان نخواهید رفت :)اگر تمرکز کافی برای انجام کاری را ندارید تکنیک‌های افزایش تمرکز مانند پومودورو را امتحان کنید. در ویرایشگر خود از حالت تمام صفحه برای نوشتن کد استفاده کنید. وقتی در حال کدنویسی شخصی مزاحم کار شما می‌شود از او بخواهید زمان دیگری را انتخاب کند. اگر این مشکل زیاد برای شما پیش می‌آید یک راه حل خوب استفاده از هدفون می‌باشد، حتی اگر موسیقی گوش نمی‌کنید. این کار یعنی شما در حال حاضر در حال انجام کار دیگری هستید.در آخربه خاطر داشته باشید یادگیری برنامه نویسی یا هر مهارت دیگری به صورت شهودی و بصری غیر ممکن است. تکنیک‌های یادگیری موثر اغلب با عادت‌های ما در تضاد هستند. تمرین و تکرار تنها راه غلبه بر عادت‌های مضر و مخرب ما برای یادگیری موثر است. زمانی را به آموختنِ چگونه آموختن اختصاص دهید و می‌بینید در بلند مدت ساعت‌ها از زمان شما را ذخیره خواهد کرد.شروع هر کاری سخت است، اما به یاد داشته باشید هر روز کمی آسان‌تر خواهد شد :)بازنشر و نظر شما با ارزش و باعث دلگرمی است ❤︎این نوشته ترجمه ای آزاد بود از Learning Fast and Slow.