Vohid Karimov
5.6K subscribers
425 photos
43 videos
4 files
361 links
Download Telegram
Tell me you know three languages without telling me you know three languages.

Men: chotkiy case oldim
😁59🤣9😈5👍4🥰1
Forwarded from Jakhongir Rakhmonov - IT
Dasturchilar qiladigan eng katta xatolardan biri
Yohud “Bu bo’lmaydi, boshidan yozish kerak”

Biz dasturchimiz. Dasturchilar esa yuraklarida arxitektorlar, quruvchilardir. Shuning uchun ham ular ishni boshlashganida hamma narsani buldozer bilan buzib tashlab buyuk narsa qurushmoqchi bo’lishadi. Bizga asta-sekinlik bilan bor narsani to’g’irlash, ta’mirlash ishlari unchalik ham yoqmaydi. Natijada ora-orada qilish mumkin bo’lgan eng yomon strategik xatoga yo’l qo’yamiz: Kodni noldan qayta yozishga qaror qilamiz.

Netscape Navigator degan browser bo’lgan oldin. Hamma faqat shu browserni ishlatardi. Negadir ular 5chi versiyasini boshqatdan yozishgan qaror qilishgan. 3 yil davomida ishlab turgan va birinchilikni egallab turgan mahsulotni boshidan yozishgan. Ular yozib tugatib bo’lgingacha Microsoft Internet Explorer degan browser yaratib yetakchilikni olib qo’ygan. Hozirgi kunda IE hali ham bor, lekin Netscapeni deyarli hech kim bilmaydi.

Nega unda dasturchilar bor kodni tashlab yuborib, boshidan yozishni hohlashadi? Chunki ular eski kodni sifati yaxshi emas deb o’ylashadi. Lekin bunday fikr katta ehtimol bilan xato. Buning asosiy sababi kodni yozishdan ko’ra o’qish qiyinligida, sifati pastligida emas.

Hohlagan dasturchingizdan u ishlayotgan kod haqida so’rang. Deyarli hammasi “juda ham yomon yozilgan, chalkash chulkash atala kod” degan gapning qaysidir variantini aytadi. Nega unday deb so’rasangiz, “Mana bu funksiyani qarang, 2 sahifaga cho’zilgan, noto’g’ri joyda turibdi. Mana bu jo’natilayotgan API requestlarning yarimi nimaga kerakligini umuman bilmayman” deydi.

Lekin bu juda ham noto’g’ri fikr. Eski kod ishlatilgan kod. U juda ko’p marta testdan o’tgan. Juda ham ko’p buglar topilgan va u buglar to’g’irlangan. Ha, tepada eslatib o’tilgan funksiya 2 sahifaga cho’zilib kattalashib ketgan, tushunarsiz qismlari bor. Nimagaligini aytaymi? Chunki bu funksiya buglar chiqqanda to’g’irlangan. Qaysidir qismi hotirada joy qolmaganda dastur to’g’ri ishlamay qolib qiynaganda to’g’irlangan, qaysidir qismi dastur eski kompyuterlarda to’g’ri ishlamaganda to’g’irlangan. Natijada funksiya kattalashib, har xil tushunarsiz kodlar bilan to’lib ketgan.

Lekin shu buglarning har biri haqiqiy foydalanuvchilar tomonidan topilgan. Ularning har birini to’g’irlash uchun dasturchilar 2 kun topishga sarflagan, yana 2 kun to’g’irlashga sarflagan.

Siz agar shu kodni tashlab yubormoqchi bo’lsangiz qiynalib topilgan bilimni tashlab yuborayotgan bo’lasiz. Yillab qilingan mehnatni tashlab yuborayotgan bo’lasiz. Yangi yozgan kodingizda ham shu buglar chiqmaydi deb kim garantiya bera oladi? Hech kim. Natijada yana yillar davomida yangi kodingiz ham zanglab boradi.

Yechim: sekin sekin kichik qismlarni to’g’irlash. Remont qilish. Buzib tashlab boshqatdan qurish emas.

Source: https://www.joelonsoftware.com/2000/04/06/things-you-should-never-do-part-i/

@jakhonrakhmonov
👍60🐳5👎3
15 kuncha oldin Googleni Sunnyvale California ofisida Uooglerlar (Uzbek Googler) bilan tushlik qilib bir g'ayrioddiy ish qildik. Ovqatdan oldin emas ovqatdan keyin rasmga tushdik.

Unpopular opinion: rasmni ovqatdan keyin olgan yaxshi. Chunki ovqatlangandan keyin odamni yuzi ancha ochiladi va yaxshi rasm chiqadi. Ko'rib turganingizdek hamma xursand. Qorin to'ydi g'am ketdi 😁

Satisfied faces + empty plates > hungry faces + full plates

#Google #Googler #FAANG #Dasturlash #Programming #SoftwareEngineering #IT
👍81😁37❤7🔥6
Hello world 🌏

Bugun sizlar bilan begonalardan qancha oylik olishini so'rash odob-axloqini o'rganamiz. Kettik!

Birinchi qoida: Hech qachon begonalarni qancha oylik olishini so'ramang!
Ikkinchi qoida: Birinchi qoidani ko'ring.

Nega begonalardan oyligini so'rab bo'lmaydi?

Qisqa javob: Odamlar oyliklariga qarab baholanishni xoxlashmaydi.

Uzun javob: Ikkita notanish odamlarni bir-biriga beradigan ilk savollari juda muhim hisoblanadi. Bir-ikki savoldan keyin oylikni so'rash bu juda katta red sign 🛑 Oylik so'rash degani siz o'sha odamni qancha oylik olishiga qarab muomala qilmoqchisiz.

Shaxsan mendan so'rashsa, o'sha joyda men va o'sha odam o'rtasidagi aloqa tugadi.

#Karyera #Career #SWECareer #CareerTips #Dasturlash #Programming #SoftwareEngineering #IT
👍63🔥16👎5🌚3😁2
Kelinglar tepadagi savolni sal o'zgartiramiz. Qanday qilib tanishlardan oyligini so'rasa bo'ladi?

Do'stlar va tanishlardan oyligini so'rasa bo'ladi. Lekin o'shanda ham aniq bir sabab bilan so'rash kerak va har doim "range"da so'rash kerak.

Masalan: "Salom Sardorbek. Men sizni kompaniyangizga ishga topshirmoqchi edim. Iloji bo'lsa meni darajamdagilarga qancha atrofida oylik berishini aytib berolasimi?"

Aytgancha, agar kompaniyalar qancha oylik berishini bilmoqchi bo'lsangiz levels.fyi va shunga o'xshash websitelardan foydalansangiz bo'ladi.

#Karyera #Career #SWECareer #CareerTips #Dasturlash #Programming #SoftwareEngineering #IT
👍29
Sherali Obidov aytib bergan bir voqea esga tushib ketdi.

Bir kuni taxida Sherali akadan bir odam oyligi so'rabdi. Sherali aka "500-600 olaman" desa, u odam "ha to'g'ri uzi shunaqa programistlar 500-600 ming so'm olishadi" deganmish 🤣

#StoryTime #DasturchiHikoyalari #Germany #Uzbekistan #Dasturlash #Programming #SoftwareEngineering #IT
🤣139😁26👍5🥱3
😁47🤣15❤‍🔥4🥱3🍾3👍1🐳1
Opam Angular o'rganishni boshladi 😎

O'zim Angular 1.x versiyasidan ishlashni boshlaganman. Boshida men uchun Angular magicdek edi. Two-way data binding 🤯
🔥34👍9👏3😁3❤2🐳1
— Biz proyektda test yozmaymiz.
— Nega?
— Chunki bizda bunga vaqt yo’q.
— Nega?
— Chunki shundoq ham ishimiz ko’p va katta bosimda ishlaymiz.
— Nega?
— Chunki ishimiz juda sekin siljidi.
— Nega?
— Chunki proyektdagi kodni o’zgartirish qiyin va havfli bo'lib qolgan.
— Nega?
— Chunki biz proyektda test yozmaymiz.

Source: Hassan Rezk Habib

#Coding #ComputerScience #CS #ProblemSolving #Dasturlash #Programming #SoftwareEngineering #IT
🤣70👍26😁5💯4🔥1
Hello world 🌍

Bugun sizlar bilan bus factor xaqida gaplashamiz. Bus factor bu avtobusni sizning proyektingizga tasiri. Tushunmadingizmi? 😛 Xop, aniqroq tushuntiraman 🙂

Sizni proyektingiz to’xtab qolishi uchun avtobus sizni komandangizdan nechta odamni urib yuborishi kerak? — shu narsa bus factor deyiladi. Albatta, avtobus urib yuborishi shart emas (bu xazil sifatida aytiladi). Ishdan birdaniga ketib qolsa, kasal bo’lib qolsa, to’yi bo'lib qolsa va hokazo. Juda sodda qilib tushuntirganda, agar juda ko’p narsa bir odamga bog’liq bo'lsa (business logic, code release, code review, DB migrations, va hokazo) bu kichik bus factor degani.

Bus factor qancha kichik bo’lsa shuncha yomon. Ideal xolatda sizni proyektingiz to'xtab qolishi uchun butun komandangiz avtobusda chorvoqqa ketayotib… 🙊

Xop, qanday qilib bus factorni kamaytirsa bo’ladi?
— dokumentatisiya
— TDD: unit, integration, va end-to-end testing
— Avtomatizatsiya: CI/CD pipelines
— Knowledge transfer sessiyalar
— Sog’lom kod reviewlar

Bu haqida ko’proq o’rganing: Medium
👍36😁7👏2
Bir paytlar Google Mapsda 5-10ta review yozgan edim. Onda-sonda shunday emaillar kelib turadi. Bu safar uzimni reviewimni o’qib kulibman 😅
😁60🤣41👍9🤔2❤1
FAANGga qaysi yo’nalish yaxshi?

Shu savolni mendan tez-tez so’rab turishadi. Men uchun bu savol sal g’alati tuyiladi. Har safar shu savolni eshitganimda ichimda bir narsa o’ladi.

Chunki hamma dasturlash yo’nalishi bilan FAANGga kirsa bo’ladi. Bunday kompaniyalar shunchalik kattaligidan deyarli hamma yo’nalish bo’yicha talantlarni ishga oladi. Men hozirgacha Googleda quyidagi xildagi dasturchilarni ko’rdim va hammalari muvaffaqiyatli ishlashyapti:
— Frontend Engineer
— Backend Engineer
— Embedded Engineer
— Gaming Engineer
— Security Engineer
— Android Engineer
— iOS Engineer
— QA Engineer
— QA Automation Engineer
— Site Reliability Engineer
— va hokazo

Yaxshiroq va foydaliroq savol: “XXX Engineer bo’lib qanday FAANGga ishga kirsa bo’ladi?”

Tushunaman nega yosh dasturchilar shu savolni berishadi. Befoyda narsa o’rganib yurmayin deb qo’rqishadi. Qo’rqmang, hamma bilimlarni o’rni bor va dasturlash soxasi ichida ekansiz bilimlaringiz befoydaga chiqib qolmaydi.

Qisqasi, lyubaya yo’nalish xarasha 🙂

#Google #Googler #FAANG #FAANGPrep #Interviews #InterviewPrep #ProblemSolving #Dasturlash #Programming #SoftwareEngineering #IT
👍84😁17🔥11
Hello world 🌍

Kelinglar bugun Acceptance Criteria haqida gaplashamiz. Nega bugun? Chunki bugun shu mavzuga oid bir foydali artikl o’qidim 😁 Tushunishni eng yaxshi yo’li tushuntirish deganlaridek, bugun sizlarga Acceptance Criteria bo’yicha oz-moz bilimimni ulashaman. Kettik!

<1-qism>

Acceptance Criteria o’zi nima?

Acceptance Criteria bu bir featureni yakunlash uchun shartlar. U oddiy technical bilimga ega bo’lmagan odam uchun ham tushinarli tilda yoziladi va technical dunyo (Software Engineer, QA) va non-technical dunyoni (Project Manager, Project/Product Owner) bog’lab turadi. Shuning uchun ham Acceptance Criteria Software Developmentda muhim ro’l o’ynaydi.

Yaxshi Acceptance Criteria yangi featurelarni osonlik va o’z vaqtida yetkazib berishga yordam beradi. Yomon Acceptance Criteria esa yangi featurelarni yetkazib berishda qiyinchiliklar, xatoliklar, tushunmovchiliklar, kechikishlar va asab buzarchilikarga olib boradi.

Acceptance Criteria qanday yoziladi?

Acceptance criteria asosan Given.. When.. Then strukturasida yoziladi. “Talk is cheap, show me the code” deganlaridek, kelinglar bir-ikkita misollar keltiramiz.

Example A: Login with email and password.
Given: that user has already signed up
And: their account is active
When: they input their email and password correctly
And: click Login button
Then: they should be authenticated
And: navigated to the home page

Example B: Add product to cart without being logged in.
Given: that user is not logged in
And: is in product detail page
When: they click “Add to cart” button
Then: the button text changes to “Added to cart”
And: the button is disabled

Acceptance Criteria bilan oddiy feature descriptionni farqi nimada?

Formatdan tashqari boshqa katta farqi yo’q. Acceptance Criteria feature descriptionga qaraganda ancha batafsil bo’ladi.

</1-qism>

2-qism >>
👍18
<< 1-qism

<2-qism>

Software Engineerlar yaxshi Acceptance Criteria yozishni bilishlari kerakmi?

Ha, professional dasturchilar yaxshi Acceptance Criteria yoza olishi kerak.

Feature requestlar biznes tarafdan kelgani uchun asosan Acceptance Criteriani Product Owner va Project Managerlar yozishadi. Lekin sog’lom komandalarda Software Engineerlar ham bu jarayonda aktiv qatnashishadi. Shu orqali ko’p detallar oldindan kelishib olinadi va tushinmovchiliklarni oldi olinadi.

Bu jarayonda Software Engineerlar qatnashishi uchun yana bir sabab bor. Bu Test-Driven Development (TDD). Agar komanda TDD qilsa, Acceptance Criteriadagi har bir shart keyinchalik unit test yoki end-to-end testga tarjima qilinadi. Shu sababli Acceptance Criteriada dasturchilar qatnashishsa testlar yozish ossonlashadi.

Qanday qilib Acceptance Criteria yozish skillarini kuchaytirsa bo’ladi?

Albatta, ko’proq Acceptance Criteria yozishda qatnashish orqali. Tepadagi linkda ham bir talay maslahatlar berilgan — o’qib chiqing.

<2-qism/>

Sizni kompaniyangizda Acceptance Criteria yozish qanday o’tadi? Software Engineerlar ham qatnashishadimi?
👍17
Sizni setupingiz 🖥️ qanday? Ulashamiz, kettik!

Men boshlab beraman:
- MacBook Pro Intel (personal)
- MacBook Pro M1 (work)
- 27inch Monitor
- 2 laptop stands
- Wide dining table
- Logitech MX Master 3 Mouse
- Logitech MX Keys with palm rest
- Airpods 2
- Pixel Airbuds Pro
- Autonomous Ergo chair
- Trash can
- and fresh air

#Coding #ComputerScience #CS #ProblemSolving #Dasturlash #Programming #SoftwareEngineering #IT
🔥104🍾8👍7❤2💋1
Forwarded from Азизбек Жонибеков
Ba'zi insonlar boshqalarni desk setupini ko'rib, o'zini sharoitidan xafa bo'lishi mumkin.
Lekin muhimi progress. Ba'zilar $5k lik setup bilan juda oz progress qilayotgan bo'lishi mumkin. Ba'zilar eng oddiy setup bilan ham ancha steady progress qilayotgan bo'lishi mumkin.
🔥88👍20💯9👏7🆒2❤1
👍12🫡5❤1
Forwarded from JR TwitGram 🥂
Karyerada va umuman olganda hayotda o’sish uchun eng muhim jihatlardan biri bu “Being Likable”. Yani yoqimli inson bo’lish. Yani siz bilan gaplashish, siz bilan ishlash, siz bilan muhokamalar qilish oson va yoqimli.

Shu paytgacha intervyularda biz hohlagan narsalarni hammasini bilmasa ham yoqimli inson bo’lsa, o’sha insonni o’tkazib yuborganmiz. Va teskarisi, hamma narsani bilsada, yoqimsiz inson bo’lsa, o’ylab o’tirmasdan yiqitganman.

Esimda bor Super Dispatchga bitta bola kelgandi. Savollarimizga juda zo’r javob bergan. Lekin juda ham yoqimsiz gaplar gapirgan. “Men sizlar ishlatadigan texnologiyalarni 5 yil oldin ham zo’r bilar edim. Yorvoraman. Nechi pul oylik berasizlar?” ga o’xshagan gaplarni qilgan. Bizga to’g’ri kelmaysiz deb jo’natvorgan edik.

Yoqimli bo’ling 🙃
👍55💋13🗿3❤2🍌1
Elon Muskni o'ng qo'li bilan uchrashdik 😎 Dilmuroddan dasxat olish esdan chiqibdi afsus 😅
👍50😁23🔥4