۷ روش مفید برای تسلط بر یک زبان برنامه‌نویسی جدید
1398/04/16 12:46 , میلاد صاحب نظر

۷ روش مفید برای تسلط بر یک زبان برنامه‌نویسی جدید

برنامه‌نویسی کار خیلی مشکلی است. تنها افرادی که ممکن است نظری غیر از این داشته باشند، افرادی هستند که دارای سال‌ها تجربه کد نویسی هستند. اشکالی ندارد که با سختی رو به رو شوید!

هنوز خیلی چیزها وجود دارند که باید بیاموزید و احتمالاً به همان سرعتی که چیزهای جدید می‌آموزید، خیلی چیزهای دیگر را نیز فراموش خواهید کرد. باور کنید: این کاملاً طبیعی است!

اما چون این روند یک امر طبیعی است، به این معنا نیست که خسته‌کننده و ناامید‌کننده نیست. باید حقیقت را گفت، یاد گرفتن کد نویسی می‌تواند بسیار استرس‌زا باشد، البته اگر با ذهنیت درست و با آمادگی به سمت آن نروید.

شما می‌خواهید یک زبان یا کتابخانه یا فریمورک جدید را در سریع‌ترین زمان ممکن یاد بگیرید، درست است؟ این کاملاً قابل درک است.

خوشبختانه، چند نکته وجود دارند که می‌توانند به شما کمک کنند خیلی بهتر و کارآمدتر بتوانید آن اطلاعات برنامه‌نویسی سنگینی که از یک گوش وارد می‌شوند و از گوش دیگر بلافاصله خارج می‌شوند را بیاموزید و در ذهنتان نگه دارید.

عدم استفاده از کلاس‌های فشرده

هیچکس دوست ندارد این حرف را بشنود،‌ اما فشرده‌سازی بدترین روش یادگیری برنامه‌نویسی است. اگر شما هم مثل من باشید، پس می‌دانید که کلاس‌های فشرده در دوران مدرسه و دانشگاه از کابوس‌های وحشتناک آن دوران بودند.

البته همه ما به آن عادت کردیم و می‌دانیم که تنها روش یادگیری است.

اما از اشتباهات من عبرت بگیرید: هر چه بیشتر سعی کنید چیزی را به صورت فشرده بیاموزید، کمتر می‌توانید آن را به خاطر بسپارید. این ادعا برای هر موضوع علم محوری صدق می‌کند، اما به خصوص برای برنامه‌نویسی حقیقت دارد.

اساس این ادعا از یک مطالعه انجام شده در سال ۲۰۰۸ توسط دانشگاه کالیفرنیا در سن دیگو است:

"دانشجویان و دانش‌آموزان وقتی بین جلسات آموزشی‌ خود وقت و فضای کافی داشته باشند نسبت به زمانی که سعی کنیم همه چیز را به صورت فشرده و یک جا و در یک جلسه در سر آن‌ها فرو کنیم، بازدهی خیلی بیشتری خواهند داشت."

چرا؟ احتمالاً به خاطر اثر موقعیت زنجیره‌ای (serial position effect) است:

"اثر موقعیت زنجیره‌ای در واقع تمایل یک فرد به یاد‌آوری اولین و آخرین موضوعات به بهترین شکل و یادآوری موضوعات میانه به بدترین شکل است."

به عبارت دیگر، در هر جلسه آموزشی، احتمال اینکه احتمال به خاطر سپردن اطلاعاتی که در ابتدا و انتهای جلسه می‌آموزید بیشتر است و همچنین به همان میزان احتمال فراموش کردن اطلاعاتی که در اواسط جلسه آموخته‌اید نیز بیشتر خواهد بود.

بنابراین باید میزان یادگیری‌های ابتدا و انتها را حداکثر کنید. به همین دلیل است که در ارتباط با یادگیری و هضم موضوعات جدید، بهتر است چندین جلسه کوتاه داشته باشید به جای اینکه تعداد کمی جلسات طولانی داشته باشید.

دفعه بعد که قصد کردید کد زنی بیاموزید، هر دفعه یک موضوع را انتخاب کنید و بین هر موضوع هم یک استراحت کوتاه داشته باشید. (فقط حواستان باشد که استراحت‌هایتان طولانی نشوند و سرد نشوید!)

مرور، مرور، مرور

دلیل دیگر اینکه فشرده‌سازی برای یادگیری بلند مدت یک علم بسیار مضر است، این است که حافظه به مرور زمان محو می‌شود.

البته این حرف همیشه صادق نیست (مطمئنم که همه چند خاطره کودکی داریم که هیچ‌وقت از یادمان نمی‌روند) اما به نظر می‌رسد که معمولاً برای خاطراتی که به احساسات ما وابسته نیستند، این امر صدق می‌کند.

حتی صحبت‌هایی هم جود دارد که بیان می‌کنند حافظه خودش به مرور زمان انحطاط می‌یابد (نظریه انحطاط) یا خیلی ساده خاطرات قدیمی را به مرور زمان با خطرات جدید جایگزین می‌کند (نظریه تداخل).

مهم نیست شما به کدام نظریه بیشتر اعتقاد دارید، به هر حال نتیجه این است که خاطره‌های قدیمی به مرور زمان محو می‌شوند.

اینجا است که مقوله مرور به میان می‌آید.

مرور، مرور، مرور

این‌طور فکر کنید که در حال پیاده‌روی در جنگلی از خاطرات هستید. هر دفعه که می‌خواهید به یک خاطره دسترسی داشته باشید، باید مسیر عصبی خاصی را دنبال کنید تا به آن خاطره برسید.

هر دفعه آن خاطره را دنبال می‌کنید، مسیر آن واضح‌تر می‌شود، درست مانند وقتی که جمعیت از یک مسیر خاکی مرتباً عبور کنند، کم‌کم آن مسیر به صورت طبیعی تبدیل به یک جاده خاکی می‌شود. اگر از آن مسیر استفاده نکنید، ممکن است محو شود و در نهایت آن خاطره جایی در آن جنگل گم خواهد شد.

جدای از تمام این حرف‌های روانشناسانه، منظور این است: وقتی صحبت از برنامه‌نویسی می‌شود، یک یا دو دفعه یادگیری یک موضوع اصلاً کافی نیست. بلکه باید ده‌ها یا حتی صدها بار آن موضوع را مرور کنید. هر بار مرور آن موضوع  باعث می‌شود مسیر منتهی به آن در مغز شما هموار و واضح‌تر شود.

می‌دانم که این مسئله چقدر ممکن است سخت باشد، به خصوص اگر  به کلاس‌ها و روش فشرده عادت کرده باشید اما متعجب می‌شوید وقتی که بفهمید با مرور مرتب و مکرر چقدر سریع‌تر می‌توانید آموزش‌ها را بیاموزید و به خاطر بسپارید.

از چند منبع مختلف استفاده کنید

سخت‌ترین جنبه برنامه‌نویسی (حداقل برای کد نویسان تازه کار) گستردگی جزئیات و نکات ظریف و دقیق هستند که باید کاملاً آن‌ها را بیاموزند و درک کنند. تا وقتی که به آن درک لازم نرسید، در وضعیتی که با تعجب سرتان را فشار می‌دهید قرار خواهید داشت.

بسته به زبانی که می‌خواهید بیاموزید، باید صدها قانون و syntax (یعنی کلیدواژه‌ها، سمی‌کالن‌ها و فضای بین کلمات و غیره) را به خاطر بسپارید.

برخی زبان‌ها خیلی سخت‌گیر هستند و برخی هم کمتر سخت‌گیر هستند اما به هر حال هر کدام دارای روش‌های خاص و منحصر به فرد خودشان برای نوشتن syntax هستند که ممکن است در زبان‌های دیگر وجود نداشته باشند.

اگر هیچ تجربه قبلی در کد نویسی نداشته باشید، تمام این مسائل برای شما بسیار گیج‌کننده خواهند بود.

از چند منبع مختلف استفاده کنید

تازه تمام اطلاعات مفهومی که هر زبان برای خودش دارد به کنار. موضوعاتی مانند برنامه‌نویسی شیءگرا، سیستم‌های entity-component، و الگوهای نظاره‌گر در ابتدای امر یادگیری ممکن است باعث شوند مغزتان به سر حد انفجار برسد.

این نکته شاید تکرار باشد، اما ارزش دوباره گفته شدن را دارد:

"فرض کنید شخصی به شما عکس یک مجسمه را نشان می‌دهد. ممکن است از یک عکس اطلاعات کافی راجع به حسی که مجسمه منتقل می‌کند را به دست آورید، اما باز هم تمام تصویر و حس را دریافت نخواهید کرد. اگر عکس از فاصله دور از مجسمه گرفته شده باشد نمی‌توانید جزئیات دقیق را ببینید و اگر خیلی زوم شده باشد نمی‌توانید تصویر کلی را ببینید. به هر حال، اگر عکس‌های بیشتری از زوایای دیگر گرفته شوند، آن‌گاه کم‌کم می‌توانید جزئیات، اندازه و دقت به کار رفته در ساخت آن را از جلو تا عقب، از گوشه‌ها و از بالا تا پایین متوجه شوید."

یادگیری برنامه‌نویسی می‌تواند به صورت عجیب و باور نکردنی به صورت خودجوش و مستقل انجام شود. هر کسی ممکن است ادعا کند که منبع A بهترین روش یادگیری زبان X است، اما شاید این ادعا برای شما صدق نکند.

شاید همه از منبع B متنفر باشند، اما وقتی شما نگاهی به آن بیندازید ممکن است برایتان عالی به نظر برسد! یا برای شخص دیگر، ممکن است منابع A و B هیچ تأثیری نداشته باشند، اما منبع C برای آن شخص بسیار سودمند باشد.

به همین دلیل بسیار مهم است که تمام انواع منابع موجود را بررسی کنید. هر کسی به یک روش خاصی می‌آموزد. اگر با یادگیری یک موضوع خاص مشکل دارید، خب به دنبال یک منبع دیگر بگردید. شاید یک منبع دیگر برای شما مناسب‌تر باشد. شاید هم نباشد.

حتی اگر فکر می‌کنید چند موضوع خاص را خیلی خوب آموخته‌اید، باز هم ممکن است چیزهای بیشتری راجع به آن‌ها باشند که باید بیاموزید. همچنین ممکن است توضیح یک شخص دیگر خیلی بهتر بتواند مفهوم را در ذهن شما جا بیندازد.

هیچ وقت نمی‌توانید مطمئن باشید، پس بهتر است که هر تعداد منبعی که می‌توانید را مورد استفاده قرار دهید.

توجه کنید که بازی‌ها می‌توانند یک منبع یادگیری بسیار مفید و جذاب باشند!

همین‌طور که مفاهیم را می‌آموزید، آن‌ها را آموزش دهید

یک مفهوم بسیار زیبا در برنامه‌نویسی هست که نام آن‌ روش دیباگ‌ کردن اردک پلاستیکی است. این روش، تکنیک توضیح خط به خط یک کد به یک اردک پلاستیکی را توضیح می‌دهد.

این روش به خصوص زمانی بسیار مفید خواهد بود که بخشی از کد شما خراب شده باشد، اما دلیل این خرابی مشخص نباشد.

جالب اینجا است که اکثر برنامه‌نویسانی که به این روش کدشان را توضیح می‌دهند، به صورت ناگهانی متوجه مشکل موجود در منطق کد نویسی خود خواهند شد. بیان شفاهی یک موضوع، باعث تحریک شدن بخش متفاوتی از مغز می‌شود و شما را وادار می‌کند مشکل را از یک زاویه دیگر ببینید.

این مفهوم همچنین می‌تواند به شما در یادگیری موضوعات جدید نیز کمک کند. ممکن است تا حالا این جمله معروف که منسوب به انیشتین هست را شنیده باشید:

"اگر نمی‌توانید چیزی را ساده توضیح دهید، پس خوب آن را متوجه نشده‌اید."

به استثنای برخی رشته‌ها که واقعاً با علوم و نظریه‌های پیشرفته سر و کار دارند، این جمله برای بقیه رشته‌ها صدق می‌کند. هر چه بیشتر یک موضوع را درک کنید، بهتر می‌توانید آن را به سبکی توضیح دهید که یک شخص دیگر که هیچ علمی از آن موضوع ندارد نیز متوجه آن شود.

روش دیباگ‌ کردن اردک پلاستیکی

خلاف این گفته نیز صدق می‌کند. وقتی سعی کنید یک موضوع را آموزش دهید، به مفاهیم خاصی بر خواهید خورد که نمی‌توانید واضح و ساده آن‌ها را توضیح دهید.

این روش نه تنها یک روش فوق‌العاده برای شناسایی نقاط ضعف در علم شما است، بلکه یک فرآیند بسیار کاربردی برای یافتن توضیح و توصیف مناسبی است که بتواند به شما کمک کند مفهوم را به خوبی در ذهنتان جا بیندازید.

اسم  این روش "یادگیری از طریق آموزش" است و اساساً از روش دیباگ کردن با استفاده از اردک پلاستیکی سرچشمه گرفته است.

حالا، منظور این نیست که حتماً باید به دیگران آموزش دهید. در عوض، هر موضوع برنامه‌نویسی جدیدی که می‌آموزید را به یک اردک پلاستیکی (یا هر شیء دیگری) بیاموزید و آن را به عنوان یک دوست نامرئی در نظر بگیرید.

ممکن است در ابتدا احمقانه به نظر برسد،، اما وقتی ببینید چه تأثیر فوق‌العاده‌ای بر ماندگاری موضوع در حافظه شما دارد، به آن ایمان می‌آورید.

تمرین حساب شده، باعث می‌شود عالی شوید

مفهوم استعداد مادرزادی یک مفهوم کاملاً بی‌معنی و مشکل‌آفرین است. هیچ‌کسی وقتی از مادرش زاییده می‌شود یک ویولونیست درجه یک، کشتی‌گیر قهار یا برنامه‌نویس همه فن حریف نیست.

مسلماً، برخی افراد ممکن است نسبت به یک سری موضوعات خاص بهتر و دقیق‌تر باشند، اما استعداد بدون تجربه کاملاً بی‌فایده است. به طور مشابه، سخت‌کوشی نیز همیشه ارزشمندتر از استعداد است.

اما با این حال، همه نوع‌های سخت‌کوشی با هم یکسان نیستند. مالکولم گلادول مخترع قانون معروف ۱۰۰۰۰ ساعت است، این قانون می‌گوید که شما باید حداقل ۱۰۰۰۰ ساعت زمان صرف یک موضوع بکنید تا به آن تسلط یابید.

اگرچه حس درستی دارد، اما بسیاری از مردم هدف و نیت واقعی این قانون را اشتباه تفسیر و برداشت می‌کنند.

تمرین حساب شده

اجازه دهید مختصر بیان کنم ۱۰۰۰۰ ساعت زمان تضمین نمی‌کند که شما واقعاً بر یک موضوع تسلط یابید. حتماً شنیده‌اید که می‌گویند: تمرین باعث نمی‌شود عالی شوید، بلکه تمرین عالی است که شما را عالی می‌کند. به عبارت دیگر، تمرین باید حساب شده و معنا دار باشد.

تسلط فقط از صرف ۱۰۰۰۰ ساعت برای تمرین حساب شده به دست می‌آید.

چگونگی تمرین کردن شما خیلی مهم‌تر از میزان زمان تمرین کردن شما است.

مطالعه کردن یک عمل منفعلانه است. تماشای ویدئوهای آموزشی یوتیوب منفعلانه است. گوش دادن به پادکست‌ها منفعلانه است.

به عنوان یک برنامه‌نویس تازه‌کار ممکن است وسوسه شوید که تمرین‌ها را یکی پس از دیگری انجام دهید، موضوعات را یکی پس از دیگری طی کنید بدون اینکه هیچ‌کدام از علومی که به دست می‌آورید را در عمل پیاده‌سازی کنید. در مقابل این وسوسه مقاومت کنید.

درک یک مثال که راه حل آن پیش روی شما است یک چیز است، اما یافتن راه‌حل از ابتدا یک چیز دیگر است. اگر می‌خواهید فرآیند یادگیری خود را سرعت ببخشید، باید به جای منفعل بودن، فعال باشید. تمرین‌های عملی تنها نوع تمرین‌هایی است که از ابتدای مسیر یادگیری تا پایان راه اهمیت دارند.

با ایجاد پروژه‌های شخصی دست به آزمایش و کسب تجربه بزنید

برای من، تکالیف مدرسه بدترین بخش دوران مدرسه بودند. تکالیف همچون یک نقشه شوم برای ضد حال زدن به دانش‌آموز و سرگرم نگه داشتن او بودند. اما حالا که به گذشته نگاه می‌کنم، بالاخره اهمیت تکالیف را درک می‌کنم.

تکالیف مجبورمان کردند تا علمی که تازه آموختیم را به یک روش فعال مورد استفاده قرار دهیم.

اگر در دوره‌ها و کلاس‌های برنامه‌نویسی ثبت‌نام کرده‌اید، پس اهمیت تکالیف را به هیچ وجه دست‌کم نگیرید. تکالیف را جدی بگیرید، همیشه آن‌ها را به عنوان فرصتی برای درک بیشتر و بهتر آنچه آموخته‌اید و قرار دادن آن در حافظه بلند مدت خود در نظر بگیرید.

اما در بسیاری از موارد، حتی تکلیف هم کافی نیست. (و اگر خودتان به صورت خودجوش و بدون وجود یک مربی واقعی در حال یادگیری برنامه‌نویسی هستید،،  پس مسلماً هیچ تکلیف خاصی نیز ندارید که بتوانید علم خود را تثبیت کنید).

با ایجاد پروژه‌های شخصی دست به آزمایش و کسب تجربه بزنید

پس راه حل چیست؟ چند پروژه شخصی در کنار یادگیری خود ایجاد کنید!

به ایده‌هایی فکر کنید که دوست دارید آن‌ها را پیاده‌سازی کنید. افرادی که کاملاً تازه‌کار هستند، بد نیست یک بازی مانند Tic-Tac-toe یا hangman را در نظر بگیرند.

اما برنامه‌نویسان با تجربه‌ای که سعی دارند یک فریمورک جدید بیاموزند، بهتر است پروژه کد نویسی یک اپلیکیشن موبایل ساده یا یک بازی تحت وب را در نظر بگیرند. موضوع پروژه مهم نیست چه باشد، فقط کافی است علاقه شخص شما را برانگیزد!

زیبایی این روش دو سو دارد.

اول، احتمال اینکه همچنان توجه شما را جلب کند و خسته نشوید بیشتر می‌شود. مطالعات نشان داده‌اند که وقتی دانشجویان بتوانند موضوعاتی که به آن‌ها علاقه دارند را دنبال کنند، بهتر یاد می‌گیرند. این دقیقاً هدفی است که یک پروژه شخصی دارد.

شما یک هدف نهایی دارید که قرار است در انتها به آن برسید، بنابراین احتمالاً اینکه اطلاعاتی که در طول این مسیر بیاموزید را بیشتر و بهتر به خاطر بسپارید، بیشتر است.

دوم، فشاری برای موفقیت حتمی در آن پروژه بر شما وارد نیست. اگرچه موفقیت می‌توانید خیلی شیرین و دلچسب باشد، اما عدم رسمیت پروژه به شما اجازه می‌دهد به صورت تجربی و خلاقانه عمل کنید.

مسلماً بدون شکل با مشکلات مواجه خواهید شد، اما حل مشکل بیشتر شبیه به تفریح و حل پازل است، تا تکلیف. بنابراین بیشتر خوش می‌گذرد و استرس‌زا نیست.

آرام باشید و همه چیز را ثبت و علامت‌گذاری کنید

حقیقت این است که هیچ برنامه‌نویسی در دنیا نمی‌تواند همه چیزهایی که آموخته است را به خاطر بسپارد. حتی بعد از کار کردن با یک کتابخانه یا فریمورک خاص به مدت طولانی، باز هم اگر  نتوانید تمام توابع یا متغیرها را به خاطر بسپارید هیچ جای تعجبی ندارد و کاملاً طبیعی است.

در واقع، تلاش برای حفظ کردن همه چیز ممکن است در نهایت به تلف شدن میزان زیادی زمان و زحمت شود و نتیجه‌ای در بر نداشته باشد. صفحات برچسب‌دار به یک دلیلی به وجود آمدند.

چرا حافظه خود را با اطلاعات سرریز کنیم، وقتی می‌توانیم هر موقع خواستیم به سراغ صفحه مربوط به اطلاعات مطلوبمان برویم و از آن استفاده کنیم؟

صفحات برچسب‌دار به یک دلیلی به وجود آمدند

پس، چه موقع باید چیزی را حفظ کنیم و چه موقع آن را در جایی یادداشت و برای آن آدرس یا رفرنس ایجاد کنیم؟

وقتی با موضوعات مفهومی مواجهید، همیشه بیشترین تلاش خود را بکنید تا آن‌ها را عمیقاً درک کنید. منظورم این است که یک نظریه را درک کنید، حتی اگر نمی‌توانید آن را به یک کد واقعی تبدیل کنید (و نظریه باید به اندازه‌ای برای شما واضح و شفاف باشد که بتوانید آن را خیلی ساده به شخص دیگری آموزش دهید).

برای بقیه چیزها (مثل اسامی توابع خاص، لیست‌های پارامتر یا حتی پیش‌فرض‌های یک زبان) لازم نیست حافظه خود را ملزم و متعهد به حفظ کردن بکنید. راحت باشید و از برگه‌های برچسب‌دار استفاده کنید. گاهی به قدری به سراغ یک موضوع آدرس دار می‌روید که در نهایت آن را حفظ می‌شوید.

اگر این اتفاق افتاد، که چه بهتر. اگر نیفتاد، باز هم هیچ اشکالی ندارد.

به شخصه، من صدهای بوکمارک اینترنتی به سمت APIها، راهنماها و آموزش‌های مختلف دارم.

اگر زمانی بخواهم نوعی الگوریتم مسیریابی پیاده‌سازی کنم، به سراغ یک راهنما می‌روم تا قبل از آن الگوریتم را فراموش کنم آن را تبدیل به کد کنم. این روش به من کمک می‌کند تا مفاهیم مهم را درک کنم، اما به هیچ وجه سعی نمی‌کنم جزئیات پیاده‌سازی را به خاطر بسپارم.

حرف آخر

اگر لازم باشد میلیون‌ها بار تکرار می‌کنم که: برنامه‌نویسی سخت است و اگر با آن مشکل دارید هیچ اشکالی ندارد. من تقریباً یک دهه است که به عنوان یک سرگرمی به برنامه‌نویسی مشغول هستم و هنوز هم وقتی مجبور می‌شوم مفاهیم جدیدی بیاموزم، وحشت‌زده می‌شوم.

اگر نمی‌توانید همه چیز را سریعاً بیاموزید یا به خاطر بسپارید خودتان را سرزنش نکنید. نکات بالا مسلماً به شما کمک خواهند کرد و حتی اگر هم کمک نکنند، همیشه می‌توانید از آدرس‌های بوکمارک شده به عنوان آخرین سنگر استفاده کنید.

منبع: makeuseof

 مطالب مرتبط

 ۴ برنامه‌نویس معروف که کدهای موفقیت زندگیشان را نوشتند
7 دلیل منطقی برای آموختن #C
۱۰ اصل برنامه‌نویسی ساده که همه برنامه‌نویسان باید رعایت کنند!
با یادگیری چگونگی تمرکز بر کارها، می‌توانید بهتر کد بنویسید
عجیب‌ترین اصول برنامه‌نویسی که تا حالا نشنیده‌اید!
۸ بازی ساخته شده با یونیتی توسط تیم‌های کوچک یا تک نفره

از آخرین دوره های آموزشی و تخفیف ها مطلع شوید

با تکمیل فرم زیر ، از اخبار و اطلاعات به روز برنامه نویسی و تکنولوژی عقب نمانید

آخرین مطالب

آموزش جامع SQL Server (جلسه ۳۱: توابع رشته‌ای – بخش ۳)
آموزش جامع SQL Server (جلسه ۳۱: توابع رشته‌ای – بخش ۳)

در جلسه قبل بخش ۲ مطالب مبحث توابع رشته‌ای یا string را به صورت کامل توضیح دادیم. و ...

آموزش جامع SQL Server (جلسه ۳۰: توابع رشته‌ای – بخش ۲)
آموزش جامع SQL Server (جلسه ۳۰: توابع رشته‌ای – بخش ۲)

در جلسه قبل، مبحث توابع رشته‌ای یا String را آغاز کردیم. به دلیل ازدیاد این توابع و برای ...

با Visual Studio Code’s Live Share گروهی برنامه‌نویسی کنیم!
با Visual Studio Code’s Live Share گروهی برنامه‌نویسی کنیم!

چه در مراحل اولیه یادگیری یک زبان برنامه‌نویسی باشید یا یک کد نویس با تجربه و ماهر باشید، ...

آخرین دیدگاه ها

دیدگاه خود را درباره این پست بنویسید

فرم ارسال نظرات