Table of Contents
چرا تمرین کردن مهمتر از خواندن است؟
یادگیری برنامهنویسی مثل یادگیری رانندگی یا شنا است؛ تا خودت وارد عمل نشوی، مهارت واقعی شکل نمیگیرد.
خواندن فصلها و دیدن ویدئوها فقط «نقشهٔ راه» را به تو میدهد، اما تمرین، مغزت را وادار میکند:
- الگوها را تشخیص دهد (مثلاً «آهان، اینجا باید از حلقه استفاده کنم»)
- دستورها را بهصورت خودکار به یاد بیاوری
- هنگام دیدن خطا نترسی و بدانی چطور مشکل را پیدا کنی
پس از اینجا به بعد، مهمترین کار تو این است: هر روز کمی کد بزن، حتی اگر فقط ۱۵ دقیقه باشد.
در ادامه روشهای مشخص، مرحلهبهمرحله و عملی برای تمرین پایتون را میبینی.
ساختن عادت روزانهٔ برنامهنویسی
زمان کم ولی مداوم، بهتر از زمان زیاد و پراکنده
بهجای اینکه هفتهای یکبار، ۵ ساعت کد بزنی، بهتر است:
- هر روز ۲۰ تا ۳۰ دقیقه تمرین کنی
- یا یک روز در میان حداقل ۴۵ دقیقه
مغزت بین جلسات تمرینِ نزدیک بههم، بهتر «یاد میگیرد» و اطلاعات را تثبیت میکند.
پیشنهاد عملی:
- یک بازهٔ ثابت در روز انتخاب کن (مثلاً هر شب ۹ تا ۹:۳۰)
- آن را مثل یک قرار مهم در نظر بگیر؛ قابللغو نیست مگر در شرایط خاص
- اگر روزی خسته بودی، حداقل ۱۰ دقیقه یک تمرین خیلی ساده انجام بده
قانون «بدون صفر» (No Zero Day)
قانون سادهای برای انگیزه:
- هیچ روزی را با «۰ دقیقه تمرین» تمام نکن
- حتی اگر خستهای:
- یک خط کد بنویس
- یک تمرین خیلی کوتاه حل کن
- یک کد قدیمی را کمی بهبود بده
این کار کمک میکند عادتت نشکند و احساس «رها کردن» نداشته باشی.
چه جور تمرینی انجام بدهم؟
بهطور کلی سه نوع تمرین داری، و باید هر سه را کمکم وارد برنامهات کنی:
- تمرین تکنیکی کوچک (تقویت دستورها و ساختارها)
- تمرین مسئلهمحور (حل مسئله با ترکیب چند مفهوم)
- تمرین پروژهای (نوشتن برنامههای کوچک واقعی)
۱. تمرینهای تکنیکی کوچک
این تمرینها کوتاهاند و روی یک مفهوم خاص تمرکز میکنند؛ مثل:
- نوشتن چند مثال با
if - چند حلقهٔ
forروی یک لیست - تعریف چند تابع ساده
هدف: دستت به نوشتن دستورها عادت کند.
نمونه تمرینهای کوتاه:
- ۵ مثال مختلف از حلقهٔ
forبنویس که: - روی یک لیست عددی
- روی یک رشته
- روی یک
range - روی یک لیست از رشتهها
- روی یک دیکشنری
کار کند. - ۳ تابع بنویس:
- تابعی که نام را بگیرد و با پیام خوشآمد ترکیب کند
- تابعی که سه عدد بگیرد و میانگین برگرداند
- تابعی که یک رشته بگیرد و طول آن را برگرداند
این تمرینها را سریع و بدون وسواس انجام بده؛ هدف، روان شدن است، نه ساختن «کد عالی».
۲. تمرینهای مسئلهمحور
اینجا باید از چند مفهوم همزمان استفاده کنی؛ مثل:
- ورودی گرفتن
- شرطها
- حلقهها
- لیستها و توابع
مثال:
- برنامهای که:
- از کاربر چند نمره بگیرد
- میانگین را حساب کند
- اگر میانگین بالاتر از ۱۷ بود، «عالی» و اگر بین ۱۴ و ۱۷ بود «خوب» و… چاپ کند
- برنامهای که:
- از کاربر یک عدد بگیرد
- بررسی کند عدد اول است یا نه
- نتیجه را چاپ کند
این تمرینها بیشتر شبیه «مسئلهٔ ریاضی + کدنویسی» هستند و ذهن تو را برای طراحی راهحل قوی میکنند.
۳. تمرین پروژهای
در این نوع تمرینها، یک برنامهٔ کوچک ولی نسبتاً کامل میسازی؛ مثل:
- ماشینحساب ساده
- فهرست کارها (To-Do List) در ترمینال
- برنامهٔ آزمون (Quiz)
در این پروژهها تمرین میکنی که:
- کدت را به چند تابع تقسیم کنی
- دادهها را در ساختار مناسب (لیست، دیکشنری، …) نگه داری
- به تدریج قابلیت جدید به برنامه اضافه کنی
لازم نیست پروژههای بزرگ و پیچیده بسازی؛ کوچک ولی کامل بودن مهمتر است.
چگونه تمرین مناسب سطح خودت را انتخاب کنی؟
سطح تمرین باید نه آنقدر ساده باشد که حوصلهات سر برود، نه آنقدر سخت که ناامید شوی.
سطح ۱: تازهکارِ کامل
اگر هنوز با:
- متغیر
- نوع داده
if- حلقهها
- لیستها
کاملاً راحت نیستی:
- روی تمرینهای کوتاه تمرکز کن
- از خودت بپرس: «میتوانم این ایده را با
ifو حلقه توضیح دهم؟»
نمونهها:
- برنامهای که عدد بگیرد و بگوید زوج است یا فرد
- برنامهای که جدول ضرب یک عدد را نمایش دهد
- برنامهای که لیستی از اسمها بگیرد و فقط اسمهای بلندتر از ۵ حرف را چاپ کند
سطح ۲: آشنا با مبانی
اگر میتوانی:
- تابع بنویسی
- با لیست و دیکشنری کار کنی
- خطاها را تا حدی بخوانی
میتوانی تمرینهای چالشیتر انتخاب کنی:
- برنامه مدیریت فهرست خرید (افزودن/حذف اقلام)
- برنامهای که نمرات چند دانشآموز را بگیرد و گزارش کلی چاپ کند
- برنامهای که متن بگیرد و تعداد کلمات را بشمارد
سطح ۳: آماده برای کتابخانهها و پروژهها
اگر تا فصلهای نهایی آمدهای و کمی با:
- فایلها
- کتابخانهها
- مفاهیم شیگرا
آشنا شدهای، میتوانی تمرینهایت را به سمت حوزهٔ مورد علاقهات ببری (مثلاً وب، علم داده، خودکارسازی)؛ اما باز هم با اندازهٔ کوچک شروع کن.
تمرین «بازنویسی» و بهبود کد
فقط حل کردن مسئله کافی نیست؛ یکی از بهترین روشهای یادگیری این است که:
۱. ابتدا مسئله را «هر طور شد» حل کن
۲. بعد از یکی دو روز، برگرد و کدت را بهتر کن
چه چیزهایی را میتوانی بهتر کنی؟
- نام متغیرها را معنیدارتر کنی
- کد تکراری را به تابع تبدیل کنی
- از ساختار دادهٔ مناسبتر استفاده کنی
- پیامهای خروجی را واضحتر کنی
پیشنهاد عملی:
- هر هفته یک بار، یکی از برنامههای قبلیات را باز کن و سعی کن نسخهٔ ۲.۰ آن را بنویسی.
چگونه از حلالمسائل و اینترنت استفاده کنیم؟
استفاده از گوگل، Stack Overflow، و حلالمسائل، اگر درست انجام شود، بسیار مفید است؛ اگر غلط انجام شود، یادگیری را نابود میکند.
روش اشتباه
- مستقیماً پاسخ کامل را ببینی و کپی کنی
- بدون فکر کردن به راهحل بگویی «من بلد نیستم» و بروی سراغ جواب
این کار باعث میشود مغزت هیچ تلاشی نکند و عملاً چیزی یاد نگیری.
روش درست
۱. اول خودت تلاش کن (واقعاً تلاش کن؛ نه فقط یک دقیقه)
۲. اگر گیر کردی:
- بخش کوچکی از مسئله را در اینترنت جستوجو کن، نه خود جواب کامل را
- مثلاً: «python count characters in string»
۳. اگر کدی پیدا کردی: - سطر به سطر آن را بخوان
- برای خودت توضیح بده که هر خط چه کار میکند
- سعی کن آن را بدون نگاه کردن، خودت دوباره بنویسی
۴. در پایان، راهحل خودت و راهحل دیگران را مقایسه کن و تفاوتها را یاد بگیر
تمرین با «بازسازی» برنامههای دیگر
یکی از روشهای فوقالعاده برای تمرین، بازسازی برنامههای سادهای است که دیدهای.
مراحل:
- یک برنامهٔ کوتاه را ببین (مثلاً نمونهٔ موجود در این دوره یا اینترنت)
- چندبار اجرا کن و خروجی را ببین
- فایل را ببند (یا کنار بگذار)
- سعی کن فقط بر اساس اینکه «چه کار میکرد»، خودت دوباره از صفر شبیهاش را بنویسی
این کار به تو کمک میکند:
- ساختار کلی برنامه را در ذهنت بسازی
- به جای حفظ کردن، «درک» کنی
ثبت پیشرفت و ساختن «دفترچهٔ یادگیری»
نوشتن چیزهایی که یاد میگیری، بسیار کمککننده است.
چه چیزهایی را بنویسم؟
- دستورهایی که برایت جدیدند (مثلاً
enumerate,zip, …) - الگوهای رایج، مثل:
- الگوی حلقه روی لیست
- الگوی خواندن فایل خط به خط
- الگوی نوشتن یک تابع ساده
- خطاهایی که زیاد میگیری (مثلاً
TypeError,IndexError) و علتشان
میتوانی از:
- یک دفتر کاغذی ساده
- یک فایل متنی
- یا حتی یک ریپوی کوچک در GitHub
استفاده کنی.
چرا مفید است؟
- موقع فراموشی، بهجای گشتن در اینترنت، به یادداشتهای خودت رجوع میکنی
- میبینی در طول چند هفته چقدر جلو رفتهای و این، انگیزه میدهد
کار گروهی و توضیح دادن به دیگران
توضیح دادن چیزی که یاد گرفتهای، یکی از قویترین روشهای تثبیت است.
اگر همکلاسی یا دوست داری
- هر هفته یکبار، با هم یک مسئله را انتخاب کنید
- هر نفر راهحل خودش را بنویسد
- بعد راهحلها را با هم مقایسه کنید و توضیح دهید چرا اینطور نوشتهاید
اگر تنها هستی
- برای خودت «یادداشت توضیحی» بنویس، طوری که انگار برای یک نفر مبتدی توضیح میدهی
- یا برای خودت بلندبلند توضیح بده که: «این تابع چه کار میکند؟ این حلقه به چه دردی میخورد؟»
وقتی بتوانی چیزی را ساده توضیح بدهی، یعنی آن را خوب فهمیدهای.
مدیریت ناامیدی و گیر کردن
گیر کردن روی یک مسئله بخش طبیعی برنامهنویسی است، حتی برای حرفهایها.
وقتی گیر میکنی، این کارها را انجام بده
۱. مسئله را کوچکتر کن
- اگر برنامهات ۳۰ خط است و خطا میدهد، آن را موقتاً به ۵–۱۰ خط سادهتر کاهش بده
- ابتدا مطمئن شو بخش کوچک درست کار میکند، بعد بخشهای دیگر را اضافه کن
- برای خودت توضیح بده که چه میخواهی
- مسئله را با کلمات ساده بنویس؛ مثلاً:
- «میخواهم از کاربر ۳ عدد بگیرم، بزرگترین را چاپ کنم.»
- بعد قدمهایش را لیست کن:
- گرفتن ورودیها
- تبدیل به
int - مقایسه کردن
- چاپ نتیجه
- از print برای اشکالزدایی استفاده کن
- وسط کد
printبگذار تا ببینی متغیرها چه مقداری دارند - اگر یک متغیر مقدار عجیبی دارد، همانجا مشکل را پیدا میکنی
- اگر خیلی خسته و کلافه شدی
- ۵ تا ۱۰ دقیقه استراحت کن و از کامپیوتر دور شو
- اغلب بعد از استراحت، مشکل سادهتر به نظر میرسد
مثال یک برنامهٔ تمرینیِ مرحلهبهمرحله
در این بخش، یک نمونهٔ واقعی از تمرین را میبینی که میتوانی آن را در چند مرحله انجام دهی و هر بار کمی سختترش کنی.
هدف: ساختن یک برنامهٔ «فهرست کارهای روزانه» در ترمینال
مرحلهٔ ۱: نسخهٔ خیلی ساده
فقط:
- یک لیست از کارها داشته باش
- برنامه به کاربر اجازه بده یک کار به لیست اضافه کند
- بعد لیست را چاپ کند و تمام
tasks = []
task = input("یک کار برای امروز وارد کنید: ")
tasks.append(task)
print("فهرست کارهای شما:")
print(tasks)مرحلهٔ ۲: اضافه کردن حلقه
- تا وقتی کاربر نخواسته «خروج» کند، از او کار بگیر
- اگر کاربر
exitنوشت، حلقه تمام شود
tasks = []
while True:
task = input("یک کار جدید وارد کنید (یا 'exit' برای خروج): ")
if task == "exit":
break
tasks.append(task)
print("فهرست نهایی کارهای شما:")
for t in tasks:
print("-", t)مرحلهٔ ۳: اضافه کردن گزینههای بیشتر
- کاربر بتواند:
- کار جدید اضافه کند
- لیست کارها را ببیند
- یک کار را حذف کند
- از برنامه خارج شود
فقط ایده را ببین؛ خودت میتوانی تکمیلش کنی:
tasks = []
while True:
print("\n1) افزودن کار")
print("2) نمایش کارها")
print("3) حذف کار")
print("4) خروج")
choice = input("یک گزینه انتخاب کنید: ")
if choice == "1":
task = input("متن کار: ")
tasks.append(task)
elif choice == "2":
print("فهرست کارها:")
for i, t in enumerate(tasks, start=1):
print(i, ":", t)
elif choice == "3":
# این قسمت را خودت کامل کن:
# 1. شمارهٔ کار را بگیر
# 2. آن را از لیست حذف کن (اگر شماره معتبر بود)
pass
elif choice == "4":
break
else:
print("گزینه نامعتبر")این نوع پروژههای کوچک، تمرین فوقالعادهای برای ترکیب مفاهیم مختلف هستند.
برنامهٔ پیشنهادی تمرین برای چند هفته
این فقط یک نمونه است؛ میتوانی آن را با توجه به زمان و علاقهات تغییر بدهی.
هفتهٔ ۱
- هر روز:
- ۱۵–۲۰ دقیقه تمرین کوتاه روی:
if- حلقهها
- لیستها
- آخر هفته:
- یک مسئلهٔ کمی بزرگتر (مثلاً برنامهٔ محاسبهٔ میانگین نمرات)
هفتهٔ ۲
- هر روز:
- ۱۰ دقیقه تمرین کوتاه
- ۱۰–۱۵ دقیقه کار روی یک پروژهٔ کوچک (مثل فهرست کارها)
- آخر هفته:
- پروژه را کمی گسترش بده (مثلاً ذخیره در فایل، اگر فصلش را گذراندهای)
هفتهٔ ۳ و بعد از آن
- ۳–۴ روز در هفته:
- تمرینهای مسئلهمحور و کار روی پروژههای کوچک
- ۱–۲ روز:
- مرور و بازنویسی کدهای قدیمی
- اضافه کردن قابلیتهای کوچک به برنامههایت
جمعبندی عملی
برای اینکه پایتون را واقعاً یاد بگیری:
- هر روز (یا تقریباً هر روز) کمی کد بزن – حتی ۱۰ تا ۱۵ دقیقه
- سه نوع تمرین را ترکیب کن – تکنیکی کوتاه، مسئلهمحور، پروژهای
- از اینترنت و حلالمسائل هوشمندانه استفاده کن – اول خودت تلاش کن، بعد مقایسه کن
- کدهایت را بعداً بازنویسی و بهتر کن – اینجا بخش زیادی از یادگیری اتفاق میافتد
- گیر کردن را بخشی از مسیر بدان – مسئله را کوچک کن، توضیحش بده، از
printکمک بگیر
اگر این روشها را حتی چند هفته بهصورت مداوم انجام دهی، تفاوت بزرگی در اعتمادبهنفس و توانایی برنامهنویسیات احساس خواهی کرد.