۶ نکته در یادگیری برنامه‌نویسی که کمک میکنه برنامه‌نویس بهتری باشید

همه مون خوب میدونیم که یادگیری در فرایند برنامه نویس بودن (و شدن!) خیلی مهمه و ماها باید مدام درحال یادگیری باشیم تا خودمون رو با پیشرفت تکنولوژی هماهنگ نگه داریم.اما اینکار سخته و بعضی موقعا خیلی طاقت فرسا میشه. مخصوصا برای افرادی مثل من که تصمیم گرفتن به تنهایی و بدون آموزش رسمی و آکادمیک وارد این حوزه بشن.بعضی وقت‌ها، حتی کار به جایی میرسه که دلمون میخواد همه چیز رو رها کنیم و بیخیال همه‌ی پیشرفت‌هامون بشیم و بریم سراغ یه فیلد و حوزه‌ی کاری دیگه!اما چجوری باید این احساسات رو کنترل کنیم و از این موانع رد بشیم؟ چطور میشه مسیر یادگیری رو هموارتر و موثرتر کرد؟؟توی این مطلب، ۶ تا نکته مهم درمورد یادگیری برنامه نویسی رو برررسی میکنم که با رعایت اونها، می‌تونید روند پیشرفتتون رو سریعتر کنید اما تمامی این موارد، روی یک پیش‌فرض خاص بنا شده: اینکه شما یک یادگیرنده‌ی مداوم هستید!اینکه مدام مشتاق یادگیری باشید، مهمترین کلید و زیربنای تبدیل شدن به یک برنامه‌نویس خوبه.نکات کاربردی یادگیری برنامه نویسی1. رعایت تداوم و مدت۲۰ دقیقه کار و تمرین در هر روز، بهتر از اینه که ۳ بار در هفته، به مدت ۲ ساعت تمرین کنیم!دلیلش به ذهن خودآگاه و ناخودآگاه ما برمیگرده. گفته میشه که توان پردازشی ضمیر ناخودآگاه ما، ۴۰ برابر بیشتر از خودآگاه‌مونه.به این ترتیب، باید بتونیم از این ظرفیت استفاده کنیم و بخش زیادی از کار رو به اون بسپاریم. اما چطوری؟?بخش ناخودآگاه ذهن ما بیشتر روی فعالیت‌های روتین و عادت‌ها تمرکز داره.به این ترتیب، اگه خودتون رو عادت بدین که هر روز، به یک میزان مشخص، یک فعالیت مشخص رو انجام بدید، تونستید ضمیر ناخودآگاه رو وارد بازی کنید و ازش کار بکشید.اینطوری، دیگه قرار نیست یه توان ذهنی اضافی رو صرف آماده‌سازی و قانع کردن خودتون کنید:میدونیم که ذهن ما همیشه برای انجام فعالیت‌های سخت مانع تراشی میکنه و دنبال بهونه میگرده تا از انجام اون فرار کنه. تبدیل به عادت کردن یک موضوع، میتونه این مشکل رو تا حدودی حل کنه.پس بهتره که یک مدت زمان ثابت در هر روز رو به تمرین و یادگیری برنامه نویسی اختصاص بدید، تا اینکه سعی کنید یکباره و یکجا، مدت زمانی طولانی رو برای اون صرف کنید.2. بین یادگیری وقفه ایجاد کنیداین نکته، با مورد قبلی خیلی مرتبطه. ایجاد وقفه و فاصله بین زمان‌های یادگیری، میتونه به ذهن ما فرصت پردازش مفاهیم آموخته شده رو بده.بذارید موضوع رو با یه مثال روشن کنم. فرض کنید که میخواین توی یه روز، یه سریال خیلی طولانی رو ببینید. اینجوری، از هر اپیزود، صحنه‌های کمی توی ذهنتون می‌مونه و بعد تموم شدن سریال هم، معمولا فقط میتونید اول و آخر اون رو خوب به یاد بیارید (و با ارفاق، چندتا از صحنه‌های استثنایی وسط فیلم!)اما حالا فرض کنیم که قراره هر روز، فقط یه قسمت تماشا کنیم! به این ترتیب، تا روز بعد، ذهن ما فرصت داره که اتفاقات اپیزود قبلی رو تجزیه تحلیل کنه، رابطه بین اتفاقات رو بفهمه و اونها رو ثبت و ضبط کنه.این موضوع، توی یادگیری برنامه‌نویسی هم تاثیر زیادی داره. زمانی که میخواین یه مفهوم سنگین رو در یک مدت کوتاه یاد بگیرید، واقعا انتظار زیادیه که از ذهنتون بخواین تمام این موارد رو جذب کنه و طبیعیه که حجم زیادی از اطلاعات هرز میره و ثبت نمیشه.اگه با پروسه دیباگ سروکله زده باشین، احتمالا این قضیه براتون آشناست.برای من چندبار پیش اومده که درگیر حل یک باگ (یا حتی نوشتن یه قطعه کد) بودم و به هیچوجه راه حل مساله رو نمیتونستم پیدا کنم.توی این موقعیت‌ها، سعی میکنم فقط برم بخوابم یا استراحت کنم! و جالبه که بعد از زمان استراحت، معمولا اون باگ یا مساله توی چند دقیقه حل میشه!دلیلش هم تاحدودی مشخصه. در مدت استراحت، مغز فرصت پیدا کرده تجدید قوا کنه و شارژ بشه. علاوه بر اون، توی این مدت، پردازنده‌ی ما (مغزمون) داشته در پس زمینه روی مساله کار میکرده و داده‌ها رو کنار هم مرتب میکرده و باعث شده که ما راه‌حل نهایی رو راحت‌تر ببینیم!به این ترتیب، نتیجه اخلاقی این بخش، اینه که سعی نکنید مناره رو در گنجشک جا بدید! زمان کافی رو در اختیار مغزتون بذارید که بتونه مطالب رو پردازش کنه و اونا رو تا حد ممکن بفهمه.3. از دنیا جدا بشید!بعد از چند ساعت که به طور متمرکز روی یه موضوعی کار کردید، یا اینکه داشتید یه موضوع خاص رو یاد میگرفتید، حس خیلی خوبی بهتون دست میده و به یه لذت روانی عجیب میرسید (البته خستگی هم هست که خب طبیعیه)توی این مدت، نذاشتین چیزی حواستون رو پرت کنه، اخبار و شبکه‌های اجتماعی‌تون رو چک نکردین، به وبلاگ‌ها سر نزدید و فقط رو کار کردن متمرکز بودین.برنامه‌نویس‌های حرفه‌ای، این توانایی رو از خودشون نشون میدن. اونا میتونن ساعتها روی صندلی‌‍شون بشینن، از دنیای اطرافشون جدا بشن و فقط به کاری که دارن انجام میدن فکر کنن.زمانی که به این شکل از دنیا جدا میشید، تمرکز و خلاقیتتون به بالاترین حد خودش میرسه و ذهن، بهترین عملکرد ممکن رو از خودش نشون میده. وقتی هم که کارتون تموم شد، یه مقدار هورمون اندورفین توی بدنتون ترشح میشه که بخاطر اون، احساس خوشحالی و سرخوشی بهتون دست میده.البته اینم در نظر بگیرید که اگه میخواین در طولانی مدت، این تمرکز رو حفظ کنید، نباید مدت زمان هر بار استفاده از این تکنیک رو خیلی زیاد کنید. برای خود من، این مدت حدود ۳ تا ۴ ساعته ولی خب، بستگی به خودتون داره. اما بعنوان قاعده کلی، سعی کنید طولانی‌تر از این مدت نشه (چون باعث خستگی بلند مدت میشه)4. بین یادگیری فعال و غیرفعال تعادل ایجاد کنید.زمانی که یه مبحث برنامه‌نویسی رو از طریق کتاب یا ویدیو یا دوره آموزشی میگذرونید، یادگیری‌تون غیرفعال هست و فقط گیرنده مفاهیم و اطلاعات مختلف هستید.در عین حال، زمانی که برنامه‌نویسی رو ازطریق انجام دادن پروژه‌های آموزشی یاد می‌گیرید و تجربه کسب می‌کنید، در حال یادگیری فعال هستید.هردوی اینها مهمن اما مهمتر از اون، تعادلیه که باید بین‌شون برقرار کنید.اگه ابتدای راه یادگیری برنامه‌نویسی هستید، باید نسبت ۱ به ۲ رو برقرار کنید: دوبرابر مدت زمانی که تمرین می‌کنید رو باید برای یادگیری مفاهیم تئوریک و پایه‌ای صرف کنید. چرا که هنوز مفاهیم و اصول زیادی هستن که باید یاد بگیرید.به مرور زمان که پیشرفت می‌کنید، سعی کنید به نسبت یک به یک برسید: همون اندازه که مفاهیم رو میخونید و یادگیری غیرفعال دارید، باید تمرین کنید و یادگیری فعال هم داشته باشید.به مرور که تسلطتون بیشتر شد، میتونید این نسبت رو با توجه به نیاز تغییر بدید، اما همیشه حواستون باشه که عدم تعادل، میتونه باعث افت عملکردتون بشه.اگه تمام مسیرتون برای یادگیری برنامه‌نویسی به شکل فعال باشه، علاوه بر اینکه خیلی از مفاهیم پایه رو یاد نمی‌گیرید و متوجه نمیشید که کدها دقیقا چجوری کار میکنن، نمیتونید راه‌های تازه‌تر برای انجام کارهای قدیمی رو هم پیدا کنید.در مقابل، اگه کفه‌ی ترازوی یادگیری غیرفعال خیلی سنگین‌تر باشه، شما تبدیل میشید به انباری از دانش تئوریک که از پس نوشتن خیلی از کدها برنمیاد!قبلا توی مقاله “صفر تا صد تبدیل شدن به برنامه‌نویس وب” توضیح دادم که برنامه نویسی یه کار تجربیه و خیلی از فوت و فن‌های کار رو فقط وقتی متوجه میشید که دست به کد بشین و خودتون پروژه‌های مختلف رو انجام بدید.5. چیزی که یاد گرفتید رو آموزش بدیدوقتی که دارید یه چیزی رو آموزش میدید، خودتون دوبار یادش می‌گیرید!موقع یاد دادن یه موضوع یا مفهوم، میتونید اونو از یه زاویه کاملا متفاوت ببینید و چیزهای رو متوجه بشید که تا اون موقع براتون مخفی یا نامفهوم بودن.به این ترتیب، شناختتون از موضوع عمیقتر میشه و علاوه بر این، میتونید چیزهایی که فهمیدین رو با دیگران به اشتراک بذارید و توی مسیر موفقیت دیگران در یادگیری برنامه‌نویسی موثر باشید.برای آموزش هم راه‌های زیادی وجود داره. موضوع رو برای دوستتون یا توی جلسات کلاسی و دانشگاهی توضیح بدید یا اینکه فیلم‌های آموزشی تولید کنید و توی یوتیوب یا آپارات قرار بدید. (از طریق این ویدیوها، حتی امکان کسب درآمد هم وجود داره!)حتی میتونید یه سایت یا وبلاگ برای خودتون بسازید و اونجا مطالب آموزشی منتشر کنید (مثل همین سایت اکتااسکریپت!) نگران نباشید که خیلیا قبل شما اینکارا رو کردن!یادتون باشه، هدف اول، یادگیری خودتونه. علاوه بر این، خیلی مواقع پیش میاد که میتونید از یه زاویه جدید به قضایای قدیمی نگاه کنید و این خیلی ارزشمنده.اینو هم اضافه کنم که داشتن یه سایت یا وبلاگ، میتونه به برندینگ شخصی شما هم کمک کنه!6. یاد بگیرید که چطور و چه وقت استراحت کنید!من تمام تلاشی که شما بعنوان برنامه‌نویس انجام میدین رو درک میکنم و اونو ارزشمند میدونم (خود من بعد از یه روز طولانی کاری، ساعت ۱۰ شب پشت لپتاپ نشستم و دارم این مطلب رو مینویسم پس کاملا درک میکنم چی می‌کشید! D: )اما باید توجه داشته باشیم که اگه به صورت بی‌وقفه، سخت کار کنیم، خودمون تضعیف میشیم. یادتون باشه باطری بدن و ذهن‌تون، یه چیزی مثل باطری موبایل‌تونه و باید هر از گاهی شارژ بشه.به این ترتیب، حتما سعی کنید به اندازه کافی بخوابید و استراحت کنید، هر از گاهی یکم از موضوعات فاصله بگیرید و از همه مهمتر، سعی کنید از مسیر یادگیری برنامه‌نویسی لذت ببرید!یادمون نره که برای انجام دادن یه کار فوق‌العاده، باید مدت‌های طولانی، یه سری کار معمولی رو انجام بدیم!جمع بندیتوی این مقاله، سعی کردم چندتا نکته مهم در مسیر یادگیری برنامه‌نویسی رو بررسی کنم و بگم چه تله‌هایی ممکنه سر راهتون وجود داشته باشه.علاوه بر این، راه‌های فرار از این تله‌ها رو هم گفتم تا بتونیم یه نگاه بلند مدت داشته باشیم و برای رسیدن به نتایج موقتی، خودمون و اهدافمون رو قربانی نکنیم.به قول انگلیسی‌ها:Good Things, take time!طبق معمول، خوشحال میشم اگه نکته‌ای درمورد این موضوع به ذهنتون رسید، برام بنویسید و حتی خوشحالتر میشم اگه این مطلب رو برای دوستاتون هم بفرستید و اگه دوست داشتید، به سایت من هم سر بزنید: octascript.com