مهمترین لحظه در یادگیری برنامهنویسی، لحظهای است که از دیدن آموزش به ساختن چیزی از خودتان میرسید. ولی بیشتر تازهکارها همینجا گیر میکنند: مباحث را بلدند ولی نمیدانند چه بسازند. این فهرست ده پروژه دارد که از ساده به سخت مرتب شدهاند و هر کدام چیز تازهای یاد میدهد.
برای هر پروژه نوشتهایم چه مهارتی تمرین میشود و بعد از تمام کردنش چطور گسترشش بدهید. قاعدهی مهم: اول بدون نگاه کردن به راهحل امتحان کنید. گیر کردن و راه پیدا کردن، خودِ یادگیری است.
سطح ۱: پروژههای شروع
۱. ماشینحساب با منو
تمرین: ورودی، تبدیل نوع داده، شرط و حلقه.
برنامهای که عملیات (جمع، تفریق، ضرب، تقسیم) و دو عدد را میگیرد و تا وقتی کاربر خروج را انتخاب نکرده ادامه میدهد.
گسترش: تقسیم بر صفر را مدیریت کنید و تاریخچهی محاسبات را نشان دهید.
۲. بازی حدس عدد
تمرین: عدد تصادفی، حلقهی while و شمارنده.
کامپیوتر عددی انتخاب میکند و بعد از هر حدس میگوید بزرگتر یا کوچکتر.
گسترش: سه سطح سختی بسازید و بهترین رکورد را در فایل ذخیره کنید.
۳. سازندهی رمز عبور قوی
تمرین: رشتهها، ماژولهای استاندارد و تابع.
import secrets
import string
def make_password(length=12):
chars = string.ascii_letters + string.digits + "!@#$%&*"
return "".join(secrets.choice(chars) for _ in range(length))
print(make_password())
print(make_password(20))
از ماژول secrets استفاده شده، نه random؛ چون برای کارهای امنیتی ساخته شده و قابل پیشبینی نیست.
گسترش: از کاربر بپرسید رمز شامل نماد باشد یا نه، و قدرت رمز واردشده را ارزیابی کنید.
سطح ۲: کار با داده و فایل
۴. لیست کارها (To-Do)
تمرین: لیست، کار با فایل و منو.
اضافه کردن، حذف کردن و علامت زدن کارها، و ذخیرهشان در فایل تا با بستن برنامه پاک نشوند.
گسترش: برای هر کار تاریخ سررسید بگذارید و کارهای عقبافتاده را جدا نشان دهید.
۵. دفتر هزینههای ماهانه
تمرین: دیکشنری، فایل CSV و محاسبه.
هر هزینه با مبلغ و دستهبندی ثبت شود و برنامه جمع هر دسته را در ماه نشان دهد.
گسترش: با کتابخانهی matplotlib نمودار دایرهای هزینهها را بکشید.
۶. آزمونک (Quiz) از روی فایل
تمرین: خواندن داده از فایل، حلقه و امتیازدهی.
سوالها و جوابها در یک فایل متنی یا JSON باشند تا بدون تغییر کد بشود سوال اضافه کرد.
گسترش: سوالها را تصادفی بپرسید و برای هر سوال زمان بگذارید.
سطح ۳: خودکارسازی کارهای واقعی
۷. مرتبکنندهی خودکار فایلها
تمرین: کار با پوشهها و ماژول pathlib.
پوشهی دانلودها معمولاً شلوغترین جای کامپیوتر است. این برنامه فایلها را بر اساس پسوند در پوشههای جدا میگذارد:
from pathlib import Path
folder = Path.home() / "Downloads"
groups = {
"Images": [".jpg", ".jpeg", ".png", ".gif"],
"Documents": [".pdf", ".docx", ".txt", ".xlsx"],
"Videos": [".mp4", ".mkv", ".mov"],
}
for file in folder.iterdir():
if not file.is_file():
continue
for group, extensions in groups.items():
if file.suffix.lower() in extensions:
target = folder / group
target.mkdir(exist_ok=True)
file.rename(target / file.name)
break
قبل از اجرا روی پوشهی واقعی، آن را روی یک پوشهی آزمایشی با چند فایل امتحان کنید.
گسترش: اگر فایلی با همان نام در مقصد بود، بهجای جایگزینی، اسمش را تغییر دهید.
۸. گرفتن اطلاعات از اینترنت
تمرین: کتابخانهی requests، کار با API و دادهی JSON.
برنامهای که از یک API عمومی، مثلاً وضعیت آبوهوا یا نرخ ارز، اطلاعات بگیرد و خلاصهاش را نمایش دهد.
گسترش: اطلاعات را هر روز در یک فایل ذخیره کنید و روند تغییرات را نشان دهید.
سطح ۴: پروژههای بزرگتر
۹. برنامهی دسکتاپ با رابط گرافیکی
تمرین: کتابخانهی Tkinter (همراه پایتون نصب است) و برنامهنویسی رویدادمحور.
یکی از پروژههای قبلی، مثلاً لیست کارها یا تبدیل واحد، را با پنجره و دکمه بازسازی کنید.
گسترش: برنامه را به فایل اجرایی تبدیل کنید تا روی کامپیوتر دیگران هم اجرا شود.
۱۰. ربات تلگرام ساده
تمرین: کار با کتابخانهی خارجی، توکن و برنامهنویسی async.
رباتی که به چند دستور ساده جواب میدهد؛ مثلاً یادآور، تبدیل واحد یا آزمونک پروژهی ۶. کتابخانهی python-telegram-bot محبوبترین گزینه است.
گسترش: ربات را به دیتابیس وصل کنید تا اطلاعات هر کاربر جدا ذخیره شود.
چطور از این پروژهها بیشترین استفاده را ببرید؟
- هر پروژه را در گیتهاب بگذارید. همین فهرست، اولین نمونهکار شماست و کارفرما آن را میبیند.
- بخش «گسترش» را جدی بگیرید. تمام کردن نسخهی پایه یعنی یادگرفتن؛ گسترش دادنش یعنی طراحی کردن.
- کد قدیمیتان را بازنویسی کنید. بعد از یادگرفتن تابع و کلاس، به پروژهی اولتان برگردید و تمیزش کنید. تفاوت را که ببینید، پیشرفتتان را میبینید.
- از هوش مصنوعی برای توضیح استفاده کنید، نه برای نوشتن. وقتی گیر کردید بپرسید «چرا این خطا را میگیرم؟» و جواب را بفهمید. برنامهنویسی با هوش مصنوعی این را کامل توضیح داده.
سوالات رایج
«چند پروژه لازم است تا آمادهی کار شوم؟»
تعداد مهم نیست؛ عمق مهم است. سه پروژهی کامل و گسترشیافته که بتوانید دربارهشان توضیح بدهید، از ده پروژهی نیمهکاره ارزش بیشتری دارد.
«کد پروژهها را از کجا پیدا کنم؟»
عمداً کد کامل همه را نگذاشتهایم. اگر گیر کردید، مسئله را به قدمهای کوچکتر بشکنید و هر قدم را جداگانه جستجو کنید. همین مهارت شکستن مسئله، مهمترین مهارت برنامهنویسی است.
«بعد از این پروژهها چه؟»
یک مسیر تخصصی انتخاب کنید: وب، هوش مصنوعی یا خودکارسازی. مقالهی پایتون پیشرفته مباحث بعدی و مسیرها را توضیح میدهد.
جمعبندی
برنامهنویسی با ساختن یاد گرفته میشود. از پروژهی اول شروع کنید، هر کدام را قبل از رفتن به بعدی گسترش دهید و همه را در گیتهاب نگه دارید. تا پروژهی دهم، هم پایتون را واقعاً بلدید و هم نمونهکاری دارید که نشانش بدهید.
اگر میخواهید این مسیر را با برنامهی منظم، پروژههای هدایتشده و بازخورد مدرس روی کدتان طی کنید، دورهی پایتون مقدماتی داناورس از اولین برنامه تا پروژهی پایانی پیش میرود و پایتون پیشرفته ادامهی همین مسیر است.




