Tarkibga o'tish

Dasturchi yo'riqnomasi β€” kod yozuvchidan professional muhandisgacha

Bu kitob sizga kod yozishni o'rgatmaydi β€” buni boshqa kitoblar qiladi. Bu kitob sizga professional dasturchi BO'LISHni o'rgatadi. "Men kod yoza olaman" bilan "men muhandisman" o'rtasida katta jarlik bor, va aynan shu jarlikni bu kitob to'ldiradi: dasturchi tafakkuri (muammoni yechish, begona kodni o'qish, debugging), toza kod hunari (nomlash, modullik, xatolarni boshqarish, refactoring, texnik qarz), sifat (testlash madaniyati, code review, xavfsiz kod), jamoada ishlash (Agile, baholash, kommunikatsiya, hujjatlash, fikr-mulohaza), unumdorlik (vositalar, vaqt, o'rganishni o'rganish) va karyera (junior'dan senior'gacha, ish topish, intervyu, frilans, etika, barqarorlik).

🧭 Til-mustaqil kitob. Bu yerda gap sintaksisda emas, kasbiy ko'nikmada. Shuning uchun kitob biror dasturlash tiliga bog'lanmaydi: kod kerak bo'lganda psevdokod yoki qisqa, aniq misol (Python/JavaScript) beriladi, lekin g'oyalar har qanday tilda β€” siz PHP, Go, Java yoki Rust yozasizmi β€” bir xil amal qiladi.

βš–οΈ HALOL eslatma. Bu kitobdagi maslahatlar β€” qonun emas, amaliy yo'l-yo'riq. Dasturlash hunari ko'p jihatdan kontekstga bog'liq: bir jamoada to'g'ri narsa boshqasida noto'g'ri bo'lishi mumkin. Shuning uchun har bobda nafaqat "qanday qilish kerak", balki qachon va nega (hamda qachon aksini qilish kerakligi) ham aytiladi. Bu yerda muhandislik tajribasi va keng qabul qilingan amaliyot bor β€” lekin yakuniy qaror har doim sizniki va kontekstingizniki.

ℹ️ Bu kitob siz kamida bitta tilda kod yoza olasiz deb hisoblaydi (o'zgaruvchi, funksiya, sikl, oddiy dastur). Agar siz bunday loyihada hali ishlamagan bo'lsangiz ham, kitobni o'qishingiz mumkin β€” lekin eng katta foydani birinchi real loyihangiz yoki birinchi ishingiz atrofida olasiz, chunki bu yerdagi ko'p narsa amaliyotda "tushadi".


Bu kitob kim uchun

  • Yangi dasturchi β€” kod yozishni o'rgandingiz, endi qanday qilib jamoada, real loyihada professional ishlashni bilmoqchisiz.
  • Birinchi ishini izlayotgan β€” rezyume, portfolio, intervyu va birinchi 90 kunga tayyorlanmoqchisiz.
  • O'sishni xohlovchi junior/mid β€” senior darajaga nima yetishmayotganini aniq bilmoqchisiz.
  • Frilanser β€” mijoz topish, baholash, kommunikatsiya va barqaror ishlashni o'rganmoqchisiz.
  • O'zini "yetarli emas" his qilayotgan (impostor sindromi) β€” siz yolg'iz emassiz; oxirgi qism aynan shu haqida.

Qanday o'qish kerak

  1. Boblarni tartib bilan o'qish shart emas, lekin tavsiya etiladi: kitob tafakkur β†’ hunar β†’ sifat β†’ jamoa β†’ unumdorlik β†’ karyera tartibida quriladi. Agar aniq ehtiyojingiz bo'lsa (mas. intervyu), to'g'ridan-to'g'ri shu bobga o'ting.
  2. Har bobning "Mashqlar" bo'limini ishlang β€” bu kitobda mashqlar ko'pincha amaliy/refleksiv (real kod refactor qilish, commit xabari yozish, vazifa baholash, o'z holatingizni tahlil qilish). Yagona "to'g'ri javob" bo'lmasligi mumkin β€” yechimlar namuna sifatida berilgan.
  3. O'qib qo'ymang β€” qo'llang. Har bobdan keyin bitta narsani o'z loyihangizda yoki ishingizda sinab ko'ring. Bu kitobning butun qiymati amaliyotda.
  4. Bu kitobni boshqa kitoblar bilan birga ishlating: bu yerda kasb, ularda texnologiya. Cross-link'lar orqali kerakli chuqurlikka o'ting.

Mundarija

I qism β€” Dasturchi tafakkuri va muammo yechish

# Bob Mavzu
01 Kod yozuvchidan muhandisgacha "Kod yoza olish" vs "muhandis bo'lish" jarligi, professionalizm nimasi, bu kitob nima haqida, dasturchi mas'uliyati.
02 Muammoni yechish san'ati Muammoni tushunish, bo'laklash, gipoteza, "rubber duck", qotib qolganda nima qilish, yechimga yondashuv.
03 Begona kodni o'qish va tushunish Kod ko'proq o'qiladi, kamroq yoziladi; katta kod bazasiga kirish, navigatsiya, "qaysi ipni tortish", mental model qurish.
04 Debugging: xatoni tizimli ovlash Ilmiy debugging (takrorla→izolatsiya→tuzat), xato xabari va stack-trace o'qish, bisection, log, debugger, "ishlamayapti" ni aniqlashtirish.

II qism β€” Toza kod hunari

# Bob Mavzu
05 Nomlash β€” eng qiyin oson ish Yaxshi nom = yarim hujjat; o'zgaruvchi/funksiya/klass nomlash, niyatni ochish, qisqartma, izchillik, βœ…/❌ misollar.
06 Funksiyalar, modullik va kod tuzilishi Kichik funksiya, bitta mas'uliyat (kod darajasida), abstraksiya darajasi, yon ta'sir, fayl/modul tuzilishi.
07 Izoh va o'z-o'zini hujjatlovchi kod Qachon izoh kerak/keraksiz, "nega" vs "nima", eskirgan izoh xavfi, docstring/API izohi, kod o'zi gapirsin.
08 Xatolarni boshqarish va mudofaaviy dasturlash Xato vs istisno, "fail loud", chegaraviy holatlar, null/bo'sh, validatsiya, qayta urinish, xatoni yutib yubormaslik.
09 Refactoring va kod hidlari Kod hidlari (code smells), xavfsiz qadamlar bilan refactoring, test bilan himoya, "boy skaut qoidasi", qachon to'xtash.

III qism β€” Sifat, test va xavfsizlik

# Bob Mavzu
10 Texnik qarz: tushunish va boshqarish Texnik qarz nima, ataylab vs tasodifiy, foiz (interest), qachon "qarz olish" oqilona, jamoaga tushuntirish.
11 Testlash madaniyati Nega test, test piramidasi (unit/integ/e2e), TDD kirish, nimani test qilish, "ishonch" sifatida test, mind-set.
12 Xavfsiz kod yozish asoslari Dasturchi uchun xavfsizlik ongi: kirishga ishonmaslik, injection, maxfiy ma'lumot (secrets), parol/hash, OWASP sezgisi.

IV qism β€” Jamoada ishlash

# Bob Mavzu
13 Code review β€” berish va olish Sharhdan maqsad, qanday sharh yozish (mehribon + aniq), sharhni qabul qilish, pair programming, ego'siz muhandislik.
14 Jamoaviy kod oqimi: commit, branch, PR madaniyati Atomik commit, yaxshi commit xabari, branch strategiyasi (trunk vs git-flow) jamoa qarori sifatida, PR odob-axloqi.
15 Agile amalda: Scrum, Kanban va sprintlar Agile manifest, Scrum rollari/marosimlari, Kanban oqimi, standup/retro, jarayonning maqsadi, anti-patternlar.
16 Baholash va rejalashtirish Nega baholash qiyin, story point vs vaqt, noaniqlik konusi, buffer, kechikishni aytish, "tez/arzon/sifatli" uchburchagi.
17 Texnik kommunikatsiya: yaxshi savol va yozma muloqot Yaxshi savol berish (XY muammosi), asinxron yozma muloqot, RFC/ADR, taqdimot, non-tech bilan gaplashish.
18 Hujjatlash: README'dan runbook'gacha Nega hujjat, README anatomiyasi, onboarding, runbook, ADR, "hujjat ham kod", qachon yetarli.
19 Fikr-mulohaza, mentorlik va mojaro Feedback berish/olish, mentor va mentee bo'lish, kelishmovchilikni boshqarish, psixologik xavfsizlik, jamoa madaniyati.

V qism β€” Unumdorlik va o'sish

# Bob Mavzu
20 Ish muhiti va vositalar ustaligi IDE'ni qurol qilish, terminal/shell ustaligi, klaviatura, avtomatlashtirish, dotfiles, takrorlanuvchini yo'q qilish.
21 Vaqt, diqqat va chuqur ish Chuqur ish (deep work), kontekst almashinuvi narxi, yig'ilishlar, uzilishlar, fokus, ko'p ish bir vaqtda afsonasi.
22 O'rganishni o'rganish va dolzarb qolish "Tutorial do'zaxi"dan chiqish, T-shaklli mutaxassis, fundamental vs trend, qanday samarali o'rganish, charchamasdan kuzatish.

VI qism β€” Karyera va kasb

# Bob Mavzu
23 Dasturchi karyera narvoni: junior'dan senior'gacha Junior/mid/senior/lead/staff nima anglatadi, darajalar orasidagi farq ko'lamda emas, "senior" = mas'uliyat va ta'sir.
24 Ishni topish: rezyume, portfolio va tarmoq Rezyume (CV) yozish, portfolio/GitHub, LinkedIn, tarmoq qurish, ariza strategiyasi, soxta talablar afsonasi.
25 Texnik intervyuga tayyorgarlik Coding intervyu, tizim dizayni, behavioral (STAR), take-home, jonli kodlash, savol berish, ish haqi muzokarasi.
26 Frilans va masofaviy ish Mijoz topish, narx belgilash, shartnoma/TZ, masofaviy disiplin, vaqt zonasi, O'zbekistondan global bozorga chiqish.
27 Professional etika, mas'uliyat va huquq Kasbiy etika, litsenziya/IP, maxfiylik, "men yozgan kod zarar keltirsa", AI yordamida kod yozish etikasi, ochiq kod.
28 Barqaror karyera: burnout, impostor va salomatlik Charchash (burnout) belgilari va oldini olish, impostor sindromi, ish-hayot muvozanati, jismoniy/ruhiy salomatlik.

Kapston

# Bob Mavzu
29 Kapston: birinchi 90 kun va shaxsiy o'sish rejasi Hammasini birlashtirish: yangi ishda birinchi 90 kun rejasi + shaxsiy o'sish yo'l xaritasi va keyingi qadamlar.

Bu kitob va boshqa kitoblar

Bu kitob kasb haqida; texnologiyani chuqur o'rganish uchun quyidagilarga o'ting:

  • Versiya nazorati mexanikasi: Git & GitHub β€” bu kitobda commit/PR madaniyati bor; u yerda to'liq mexanika.
  • Tizim darajasidagi dizayn: Dasturlash arxitekturasi β€” kod ichidagi emas, tizim darajasidagi qarorlar (SOLID, pattern, mikroservis).
  • Algoritmik fikrlash: Algoritmlar + 1000 masala β€” intervyu va muammo yechish poydevori.
  • Deploy va operatsiya: DevOps & Deployment β€” kodni serverga chiqarish, CI/CD, monitoring.
  • Til asoslari: Python, JavaScript, PHP β€” agar sintaksis hali yangi bo'lsa.
  • Qayerdan boshlash: Yo'l xaritasi β€” qaysi kitobni qaysi tartibda.

Muallif

Oqil Imomnazarov β€” ioqil.uz Β· Telegram Β· YouTube

Kitob bepul tarqatiladi (CC BY-NC-SA 4.0). Savdo qilish taqiqlanadi.