Mundarija (22)
- 1. Kirish va motivatsiya
- 2. Nazariya — chuqur tushuntirish
- 2.1. Intervyu yondashuvi (UMPIRE)
- 2.2. Ovoz chiqarib o'ylash
- 2.3. Keng tarqalgan naqshlar
- 2.4. Big O tahlili
- 2.5. Chekka holatlar
- 2.6. Intervyu amaliyoti
- 2.7. Intervyu tuzoqlari
- 2.8. Intervyu — o'ylash jarayonini ko'rsatish
- 3. Tez ma'lumotnoma
- 4. Batafsil misollar
- Misol 1 — UMPIRE bosqichlari
- Misol 2 — Naqshni tanish (2 son masalasi)
- Misol 3 — Big O taqqoslash
- Misol 4 — Chekka holatlar
- 5. To'g'ri va noto'g'ri tushunishlar
- 6. Keng tarqalgan xatolar va yechimlari
- 7. Integratsiya — bu bilim qayerda kerak bo'ladi
- 8. Eng yaxshi amaliyotlar
- 9. Amaliy topshiriq
- Xulosa
31.10-dars: Texnik intervyu — algoritmlar
31-QISM — KARYERA VA KATTA LOYIHALAR · 10-dars
1. Kirish va motivatsiya
Rezyume 31.9-bob va portfolio 31.8-bob sizni intervyuga olib keldi. Endi eng qo'rqinchli qism: texnik intervyu — algoritmik masalalar. Ko'p kompaniya (ayniqsa yirik) sizga muammo beradi ("massivda ikki son yig'indisini toping") va uni jonli yechishingizni, o'ylashingizni ovoz chiqarib tushuntirishingizni kutadi. Bu qo'rqinchli, lekin o'rganiladigan ko'nikma — ma'lum yondashuv va naqshlar bor. Muhimi: intervyu javobni topish emas, qanday o'ylashingizni ko'rish. Bu dars algoritmik intervyuga yondashuvni o'rgatadi: masalani tushunish, misol, yechim, tahlil (Big O), va o'ylashni ovoz chiqarib tushuntirish. To'g'ri tayyorgarlik bu qismni yengib bo'ladigan qiladi.
Texnik intervyu (algoritmlar) — intervyuda algoritmik masalani jonli yechish: yondashuv (UMPIRE — Understand tushunish, Match naqsh, Plan reja, Implement yozish, Review tekshirish, Evaluate tahlil), ovoz chiqarib o'ylash (jarayonni tushuntirish — javob emas, fikrlash muhim), naqshlar (ikki ko'rsatkich, hash jadval, sliding window, BFS/DFS — 15-qism), Big O tahlili (vaqt/joy murakkabligi — 15-qism), chekka holatlar (bo'sh, bitta, katta). Foydalanish: ish intervyusi, algoritm mashqi. Bu 15-qism (algoritmlar) ni intervyuga tatbiq. Bu 15-qism (algoritm), 31.11 (Python savollar) bilan bog'liq. Intervyu — yondashuv, ovoz, naqsh, Big O. O'ylash muhim.
Real vaziyat. Nomzod intervyuda masala oldi: "massivda ikki son yig'indisi targetga teng juftlikni top". Yomon yondashuv: darhol kod yozadi (chalkash, xato). Yaxshi: tushundi (savol berdi — takror bormi, bir yechimmi), misol ([2,7,11], target=9 → [0,1]), naqsh (hash jadval — 15-qism), reja (har son uchun target-son hash'da bormi), yozdi (kod), tahlil (O(n) vaqt, O(n) joy), chekka (bo'sh, topilmasa). Ovoz chiqarib tushuntirdi (o'ylashi ko'rindi). Intervyuer jarayonni ko'rdi — o'tdi. Intervyu — yondashuv, o'ylash (javob emas).
Bu darsda algoritmik texnik intervyuni o'rganamiz.
Bu darsda:
- Intervyu yondashuvi (UMPIRE)
- Ovoz chiqarib o'ylash
- Keng tarqalgan naqshlar
- Big O tahlili
- Chekka holatlar
- Intervyu amaliyoti
- Intervyu tuzoqlari
- Amaliy: intervyu yondashuvi modeli
ℹ Intervyu real amaliyot talab qiladi; misollar intervyu yondashuvi mantiqini (deterministik) modellashtiradi.
2. Nazariya — chuqur tushuntirish
2.1. Intervyu yondashuvi (UMPIRE)
Tuzilgan jarayon:
UMPIRE yondashuvi:
U - Understand masalani tushun (savol ber, aniqlashtir)
M - Match naqshga moslashtir (o'xshash masala?)
P - Plan reja tuz (qadamlar — kod yozishdan oldin)
I - Implement yoz (rejadan — toza)
R - Review tekshir (chekka holatlar, xatolar)
E - Evaluate tahlil (Big O — vaqt/joy)
→ darhol kod emas (tushun → rejalash → yoz)Intervyu yondashuvi (UMPIRE) — tuzilgan jarayon (darhol kod emas): Understand (masalani tushun — savol ber, aniqlashtir: kirish, chiqish, cheklovlar), Match (naqshga moslashtir — o'xshash masala? 2.3), Plan (reja tuz — qadamlar, kod yozishdan oldin), Implement (yoz — rejadan, toza), Review (tekshir — chekka holatlar 2.5, xatolar), Evaluate (tahlil — Big O 2.4). Sabab: darhol kod yozish yomon (chalkash, xato, yo'nalishsiz); tuzilgan jarayon aniq (tushun → rejala → yoz → tekshir). Intervyuer jarayonni ko'radi (o'ylash — javob emas). UMPIRE eslab qolish oson (ketma-ketlik). Yondashuv — tushun, naqsh, reja, yoz, tekshir, tahlil. Tuzilgan. Darhol kod emas.
2.2. Ovoz chiqarib o'ylash
Fikrlashni tushuntirish:
INTERVYU maqsadi:
javobni topish EMAS (asosiy)
QANDAY o'ylashingizni ko'rish (asosiy)
OVOZ CHIQARIB:
"avval tushunay — takror son bormi?"
"bu hash jadval bilan yechilsa kerak — chunki..."
"murakkablik O(n) — chunki bir marta aylanaman"
→ jim o'tirish yomon (o'ylashni ko'rsat) Ovoz chiqarib o'ylash — intervyuning kaliti: intervyu maqsadi javob topish emas (asosiy), qanday o'ylashingizni ko'rish (asosiy — muammo yechish jarayoni). Sabab: intervyuer fikrlashni baholaydi (mantiqiy-mi, tuzilgan-mi, muloqot-mi); jim o'tirib yechsa — jarayon ko'rinmaydi (to'g'ri javob ham — qanday keldi noaniq); ovoz chiqarib (avval tushunay, bu hash bilan — chunki, O(n) — chunki) — o'ylash ko'rinadi. Bu muloqot ko'nikmasi ham (jamoada tushuntirish — 31.5). Yordamga ham (intervyuer yo'naltiradi — agar eshitsa). Ovoz chiqarib — fikrlash ko'rsat. Javob emas — jarayon. Muloqot.
2.3. Keng tarqalgan naqshlar
Ma'lum yechim naqshlari:
NAQSHLAR (aksar masala shulardan):
ikki ko'rsatkich — saralangan massiv (chapdan/o'ngdan)
hash jadval — tez qidirish (O(1) — "bormi?")
sliding window — ketma-ket bo'lak (subarray)
BFS/DFS — graf/daraxt (15-qism)
ikkilik qidiruv — saralangan (O(log n))
dinamik dasturlash— optimal (kichik masalalar)
→ naqshni tanish → yechim topish oson Keng tarqalgan naqshlar — algoritmik masalalar ma'lum yechim naqshlaridan: ikki ko'rsatkich (two pointers — saralangan massivda chapdan/o'ngdan), hash jadval (tez qidirish — bormi? O(1) — 2 son masalasi), sliding window (ketma-ket bo'lak — subarray), BFS/DFS (graf/daraxt — 15-qism), ikkilik qidiruv (binary search — saralangan, O(log n)), dinamik dasturlash (dynamic programming — optimal, kichik masalalar). Sabab: ko'p masala shu naqshlardan (yangi emas — variatsiya); naqshni tanish (masala qaysi naqsh?) → yechim topish oson (naqsh ma'lum). Mashq (LeetCode — naqshlarni ko'rish). Bu 15-qism (algoritmlar) amaliyoti. Naqshlar — ikki ko'rsatkich, hash, window, BFS/DFS. Tanish → yechim. Variatsiya.
2.4. Big O tahlili
Vaqt va joy murakkabligi:
BIG O (murakkablik — 15-qism):
O(1) — doimiy (eng tez)
O(log n) — logarifmik (ikkilik qidiruv)
O(n) — chiziqli (bir marta aylanish)
O(n log n)— saralash
O(n^2) — ikkita ichma-ich sikl (sekin)
INTERVYUDA:
yechimning vaqt/joy murakkabligini ayt
yaxshiroq (tezroq) yechim bormi — o'ylaBig O tahlili — yechimning vaqt/joy murakkabligi (15-qism): O(1) (doimiy — tez), O(log n) (logarifmik — ikkilik qidiruv), O(n) (chiziqli — bir aylanish), O(n log n) (saralash), O(n^2) (ikki ichma-ich sikl — sekin). Sabab: intervyuer yechim samaradorligini so'raydi (vaqt/joy — 15-qism); yechimni tahlil qil (murakkablik ayt), yaxshiroq bormi o'yla (O(n^2) → O(n) — hash bilan?). Big O muhim (ishlaydigan yechim yetmaydi — samarali ham); intervyuer optimallikni baholaydi. Chekma-chek (vaqt vs joy — savdo). Bu 15-qism (murakkablik) markazi. Big O — vaqt/joy. Samaradorlik. Yaxshiroq bormi.
2.5. Chekka holatlar
Oddiy emas holatlar:
CHEKKA HOLATLAR (tekshir):
bo'sh kirish — [] yoki ""
bitta element — [5]
takror — [2,2,2]
manfiy / nol — [-1, 0]
juda katta — million element
topilmasa — javob yo'q holati
→ chekka holatlarni ayt (yechim to'liq — 20-qism) Chekka holatlar (edge cases) — oddiy emas holatlar (yechim to'liq bo'lishi uchun): bo'sh kirish ([], ""), bitta element ([5]), takror ([2,2,2]), manfiy/nol ([-1, 0]), juda katta (million — samaradorlik), topilmasa (javob yo'q holati). Sabab: oddiy holat ishlasa ham, chekka buziladi (bo'sh — crash, bitta — noto'g'ri); yechim to'liq bo'lishi kerak (barcha holat — 20-qism test); intervyuer chekkani so'raydi (yoki o'zi ayt — puxtalik ko'rsat). Chekkani aytish (tushunish belgisi — intervyuer qadrlaydi). Bu 20-qism (test — chekka) amaliyoti. Chekka — bo'sh, bitta, takror, topilmas. To'liq yechim. Ayt.
2.6. Intervyu amaliyoti
Texnik intervyu amaliyotlari: UMPIRE (tuzilgan — tushun, naqsh, reja, yoz, tekshir, tahlil); ovoz chiqarib (o'ylash ko'rsat — javob emas); savol ber (aniqlashtir — taxmin emas); misol (kichik — masalani tushun); naqsh (tanish — 2.3); Big O (tahlil, yaxshiroq); chekka (ayt — puxtalik); mashq (LeetCode — naqshlar, muntazam); sokinlik (bilmasang — o'yla, "keling shundan boshlay"). Tuzoqlar: darhol kod (tushunmasdan — chalkash), jim o'ylash (jarayon ko'rinmaydi), taxmin (savol bermasdan — noto'g'ri), chekka e'tiborsiz (to'liq emas), Big O unutish (samaradorlik), taslim (bilmasam — urin, ovoz chiqar). Amaliyot — UMPIRE, ovoz, naqsh, Big O, chekka, mashq. Intervyu — tuzilgan, ovozli, mashqli.
2.7. Intervyu tuzoqlari
Texnik intervyu asosiy tuzoqlari: darhol kod (tushunmasdan yozadi — chalkash, yo'nalishsiz; avval tushun/rejala); jim o'ylash (jarayon ko'rinmaydi — ovoz chiqar); taxmin (savol bermasdan — noto'g'ri masala yechadi; aniqlashtir); chekka e'tiborsizlik (oddiy holat ishlaydi, chekka buziladi — ayt); Big O unutish (ishlaydigan yechim yetmaydi — samaradorlik); taslim (bilmasam to'xtaydi — urin, ovoz chiqar, yo'l izla); mukammal kutish (birinchi yechim optimal bo'lishi shart emas — ishlaydigandan boshla, keyin optimalla); panika (qo'rquv — sokin, tuzilgan yondashuv). Sabab: intervyu jarayonni baholaydi (o'ylash, muloqot, tuzilgan); noto'g'ri — jarayon ko'rinmaydi (jim, darhol kod), to'g'ri — ko'rinadi (UMPIRE, ovoz). Yechim: tuzilgan, ovoz, savol, mashq. Tuzoqlar — darhol kod, jim, taxmin, taslim.
2.8. Intervyu — o'ylash jarayonini ko'rsatish
Texnik intervyu asosiy g'oyasi — o'ylash jarayonini ko'rsatish: intervyu javob topish emas (asosiy) — qanday o'ylashingizni ko'rish (muammo yechish, muloqot, tuzilgan fikrlash). Intervyuer kelajakdagi hamkasbni baholaydi (u bilan ishlash qanday — o'ylash, muloqot, chekka e'tibor). Shuning uchun ovoz chiqarib (fikrlash ko'rsat), tuzilgan (UMPIRE — darhol kod emas), savol (aniqlashtir — jamoada kabi 31.5). Bu o'rganiladigan ko'nikma (naqshlar, yondashuv, mashq — qo'rqma); to'g'ri tayyorgarlik (LeetCode, UMPIRE, ovoz) yengiladigan qiladi. Bu 15-qism (algoritmlar) ni intervyuga tatbiq, 31.11 (Python savollar), 31.12 (tizim dizayn) bilan davom. Bu 31-qism (karyera) ning intervyu qismi. Intervyu — o'ylash ko'rsat. Jarayon, javob emas. O'rganiladigan.
3. Tez ma'lumotnoma
UMPIRE YONDASHUVI:
Understand (tushun, savol ber) → Match (naqsh) → Plan (reja)
→ Implement (yoz) → Review (chekka, xato) → Evaluate (Big O)
OVOZ CHIQARIB: fikrlash ko'rsat (javob emas — jarayon)
NAQSHLAR:
ikki ko'rsatkich · hash jadval · sliding window · BFS/DFS
ikkilik qidiruv · dinamik dasturlash
BIG O: O(1) · O(log n) · O(n) · O(n log n) · O(n^2)
yechim murakkabligini ayt · yaxshiroq bormi
CHEKKA: bo'sh · bitta · takror · manfiy · katta · topilmasa
TUZOQLAR: darhol kod · jim · taxmin · chekka e'tiborsiz · taslim
QOIDA: tushun → rejalash → yoz · ovoz chiqar · naqsh · Big O · mashqIntervyu xulosasi
Texnik intervyu — o'ylash jarayonini ko'rsatish (javob emas)
UMPIRE — tushun, naqsh, reja, yoz, tekshir, tahlil (darhol kod emas)
Ovoz chiqarib — fikrlash ko'rsat (jim yomon)
Naqshlar (ikki ko'rsatkich, hash, window) · Big O tahlil
Chekka holatlar (ayt — to'liq) · mashq (LeetCode) · o'rganiladigan4. Batafsil misollar
Intervyu real amaliyot talab qiladi; misollar intervyu yondashuvi mantiqini (deterministik) modellashtiradi.
Misol 1 — UMPIRE bosqichlari
"""UMPIRE: intervyu yondashuvi bosqichlari (model)."""
UMPIRE = [
("U", "Understand", "masalani tushun (savol ber)"),
("M", "Match", "naqshga moslashtir"),
("P", "Plan", "reja tuz (kod yozishdan oldin)"),
("I", "Implement", "yoz (rejadan)"),
("R", "Review", "tekshir (chekka, xato)"),
("E", "Evaluate", "tahlil (Big O)"),
]
def main() -> None:
print("=== 1. UMPIRE bosqichlari ===")
for harf, nom, izoh in UMPIRE:
print(f" {harf} - {nom:10} {izoh}")
print("\n=== 2. Darhol kod emas ===")
print(" tushun → rejalash → yoz (tuzilgan)")
print("\n=== 3. Jarayon ko'rinadi ===")
print(" intervyuer o'ylashni ko'radi")
print("\n=== 4. Eslab qolish ===")
print(" UMPIRE — ketma-ketlik (oson)")
print(" ⭐ UMPIRE — tuzilgan yondashuv")
if __name__ == "__main__":
main()Natijaning muhim qismi:
=== 1. UMPIRE bosqichlari ===
U - Understand masalani tushun (savol ber)
M - Match naqshga moslashtir
P - Plan reja tuz (kod yozishdan oldin)
I - Implement yoz (rejadan)
R - Review tekshir (chekka, xato)
E - Evaluate tahlil (Big O)
=== 2. Darhol kod emas ===
tushun → rejalash → yoz (tuzilgan)
=== 3. Jarayon ko'rinadi ===
intervyuer o'ylashni ko'radi
=== 4. Eslab qolish ===
UMPIRE — ketma-ketlik (oson)
⭐ UMPIRE — tuzilgan yondashuvNima ko'rsatdi: 2.1-bo'lim.
Misol 2 — Naqshni tanish (2 son masalasi)
"""Naqsh: 2 son masalasi — hash jadval (model)."""
def ikki_son(massiv: list, target: int) -> list:
korilgan = {} # son → indeks (hash jadval)
for i, son in enumerate(massiv):
kerakli = target - son
if kerakli in korilgan: # O(1) qidirish
return [korilgan[kerakli], i]
korilgan[son] = i
return []
def main() -> None:
massiv, target = [2, 7, 11, 15], 9
print("=== 1. Masala ===")
print(f" massiv: {massiv}, target: {target}")
print("\n=== 2. Naqsh tanildi ===")
print(" hash jadval ('kerakli son bormi?' O(1))")
print("\n=== 3. Yechim ===")
natija = ikki_son(massiv, target)
print(f" indekslar: {natija} ({massiv[natija[0]]}+{massiv[natija[1]]}={target})")
print("\n=== 4. Big O ===")
print(" O(n) vaqt (bir aylanish), O(n) joy (hash)")
print(" ⭐ Naqsh — hash jadval (tez qidirish)")
if __name__ == "__main__":
main()Natijaning muhim qismi:
=== 1. Masala ===
massiv: [2, 7, 11, 15], target: 9
=== 2. Naqsh tanildi ===
hash jadval ('kerakli son bormi?' O(1))
=== 3. Yechim ===
indekslar: [0, 1] (2+7=9)
=== 4. Big O ===
O(n) vaqt (bir aylanish), O(n) joy (hash)
⭐ Naqsh — hash jadval (tez qidirish)Nima ko'rsatdi: 2.3, 2.4-bo'limlar.
Misol 3 — Big O taqqoslash
"""Big O: yechimlar murakkabligi taqqoslash (model)."""
def amal_soni(n: int, murakkablik: str) -> int:
import math
if murakkablik == "O(n)":
return n
if murakkablik == "O(n^2)":
return n * n
if murakkablik == "O(log n)":
return max(1, int(math.log2(n)))
return n
def main() -> None:
n = 1000
print("=== 1. O(n) — chiziqli ===")
print(f" n={n}: {amal_soni(n, 'O(n)')} amal (bir aylanish)")
print("\n=== 2. O(n^2) — ichma-ich ===")
print(f" n={n}: {amal_soni(n, 'O(n^2)')} amal (sekin)")
print("\n=== 3. O(log n) — ikkilik ===")
print(f" n={n}: {amal_soni(n, 'O(log n)')} amal (tez)")
print("\n=== 4. Yaxshiroq izla ===")
print(" O(n^2) → O(n) (hash bilan) — intervyuda ayt")
print(" ⭐ Big O — samaradorlik (yaxshiroq bormi)")
if __name__ == "__main__":
main()Natijaning muhim qismi:
=== 1. O(n) — chiziqli ===
n=1000: 1000 amal (bir aylanish)
=== 2. O(n^2) — ichma-ich ===
n=1000: 1000000 amal (sekin)
=== 3. O(log n) — ikkilik ===
n=1000: 9 amal (tez)
=== 4. Yaxshiroq izla ===
O(n^2) → O(n) (hash bilan) — intervyuda ayt
⭐ Big O — samaradorlik (yaxshiroq bormi)Nima ko'rsatdi: 2.4-bo'lim.
Misol 4 — Chekka holatlar
"""Chekka holatlar: yechim to'liqligi (model)."""
def chekka_tekshir(massiv: list, target: int) -> dict:
holatlar = {
"bo'sh": len(massiv) == 0,
"bitta": len(massiv) == 1,
"topilmasa": target not in [a + b for i, a in enumerate(massiv) for b in massiv[i+1:]],
}
return holatlar
def main() -> None:
print("=== 1. Bo'sh massiv ===")
b = chekka_tekshir([], 9)
print(f" bo'sh: {b['bo\'sh']} → javob [] (crash emas)")
print("\n=== 2. Bitta element ===")
print(" [5], target 9 → juftlik yo'q (topilmasa)")
print("\n=== 3. Topilmasa ===")
t = chekka_tekshir([1, 2], 100)
print(f" topilmasa: {t['topilmasa']} → [] qaytar")
print("\n=== 4. To'liq yechim ===")
print(" chekka holatlarni ayt (puxtalik — 20-qism)")
print(" ⭐ Chekka holatlar — to'liq yechim (ayt)")
if __name__ == "__main__":
main()Natijaning muhim qismi:
=== 1. Bo'sh massiv ===
bo'sh: True → javob [] (crash emas)
=== 2. Bitta element ===
[5], target 9 → juftlik yo'q (topilmasa)
=== 3. Topilmasa ===
topilmasa: True → [] qaytar
=== 4. To'liq yechim ===
chekka holatlarni ayt (puxtalik — 20-qism)
⭐ Chekka holatlar — to'liq yechim (ayt)Nima ko'rsatdi: 2.5-bo'lim.
5. To'g'ri va noto'g'ri tushunishlar
| Noto'g'ri fikr | To'g'risi |
|---|---|
| "Javob asosiy" | O'ylash jarayoni asosiy |
| "Darhol kod yoz" | Tushun → rejalash → yoz (UMPIRE) |
| "Jim yechish yaxshi" | Ovoz chiqarib (o'ylash ko'rsat) |
| "Savol bermaslik" | Aniqlashtir (taxmin emas) |
| "Ishlaydigan yetadi" | Big O (samaradorlik) |
| "Chekka keraksiz" | Ayt (to'liq — puxtalik) |
| "Naqsh bilmasam" | Mashq (naqshlarni o'rgan) |
| "Bilmasam taslim" | Urin (ovoz chiqar, yo'l izla) |
6. Keng tarqalgan xatolar va yechimlari
1. Darhol kod yozish
# tushunmasdan kod (chalkash, xato) # ⚠️
# UMPIRE (tushun → rejalash → yoz) # ✅2. Jim o'ylash
# jim yechish (jarayon ko'rinmaydi) # ⚠️
# ovoz chiqarib (fikrlash ko'rsat) # ✅3. Taxmin qilish
# savol bermasdan (noto'g'ri masala) # ⚠️
# aniqlashtir (kirish, chiqish, cheklov) # ✅4. Chekka e'tiborsizlik
# oddiy holat ishlaydi, chekka buziladi # ⚠️
# chekka ayt (bo'sh, bitta, topilmasa) # ✅5. Big O unutish
# ishlaydigan yechim, murakkablik aytmaydi # ⚠️
# Big O ayt (yaxshiroq bormi) # ✅6. Taslim bo'lish
# bilmasam to'xtaydi (jarayon yo'q) # ⚠️
# urin (ovoz chiqar, "keling shundan boshlay") # ✅7. Mukammal birinchi yechim kutish
# darhol optimal izlash (qotib qolish) # ⚠️
# ishlaydiganidan boshla, keyin optimalla # ✅7. Integratsiya — bu bilim qayerda kerak bo'ladi
- 15-qism (o'tilgan): Algoritmlar, Big O
- 31.11-dars: Texnik intervyu — Python savollar
- 31.12-dars: Tizim dizayni suhbati
- 31.9-dars (o'tilgan): Rezyume — intervyuga olib keladi
- 31.5-dars (o'tilgan): Muloqot (ovoz chiqarib)
8. Eng yaxshi amaliyotlar
UMPIRE (tushun → rejalash → yoz — darhol kod emas).
Ovoz chiqarib (o'ylash ko'rsat — jim emas).
Savol ber (aniqlashtir — taxmin emas).
Naqshni tanish (mashq — 2.3).
Big O tahlil (yaxshiroq bormi).
Chekka holatlarni ayt (to'liq).
Ishlaydiganidan boshla (keyin optimalla).
Mashq (LeetCode — muntazam, naqshlar).
9. Amaliy topshiriq
Vazifa 1: Bashorat qiling
1. # intervyu maqsadi?
2. # UMPIRE nima?
3. # U nima?
4. # nega darhol kod emas?
5. # ovoz chiqarib nega?
6. # naqsh nima?
7. # 2 son masalasi naqshi?
8. # Big O nima?
9. # nega Big O?
10. # chekka holat?
11. # bilmasam?
12. # birinchi yechim mukammal?Javoblar
- O'ylash jarayonini ko'rish (javob emas)
- Tuzilgan yondashuv (6 bosqich)
- Understand (masalani tushun, savol ber)
- Tushunmasdan chalkash (tuzilgan yaxshi)
- Fikrlash ko'rinadi (jim — jarayon yo'q)
- Ma'lum yechim usuli (aksar masala)
- Hash jadval (tez qidirish)
- Vaqt/joy murakkabligi
- Samaradorlik (ishlaydigan yetmaydi)
- Bo'sh, bitta, takror, topilmasa
- Urin (ovoz chiqar, yo'l izla)
- Yo'q (ishlaydiganidan boshla, optimalla)
Vazifa 2: Xatolarni tuzating
1. # tushunmasdan kod
2. # jim yechish
3. # savol bermasdan
4. # chekka e'tiborsiz
5. # Big O aytmaydiJavoblar
1. UMPIRE (tushun → rejalash)
2. ovoz chiqarib
3. aniqlashtir (savol ber)
4. chekka ayt (bo'sh, topilmasa)
5. Big O ayt (yaxshiroq bormi)Vazifa 3: UMPIRE
Modellang:
- Understand
- Plan
- Implement
- Evaluate
Vazifa 4: Naqsh
Modellang:
- Masala
- Naqsh
- Yechim
- Big O
Vazifa 5: Big O
Modellang:
- O(n)
- O(n^2)
- O(log n)
- Yaxshiroq
Vazifa 6: Chekka
Modellang:
- Bo'sh
- Bitta
- Topilmasa
- To'liq
Vazifa 7: O'ylash
Texnik intervyu javobni topish emas, balki "qanday o'ylashingizni" ko'rish uchun — intervyuer kelajakdagi hamkasbni baholaydi. Nima uchun "jarayon" (qanday muammoni yechasiz) "natija"dan (to'g'ri javob) ko'ra ko'proq narsani ochib beradi, va nega ovoz chiqarib o'ylash (muloqot) yakka aqlli bo'lishdan muhimroq jamoa ishida?
Javob
Qisqa javob: "Jarayon" natijadan ko'proq ochib beradi, chunki: natija (to'g'ri javob) faqat bir masalada muvaffaqiyatni ko'rsatadi (balki yodlagan, balki omad); jarayon (qanday yechdingiz) umumlashtiriladigan qobiliyatni ko'rsatadi (yangi, ko'rilmagan muammoni qanday yechasiz — kelajakda ishda shu kerak); intervyuer sizni bir masala uchun emas, kelajakdagi ko'p noma'lum masala uchun yollaydi — jarayon ularda qanday ishlashingizni bashorat qiladi. "Nega jarayon ko'proq ochadi": (1) umumlashtirish — natija bitta (bu masala), jarayon ko'pga (har masalaga yondashuv); (2) haqiqiy qobiliyat — jarayon fikrlash sifatini ko'rsatadi (tuzilgan-mi, mantiqiy-mi), natija yashiradi (yodlash mumkin); (3) muammoni yechish — real ishda muammolar yangi (javob ma'lum emas — jarayon kerak); (4) kuzatiladigan — jarayon ko'rinadi (o'ylashni tuzatish mumkin), natija yakuniy. "Nega ovoz chiqarib o'ylash jamoa ishida muhim": (a) yakka aql yetmaydi — real ish jamoa (31.5 — kod birga); aqlli lekin muloqotsiz — jamoaga foydasiz (fikrini ulasha olmaydi); (b) muloqot = qiymat ulashish — fikrni tushuntirish (jamoa o'rganadi, muvofiqlashadi — 31.6 review); (c) hamkorlik — ovoz chiqarib o'ylash intervyuda "men bilan ishlash qanday" ko'rsatadi (jim daho vs muloqotli hamkasb); (d) yordamga ochiq — ovoz chiqarib → intervyuer yo'naltiradi (jamoada ham — yordam so'rash, ulashish). Umumiy tamoyil: jarayon > natija (umumlashtiriladigan qobiliyat > bitta javob); muloqot yakka aqldan muhim (jamoa — qiymat ulashish, hamkorlik); real ish yangi muammolar (jarayon kerak, javob emas). Bu 31.6 (psixologik xavfsizlik, muloqot) va 31.5 (hamkorlik) bilan bir ruh. Muhandislik/karyera saboqlari: jarayon natijadan ko'p ochadi (umumlashtirish, haqiqiy qobiliyat); real muammolar yangi (jarayon — javob emas); muloqot yakka aqldan muhim (jamoa — ulashish, hamkorlik); ovoz chiqarib o'ylash (intervyu + jamoa). Intervyu misolida: qanday o'ylash (jarayon) — kelajakdagi ish uchun; ovoz chiqarib — hamkasb sifati (jim daho emas).
1. Nega jarayon ko'proq ochadi
- Umumlashtirish (natija bitta, jarayon ko'pga)
- Haqiqiy qobiliyat (jarayon — fikrlash, natija — yodlash mumkin)
- Real muammolar yangi (jarayon kerak, javob emas)
- Kuzatiladigan (jarayon — tuzatiladi)
2. Nega muloqot yakka aqldan muhim
- Yakka aql yetmaydi (real ish jamoa)
- Muloqot = qiymat ulashish (fikr tushuntirish)
- Hamkorlik (ovoz chiqarib — hamkasb sifati)
- Yordamga ochiq (yo'naltirish, so'rash)
3. Jarayon vs natija
| Jihat | Natija | Jarayon |
|---|---|---|
| Ko'rsatadi | Bitta javob | Umumiy qobiliyat |
| Real ish | Kam (yangi muammo) | Ko'p (yondashuv) |
| Yodlash | Mumkin | Qiyin |
4. Muloqot muhimligi
Jamoa qiymat ulashish (fikr — 31.6). Jim daho vs muloqotli hamkasb (jamoa afzal).
5. Karyera saboqlari
- Jarayon > natija (umumlashtirish)
- Real muammolar yangi (jarayon kerak)
- Muloqot yakka aqldan muhim (jamoa)
- Ovoz chiqarib (hamkasb sifati)
6. Xulosa
- Jarayon ko'proq ochadi (kelajak qobiliyat)
- Real ish yangi muammo (jarayon)
- Muloqot = jamoa qiymat
- Ovoz chiqarib — o'ylash + hamkorlik
Nimani mustahkamlaydi: 2.2, 2.8-bo'limlar.
Xulosa
Bu darsda algoritmik texnik intervyuni o'rgandik.
Eng muhim uch fikr:
Yondashuv va ovoz chiqarib o'ylash. Intervyu yondashuvi (UMPIRE) — tuzilgan jarayon (darhol kod emas): Understand (tushun — savol ber), Match (naqsh), Plan (reja), Implement (yoz), Review (chekka, xato), Evaluate (Big O); tushun → rejala → yoz → tekshir → tahlil. Ovoz chiqarib o'ylash — kalit: intervyu javob topish emas (qanday o'ylashingizni ko'rish); jim o'tirsa jarayon ko'rinmaydi; ovoz chiqarib (
avval tushunay,hash bilan — chunki,O(n) — chunki) — fikrlash ko'rinadi, muloqot ko'nikmasi ham.Naqshlar, Big O, chekka holatlar. Naqshlar — masalalar ma'lum yechim naqshlaridan: ikki ko'rsatkich (saralangan), hash jadval (tez qidirish O(1)), sliding window (subarray), BFS/DFS (graf/daraxt), ikkilik qidiruv (O(log n)), dinamik dasturlash; naqshni tanish → yechim oson (mashq). Big O tahlili — vaqt/joy murakkabligi (O(1), O(log n), O(n), O(n log n), O(n^2)); yechimni tahlil, yaxshiroq izla (samaradorlik). Chekka holatlar — bo'sh, bitta, takror, manfiy, katta, topilmas; yechim to'liq (20-qism), chekkani ayt (puxtalik).
Tuzoqlar va o'ylash jarayoni. Intervyu tuzoqlari: darhol kod (tushunmasdan — chalkash), jim o'ylash (jarayon ko'rinmaydi), taxmin (savol bermasdan), chekka e'tiborsiz, Big O unutish, taslim (urin — ovoz chiqar), mukammal birinchi yechim kutish (ishlaydigandan boshla). Intervyu — o'ylash jarayonini ko'rsatish (javob emas — qanday o'ylash, muloqot, tuzilgan); intervyuer kelajakdagi hamkasbni baholaydi (u bilan ishlash — o'ylash, muloqot); o'rganiladigan ko'nikma (naqsh, UMPIRE, mashq — qo'rqma). Jarayon natijadan ko'proq ochadi (umumlashtiriladigan qobiliyat — real muammolar yangi); ovoz chiqarib o'ylash (muloqot) yakka aqldan muhim jamoa ishida (qiymat ulashish, hamkorlik).
Keyingi darsda Texnik intervyu: Python savollari ni o'rganamiz: Python'ga xos intervyu savollari — GIL, generatorlar, dekoratorlar, kontekst menejerlar, xotira, is vs == va tilning chuqur tushunchalari.
Izohlar (0)
Izoh yozish uchun kiring.
- Hozircha izoh yo'q. Birinchi bo'ling!