بسم الله الرحمن الرحیم
سلام علیکم
در خیلی از مقالات خوانده ایم و یا از افرادی که در حوزه برنامه نویسی دیدیم بر ناتوانی شان در حفظ کردن کدها و یا چارچوب های برنامه نویسی شنیده ایم .
مخصوصا افرادی که تازه شروع به یادگیری برنامه نویسی می کنند خیلی با این مشکل دست و پنجه نرم می کنند .
مثلا از خیلی از افراد برنامه نویس , شنیده ایم که می گویند دوره های آموزش برنامه نویسی که مثلا در ظرف 40 ساعت , یک سایت کامل رو بالا می آورند برای یادگیری برنامه نویسی خوب نیستند .
شاید یکی از علت های بزرگ این حرف این باشد که وقتی وارد یک طرح بزرگ می شوید که یک سایت فروشگاهی کامل رو بالا می آورد آنقدر جزئیات وجود دارد که شما نمی توانید همه آنها را حفظ کنید و در واقع بعد از مدتی که با مدرس کد زدید وقتی برگردید و نگاه کنید که چه طوری این همه کد کنار هم سوار شد و این سایت بالا آمد چیزی به یادنمی آورید .و در واقع چند ماه سر آموزش این طرح وقت خود را هدر داده اید.
راه حلی که آنها پیشنهاد می کنند این است که می گویند به جای یک طرح بزرگ , ازطرح های کوچک شروع کنید آنقدر طرح های کوچک را تمرین کنید که به راحتی بتوانید از کنار هم قرار دادن این طرح های کوچک جا افتاده , یک سایت بزرگ را بسازید .
فکر می کنید آیا می شود کاری کرد که به جای درگیر شدن با طرح های کوچک , از اول با طرح های بزرگ و ایجاد کردن سایت های کامل کار رو شروع کرد ؟
اگر بشود مشکلی که در زمینه سردرگمی در طرح های بزرگ بعد از پایان آموزش وجود دارد را حل کرد آن وقت می توانیم از اول به جای پرداختن به طرح های کوچک , با طرح های کامل آموزش رو شروع کنیم.
فکر کنید در حال کار کردن بر روی یک سایت بزرگ هستید و مثلا می خواهید دکمه جستجو رو در این سایت بزرگ پیاده سازی کنید . برای این کار باید اول کدهای اچ تی ام ال و سی اس اس دکمه ها رو بزنید و در قدم بعدی کدهای جاوا اسکریپت رو کار کنید و در گامی دیگر کدهای مربوط به نوع پایگاه داده رو بزنید و بعد در گام بعدی نحوه نمایش نتیجه جستجو در صفحه رو کار کنید .
می بینید که طراحی یک دکمه ی جستجو که خودش بخشی از یک سایت بزرگ هست خودش از چندین مرحله تشکیل شده است . اگر ما بتوانیم این گام های مختلف رو از همدیگر جدا کنیم و کارهایی که در هر گام , مدرس برنامه نویسی انجام می دهد و ما هم همراه او کد می زنیم رو در یک جایی ذخیره کنیم و بعدا بتوانیم تغییرات هر گامی رو که برداشتیم رو ببینیم آن وقت دیگر بعد از پایان دکمه جستجو سردرگم نخواهیم شد که این همه کد چی بود و چطور روی هم سوار شده است.
عینا همین رو شما به کل سایت تعمیم بدهید , فرض کنید یک سایت بزرگ از هزاران جز تشکیل شده که برای پیاد ه سازی هر جز آن شما باید چندین گام رو بردارید اگر بتوانید کارهایی که هر بار روی این اجزا انجام می دهید و گام هایی که در هر جز بر می دارید را به صورت تفکیک شده و جدا جدا در یک جایی ذخیره کنید . دیگر بعد از پایان طرح بزرگ یک سایت بزرگ شما در میان هزاران کد سردرگم نخواهید شد . و عملا مشکل بزرگ مواجه شدن با طرح های بزرگ از بین می رود.
فرض کنید می خواهید کل قطعات یک ماشین رو روی هم سوار کنید و یک ماشین کامل درست کنید اگر یک نقشه داشته باشید که مرحله به مرحله و قدم به قدم نحوه بستن هر قطعه و رفتن به مرحله ی بعدی رو به شما بگوید آن وقت دیگر مشکلی نخواهید داشت و هزاران قطعه ماشین رو روی هم سوار می کنید.
در برنامه نویسی خوشبختانه بزرگان این مسیر از قبل به این مشکل پی برده اند و برای آن یک ابزار بی نظیر ساخته اند . نام این ابزار گیت هست . ابزار گیت دقیقا کاری که می کند این است که می تواند هر مرحله و گام های مختلف هر مرحله رو از هم تفکیک کند و شما به راحتی می توانید در مراحل مختلف و گام هایی که در آن مرحله برداشتید هزاران بار بچرخید و کدها رو بررسی کنید و دیگر دچار عارضه گیر کردن در انباری هزار توی کدهای تو در تو نشوید .
در گیت شما می توانید برای هر مرحله از یک طرح یک شاخه (برنچ) درست کنید و داخل آن شاخه , گامی که برمی دارید رو ارسال (کامیت) کنید به گیت . هر بار که کدها رو ارسال می کنید و دوباره در قدم بعدی ارسال دیگری رو انجام می دهید گیت فقط تغییراتی که بین این دو گام صورت گرفته رو به شما نشان می دهد و شما مثلا می بینید در این گام اول اچ تی ام دکمه رو زدید و بعد رفتید در سی اس اس سبک نمایش دکمه رو زدید و مابقی کدها رو به شما نمایش نمی دهد .
برای اینکه بتوانید از مراحل مختلف طرح خود عکس هایی بگیرید و اون عکس ها رو در کنار کدها داشته باشید پیشنهاد می کنم داخل پوشه طرح ,که در آن گیت رو ایجاد کردید یک پوشه ی عکس هم ایجاد کنید و در هر گام عکس هایی رو گرفته و داخل آن قرار دهید این طوری تمام عکس ها در یک پوشه قرار می گیرد ولی گیت فقط عکس های مربوط به هر گام رو به شما نشان می دهد یعنی می توانید عکس ها رو به صورت تفکیک شده در مراحل و گام های مختلف داشته باشید.
با این کار دیگر نیازی به حفظ کردن کدها نیست هر وقت خواستید کاری رو در سایت انجام دهید کافی است به مرحله و گام مشابه که قبلا در گیت ایجاد کردید و آموزش دیده اید بروید و با دیدن کدها , بتوانید از تمام توابع اون زمینه اطلاع پیدا کنید .
دقت کنید که ذهن ما کارش , چیدن اطلاعات کنار هم هست و نه حفظ کردن آنها . گرچه اگر کسی بتواند حفظ کند , در کار کردن ذهن اش خیلی باز تر می شود . و انتخاب های زیادی در مسیر کد زدن می تواند داشته باشد . ولی خب این برای همه امکان پذیر نیست و هر کسی باید طبق مزاج خودش و سیستم بدنی خودش مسیر زندگی و کار خودش رو انتخاب کند.
بعضی از بزرگان علمی خیلی مطرح قدیم برای خودشان چیزی مثل گیت درست می کردند ولی یک گیت کاغذی , واین نشان می دهد مشکل حافظه در قدیم هم یک مشکلی بزرگی بوده است و افراد راهکارهایی برای آن داشته اند.
در این مورد بیانات رهبری در مورد شهید مطهری جالب هست :
(( بنده نمونههای تلاش علمی این بزرگوار را از نزدیک دیده بودم. برای هر موضوعی یادداشتهایی داشت؛ در هرجا یک نکتهای مشاهده میکرد، آن را فوراً برمیداشت یادداشت میکرد و در یک جای مشخّصی میگذاشت. ایشان به من نشان داده بود پاکتهایی را که دربارهی موضوعات مختلف در اینها یادداشت کرده بود. من همانوقت تعجّب میکردم چه حوصلهای، چه نشاطی، چه پیگیری و تلاشی! خب، نتیجه این است که امروز ۳۵ سال از شهادت این مرد میگذرد، [امّا] کتابهای او و حرفهای او همچنان زنده است. )) مبنع
چند مقاله مرتبط در این زمینه , شاید یک دیدگاه جدید فقط برای یک نفر ایجاد شود همین کافی است :