Programming ∀
前往频道在 Telegram
Ushbu kanalda IT va Dasturlashga aloqador mavzularda subyektiv fikrlarimni bayon qilaman.
显示更多1 217
订阅者
无数据24 小时
-87 天
-3530 天
帖子存档
1 217
Agar community yaxshi bo'lsa o'sish yaxshi bo'ladi.
O'zi aytishniklar communitysi eng qiziq jamiyatlardan edi...
Turli moodlar, xazillar va trolling. Brainshtorming va Q&A.
Lekin bunaqa culturelar chetga surilib hamma yoqni office plangtonlari bosib ketti. Engineering culture esa faqat uzkiy kuruglarda qolib ketyabti borgan sari. Albatta buni din, yoki fundamental narsa sifatida tarqatilmagan unaqa qaramaslik ham kerak. Shunchaki forumlardagi, kulgili ammo qiziqarli javoblar keskin hatelar va turli expirementlar hulosasini ulashish o'rniga drammali mavzular va takrorlanuvchi dump questionlar bosib ketdi.
Huddi Zoomerlardan kegin dasturchilar chiqmaganga o'xshaydi deydi bir tanishim.
1 217
Shunga bu mavzularni scam deyman, o’rganganday his etasiz lekin amalda hechnima yemaydi😎
1 217
System design - Odatda shunaqa interviewxchalarda o'zlaricha xisoblashadi RPS, QPS vaxakazo parametrlarni. Kegin birdaniga boshlashadi masalan N RPS per node xisoblashganida body sizeni arifmetikasini qilishadi. Masalan a, b, c, d vaxakazo fieldlarni hajmi hisoblanadi.
Endi bir kishi aytyabti: Manam huddi shunday qildim, lekin testlar shuni ko'rsatdiki man kutgandan ko'ra eng kamida 20% ko'proq resurs sarfladim o'sha arxitekturani ishlashiga.
Muammo nimada ?
Muammo detallarda, arifmetikani bilasiz-u ammo mantiqni bilmasligizda. Masalan siz clientdan yuborgan request hamma uchun tushunarli bo'lib qolmaydi. Masalan siz application/json yuborsangiz demak uni serverda serializatsiya qilinadi. Undan tashqari request sizelar kichikroq bo'lishi uchun comression ishlatgan bo'lishingiz mumkin(Mana CPU intensiv deb jar soladigan nodejschilar uchun cpu intensiv tasklar). Manashunaqa oddiy narsalar ham kattaroq RPSda sezila boshlaydi. Shunga details muhim !
Memoryni ham xisoblagansiz, masalan N gb memory xisoblagansiz ammo ko'proq ishlatyabti. Nega ?
Oddiy misol yuqoridagi compression, serialization CPUni band qilyabti, lekin I/O sig'imi yetarlicha shu sababdan ma'lum narsalar memoryga tiqiladi.
Keyingisi esa code masalasi. Qayerdadir bemalol objecltarni copy qilib ishlatyotgan bo'lsangiz, tabriklayman siz notog'ri hisobladingiz. Agar system designi norm qilganingizda kerak bo'lsa GCni ham hisobga olar edingiz, lekin xozir daje GC hisobga olinmagan va GC ishlamayabti, agar ishlaganida sizni bunaqa g'oyalarizni va yechimlarizni tozalab yuborgan bo'lar edi.
1 217
Etiborli qismi esa yuqoridagi ishsizlikga qarshi kurash masalasidagi ko'p narsalar manga ham aloqadir. Maqsad dream job izlash emas balki manda ham o'zim hohlagan joylarga yoki skill yetmaydi yoki boshqa faktorlar. Fikrimcha bu normal holat, agar hamma narsa biz hohlashimiz bilanoq bo'lib qolsa demak yoki tushdamiz, yoki nimadir neto, yoki shunchaki biz uchun hammasi osonlashitirilgan ) Muhimi biz ega chiqaylik o'sha qimmatli intelektual resursga !
5-yillik nodejsga ketkazgan vaqtimga achinmayman. Lekin buyog'iga erkin harakat qilishimga ko'zim yetadi! Hullas nodejs kabi qoloq texnalogiyada ham xozirgacha yashab o'sish mumkin deb bilaman va eng muhimi hammasi inson o'ziga bog'liq deb o'ylayman.
1 217
Nodejsda 5-yil.
Nodejsdan foydalanyotganimga shuncha bo'libti. Orada ancha loyihalar qildim va ko'p narsalarni nodejs doirasida o'rgandim. Nodejsda backend yozishga doir tayinli biror kurs, materiallar kam davrda expressjs bilan hammasini bosib tashlayverdim.
Qachondir payti keldi muammolar complex bo'la boshladi, qo'shimcha texnalogiyalar kerak bo'ldi ularni o'rganishga vaqt ketdi. Bazi narsalarni umuman tushunolmadim, aqlim yetmadi hal etolmadim. Oradan vaqt o'tdi, izlanishlarim davomida boshqa tillarda qilingan narsalarni nodejsga olib kirdim, qilayotgan loyihalarimga tadbiq qildim.
Bazi resurslar chiqa boshladi, holywarlar ko'paydi. Savollar esa biror narsani qanday ishlashiga qiziqishlarga olib bordi. Oqibatda resurslar topildi, aqlim yetganicha o'qidim shunchaki qiziq edi kayf edi. Muammolar hal bo'lmadi ko'ngil ham to'lmadi, bazilar esa perfectionist dedi bazilar mozahizt dedi. Foydasi bo'lmadi devops o'rgandim, ikki hayotda yashar edim bir hayotda code yozaman boshqasida faqat codeni ishlatib beraman. Ish yaxshi edi challenge bor edi, ammo natija ? Natija yangi javobsiz savollar edi.
Koryerada o'sish shu ekan dedim, chunki muammolar complex yechimlar ham bor edi. Nodejs qolib ketti, chunki masala databaselar edi. Databaselar o'rgandim va bottleneck bilan tanishdim, distrubuted systems dedimu yillar o'tib ketdi, qancha muammolar hal bo'lib ketti. Oradan vaqt o'tdi nodejs ham rivojlanib ketti kamina devops bo'lib ketti, kegin bildim bu gitops ekan. Qilgan monitoringlarim SRE amaliyotlari ekan.
Backendga qaytdim yangi muammolar, bu safar concurrency ezadi lekin race conditionlarni faqat bu mavzuni bilganlar sezadi )) Hullas umrim concurrencyda o'tdi miyya ham nodejsda qotdi. Lekin doyim turli narsalarni boshqa tillardan oldim, chunki ekotizimga oid resurslar kam yoki juda sifatsiz edi. Hullas concurrencyni ham tatib ko'rdim vaqt o'tib cpu intensiv tasklarniyam ko'rdim. O'yladimki bunga thread kerak, ahir hamma shunday deyabti.
Muammolar kattalashdi, yechimlar ham abstraktlashdi, demak OOP o'qish kerak dedim va o'zimcha. "Formal OOP" o'qidim. Lekin foydasiz bo'ldi chunki hechnimani tushunmadim. Qilganim shu immutable objectlar va ularni compose qilish. Umir esa shu bilan o'tdi yilga yaqin vaqtim ham ketti. Natija esa yangi savollar edi.
FP uchun matematikaa kerak dedim va 1 yil sarson yurdim. Elixirdan boshladim ammo atomlarga kelib to'xtadim. Kegin esa rust boshlandi nu hotya bunisi tushunarli bo'ldi orada trashcp ham qilindi. Lekin bilim yetmadi rust loyihalarim yemadi.
Scalani boshladim, actor models o'rgandim. Ammo foyda bo'lmadi chunki hechnima tushunmadim. Alvin amakini ktiboni o'qidim lekin monadlarni tushunmdim. Hullas vaqt yana o'tdi umir esa bekor ketdi, aslida bekor ketmadi tajribalar bilan ketdi. Lekin natija ?
Albatta natija yangi savollar edi )
Uyoqdan buyoqga sakrab harbaloni o'rgandim lekin natijani faqat bilim dedim. Nolimayman lekin hamma bilimimga ham amal qilmadim. Demak katta xatoyim foydasiz bilim o'rganganim yoki foydalana olmaganim. Albatta ikkinchi versiya haqiqat. Shularni tushunib yakuniy qarorni berdim. Haskell o'rganaman dedim ! Ho'sh nima o'zgardi ?
Shu yangi savollar paydo bo'ldi )
Albatta xatolardan hulosa bo'ldi, bazilari kanalga yozildi bazilari yo'q. Muhimi buyog'iga nima qilaman ? Umuman olganda maqsadlar va unga harakat bor. Lekin eng muhimi Nodejsda doyimiy qolganim deb aytaman nega ? Sababi xozir nodejs ekotizimida bemalol ishlay olaman FP bo'lsa ham OOP bo'lsa ham farqiyo'q, buni hohlashim hohlamasligim alohida mavzu lekin kompitensiyam bor !
Haskell nima bo'ladi general purpose ediku ? Deydiganlar uchun bu hali ham davom qilinyabti deyman maqsadni yoki missiyani share qilgandan esa hech qanday ma'nfat ko'rmayabman chunki bu maqsad xozircha o'zimga bog'liq.
1 217
Bunaqa mavzularda kamroq yozar edim. Lekin so’ngi kuzatuvlarim natijasida tushundimki yozish kerak alternativ fikr, g’oya kerak!
Bo’lmasa xatolar qaytarilaveradi. Hechnima o’zgarmaydi va rivojlanmaydi.
Undan tashqari o’zim ham bilaman potensiali yaxshi ambitiyasi bor bollarni ko’pi o’zlari hohlagan narsalar bilan shug’ullanishmabti va bilamanki pul doyim kerak. Pul topishga o’qish kerak o’qigani pul kerak)
Oila yoki uydagi tarakanlarni boqishga ham pul kerak. So’ngi payitlar esa ko’p duch kelayotgan masalam ham aynan shu ishsiz dasturchilar mavzusi va unga qarama qarshi muvofaqqiyat o’lchovini nigga dir/ pulda o’chlashi.
Tanqid bo’lmasa rivojlanish bo’lmaydi! Biznikilar esa tanqidni ham qabul qilishni bilishmaydi. Unday emas uje 5 yildan buyon hamma dasturlashda koryera haqida gapiradi va hamma success storyni aytadi. Bunaqasi ketmaydi success storyni eshitganiz sizni hayotizni yaxshilashiga shubxam bor. Xatolar, sabablar, oqibatlarni analiz qilish bizni odam qiladi. Bo’lmasa shu bio organizm bo’lib qolamiz. Bunaqa katta bio organizmdan esa amyoba kabi bir hujayralilar foydaliroq sababi ularni zarari kamroq. O’zimizni looser deb xisoblashni ham bas qilishimiz kerak ! Bo’lmagan gap internet bizga kirib kelganiga 10 yildan oshdi !
Shu sababdan o’zimizni aldamaylik! Hayotni ham romantizatsiya qilmaylik, bilaman hamma joyda diskriminatsiya, tabaqalanish yana boshqa muammolar yetarlicha nu okay nimagadir xarakat qilsak har holda bekor o’lmagan bo’lamiz. Agar harakatimiz shunchaki dasturchi bo’lib ishlash bo’lsa demak niyatimiz ham xato ekan chunki ofis plangtoni bo’lib yashab qachondir chekkaga chiqarilamiz. Unday emas perespektiva yo’qmi demak shuni qurish kerak, pullik kurslar emas communitylar bilan. Sivilizatsiya kerakmi? Oldin sotsial rivojlansin, sotsial rivojlandimi ? Kurash boshlanadi, nimaga kurashilinadi ? Resursga !
Pul resurs bo’la oladimi ? Yo’q
Nima resurs bo’lishi mumkin ? Bizni sotsial uchun resurs bu bilim !
1 217
- Siz ohirgi o'qigan technical book ?
- Clean architecture.
- Xop, biz domain driven design ishlatamiz, shu sababdan menga DDDda eng yoqtirmagan narsalaringizni aytib bera olasizmi ?
- DDD zor !
- Blocked !
1 217
Ishga ham kirib oldik nima qilamiz ?
Tassavur qiling hammasini boshlab oldingiz va xozir hammasi yaxshi. Ho'sh endichi ?
Siz qanday roleda, responsibility va complexityda ishlashingizdan qatiy nazar hechnima doyimiy emas. Biz o'z potensialimizni ko'rsatib ishga kira oldik va vazifalarni bajara olyabmizmi ? Demak 2 narsaga etiborni qaratishimiz kerak. Ikkisi ham o'sish va rivojlanishga qaratilgan.
Birinchisi local levelup ) yani kompaniyada tajribamiz va kompitensiyamiz oshgani sayin hal etadigan ishlarimiz va daromatimiz ham oshishi kerak. Buning uchun company talabiga mos keladigan qanaqadir parametrlar ustida ishlaymiz shu aytiladigan hard/soft skills vaxakazolar. Hullas bu local levelupni umumiylashtirish bazida qiyinroq shu sababdan etiborimizni bir qismini company ichida o'sishga qaratamiz.
Keyingi masala global levelup. Umuman nima o'rganishni bilmaydiganlar oddiy certficationlar olishdan boshlashlari mumkin. Umuman olganda xozir certficationlar jiddiylik qiymatini biroz yoqotgan bo'lsa ham birmuncha actual. Masalan backendchilarnyam o'rganadigan narsalari tiqilib yotibti, DB fundamentals, Networking, Operating systems vaxakazolar. Maqsadingizga qarab kompitensiyani oshiravering. Eng minimum yoqotish esa birnecha oy bekorchi bo'lib qolganizda ish topib ketish.
Real hayotimiz turli tradeofflardan iborat, joningizni jabborga berib ishlasangiz-u ammo sizdan ishxonagniz osongina vos kechib yuborsa hechnima qilolmaysiz. Shunday ekan rivojlanishda umumiyroq qarayvering. IT xozirda asosan biznes model hodimlarni replace qilish borgan sayin oson bo'lib ketyabti va companylar shu tomonga ham ancha yurishlar qilyabti. Bunga misol biror startup tech stackni eng hiring oson tilda boshlashi. Nega ? Sababi osongina hodim topsa ishi to'xtab qolmaydi. Shu sabablarni xisobga olib o'z rejalarizni tuzavering. Tradeofflarni tog'ri baholang va shundan hulosa qiling.
Bundan ancha oldin uyoqdan buyoqa sakrab yuraveradiganlar haqida ham aytib o'tgan edim. Huddi shunday, agar siz reja qilgan bo'lsangiz va bir yo'lni tanlagan bo'lsangiz ma'lum nuqtasigacha yetib boring, bu degani ohirigacha yo'lingizga sodiq bo'ling qachonki hechnima o'xshamasa kegin boshqa yo'l, yechim qidirasiz. Shu sababdan eng boshida tanlov qilish birmuncha qiyin lekin tog'ri tanlov bo'lsa success rate ham katta bo'ladi.
Time management deb qo'yishadi, hullas bitta gap: Ishxonani ishini ish vaqtida qiling, produktivlikni ish vaqtida oshirishga xarakat qiling yani vaqtni chegaralang tamam. Bo'lmasa aralashib kasha qilasiz hammasini. Ishxonani ishini ish vaqtingizda yopishga o'rganib olsangiz qolgan vaqtingizni boshqa narsalarga ishlataverasiz.
Mani kuzatishlarim natijasida birinchi prodessional ishni topganidan kegin engineer doyimiy yani deyarli har kuni o'z ustida ishlashi kerak eng kamida 1-2 soat o'ziga vaqt ajratishi shart va bu davomiylik 3-5 yil atrofida bo'ladi. Ha taxminan universitetda o'qish vaqtiga mos kelyabti shunaqa. Shu sababdan ham markazlarni bitirgan begineerlarni bazida qadri past resurs. Masalan man uchun ham shunday agar CVda biror markazda o'qiganini ko'rsam bilimiga shubham yanada ko'payadi, agar universitetni ko'rsam qarashlarim biroz ijobiylashadi. Markazlar kadrlar sifati bilan yo'q obrosini battar tushirib yubordi, bunaqa prikollarni ko'pi esimda haligacha.
Doyimiy o'qish va o'rganishni odat qiling - Man yaqindan tanigan hamkasb yaxshi engineer do'stlarimning deyarli hammasi nimadirlarni kavlab o'tirgan bo'ladi. Nega ? Sababi qiryuzmillionta lekin fakt shundaki ular doyim o'z ustida ishlashadi. Shunday ekan kun tartibingizga bilimingizni contribute qilishni albatta qo'shing mayli bazida kichik tatilar qiling lekin doyimiy odatga aylantirish shart. Bazida candidatelardan qanday technical books o'qiganini so'rab qolar edim. Hammasi birxil, clean code, design patterns, cracking coding interview yana nimadirlar. Yo'q akalar bunaqa kitoblarni aytganizdan aytmaganiz yaxshi ayniqsa kattaroq lavozimga kompitensiya qo'yotgan bo'lsangiz.
1 217
Daromati bilan maqtanayotgan dasturchi bilan yuqoridagini o'rtasidagi farqni ham topa olmayabman lekin. Ikkisi ham xizmat ko'rsatadi va shuni evaziga pul oladi va olgan pulini maqtanadi.
Chunki o'zini maqtashdan boshqa tayinli narsasi yo'q !
O'zizni sotishni o'rganing deydiganlarniku vobshem...
Odamlar! siz ishlaydigan kasbda qilgan ishlariz va natijalaringizga qarab nimagadir ega chiqasiz. Ishlayotgan sohangiz aniq fanlarga asoslangan, siz gap sotganizga, insonlar ko'nglini olganingizga emas hal qilgan muammolaringizga pul olasiz. Demak o'zingizni sotishdan olin natija qilgan bo'lishingiz kerak !
O'zidan senior swe yasab olgan va top interview questionsda yo'q savolni bersangiz miyyasida majlis bo'ladigan lattachaynarlar hissiyotlarizga tegishtirib gapirgan ofigenniy gaplariga ishonmasdan aniq narsalar bilan shug'ullaning. Siz gapirgan gaplar emas siz qilgan ishlar kelajakda insonlar hayotiga kirib boradi shu haqida ko'proq o'ylang shunda niyatingiz amalizga mos bo'lsa albatta yo'lingizni topasiz, bo'lmasa yuraverasiz yoki siz ham o'sha lattachaynarlar kabi infosigan bo'lasiz kurs ochib. Odatda bunaqalarga ko'pchilik indamaydi lekin borgan sayin urchib ketyabti shunaqa lo'xmatlar.
1 217
Bir gapaytaman achiq bo’lsa ham.
Pul topishni muvofaqqiyat desak foxishalar ham pul topishadi.
1 217
Yana bir mavzu qoldi.
Ishga kirgandan kegin qilinadigan narsalar bor hali. O’ylab turing bu mavzuda nimalar deyishim mumkin ?
1 217
Endi CV masalasi.
Biz HRlarni aylanib o'tishimiz kerak! Chunki ular hechnimani proof qilolmaydi shunchaki qog'ozbozlikdan nariga o'tmaydi.
Hullas CVda salkam superman deb o'zizni elon qiling. Ayniqsa juniorlar CVsi qanaqadir archa bayram bo'ladi. No guys bunaqa maynavozchilik qilmang CV sodda va oddiy bo'lsin bu sizning page 5234234 page bo'lmasin. Daje mani CV 2 page. Shu sabab bitta page to'lsa yetadi. Biror narsada qatnashganizni yozmang. Boshqacha obrazga o'tkazish kerak. Asosiy g'oya siz nima qilgansiz va natijada nima value bo'lgan biznesga tamam. Shu sababdan biror narsada qatnashganman emas balki qilganman !
CVda faqat qanaqa value berganizni yani overall outputni yozing tamam !
Linkedin va CV birxil qilib qo'ying. Hamma joyda birxil page bo'lsa ishonchli bo'ladi. Hrlar kavlab chiqishi mumkin bazida.
HH, Linkedin o'zida CV generate qilmang. O'zingiz yozing
Birinchi CV worda yozgan edik bir ukam rossa yordam beruvdi. Kegin latexga o'tkazib oldim hohlasangiz latexa yozing ancha chiroyli va sodda bo'ladi.
Hullas CV jiddiy, formal va brutal ko'rinishi kerak. Qanaqadir archabayramlar, rgb va neforcha temalarni choping.
1 217
Bizda va yana ko'p joylarda IT kompaniyalarning turli zaifliklaridan foydalanadigan bo'lsak ish topishimiz imkoniyati ko'payadi. Faqat biroz tog'arani ko'tarib xarakat qilish kerak, buning uchun esa activity kerak ozgina. Masalan quyidagi tavsiyalarni berishim mumkin.
1. Doyimiy muammolardan biri. Tajriba yo'q sababi esa ish yo'q.
Buning yechimi esa projectlar !
Bitta domain sotib oling masalan trashmarket.uz va shunga bitta internet magazin qilasiz va bir joyga deploy qilib qo'ying. Agar sizdan portfolio so'rashadigan bo'lsa mana tayyor yechim. Hechkim sizdan so'ramaydi bu qaysi kompaniyani internet magazini ekanini. Bu degani o'zingiz random mavzuda zo'r produciton qilsangiz va noname bo'lsa tabiy holat faqat oshirib yubormang, ishni tez bitkazing. Manashu loyiha doirasida bitta jamoa qivolib kelishib ishlasaylar bo'ladi, front, backend, devops. Faqat eng minimal narsalar bilan tez tez shunaqa loyihalarni qilib portfolio yeg'ib oling. Suhbatda esa agar juda detallarni so'rasa NDA deysiz va qutilasiz tamam. Hullas vakansiya sizdan nima kutyotgan bo'lsa shuni taqdim qilib qo'ying tamam, chunki ularni o'zi ham hiringni eplolmaydi demak bundan foydalanish kerak !
2. Uzb kompaniyalarida qanaqadir hardcore interviewlarni deyarli eslay olmayman. Savollarni judayam katta qismi top N ta interview questions and answers mavzusi. Hullas template savollar va javoblar. Ishga kirishga tayyorlanish kerakmi ? Nasiniemsin tayyorlaning ! Yodlash kerakmi ? yodlang.
3. Ko'zingizga ko'ringan jobga apply qiling. Masalan vakansiyada senior so'ragan ! Okay, ularga barbir tayinli senior bormaydi katta ehtimol bilan lekin buni bilishmaydi. Bu esa tradeofflarga sabab agar nimadir yonayotgan bo'lsa kompitensiyasi bor luboy odamni oladi. Bu degani esa ko'rgan vakansiyangizga apply qilavering, sizni prinsplarizga mos kelsa bo'lgani ! Job requirementga unchalik qaramang hammasi bir biridan copy paste qilingan )) Stack sizga tog'ri kelsa, kompaniya va u ishlayotgan mavzular sizga mos kelsa bosavering senior kerak ekan man juniorman deb boshizni qotirib yurmang. Ular so'rayotgan seniorlar skillari siz o'ylaganchalik emas, unaqa darajaga juda tez chiqib olasiz agar yaxshi ustingizda ishlasangiz.
1 217
Manam marketing qilsamikan aynan o’zim tavsiya qiladigan narsalrni, faqat yolg’onlarsiz bo’lsa odamlar ishonmasa kerak deb o’ylayabman.
1 217
DevOps Journey bizneslarga consulting taqdimodini qilyabti. Xozircha test mode agar rivojlansa shu narsani davom qilishsa kerak. Xozircha shunchaki board.
https://devops-journey.uz/consultation
1 217
Hurmatli grajdanlar nigga scammerlar ko’payib ketgani sababli comment yozish uchun guruhga kiradigan va guruhda faqat modation bilan accept qiladigan qivordim.
Bo’lmasa commentlarda scam ko’payabti.
Hurmat bilan Man.
1 217
Hamma narsaga sistema perespektivasidan qarash g’oyasi juda ham yoqdi. Miyyamdagi ko’p tarqoq fikrlarni bir joyga jamlab beryabti aynan shunaqa fikrlash uslubi.
1 217
Ehhe, bunaqa go'zallikni ko'rgan odam mathga qiziqmasa aniq axmoq bo'ladi.
https://en.wikipedia.org/wiki/Magic_square
