Lazizbek Ergashev | IT Blog
615 subscribers
251 photos
104 videos
11 files
146 links
🇸🇪 Software Engineer @ danads.com
🤖 Co-founder at @robocontest
🎮 Loves Gaming and Anime
🧑 24 y.o
🇺🇿 Bukhara
✍️ @lazizbek_ergashev

solo.to/lazerg
Download Telegram
Keyingi post qanday qilib mutsaqil o’rganish haqida bo’ladi.

👉 @lazerg
Dasturlashni mustaqil o’rganib bo’ladimi yohud o’quv markaziga borish shartmi.

Bu savolni mandan ko’p kishi so’raydi, va men javob berardim, bilmasam mening o’zim hech qanaqa o’quv kursiga bormaganman.

Agar siz o’z vaqtizni o’ziz boshqarib bilsangiz va ingliz, rus tillarini yaxshi bilsangiz o’quv markaziga borish shart emas deb o’ylayman.

Lekin shuni sezdimki, birxil dasturchi bo’lmoqchi do’stlarim, ular jamoaviy o’rganishni yaxshi ko’rishadi, qolgan o’quvchilar bilan raqobatlashib, shunaqa. Balki shunday odamlarga rostan ham o’quv markazi kerakdir.

Biroq, o’ziz (self-taught) dasturchi bo’lishingiz uchun, oldizda kuchli mentor bo’lishi kerak, allaqachon kuchli kompaniyada ishlayotgan. Shunda ham u sizga ertalabdan kechgacha o’rgatishi shart emas, shunchaki to’gri yo’l (roadmap) ko’rsatib bilsa bo’ldi. Masalan bu texnologiyani o’rgan, bunisini o’rganma uje eskirdi, deydigan. Shunda bu texnologiyalarni o’ziz qiziqib, internetdan kurslarni topib, o’rganib yoki rasmiy dokumentatsiyasiga kirib o’rganishiz kerak bo’ladi.

Va eng muximi faqat videokurslarga yopishib qolmang, o’ziz ham kod yozing, mayli biron katta dastur bo’lmasin, mayli eng optimal yo’l bilan bormang, ammo o’ziz yarating, shunda sekin asta rivojlanasiz

👉 @lazerg
Lazizbek Ergashev | IT Blog
Dasturlashni mustaqil o’rganib bo’ladimi yohud o’quv markaziga borish shartmi. Bu savolni mandan ko’p kishi so’raydi, va men javob berardim, bilmasam mening o’zim hech qanaqa o’quv kursiga bormaganman. Agar siz o’z vaqtizni o’ziz boshqarib bilsangiz…
Mustaqil o’rganmoqchi bo’lsangiz, boshqa dasturchilarni kodini ko’rib ham o’rganishingiz mumkin.

Github platformasida juda ham ko’p qiziqarli proyektlar to’la. Aynan proyekt bo’lishi ham shartmas, masalan biron kichiqroq kutubxona bo’lsa ham mayli. Shunda ham shunchaki fayllar ichiga kirib o’rganishga harakat qilmang. Birinchi u open-source repositoryni yuklab oling, git log (o’zgartirishlar tarixi) ga kiring, va birinchi commit (o’zgarish) dan ko’rib chiqsangiz bo’ladi, u odam qanday boshlagan kod yozishni, qanday muammolar oldiga kelgan, va qanday hal qilgan. Bu ham o’rganishning bir usuli hisoblanadi!

👉 @lazerg
Kuzatuvchilar tomonidan repository qanday yuklanadi degan savol berildi

Hozir men buni qanday o’zim qilishimni ko’rsataman. Birinchi bo’lib git dasturini o’rnatish kerak (git-scm.com)

Mening o’zim WebStorm bilan ko’rsataman, buni istalgan editorga moslashtirsa bo’ladi.

Keyin istalgan bir kutubxonaga kiring. Masalan eng mashxur kutubxonalardan biri lodash ni olaylik.

Kutubxona linki olib git clone https://github.com/lodash/lodash.git terminalga yozib yuklab olinadi.

Shunda WebStorm da Git -> Show git log ga kirib git tarixini chiqarsa bo’ladi.

Shunda eng birinchi commitdan boshlab ko’rib chiqiladi.

👉 @lazerg
Lazizbek Ergashev | IT Blog
Photo
Sizga qaysi kutubxona yoki framework qiziq o’shani ichini ko’rib chiqing albatta, ko’p narsa o’rganasiz, shaxsan o’zim PHP dagi eng mashxur framework laravel ni ichidan qanday taxlanganini ko’rish, o’rganish uchun ko’p vaqt sarflayman, va hozir ham nimadir o’zgartirish kiritilsa darrov ko’rib chiqaman, qani qanday shu narsa erishildi deb

👉 @lazerg
Dasturchilar uchun Linkedin profil muximmi

Albatta, nafaqat dasturchilar uchun, balki barcha mutaxasislar uchun linkedin juda ham zarur hisoblanadi. Asosan, ish beruvchilar, ishchilarni o’sha yerdan qidirishadi. Linkedinni faqat ishga kirish sifatidamas, portfolio taxlash, rezyume taxlash sifatida ham ishlatsa bo’ladi. Linkedin profilini chiroyli qilib to’ldirish juda ham muxim, chunki keyinchalik googledan biron kishi sizni ismingizni qidirsa, birinchilardan bo’lib linkedin ijtimoiy tarmog’idan topadi!

👉 @lazerg
👉 @lazerg
Nimaga IT olamida xatolar bag (bug - hasharot) deb ataladi

Afsonaga qaraganda 1947-yilning, 9-sentyabrida, Harward universitetida, Greys Myurrey Xopper Mark II Aiken Relay Calculator qurilmasini tekshirotgan paytida xatolikka duch kelgan. Keyinchalik aniqlanishi bo’yicha qurilma sxemasida kapalak yopishib qolgan ekan, va shuning uchun ham ishlamayotgan ekan. Greys sxemadan hasharotni olayotgan payti xonaga zobit kirib kelgan, shunda undan nima qilayotganini so’ragan. U kompyuterni xasharotlardan tozalayotganini aytgan (ingliz tilida: debugging) . O’sha paytdan beri dasturlashda xatolar - bug, xatolarni tuzatish esa debugging deb ataladi

👉 @lazerg
Qanday qilib xatolarsiz kod yozib bo’ladi

Xatosiz kod yozishni imkoni yo’q, ammo tushunarli va debuggable (xatoni aniqlash oson) kod yozishning imkoni bor. Dasturiy ta’minot yaratish davomida baglardan to’liq qutilib bo’lmaydi, albatta agar gap kattoroq global proyektlar haqida ketayotgan bo’lsa, chunki kichkina proyektlarda xato chiqmasligi mumkin. Shunda debuggable kodga nimalar kiradi?

🔘 Tushunarli nomlar bering. Klasslarga, funktsiyalarga, metodlarga tushunarli nom berish juda ham muxim. Ularning nomi orqali vazifasini ko’rsatib berish kerak.

🔘 Kodni strukturalashtiring. Probellar, tab, qatorlarni qizg’anmang, strukturalashtirilgan kod, o’qilishga, tushunishga va test qilishga juda ham qulay.

🔘 Kodning algoritm qismi bilan, biznes logika qismini aralashtirmang.

🔘 Unutmang kod bir marta yoziladi, ammo ming marta o’qildi. Shuning uchun ham yozishgamas, o’qishga qulay kod yozing.

Umuman olganda xatolar barcha dasturiy ta’minotda uchrab turadi. Buglarni oldinroq aniqlash uchun testlar yoziladi.

👉 @lazerg
Lazizbek Ergashev | IT Blog
Qanday qilib xatolarsiz kod yozib bo’ladi Xatosiz kod yozishni imkoni yo’q, ammo tushunarli va debuggable (xatoni aniqlash oson) kod yozishning imkoni bor. Dasturiy ta’minot yaratish davomida baglardan to’liq qutilib bo’lmaydi, albatta agar gap kattoroq…
Biznes logika qismi qanaqa u?

Izohlarda shunday savol qoldirilibdilar. Javoblar hammaga tushunarli bo’lishi uchun qiyin terminlarni ishlatmaslikka harakat qilaman. Bu savolga javob berishdan oldin avval biznes logika (business logic) bilan dasturiy logikani (application logic) ni farqini misollar orqali tushuntirsam:

Telegram misoliga qarasak, username har doim unique (takrorlanmas) bo’lishi kerak, masalan shu blogim username’i @lazerg, tamom toki man buni o’zgartirmasam, boshqa kanalga bunday username qo’yib bo’lmaydi, manashu bizness logikaga kiradi. Agar kanalim sozlamalariga kirsam, va username berilgan qismini bossam uni o’zgartiradigan oyna chiqadi, manabu uje dastur logikasi

👉 @lazerg
Qanday qilib dastur xavfsizligini oshirsa bo'ladi 😂

👉 @lazerg
Dasturlash tillari, texnologiyalar jadallik bilan rivojlanib borayotgan zamonda yashab turib, qanday qilib zamon bilan ham-nafas bo’lgan dasturchi bo’lish mumkin

Tog’ri, IT olami juda ham jadallik bilan rivojlanib bormoqda, hozirda talabgor dasturchi bo’lsangiz, 2 yildan keyin hechkimga kerakmas dasturchi bo’lishingiz ham hechgapmas. Chunki trendlar o’zgarib bormoqda, freymvorklar, kutubxonalar yangilanib bormoqda. Xo’sh trendda yurish uchun nima qilish zarur? Avvalo hamma yerga va har narsaga ulgirishning eng oddiy yo’li bu - hech qayerga shoshilmaslik ! Sizga haqiqattan ham nima muximligini aniqlab oling: aynan qaysi soha sizga qiziq. Hechqachon hamma narsaga zo’r bo’lib bo’lmaydi, e’tiboringizni o’z sohayizga qarating, va kuzatib boring.

Mening o’zim asosan backendda laravel ni ishlatganim sababli, Taylor Otwell (laravel yaratuvchisi)ning twitter sahifasiga obuna bo'lib kuzatib boraman. Dokumentatsiyadagi o’zgarishlarni, va githubdagi source code da o'zgarish bo'lsa kuzatib boraman. Kuchli dasturchilar podkastlarini, maqolalarini o'qib boraman.

Dasturchilar butun karyerasi davomida yangi narsalarni o’rganib borishi kerak, qolgan sohalarni bilmayman-u, lekin IT sohasida katta pul to’lanuvchi mutaxasis bo’lish uchun bu juda ham muhim

👉 @lazerg
#savol

🧩 Quyida matematika tomonidan to'gri qavs ochilishi bo'lgan, ammo nega javascriptda bu ikki ifoda harxil natijalarni ko'rsatmoqda?

Javoblarizni izohda kutib qolamiz

👉 @lazerg
- Darsga nima uchun kech qolding?
- Captcha yechayotgandim


👉 @lazerg
MVC nima

MVC bu shunaqa web loyiha arxitekturalash turiki, unda web-loyiha kichikroq shablonlarga bo'linib taxlanadi. MVC da loyiha uch alohida komponentga ajratiladi va bu o'z ichiga: malumotlar modeli, foydalanuvchi interfeysi hamda foydalanuvchini tizim bilan aloqasi logikasini oladi

Bunday kichikroq komponentlarga ajratishning avzalligi shundan iboratki, bitta qismini o'zgartirish boshqa qismini, yoki minimal o'zgartirishga, yoki umuman o'zgartirmaslikka olib keladi.

Shunday qilib MVC da dasturni qaysidir qismini o'zgartirish, qo'shimcha qo'shish osonroq, chunki agar siz foydalanuvchi interfeysini o'zgartirsangiz u biznes logikaga ta'sir qilmaydi, agar biznes logikani o'zgartirmoqchi bo'lsangiz, foydalanuvchi interfeysiga ta'sir qilmaydi.

- Model / Model - Bu ma'lumotlar bazasidagi qaysidir narsani obyekt modelini tasvirlab, o'z ichiga asosan ma'lumotlar va ushbu ma'lumotlar bilan ishlash metodlari yoziladi. Bundan tashqari u kontrollerdagi so'rovlarga ma'lumot qaytarib berishi yoki o'zining holatini o'zgartirishi mumkin. Shunday bo'lishiga qaramasdan, model ma'lumotlarni qanday foydalanuvchiga ko'rsatish va qanday formatlash bilan ishi yo'q va u to'gridan to'gri foydalanuvchi bilan aloqa qilmaydi.

- Ko'rinish / View - Bu ma'lumotlar foydalanuvchiga ko'rinishini ta'minlaydi (vizualizatsiya). Boshqacha qilib aytganda foydalanuvchi saytga kirganda nimani ko'radi shular. Bunda kontroller foydalanuvchi so'roviga qarab ma'lumotlarni modeldan olib bu qismga beradi, va bu asosan uni foydalanuvchiga ko'rsatish bilan shug'ullanadi.

- Kontroller / Controller - Bu foydalanuvchi bilan tizimni bog'lab beradi. Kontroller vazifasi foydalanuvchi so'roviga qarab, model va viewni ishlatib unga javob qaytaradi. Kontrollerda asosan ma'lumotlar filtrlanadi va avtorizatsiya bajariladi — ya'ni: foydalanuvchi bu amalni bajarishga huquqi bormi va kerakli ma'lumotlarni olib bilishi ta'minlandimi.

Ko'plab web ilovalar yaratishga mo'ljallangan freymvorklar MVC prinsipiga asoslanib tuzilgan bo'ladi. Shuning uchun ham MVC sizga tanish bo'lsa, unda bu freymvorklarni tushunishingiz oson bo'ladi 👍

👉 @lazerg
Authentication va Authorization farqi nima

👉 @lazerg
👍2
O'xshamayotgan bo'lsa: Dam oling !

Oddiy maslahatday eshtilishiga qaramasdan, dasturlashda bu eng muxim qoidalardan biri hisoblanadi. Gohida shunday bo'ladiki, qaysidir masalani qayta-qayta qilaverasiz va u o'xshamayveradi. Va hattoki shu payt dasturlash man uchun emas ekan degan fikrlar ham kelishi mumkin.

Shunaqa paytda eng yaxshi yechim bu, vaqtinchalik ishni to'xtatib biroz dam olib kelish. Masalan toza havoga sayrga chiqish, yoki mizg'ib olish, yoki biroz kitob o'qish, muximi qaysi muammoni hal qilayotgan ediz, shu haqida umuman o'ylamaslik. Shaxsan mening o'zimda bir nechi marta shunaqa holat kuzatilgan, texnik muammoga yechim topmaganimda boshqa ish bilan mashg'ul bo'laman, shunda birdan to'g'ri yechimi xayolimga keladi.

👉 @lazerg
👍2
Kanalda qandaqa post chiqarish kuzatuvchilarim qiziqadigan dasturlash tillariga qarab bo’ladi. Shuning uchun ushbu so’rovnomaga faol bo’lib, qaysi dasturlash tillari va frameworklari sizga qiziq bo’lsa belgilang. Bir nechtasini ham belgilashingiz mumkin.
Anonymous Poll
44%
HTML / CSS / JavaScript
22%
Javascript / Vuejs
38%
Javascript / Reactjs
29%
Javascript / Nodejs
36%
Python / Django
20%
Java / Spring / Kotlin / Android
25%
C / C++ / C#
5%
Ruby / Ruby on Rails
15%
Flutter
18%
PHP / Laravel
Videokurs qanday ko'riladi, kod o'qituvchi bilan bir paytda yozaymi, yoki videoni ko'rib keyin o'zim yozaymi

Sizda shunday holat bo'lganmi, 4 soatlik videokursni ko'rasiz, ko'p narsani o'rganasiz. Keyin esa kod yozishga o'tganizda, tamom, hamma narsa esingizdan chiqib ketibdi. Shuncha o'rganganingiz miyangizda yo'q !

Nima uchun shunday bo'ladi deb o'ylaysiz, nimaga ko'rayotgan videodarslaringiz samarasiz bo'lyapti, buni sababi oddiy, miya hardoim energiya saqlashga harakat qiladi, shuning uchun ham e'tiboringizni bir joyga jamlab o'tirish qiyin kechadi, yoki birdan videoni pauzaga qo'yib boshqa browser oynasiga o'tib ketasiz, yoki telegramga kirib kimdirga xabar yozasiz. Qachon oxirgi marta videodars ko'rayotganizda, qo'lizga bloknot olib asosiy joylarini yozib olib, dars tugaganidan keyin takrorlab chiqdingiz?

Videodarslikni boshlashdan oldin, hamma qismlarini ko’zdan kechiring. Bu juda ham muhim, balkim videodarslik sizga qiziq bo'lgan mavzu haqidamasdir? Balki o'qituvchini gapirish ohangi, aksenti sizga tushunarsizdir, balkim o'qituvchi dars o'tish stili yoqmasdir. Vaqt bu eng oliy ne’mat, shuning uchun videodarslikni boshlashdan oldin, bu sizga haqiqattan ham kerakli darsligiga ishonch komil qiling !

O'qituvchi bilan bir paytda kod yozmang. Odatda o'qituvchilar ular bilan bir paytda kod yozib ketishingizni so'raydilar, bu to'g'ri. Ammo bu ham har doim ham eng to'g'ri variant emas. Agar siz bir paytda ham videoni ko’rib, ham kodni yozsangiz, e'tiborni bir joyga jamlash qiyin bo'ladi, chunki har doim videoni to'xtatib, redaktorga o'tib, kod yozishga to’g’ri keladi. Va shu kichik to'xtashlar, e'tiborni bir joyga jamlashga halaqit beradi. E'tiborni bir joyga jamlang, videourokdan tashqari boshqa hamma browser oynalarini yoping, telefoningizni ovozsiz rejimga qo'ying, telegramni o'chirib qo'ying. Bor e'tiborizni videoga qarating. O'qituvchingiz yozayotgan kodi sintaksisiga emas, o'qituvchingiz qanaqa muammoni hal qilyapti, qanaqa konseptsiyani ishlatobdi, shunga e'tibor bering. Video tugaganidan keyin o'qituvchingiz hal qilgan muammoni, redaktorga o'tib o'ziz hal qiling, agar qanaqadir kod esingizdan chiqsa, googlega poisk berib qidiring, agar o'shanda ham topolmasangiz, videoni o'sha qismiga qaytib, qaytadan ko'ring.

👉 @lazerg