سخت‏‏‌ترین عوامل در یادگیری خودآموز برنامه‏‌نویسی و نحوه مقابله با آن‏‌ها

در سال‌های اخیر بسیاری از افراد به یادگیری برنامه‌‏نویسی علاقه‌مند شده‌‏اند.آن‌ها یا از طریق دوره‌های آنلاین، یا از طریق دورهمی‌های آفلاین راه خود را در دنیای برنامه‌نویسی پیدا می‏‌کنند، یا صرفا می‏‌خواهند شانس خود را در این زمینه امتحان کنند.وب‏سایت‌هایی مانند code.org، codecademy و freecodecamp در حال معروف‌تر شدن هستند. تعداد بسیاری دوره آموزشی در سطح وب و مخصوصا یوتیوب وجود دارند.اما برنامه‌نویسی آسان نیست. در اینجا برخی از چالش‌هایی که همه ما هنگام یادگیری برنامه‌نویسی با آن روبرو می‏‌شویم، آمده است.1. پیدا کردن مقدار زمان مناسب برای برنامه‌نویسی روزانهاگر به صورت خودآموز برنامه‌‏نویسی را یاد می‌گیرید، به احتمال زیاد مسئولیت‌های دیگری هم در زندگی دارید.ممکن است یک شغل نیمه‌وقت یا یک کار تمام‌وقت داشته باشید یا والدین خانه‌نشین باشید. مسئله این است که همه در زندگی پرمشغله هستند. بنابراین چگونه می‌توانید برای برنامه‌نویسی روزانه زمان پیدا کنید؟برخی افراد ممکن است بگویند: خب، اگر به اندازه کافی متعهد باشید، همیشه می‏‌توانید زمان پیدا کنید. درست است. من موافقم.پس این سوال مطرح می‌شود: روزانه چقدر زمان باید به برنامه‌‏نویسی اختصاص دهیم؟ اگر روزانه بتوانم فقط نیم ساعت به این کار اختصاص دهم، آیا کافی است؟این سوالی است که فقط خود شما می‏‌توانید به آن پاسخ دهید. تخمین اینکه چند ساعت باید در روز برنامه‌‏نویسی کنید بسیار دشوار است. برخی افراد پیشنهاد می‏‌کنند که آن را کوتاه و لذت‌بخش نگه دارید. 15 دقیقه به اندازه کافی خوب است.از طرفی دیگر، من افرادی را دیده‌‏ام که با روزی 9 یا 10 ساعت برنامه‌‏نویسی به مدت یک سال یا بیشتر، وارد حوزه توسعه شده‌اند.نتیجه نهایی این است: فقط خود شما می‌دانید که روزانه چقدر می‌توانید برنامه‌‏نویسی کنید و بدون این که دچار خستگی و ملال شوید، آن را به یک عادت تبدیل کنید. بخش آخر بسیار مهم است. بنیان‏گذار freecodecamp یک بار در توییتر گفت:مهم نیست که هر روز چقدر پیشرفت می‌کنید. مهم این است که هر روز پیشرفت کنید.در اینجا ویدئویی از یک توسعه‌دهنده ارشد وجود دارد که ده‌‏ها سال است در زمینه فناوری فعالیت می‌کند و در مورد مدت زمانی که برنامه‌‏نویسان به طور روزانه در حین کار برنامه‏‌نویسی می‌‏کنند صحبت می‌کند.این استاندارد طلایی نخواهد بود اما به شما ایده می‌دهد که چگونه برای یادگیری روزانه برنامه‌‏نویسی، برای خود برنامه‌ای واقع‏‌بینانه و مهم‌‏تر از آن پایدار تعیین کنید.2. پیدا کردن تعادل بین "پیشرفت نکردن به اندازه کافی و خوب" و "خسته و ملول شدن"من به شخصه، خیلی با این مسئله کلنجار رفتم.روزهایی وجود دارد که من نمی‌توانم یک مفهوم/قطعه کد را از کتابی که می‏‌خوانم درک کنم. انگار در مغزم فرو نمی‌‏رود. آنقدر خسته می‌شوم که مجبورم خودم را آرام کنم، به بالکن بروم و نفس عمیق بکشم.از آن زمان به بعد، همواره به خودم یادآوری می‏‌کنم که بیش از حد در آن کار عمیق نشوم تا جایی که دیگر هیچ بازگشتی وجود نداشته باشد.برنامه‏‌نویسی آسان نیست. نیاز به تمرکز دارد، مخصوصا هنگامی که در حال یادگیری مطالب جدید هستید.از لحاظ ذهنی خسته‌‏کننده است و مواقعی وجود دارد که نمی‌توانید بفهمید که چرا کد شما کار نمی‌کند، یا حتی چرا کار می‏‌کند!من فهمیدم که هر زمان که واقعاً روی مشکلی که روی آن کار می‌کردم متمرکز بودم اما در عین حال واقعاً آرام بودم و از کلیت فرآیند لذت می‌بردم، بیشترین بهره‌وری را داشتم.این زمانی بود که من:مشکلی را پیدا می‌کردم که باید آن را رفع می‌کردم.راه‏‌حل را از طریق گروه‌های آنلاین پیدا می‏‌کردم.چندین راه مختلف را برای حل آن امتحان می‌کردم تا صرفا ببینم کدام یک جواب می‏‌دهد.مسئله را به طور کلی حل می‏‌کردم.برای کنار آمدن با این واقعیت که بسیاری از مطالبی که می‏‌آموزیم بسیار خشک و پیچیده است (ساختار داده‌ها و الگوریتم‌‏ها و موارد دیگر)، من این قانون 50/50 را برای زمانی که در حال یادگیری برنامه‌نویسی هستم ایجاد کرده‌‏ام.من از 50٪ زمان برای انجام کارهای دشوار، مطالعه اصول، مفاهیم، الگوریتم‌ها و موارد دیگر استفاده می‏‌کنم. 50 درصد دیگر، پروژه‏‌های خودم را انجام می‏‌دهم، پروژه‌هایی که واقعاً به آنها علاقه دارم. به طوری که در مطالعه روزانه من تعادل ایجاد می‏‌شود.بنابراین، به طور صریح باید گفت: شما باید کاری را که انجام می‏‌دهید دوست داشته باشید. که ما را به نکته بعدی می‏‌رساند.3. دوست داشتن آنچه انجام می‌‏دهید تنها راه گذر از همه این موانع استهر چقدر هم کلیشه به نظر برسد، گاهی اوقات این یک حقیقت است. اگر راهی را که در پیش می‌گیرید دوست دارید، عاشق شغلی هستید که انجام می‌دهید، عاشق مسیری هستید که در حال حرکت هستید، شما نیازی به تایید دیگران ندارید.این نوع تحقق بخشیدن به اهداف را نمی‌توان به امانت گرفت یا جایگزین کرد یا حتی بدتر از آن جعل کرد.ویدیو حرف‌های استیو جابز در این مورد را می‌توانید اینجا ببینید4. همواره پس از انجام دادن سایر مسئولیت‌های زندگی، به برنامه‌نویسی بازگردیدحقیقت این است که وقتی درمورد خودآموزی صحبت می‌کنیم، هیچ‌وقت شما فقط در حال یادگیری نیستید. در زندگی همه‌ی ما، مسئولیت‌های متنوعی وجود دارد که باید به آن‌ها متعهد باشیم.ممکن است شما عهده‌دار نقش همسر، پدر یا مادر باشید. شاید لازم باشد از خانواده‌ی خود مراقبت کنید، اگر شاغل هستید باید به امور کاری خود رسیدگی کنید، یا اگر دانشجو هستید باید درس بخوانید تا مدرک فارغ‌التحصیلی بگیرید.با وجود تمام این وظایفی که بر دوش ماست، چه زمانی را برای پرداختن به برنامه‌نویسی پیدا کنیم؟حقیقتا گاهی اوقات این کار امکان‌پذیر نیست. روزهایی بوده است که در آن‌ها از برنامه نویسی صرف‌نظر کرده‌ام. طولانی‌ترین زمان دوری من از کدزنی دو ماه بوده است؛ اما بلافاصله بعد از آن، دوباره برنامه‌نویسی را از سر گرفته‌ام و متوجه شدم بسیاری از چیزهایی که یاد گرفته بودم را فراموش کرده‌ام!ممکن است ناامیدکننده باشد که وقتی همان کتاب را دوباره به دست می‌گیرید، هیچ ایده‌ای ندارید چطور آن را ادامه دهید:«خدایا! واقعا باید دوباره همه‌ی فصل‌ها را بخوانم و درموردشان جستجو کنم؟»این همان لحظه‌ایست که باید در آن پشتکار به خرج دهید، سرعت کار را کاهش دهید و باحوصله انجامش دهید.باید به خود بگویید:«خب، ممکن است اولین ساعاتِ مطالعه کند پیش برود یا به اندازه‌ی کافی مفید نباشد، اما فردا با یادگیری بیشتر جبران می‌کنم.»راه دیگری برای آسان کردن این مقطع وجود ندارد، اما برای پیشرفت، به تلاش کردن ادامه دهید و همچنان ادامه دهید!به جمع برنامه‌نویسان یا به توییتر بروید و ناامیدی خود را آنجا ابراز کنید اما به محض انجام این کار، دوباره به برنامه نویسی بازگردید.5. انگیزه‌ی خود را به هر روشی که می‌توانید حفظ کنیدخودآموزی با حضور در مدرسه بسیار متفاوت است. وقتی خودآموز شروع به برنامه‌نویسی می‌کنید، کسی اطراف شما نیست. هم‌کلاسی‌ای وجود ندارد، خبری از تعامل اجتماعی با انسان‌ها نیست و هیچ جشن بزرگی در انتهای تونل انتظار شما را نمی‌کشد.در انجام این کار، اغلب تنهایید و باید تک نفره از پس آن بربیایید. پس باید انگیزه‌هایی داشته باشید که همواره شما را به جلو حرکت دهند.همچنین به خودتان جایزه دهید و این کار را به عادت تبدیل کنید!جایزه‌ی شما ممکن است کوچک یا بزرگ باشد. می‌تواند یک دوش آب گرم در انتهای روز یا یک نوشیدنی خنک باشد. لازم است هنگام برنامه‌نویسی به خودتان یادآوری کنید که در حال انجام کار بزرگی هستید.تصویر زیر را از دیوار مقابل خود آویزان کنید، زیرا باید باور کنید می‌توانید به فردی تبدیل شوید که اکنون در مقابل او نشسته‌اید.رویای هر برنامه‌نویس!6. در دام اشتباه «یادگیری برای یادگیری» نیفتید. مصاحبه کنید، با افراد ملاقات کنید و به دنبال کار بگردید.ممکن است گاهی اوقات هنگام برنامه‌نویسی، تمرکزتان به وسیله‌ی امور جانبی کاهش یابد. حس می‌کنید لحظاتی وجود دارد که می‌خواهید فقط تنبل باشید؛ نه اینکه دیگر نخواهید به یادگیری ادامه دهید، بلکه با وجود نشستن جلوی مانیتور امیدوارید با چالش اصلی روبه‌رو نشوید: استخدام شدن به عنوان یک توسعه‌دهنده.دچار این مغلطه که «همین که در حال یادگیری هستم به اندازه‌ی کافی خوب است و بعدا، زمانی که آمادگی کافی پیدا کردم، به شغل فکر می‌کنم» نشوید. صادقانه بگویم این، چیزیست که باید بیشتر به آن بپردازم: تماس با مشتری و قبول پروژه‌ی واقعی. حتی اگر آن، توسعه‌ی یک وبسایت به صورت رایگان برای دوستان یا خانواده‌ام باشد.‌همچنین دفعه‌ی بعدی که به مصاحبه می‌روید، می‌توانید نشان دهید قبلا چه نوع کارهایی را انجام داده‌اید. این به رزومه‌ی شما اعتبار می‌بخشد. برداشتن اولین قدم برای هر کار، سخت‌ترین بخش آن است؛ اما هر چه باشد، شما باید آن قدم را بردارید.همه‌ی چیزهایی که در بالا گفتیم، موقعیت‌ها و چالش‌هاییست که در مسیر تبدیل شدن به یک توسعه‌دهنده با آن‌ها مواجه خواهید شد. با شناخت کافی و نگرش درست با آن‌ها روبه‌رو شوید. توجه داشته باشید موانعی که در مسیر خود به آن‌ها برمی‌خورید، شما را به توسعه‌دهنده‌ی قوی‌تری تبدیل می‌کنند.آخرین نکته که اهمیت زیادی دارد این است که با خوشحالی برنامه بنویسید. از چیزی که در حال ساخت آن هستید لذت ببرید. خواه پروژه‌تان باشد، خواه آینده‌تان.متنی که خواندید ترجمه این مقاله استما را در تلگرام دنبال کنید