page

My life

helloooo

It's My Life

Kirish

Bu sahifa oddiy demo page emas.

Bu mening o‘zimga yozgan eslatmam.

Men ko‘p marta boshlaganman.
Ko‘p marta yoqmagan.
Ko‘p marta o‘chirganman.
Ko‘p marta qaytadan boshlaganman.

Lekin endi bitta narsani tushundim:

Hayotda eng katta o‘zgarish yangi boshlashdan emas, boshlagan narsangni tugatishdan boshlanadi.

Men kimman?

Men tayyor qolipga sig‘adigan odam emasman.

Men faqat kod yozadigan dasturchi ham emasman.
Men faqat dizayn ko‘radigan odam ham emasman.
Men faqat biznes haqida gapiradigan odam ham emasman.

Men tizim ko‘radigan odamman.

Men oddiy sahifani ko‘rsam, uning ortidagi admin panelni o‘ylayman.
Admin panelni ko‘rsam, permission tizimini o‘ylayman.
Permission tizimini ko‘rsam, comment tree, media engine, SEO, relation va kelajakdagi kengayishni o‘ylayman.

Bu ba’zan kuch.
Bu ba’zan la’nat.

Chunki miya doim kengaytiradi.


Eski sikl

Oldin men ko‘pincha shunday ishlardim:

  1. G‘oya keladi.
  2. Juda qiziq tuyuladi.
  3. Boshlayman.
  4. Birinchi versiya chiqadi.
  5. Yoqmaydi.
  6. Hammasini o‘chiraman.
  7. Qaytadan boshlayman.
  8. Yana yoqmaydi.
  9. Yana o‘chiraman.

Bu sikl menga ko‘p narsa o‘rgatdi.

Lekin u menga yana bir narsani ham qildi:

U tugatish ishonchini sindirdi.


Yangi qoida

Endi qoida o‘zgardi.

Delete emas. Replace.

Agar dashboard yoqmasa, butun tizim o‘chmaydi.
Faqat dashboard almashtiriladi.

Agar comment UI yoqmasa, comment engine o‘chmaydi.
Faqat UI almashtiriladi.

Agar gallery animatsiyasi ortiqcha bo‘lsa, gallery o‘chmaydi.
Faqat animatsiya moduli almashtiriladi.

Agar page builder og‘ir bo‘lsa, butun portfolio o‘chmaydi.
Faqat builder yengillashadi.

Bu — Lego uslubi.


Working > Simple > Fast > Beautiful > Perfect

Bu mening yangi tartibim.

Avval ishlasin.

Keyin sodda bo‘lsin.

Keyin tez bo‘lsin.

Keyin chiroyli bo‘lsin.

Keyin mukammallik haqida o‘ylaymiz.

Oldin men buni teskarisidan qilardim:

Perfect bo‘lsin, keyin ishlasa ham bo‘ladi.

Bu xato edi.

Chunki tugallanmagan mukammal loyiha hech kimga kerak emas.


Diqqat haqida

Menda diqqat yo‘q emas.

Menda diqqat juda ko‘p.

Muammo shundaki, u bitta joyda turmaydi.

Bir fikr ikkinchisini ochadi.
Ikkinchisi uchinchisini.
Uchinchisi butun boshli tizimga aylanadi.

CRM haqida o‘ylab turib Lighthouse’ga o‘tib ketishim mumkin.
Lighthouse’dan YouTube’ga.
YouTube’dan video algoritmlariga.
Undan kamera pipeline’iga.
Undan iOS va Android farqiga.

Bu kulgili.
Lekin bu real.

Shuning uchun men o‘zimga bitta qoida qo‘yaman:

Hozir kerak bo‘lmagan fikr — ideas.md ga.

Agar fikr kuchli bo‘lsa, u qochib ketmaydi.

Agar qochib ketsa, demak u muhim emas edi.


Kod haqida

Kod — maqsad emas.

Kod — asbob.

Men endi kodni faqat “yozish” uchun yozmayman.

Men kod orqali tizim quraman.

Sahifa qurilsa — u faqat sahifa emas.
Uning ortida content format bor.
Markdown bor.
HTML bor.
Visibility bor.
Comment engine bor.
Relation bor.
SEO bor.
Media bor.
Future update bor.

Lekin har narsaning vaqti bor.

V1 da hammasini tiqish shart emas.


Portfolio

Portfolio men uchun oddiy “men haqimda” sahifasi emas.

Portfolio — mening fikrlashimning vitrinasidir.

U yerda men faqat “men PHP bilaman, JS bilaman” demayman.

Men ko‘rsataman:

  • qanday tizim ko‘raman;
  • qanday qaror qabul qilaman;
  • qanday muammo yechaman;
  • qanday modul ajrataman;
  • qanday qilib katta narsani kichik bo‘laklarga bo‘laman.

Portfolio — gap emas, dalil.


Content Engine

Men sahifa, blog, gallery va coding bo‘limlarini alohida-alohida qurmayman.

Ular bitta ekotizim bo‘ladi.

Pages — fikrlar uchun.
Blog — hikoyalar uchun.
Gallery — vizual xotira uchun.
Coding — ishlaydigan kodlar uchun.
Comments — hammasini tirik qiladigan ovozlar uchun.

Bu oddiy sayt emas.

Bu mening shaxsiy content engine’im.


Comment Engine

Comment oddiy pastdagi form emas.

Comment — sahifaning ovozi.

Har bir page odamlar bilan gaplasha olishi kerak.

Har bir blog post fikr tug‘dirishi kerak.

Har bir media o‘z atrofida suhbat yig‘ishi kerak.

Shuning uchun commentlar tree bo‘ladi.

Bitta odam yozadi.
Ikkinchi odam unga javob beradi.
Uchinchi odam aynan o‘sha javobga kiradi.

Lekin bu tartibsiz devorga aylanmasligi kerak.

Shuning uchun default holatda commentlar ingichka oqim bo‘lib turadi.

Faqat kerakli comment bosilganda uning tree ochiladi.

Bu menga yoqadi.

Chunki bu ham hayotga o‘xshaydi:

Hammani birdan eshitish shovqin.
Kerakli ovozni tanlab eshitish — suhbat.


Gallery

Gallery zerikarli grid bo‘lmasligi kerak.

Hayot grid emas.

Xotiralar ham grid emas.

Ba’zi rasm katta bo‘ladi.
Ba’zi video kichik.
Ba’zi gif bir lahzani ushlab qoladi.
Ba’zi media oddiy ko‘rinsa ham, ortida katta hikoya bo‘ladi.

Shuning uchun gallery tirik bo‘lishi kerak.

Pinterestga o‘xshasin, lekin undan ham shaxsiyroq.

User scrollni to‘xtatsa, sahifa nafas olsin.
Ba’zi media sekin yo‘qolsin.
Boshqa media sekin paydo bo‘lsin.

Lekin bu agressiv bo‘lmasin.

Bu effekt “qarang, men animatsiyaman” deb baqirmasin.

U shunchaki tiriklik hissini bersin.


Media Dialog

Media bosilganda u oddiy lightbox bo‘lmasin.

U kichik sahifaga aylansin.

Yuqorida katta media.
Pastida title.
Description.
Info.
Tags.
Views.
Like.
Dislike.
Comments.

Va eng muhim narsa:

Media qayerdan kelgani ko‘rinsin.

Bu oddiy gallery elementi bo‘lishi mumkin.
Blog postga tegishli bo‘lishi mumkin.
Page attachment bo‘lishi mumkin.
Coding preview bo‘lishi mumkin.
Yoki external source bo‘lishi mumkin.

Har media o‘z tarixiga ega.


Blog

Blog men uchun maqola tashlaydigan joy emas.

Blog — fikrni tartibga soladigan joy.

Men biror narsani tushunsam, uni yozaman.
Yozsam, uni yanada yaxshi tushunaman.

Blog post plain text bo‘lishi mumkin.
Markdown bo‘lishi mumkin.
HTML bo‘lishi mumkin.

Ba’zi postlar qisqa bo‘ladi.
Ba’zilari uzun.
Ba’zilari texnik.
Ba’zilari shaxsiy.
Ba’zilari esa kelajakdagi o‘zimga yozilgan xat bo‘ladi.


Pages

Pages — statik emas.

Har bir page alohida tajriba bo‘lishi mumkin.

/myschool oddiy sahifa emas.
U fikrlar, kommentlar, media va vaqt bilan yashaydigan joy bo‘lishi mumkin.

Page content markdown bo‘lishi mumkin.
HTML bo‘lishi mumkin.
Plain text bo‘lishi mumkin.

Muhimi — tizim meni majburlamasin.

Men format tanlayman.
Tizim esa quradi.


Coding

Coding bo‘limi mening ishlaydigan laboratoriyam.

Bu yerda rasm emas, real kod turadi.

HTML bo‘lsa — iframe preview.
JS bo‘lsa — demo.
PHP bo‘lsa — manba.
Python bo‘lsa — logo va izoh.
C++ bo‘lsa — kod sifatida ko‘rinadi.

Ba’zi demo safe bo‘ladi.
Ba’zilari trusted bo‘ladi.
Ba’zilari preview qilinmaydi.

Har entry o‘z qoidasi bilan yashaydi.

Global qattiq qoida yo‘q.

Bu ham Lego.


Private va Public

Ba’zi narsa hammaga ko‘rinadi.

Ba’zi narsa faqat menga.

Desktopda private himoyani 100% qilish qiyinligini bilaman.

Lekin bu tizimda private/public bo‘lishi kerak.

Chunki bu shunchaki himoya emas.

Bu signal:

Men access control degan narsani tushunaman.

Public — vitrina.
Private — ustaxona.

Ikkalasi ham kerak.


SEO

SEO maqsad emas.

SEO — tartibning natijasi.

Agar page to‘g‘ri bo‘lsa, slug to‘g‘ri bo‘lsa, title to‘g‘ri bo‘lsa, description to‘g‘ri bo‘lsa, relation to‘g‘ri bo‘lsa — SEO o‘zi kuchayadi.

Keyin sitemap kerak bo‘ladi.
Canonical kerak bo‘ladi.
Open Graph kerak bo‘ladi.
JSON-LD kerak bo‘ladi.

Lekin bular poydevor emas.

Bular tomdagi chiroqlar.

Avval uy quriladi.


Relation Engine

Menga yoqadigan eng muhim joylardan biri shu.

Content bir-biridan uzilib qolmasligi kerak.

Blog post gallery media bilan bog‘lana olishi kerak.
Gallery media pagega tegishli bo‘lishi kerak.
Coding entry haqida blog yozilishi mumkin.
Page ichida coding demo turishi mumkin.

Bu internetning o‘ziga o‘xshaydi.

Hech narsa yakka emas.

Hammasi bir-biriga bog‘langan.


Hayot haqida

Men hayotimni ham shu tizim kabi ko‘ryapman.

Oldin hammasi chalkash edi.

G‘oyalar ko‘p.
Yo‘nalishlar ko‘p.
Boshlashlar ko‘p.
Tugatish kam.

Endi esa men shuni tartibga solyapman.

Mening hayotim ham Content Engine kabi bo‘lishi kerak.

Keraksiz narsa private.
Muhim narsa public.
Xatolar archived.
G‘oyalar ideas.md da.
Tugagan ishlar live.


Men nimani xohlayman?

Men 100 ta chala loyiha xohlamayman.

Men 3 ta tugagan loyiha xohlayman.

Men har kuni yangi boshlashni emas, har hafta nimadir yopishni xohlayman.

Men o‘zimga shuni isbotlamoqchiman:

Men boshlagan narsamni tugata olaman.

Bu gap oddiy eshitiladi.

Lekin men uchun bu katta narsa.


Intizom

Intizom — motivatsiya emas.

Motivatsiya keladi va ketadi.

Intizom esa qoladi.

Men har kuni zo‘r bo‘lishim shart emas.

Lekin har kuni qaytishim kerak.

Bugun 10 soat ishlamasam ham, 1 soat ishlashim mumkin.

Bugun mukammal kod yozmasam ham, bitta modulni yopishim mumkin.

Bugun dunyoni o‘zgartirmasam ham, o‘zimning eski siklimni sindirishim mumkin.


Qayta boshlamaslik

Eng katta qoida:

Qayta boshlama. Davom ettir.

Agar yoqmasa — refactor.
Agar chirkin bo‘lsa — redesign.
Agar sekin bo‘lsa — optimize.
Agar noto‘g‘ri bo‘lsa — replace.
Lekin hammasini o‘chirib tashlama.

Chunki har safar delete bosganimda men faqat kodni emas, o‘zimga bo‘lgan ishonchni ham o‘chirganman.

Endi unday bo‘lmaydi.


109 kun

109 kun dunyoni o‘zgartirish uchun kam bo‘lishi mumkin.

Lekin odam o‘z yo‘nalishini o‘zgartirishi uchun yetadi.

Agar men shu davrda:

  • portfolio chiqarib qo‘ysam;
  • content engine’ni ishga tushirsam;
  • CRM MVP qilsam;
  • comment engine’ni yopib qo‘ysam;
  • har kuni qaytib ishlasam;

bu 2000% o‘zgarish bo‘ladi.

Boshqalar ko‘rmasligi mumkin.

Lekin men bilaman.


Xulosa

It's my life.

Bu gap shunchaki qo‘shiq nomi emas.

Bu javobgarlik.

Agar bu mening hayotim bo‘lsa, uni boshqalar uchun chala qoldirib bo‘lmaydi.

Agar bu mening loyiham bo‘lsa, uni har safar yoqmay qolganda o‘chirib bo‘lmaydi.

Agar bu mening yo‘lim bo‘lsa, unda men yurishim kerak.

Sekin bo‘lsa ham.

Charchasam ham.

Chalg‘isam ham.

Yiqilsam ham.

Men qaytaman.

Men davom ettiraman.

Men tugataman.

Delete emas. Replace.
Orzu emas. Build.
Gap emas. Live.
Boshlash emas. Tugatish.

That's it.

It's my life.

Izohlar oqimi
Birinchi izohni qoldiring…