Keyingi qadamlar
Tabriklaymiz! Siz kompyuter qanday ishlashidan boshlab, menyuli interaktiv dastur yozishgacha bo'lgan yo'lni bosib o'tdingiz. Bu — katta yutuq. Endi qayerga borish mumkinligini ko'rib chiqamiz.
Bu darsda
- Nimalarni o'rgandingiz — qisqa sarhisob
- Python'da keyingi o'rganiladigan mavzular
- Python bilan qaysi sohalarga borish mumkin
- Mashq qilish va o'rganish uchun manbalar
- Mustaqil o'rganish bo'yicha maslahatlar va yakuniy test
Siz endi nimalarni bilasiz
- Kompyuter, dastur va algoritm nima ekanini tushunasiz.
- O'zgaruvchilar, sonlar, satrlar va mantiqiy qiymatlar bilan ishlaysiz.
- Foydalanuvchidan ma'lumot olib, uni tekshira olasiz.
- Shartlar va sikllar yordamida dasturni boshqarasiz.
- Ro'yxat, kortej, to'plam va lug'atlarda ma'lumot saqlaysiz.
- O'z funksiyalaringizni yozasiz va tayyor modullardan foydalanasiz.
- Xato xabarlarini o'qiysiz va xatolarni tuzatasiz.
- Bir necha o'n qatorli to'liq dasturni rejalashtirib, qadamma-qadam yoza olasiz.
Bu — har qanday dasturchining poydevori. Boshqa barcha narsalar shu asoslar ustiga quriladi.
Python'da keyingi mavzular
Asoslardan keyin quyidagi mavzularni taxminan shu tartibda o'rganish tavsiya etiladi:
| Mavzu | Nima beradi |
|---|---|
| Fayllar bilan ishlash | Ma'lumotlarni faylga yozish va o'qish (open, with, json, csv). Dasturingiz yopilgandan keyin ham ma'lumot saqlanadi. |
| Obyektga yo'naltirilgan dasturlash (OOP) | O'z ma'lumot turlaringizni — sinflarni yaratish. Katta dasturlarni tartibli tashkil qilish usuli. |
| Git va GitHub | Kod versiyalarini saqlash, xatolarni orqaga qaytarish, boshqalar bilan birga ishlash. Har bir dasturchi uchun majburiy ko'nikma. |
| Virtual muhit va pip | Har bir loyiha uchun alohida kutubxonalar to'plami (venv). |
| Testlar yozish | Kodingiz to'g'ri ishlashini avtomatik tekshiradigan kod (pytest). |
OOP bilan qisqa tanishuv — bu qanday ko'rinishini his qilish uchun. Hozircha tushunish shart emas, shunchaki ishga tushirib ko'ring:
class Talaba:
def __init__(self, ism, ball):
self.ism = ism
self.ball = ball
def baho(self):
if self.ball >= 86:
return 5
if self.ball >= 71:
return 4
if self.ball >= 56:
return 3
return 2
guruh = [Talaba("Aziz", 92), Talaba("Dilnoza", 78), Talaba("Sardor", 64)]
for t in guruh:
print(f"{t.ism}: {t.ball} ball, baho {t.baho()}")
Bu yerda biz Talaba degan yangi tur yaratdik: har bir talabaning o'z ismi va bali bor va u o'z bahosini hisoblay oladi. Ma'lumot va u bilan ishlaydigan funksiyalar bir joyda — OOP'ning asosiy g'oyasi shu.
Python bilan qaysi sohaga borish mumkin
| Yo'nalish | Nima qilinadi | Asosiy vositalar |
|---|---|---|
| Telegram botlar | Buyurtma qabul qiluvchi, test o'tkazuvchi, ma'lumot beruvchi botlar. O'zbekistonda juda talab yuqori. | aiogram |
| Veb-dasturlash (backend) | Saytlar va mobil ilovalarning server qismi: ro'yxatdan o'tish, to'lovlar, ma'lumotlar bazasi. | Django, FastAPI, Flask, SQL |
| Ma'lumotlar tahlili | Jadvallarni tahlil qilish, hisobotlar va grafiklar tayyorlash. | pandas, matplotlib, Jupyter |
| Sun'iy intellekt va mashinali o'qitish | Bashorat qiluvchi modellar, tasvir va matnni taniydigan tizimlar. | scikit-learn, PyTorch; kuchli matematika |
| Avtomatlashtirish | Zerikarli ishlarni dasturga topshirish: fayllarni saralash, Excel hisobotlari, saytlardan ma'lumot yig'ish. | openpyxl, requests |
| O'yinlar | Oddiy 2D o'yinlar — o'rganish uchun juda qiziqarli. | pygame |
Yo'nalishni qiziqishingizga qarab tanlang. Bilmasangiz — Telegram botdan boshlang: natija tez ko'rinadi, do'stlaringizga ko'rsatish mumkin va unda darslikdagi deyarli barcha mavzular (funksiyalar, lug'atlar, shartlar) ishlatiladi.
Mashq qilish uchun saytlar
Dasturlash — sport kabi: faqat o'qish bilan o'rganib bo'lmaydi, har kuni «mashq» kerak. Quyidagi saytlarda minglab masalalar bor:
- Exercism — oddiydan murakkabga tartiblangan bepul mashqlar.
- Codewars — darajalarga bo'lingan masalalar; boshqalarning yechimlarini ko'rib, ko'p narsa o'rganasiz.
- Project Euler — matematika va dasturlash kesishmasidagi masalalar.
- Advent of Code — har yili dekabrda chiqadigan qiziqarli jumboqlar.
O'rganishni davom ettirish uchun manbalar
- Python'ning rasmiy qo'llanmasi — tilni yaratganlar yozgan, eng ishonchli manba.
- CS50's Introduction to Programming with Python — Garvard universitetining bepul onlayn kursi.
- Automate the Boring Stuff with Python — avtomatlashtirish haqida bepul onlayn kitob.
- Pro Git — Git bo'yicha bepul kitob.
Bu manbalarning ko'pchiligi ingliz tilida. Ingliz tili — dasturchining eng muhim «ikkinchi dasturlash tili». Hujjatlar, xato xabarlari, savol-javob saytlari asosan inglizcha. Uni dasturlash bilan parallel o'rganishni boshlang — har kuni 15–20 daqiqa ham katta natija beradi. O'zbek tilida ham ko'plab video darslar va Telegram hamjamiyatlari bor — ularni qidirib toping.
Mustaqil o'rganish bo'yicha maslahatlar
- Har kuni oz-ozdan. Haftada bir marta 5 soatdan ko'ra, har kuni 40 daqiqa ancha samaraliroq.
- Kodni qo'lda yozing. Nusxa olib qo'yish emas — o'zingiz terib chiqing. Barmoqlar ham o'rganadi.
- O'z loyihangizni boshlang. O'zingizga yoki yaqinlaringizga kerakli kichik narsa: uy vazifalari ro'yxati, oilaviy byudjet, sinf uchun test boti. Haqiqiy muammo eng yaxshi o'qituvchi.
- «O'qish qopqoni»ga tushmang. Cheksiz video ko'rish va kitob o'qish — o'rganishdek tuyuladi, lekin kod yozmasangiz, ko'nikma shakllanmaydi.
- Qiyinchilik — normal holat. Agar hammasi oson bo'lsa, siz yangi narsa o'rganmayapsiz. Tushunmaslik — o'sishning belgisi.
- Savol berishni o'rganing. Yordam so'raganda: nima qilmoqchi edingiz, nima qildingiz, qanday xato chiqdi — kod va xato xabari bilan birga yozing.
- Boshqalarga o'rgating. Do'stingizga funksiya nima ekanini tushuntirib bering. Tushuntira olsangiz — demak, o'zingiz tushungansiz.
- Ishlaringizni GitHub'ga joylang. Bu sizning portfoliongiz — ish beruvchilar diplomdan ko'ra ko'proq aynan shunga qarashadi.
Namunaviy reja
| Davr | Maqsad |
|---|---|
| 1-oy | Asoslarni mustahkamlash: 50 ta mashq yechish, fayllar bilan ishlashni o'rganish, bu darslikdagi loyihalarni kengaytirish. |
| 2-oy | OOP, Git va GitHub. 2–3 ta kichik loyihani GitHub'ga joylash. |
| 3-oy | Yo'nalish tanlash (bot, veb yoki ma'lumotlar tahlili) va uning asosiy kutubxonasini o'rganish. |
| 4–6-oylar | Bitta jiddiy loyiha: haqiqiy foydalanuvchilari bor bot yoki sayt. Uni boshidan oxirigacha o'zingiz yozing. |
Yakuniy test
Butun darslik bo'yicha savollar. Qiynalsangiz — tegishli darsga qaytib, takrorlab chiqing.
Quyidagi kod nima chiqaradi?
x = "3" y = 4 print(int(x) * y)
33333412- Xato beradi
To'g'ri. int("3") — 3, keyin 3 × 4 = 12. int() bo'lmaganda 3333 chiqardi (4- va 6-darslar).
"dasturlash"[2:5] nimaga teng?
"ast""stu""stur""astu"
To'g'ri. d(0) a(1) s(2) t(3) u(4) r(5): 2, 3, 4-indekslar — «stu» (6-dars).
Quyidagi kod nechta qator chiqaradi?
for i in range(2, 10, 3):
print(i)
- 8
- 2
- 4
- 3
To'g'ri: 2, 5, 8. Keyingisi 11 bo'lardi, lekin u 10 dan katta (11-dars).
d = {"a": 1} bo'lsa, d.get("b", 0) + 1 nimaga teng?
12None- Xato beradi
To'g'ri. «b» kaliti yo'q, shuning uchun get standart qiymat 0 ni qaytaradi: 0 + 1 = 1 (14-dars).
Quyidagi funksiya chaqirilgandan keyin natija nimaga teng?
def f(x):
if x > 0:
return "musbat"
print("manfiy yoki nol")
natija = f(-3)
"musbat""manfiy yoki nol"None-3
To'g'ri. Shart bajarilmadi, funksiya matnni faqat chiqardi, lekin hech narsa qaytarmadi (15-dars).
Ro'yxatdan takrorlanuvchi qiymatlarni olib tashlashning eng oson usuli qaysi?
royxat.sort()set(royxat)royxat.clear()len(royxat)
To'g'ri. To'plamda takrorlar saqlanmaydi (13-dars).
Foydalanuvchi son o'rniga harf yozganda dastur to'xtab qolmasligi uchun nima ishlatiladi?
if/elsewhile Trueimporttry/except ValueError
To'g'ri. int() yaroqsiz matndan ValueError beradi, uni except ushlaydi (17-dars).
Har qanday algoritmni qurish mumkin bo'lgan uchta asosiy «g'isht» qaysilar?
- Ketma-ketlik, shart, takrorlash
- O'zgaruvchi, funksiya, modul
- Ro'yxat, lug'at, to'plam
print,input,if
To'g'ri! Siz endi ularning hammasini Python'da yoza olasiz («Dastur va algoritm» darsi).
So'nggi so'z
Dasturlash — bu bir martalik imtihon emas, butun umr davom etadigan o'rganish. Eng tajribali dasturchilar ham har kuni yangi narsa o'rganadi va har kuni xato qiladi. Muhimi — to'xtamaslik.
Al-Xorazmiy 1200 yil oldin algoritmlar haqida yozganida, uning asarlari bir kun kelib butun dunyo texnologiyasining asosiga aylanishini tasavvur ham qilmagan bo'lsa kerak. Sizning birinchi kichik dasturlaringiz ham kimdir uchun katta narsaning boshlanishi bo'lishi mumkin.
Omad yor bo'lsin!