Tasavvur qiling siz online do'kondan telefon sotib olmoqchisiz, o'zingizga yoqqan telefonni tanladingiz va ko'ryapsizki bu telefondan bor yog'i 5 ta qolgan.
Yetkazib berish manzilini tanladingiz va to'lov qilish qismiga yetib keldingiz, karta raqamlarini kiritib to'lovni amalga oshirayotganingiz sayt qotib qoldi va bir necha soniyadan keyin sizga xatolik ko'rsatdi. Kartangizni tekshirsangiz pullar yechib olingan, lekin sizning vebsaytda sizning buyurtmangiz ko'rinmayapti va haliyam 5 ta telefon sotuvda.
Bundan kelib chiqadiki - Pullaringizga uxladingiz 😁 (hazil)
Bunday holatlarda bizga ACID yordam beradi, aniqrog'i ACIDdagi Atomicity.
ACID - ma’lumotlar bazalarida tranzaksiyalar ishonchli va to‘g‘ri amalga oshishini ta’minlash uchun qo‘llaniladigan to‘rtta asosiy xususiyatlardir.
Atomicity (Atomlik)
Tranzaksiya davomida bajariladigan barcha operatsiyalar “bitta butun” sifatida ko‘rib chiqiladi. Ya’ni, agar tranzaksiya doirasidagi biror operatsiya bajarilmay qolsa yoki xatolik yuz bersa, butun tranzaksiya bekor qilinadi va ma’lumotlar avvalgi holatiga qaytariladi.
Tepadagi misolda, kartadan pulni yechish, tovarlar sonini bittaga kamaytirish, yetkazib berish uchun buyurtma hosil qilish kabi operatsiyalardan birortasi amalga oshmay qolsa, tranzaksiya doirasidagi barcha amalga oshirilgan operatsiyalar ortga qaytariladi.
Consistency (Moslik yoki Izchillik)
Tranzaksiya bajarilgach, ma’lumotlar bazasi tizimdagi oldindan belgilangan qoidalarga, cheklovlar va bog‘liqliklarga (constraints) mos bo‘lib qolishi kerak.
Masalan, akkount balansi manfiy bo'lmasligi, akkount emaillari unikal bo'lishi talab qilingan bo'lsa bu talab saqlanishi ya'ni dublikat emailli akkount yaratish tranzaksiyasi fail bo'lishi.
Isolation (Izolyatsiya)
Bir vaqtning o‘zida bajarilayotgan tranzaksiyalar bir-biriga xalaqit bermasligi va bir tranzaksiya ikkinchisining vaqtinchalik (hali yakunlanmagan) o‘zgarishlarini ko‘rmasligi kerak.
Har bir tranzaksiya go‘yoki bazada yakka o‘zi ishlayotgandek bo‘lishi lozim. Bu turli tranzaksiyalar o‘rtasida paydo bo‘ladigan “to‘qnashuvlar” yoki kutilmagan natijalarni oldini oladi.
Masalan 2 kishi auksiondagi yagona tovarni sotib olayotganda databasega yetib kelgan birinchi transaksiya tovarga tegishli ma'lumotlarni izotyatsiyalash orqani ikkinchi tranzaksiyani bloklab turadi. Shunda birinchi tranzaksiya amalga oshirilgandan so'ng tovarlar soni 0 teng bo'ladi va ikkinchi tranzaksiya fail bo'ladi.
Durability (Barqarorlik)
Tranzaksiya muvaffaqiyatli tugaganidan keyin amalga oshirilgan barcha o‘zgarishlar doimiy saqlanib qoladi. Ya’ni, server yoki tizim o‘chib qolsa ham, ushbu o‘zgarishlar yo‘qolib ketmaydi.
Buning uchun ma’lumotlar bazasi jurnallash (logging) va boshqa saqlash uslublaridan foydalanadi.
@kamoloff_log
Yetkazib berish manzilini tanladingiz va to'lov qilish qismiga yetib keldingiz, karta raqamlarini kiritib to'lovni amalga oshirayotganingiz sayt qotib qoldi va bir necha soniyadan keyin sizga xatolik ko'rsatdi. Kartangizni tekshirsangiz pullar yechib olingan, lekin sizning vebsaytda sizning buyurtmangiz ko'rinmayapti va haliyam 5 ta telefon sotuvda.
Bundan kelib chiqadiki - Pullaringizga uxladingiz 😁 (hazil)
Bunday holatlarda bizga ACID yordam beradi, aniqrog'i ACIDdagi Atomicity.
ACID - ma’lumotlar bazalarida tranzaksiyalar ishonchli va to‘g‘ri amalga oshishini ta’minlash uchun qo‘llaniladigan to‘rtta asosiy xususiyatlardir.
Atomicity (Atomlik)
Tranzaksiya davomida bajariladigan barcha operatsiyalar “bitta butun” sifatida ko‘rib chiqiladi. Ya’ni, agar tranzaksiya doirasidagi biror operatsiya bajarilmay qolsa yoki xatolik yuz bersa, butun tranzaksiya bekor qilinadi va ma’lumotlar avvalgi holatiga qaytariladi.
Tepadagi misolda, kartadan pulni yechish, tovarlar sonini bittaga kamaytirish, yetkazib berish uchun buyurtma hosil qilish kabi operatsiyalardan birortasi amalga oshmay qolsa, tranzaksiya doirasidagi barcha amalga oshirilgan operatsiyalar ortga qaytariladi.
Consistency (Moslik yoki Izchillik)
Tranzaksiya bajarilgach, ma’lumotlar bazasi tizimdagi oldindan belgilangan qoidalarga, cheklovlar va bog‘liqliklarga (constraints) mos bo‘lib qolishi kerak.
Masalan, akkount balansi manfiy bo'lmasligi, akkount emaillari unikal bo'lishi talab qilingan bo'lsa bu talab saqlanishi ya'ni dublikat emailli akkount yaratish tranzaksiyasi fail bo'lishi.
Isolation (Izolyatsiya)
Bir vaqtning o‘zida bajarilayotgan tranzaksiyalar bir-biriga xalaqit bermasligi va bir tranzaksiya ikkinchisining vaqtinchalik (hali yakunlanmagan) o‘zgarishlarini ko‘rmasligi kerak.
Har bir tranzaksiya go‘yoki bazada yakka o‘zi ishlayotgandek bo‘lishi lozim. Bu turli tranzaksiyalar o‘rtasida paydo bo‘ladigan “to‘qnashuvlar” yoki kutilmagan natijalarni oldini oladi.
Masalan 2 kishi auksiondagi yagona tovarni sotib olayotganda databasega yetib kelgan birinchi transaksiya tovarga tegishli ma'lumotlarni izotyatsiyalash orqani ikkinchi tranzaksiyani bloklab turadi. Shunda birinchi tranzaksiya amalga oshirilgandan so'ng tovarlar soni 0 teng bo'ladi va ikkinchi tranzaksiya fail bo'ladi.
Durability (Barqarorlik)
Tranzaksiya muvaffaqiyatli tugaganidan keyin amalga oshirilgan barcha o‘zgarishlar doimiy saqlanib qoladi. Ya’ni, server yoki tizim o‘chib qolsa ham, ushbu o‘zgarishlar yo‘qolib ketmaydi.
Buning uchun ma’lumotlar bazasi jurnallash (logging) va boshqa saqlash uslublaridan foydalanadi.
@kamoloff_log
5👍35🔥8👏2
regex yozishni bilasizmi?
Anonymous Poll
16%
Yorvoraman 💪
37%
Yozishda qiynalaman 👌
23%
Umuman yoza olmayman ☹️
24%
Nima u?🤔
Revolut CEO on European work culture
@kamoloff_log
I think it is a cultural thing. People are more kind of, you know, protected, entitled, and they value kind of work-life balance much more compared to US or China. As a result, you just don’t have people working hard enough to achieve success.
@kamoloff_log
👍12💯2
🔹 Stack vs. Queue vs. Deque – Know the Difference! 🚀
Understanding these fundamental data structures can help you optimize your code efficiently!
🔸 Stack (LIFO – Last In, First Out) 🏗️
✅ Uses: Undo operations, DFS, backtracking
✅ Operations: push(), pop(), peek()
✅ Example: Browser history
🔸 Queue (FIFO – First In, First Out) 🚎
✅ Uses: Task scheduling, BFS, message queues
✅ Operations: enqueue(), dequeue(), front()
✅ Example: Print queue
🔸 Deque (Double-Ended Queue) 🔄
✅ Uses: Sliding window problems, palindromes
✅ Operations: addFirst(), addLast(), removeFirst(), removeLast()
✅ Example: LRU Cache
💡 Pro Tip: Use Stack for depth-first operations, Queue for breadth-first processing, and Deque for flexible operations on both ends!
Which one do you use the most? Comment below! ⬇️
@kamoloff_log
Understanding these fundamental data structures can help you optimize your code efficiently!
🔸 Stack (LIFO – Last In, First Out) 🏗️
✅ Uses: Undo operations, DFS, backtracking
✅ Operations: push(), pop(), peek()
✅ Example: Browser history
🔸 Queue (FIFO – First In, First Out) 🚎
✅ Uses: Task scheduling, BFS, message queues
✅ Operations: enqueue(), dequeue(), front()
✅ Example: Print queue
🔸 Deque (Double-Ended Queue) 🔄
✅ Uses: Sliding window problems, palindromes
✅ Operations: addFirst(), addLast(), removeFirst(), removeLast()
✅ Example: LRU Cache
💡 Pro Tip: Use Stack for depth-first operations, Queue for breadth-first processing, and Deque for flexible operations on both ends!
Which one do you use the most? Comment below! ⬇️
@kamoloff_log
👍11❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁33🤣14
Bilib qo'ygan yaxshi.
Post da avtor qanday qilib Google Cloud BigQuerydagi 1ta "noto'g'ri" so'rov 22 sekundda unga $10 000 ga tushganini yozgan.
Qiziq bo'lsa o'qib ko'ring.
TLDR; BigQuery qancha ma'lumotni skanerlashiga qarab sizdan pul oladi va querydagi LIMIT bu output uchun.
@kamoloff_log
Post da avtor qanday qilib Google Cloud BigQuerydagi 1ta "noto'g'ri" so'rov 22 sekundda unga $10 000 ga tushganini yozgan.
Qiziq bo'lsa o'qib ko'ring.
TLDR; BigQuery qancha ma'lumotni skanerlashiga qarab sizdan pul oladi va querydagi LIMIT bu output uchun.
@kamoloff_log
🤯19👍10
Debrief
Bu kandidat barcha intervyu bosqichlaridan o'tganidan keyingi bo'ladigan jarayon va unda kandidate ishga olingani yoki yo'qligi aniqlanadi.
Debriefda - Hiring Manager, Onsite Interviewerlar va Recruiter qatnashadi.
Debriefdan oldin har bir interviewer kandidatni ishga olish yoki olmaslik bo'yicha o'zlarining shaxsiy fikrlarini interview frameworki bo'yicha baholab qo'ygan bo'lishlari shart. Bu scorecard deyiladi, va bir interviewer boshqasining scorecardini ko'ra olmaydi. Har bir interviewer Yes, No, Strong Yes yoki Strong No variantlaridan birini tanlaydi.
Scorecardning taxminiy frameworki:
- Workable Solution:
- Code Quality:
- Covers Edge Cases:
- Asks Clarifying Questions (where needed):
- Efficiency:
- Debugging skills:
- Code Simplicity:
- Quality of Abstraction:
- Other (Specify):
- Pros/Positive signals: ...
- Cons/Negative signals: ...
Extra Notes:
Problem:
Solution:
Debrief davomida har bir interviewer kandidatga nega bunday baho qo'yganini asoslab beradi.
Oxirgi qarorni esa Hiring Manager qabul qiladi.
Misol uchun kecha qatnashgan debriefdan(L3 position uchun):
- Coding 1 -> Strong Yes
- Coding 2 -> No
- Communication & Leadership -> Yes
----------------------------------------
Result: Rejected
P.S: Agar siz Yevropadagi qaysidir kompaniya interviewsidan o'ta olmasangiz, ulardan interview feedback talab qilishingiz mumkin va GDPR ga ko'ra ular sizga bu feedbackni taqdim qilishga majbur.
@kamoloff_log
Bu kandidat barcha intervyu bosqichlaridan o'tganidan keyingi bo'ladigan jarayon va unda kandidate ishga olingani yoki yo'qligi aniqlanadi.
Debriefda - Hiring Manager, Onsite Interviewerlar va Recruiter qatnashadi.
Debriefdan oldin har bir interviewer kandidatni ishga olish yoki olmaslik bo'yicha o'zlarining shaxsiy fikrlarini interview frameworki bo'yicha baholab qo'ygan bo'lishlari shart. Bu scorecard deyiladi, va bir interviewer boshqasining scorecardini ko'ra olmaydi. Har bir interviewer Yes, No, Strong Yes yoki Strong No variantlaridan birini tanlaydi.
Scorecardning taxminiy frameworki:
- Workable Solution:
- Code Quality:
- Covers Edge Cases:
- Asks Clarifying Questions (where needed):
- Efficiency:
- Debugging skills:
- Code Simplicity:
- Quality of Abstraction:
- Other (Specify):
- Pros/Positive signals: ...
- Cons/Negative signals: ...
Extra Notes:
Problem:
Solution:
Debrief davomida har bir interviewer kandidatga nega bunday baho qo'yganini asoslab beradi.
Oxirgi qarorni esa Hiring Manager qabul qiladi.
Misol uchun kecha qatnashgan debriefdan(L3 position uchun):
- Coding 1 -> Strong Yes
- Coding 2 -> No
- Communication & Leadership -> Yes
----------------------------------------
Result: Rejected
P.S: Agar siz Yevropadagi qaysidir kompaniya interviewsidan o'ta olmasangiz, ulardan interview feedback talab qilishingiz mumkin va GDPR ga ko'ra ular sizga bu feedbackni taqdim qilishga majbur.
@kamoloff_log
👍20🔥7👏1
Warren Buffett once said, "If you don't find a way to make money while you sleep, you will work until you die."
Kettik ishga 😁
Happy Monday my friends.
@kamoloff_log
Kettik ishga 😁
Happy Monday my friends.
@kamoloff_log
😁51👍8🔥3💯1
Coding mock sessions!
Agar siz haqiqiy FAANG intervyusi qanday bo‘lishini his qilmoqchi bo‘lsangiz – marhamat!
O'zingizga qulay vaqtni tanlang: coding-mock
Note: Intervyular pullik.
24 soat ichida intervyu schedule qilganlar uchun 20% chegirma.
P.S:🔜 Yaqinda System Design mock’lar ham boshlanadi.
@kamoloff_log
Agar siz haqiqiy FAANG intervyusi qanday bo‘lishini his qilmoqchi bo‘lsangiz – marhamat!
O'zingizga qulay vaqtni tanlang: coding-mock
Note: Intervyular pullik.
24 soat ichida intervyu schedule qilganlar uchun 20% chegirma.
P.S:
@kamoloff_log
Please open Telegram to view this post
VIEW IN TELEGRAM
👍24🔥7❤1
This media is not supported in your browser
VIEW IN TELEGRAM
Juda katta Pull Request (PR) ni odatda ko'pchilik review qilmaydi yoki shunchaki looks good to me (LGTM) deb approve qiladi.
@kamoloff_log
@kamoloff_log
🤣26💯4😁3
Uyat bo'lsayam aytaman. 7 yil Software Engineer bo'lib ishlab, NoSQL database ishlatmagan ekanman, cache uchun Redisdan tashqari 🥶
@kamoloff_log
@kamoloff_log
😁39👍7❤3😱2🔥1
Yevropada ishlash.
Oyligingiz yuqori lekin yarmi sizniki emas😫 -> Ya'ni oyligingiz yuqori emas.
@kamoloff_log
Oyligingiz yuqori lekin yarmi sizniki emas
@kamoloff_log
Please open Telegram to view this post
VIEW IN TELEGRAM
😨22😢9😭6💅3👎1😱1💩1👻1👨💻1
2 yil oldingi ish noutbukimda buncha ko'p resurs bo'lmagan, bugun esa shuncha resurslarni dockerga beryapman 😁️️
@kamoloff_log
@kamoloff_log
😁27👍7🔥3❤1👏1
👍23❤13🐳2