- 💻Dasturlashni o’rganish – Qo’llanma 2021
- 0-Qadam. Ishtiyoq
- 1-Qadam.
- 2-Qadam. Front End
- 3-Qadam. Yo’nalish tanlash
- 4-Qadam. Algoritmlar, Data Structure
- Xulosa
- Android haqida
- Androidning asosiy tushunchalari
- Android Dasturlar
- Dasturlash tillari
- Tarkibiy qismlar (komponentlar)
- Activitilar (Faoliyatlar)
- Servislar
- Dasturchilar uchun zarur kitoblar to‘plami (birinchi qism)
💻Dasturlashni o’rganish – Qo’llanma 2021
Dasturlashni qayerdan boshlashni bilmay boshingiz qotdimi? Ushbu maqolani o’qishni boshlab juda to’g’ri tanlov qilibsiz. Chunki oldingizda uzundan uzoq yo’lni bosib o’tishingiz kerak. Uzoq masofadagi maqsadga erishish uchun “qo’llanma” yoki “reja” tuzib olmasangiz, ko’zlangan maqsadga erishish qiyin bo’ladi.
0-Qadam. Ishtiyoq
Sizga komputer, telefonlar, web sahifalar qanday ishlashi juda qiziq. Ular qanday texnologiyalar asosida ishlanishini har doim qiziqarli bo’lib kelgan. Demak, sizda oz bo’lsa ham dasturlashni o’rganishga moyillik bor. Bu qadam juda muhim ro’l o’ynaydi. Agar kelajakda o’zingizni dasturlash sohasida ko’zingiz yetmasa, demak bu yo’nalish siz uchun emas. O’zingiz rostdan ham yoqtirgan soha haqida o’ylab ko’rishni tavsiya qilaman.
1-Qadam.
Tabriklayman! Siz juda muhim bosqichdan o’tdingiz, endi bizning dasturlash sohasidagi mashaqqatli sayohatimiz haqida so’zlashsak ham bo’ladi. Ushbu sayohatimiz 3-4 oy davom etadi deb o’ylayotgan bo’lsangiz adashasiz. O’z sohamizdagi usta bo’lishimiz uchun yaxshigina siz bilan mehnat qilamiz, qiyinchiliklardan o’tamiz, ter to’kamiz…
Dasturlashni o’rganishdan oldin ingliz tilini o’rganib olish zarar qilmaydi. Chunki, sayohatimiz davomida turli xil muammolarga duch kelamiz. Shunda, ‘Google’ amakimizdan osongina ‘How to …’ orqali savollarga javob olish mumkin. Bundan tashqari dasturlash tili yoki turli texnologiyalarni o’rganishda ularning rasmiy saytidan ma’lumotlar o’qishga to’g’ri keladi. Shuning uchun dasturlashdan oldin, ingliz tilini oz bo’lsa ham o’rganishingizni maslahat beraman.
2-Qadam. Front End
Demak, dasturlashni endi qayerdan o’rganishni boshlash kerakligi haqida so’zlashaylik. Boshlanishiga oddiy statik ko’rinishdagi websayt tuzishni maslahat beraman. Men ham dasturlashga qiziqishim oddiy mobil websaytlar tuzish bilan boshlaganman. Chunki, bu juda oson, oddiygina “Notepad” dasturi orqali o’zingizning “Salom Dunyo” dasturini yaratasiz. Bu bosqichda siz HTML va CSS dasturlash tillarini o’rganib olasiz.
Ushbu bosqich uzoq muddatga cho’zilmaydi. Yuqorida aytilgan dasturlash tilidan foydalanib o’zingizni shaxsiy web sahifangiz tuzing. Bu juda qiziqarli.
O’rganish uchun esa hozir juda ko’p darsliklar yoki o’quv markazlari bor. HTML, CSS texnologiyalar o’rganishni Youtube dagi inglizcha yoki o’zbekcha darsliklardan ham o’rganib olashinigz mumkin(maqola ohirida o’rganish uchun resurslar mavjud).
3-Qadam. Yo’nalish tanlash
Dasturlash sohasida turli xil kasb egalari mavjud. Masalan, web developer, Mobile developer, Frontend, Backend, … . Ushbu bosqichda siz o’zingizga yoqqan yo’nalishni tanlab, kerakli dasturlash tillarini o’rganish kerak bo’ladi.
- Frontend developer – web sahifalarni ko’rinishi tuzish
- HTML
- CSS
- Javascript
- Turli frameworklar(React JS, Vue JS)
- Backend web developer – har qanday dastur uchun dinamik ma’lumotlarni saqlash uchun API yozish
- PHP(Laravel, Yii)
- Javascript(Node JS)
- Python(Django)
- Golang (Gin, Gorilla mux)
- Bu dasturlash tillaridan birini o’rgangan holda Backend ni o’rganish mumkin
- Ma’lumotlar bazasi uchun tillar(Mysql, Postgresql, MongoDB)
- Mobile Developer – Mobil qurilmalar uchun dastur tuzish
- Java/Kotlin(Android)
- Swift(iOS)
- Flutter(Android, iOS)
- React Native(Android, iOS)
- O’zingizga yoqqan Android yoki iOS sistemasi tanlab, yuqoridagi tillardan birini o’rganing
4-Qadam. Algoritmlar, Data Structure
O’tgan bosqichda o’zingiz mustaqil ravishda turli dasturlar tuza oldingizmi? Juda yaxshi. Endi biz ‘Computer Science’ haqida gaplashsak ham bo’ladi. Bu sohada fanlar juda ko’p: OOP, Data Structure(Graph, Tree, Finding shortest path), Algorithms, Database, … . Keling boshlanishiga oddiy algoritmlar tuzishni o’rganaylik. Masalan, berilgan sonning juft yoki toqligi hisoblab beradigan dastur. Bu algoritmni tuzish uchun C++, C, Java, Python, Go, … kabi yuqori bosqichlik dasturlash tillaridan biridan foydalanamiz. Algorithm yoki Data Structure masalarini yechish nimaga kerak deb o’ylayotgan bo’lishingiz mumkin. Asosan, katta nufuzli IT kompaniyalarning suhbat jarayonida ushbu turdagi masalarni yechib berishingizni so’raydi. Ushbu masalalarni turli xil saytlarda yechishni mashq qilsangiz bo’ladi.
Xulosa
Dasturlash sohasi juda keng. Qancha suhbatlashsak shuncha kam. Ushbu maqolada o’zingiz uchun foydali ma’lumot oldingiz deb umid qilaman. Ba’zan o’zingizda motivatsiya yoqolib qolsa, o’rganishda davom eting, doimo o’zingiz ustingizda ishlang. ✌️ Omad!
Dasturlash bo’yicha savol-javoblar uchun Telegram guruh ochdim. Savolingiz bo’lsa, javob berishdan xursand bo’laman.
O’rganish uchun o’zbekcha video darsliklar:
Источник
Android haqida
Androidning asosiy tushunchalari
Hech shubha yo’qki, siz Android dasturlarini tuzishni boshlashga shoshilyapsiz. Axir, siz o’qiyotgan bu kitob band kod yozadiganlar uchun mo’ljallangan. Biroq, biz o’rnatish vositalarini olish va haqiqiy dasturlashni boshlashga shong’ishdan oldin, Androidning (high-level) bir necha yuqori darajadagi muhim ahamiyatga ega bo’lgan tushunchalariga navbat beramiz.
Android Dasturlar
Bu kitobda Android dasturlar yozishga e’tibor qaratilgandir. Dastur – bu foydalanuvchi Play Store yoki boshqa joydan o’zining qurilmasiga yuklab olib, o’rnatishi mumkin bo’lgan narsadir. Bu dastur bir nechta (user interface) foydalanish oynalariga ega bo’lishi kerak, va unda orqa fonda (multitasking – bir vaqtda ko’p vazifalarni bajarish) ishlashga mo’ljallangan boshqa kodlar ham bo’lishi mumkin.
Bu kitobda Android operatsion tizimidagi o’zgarishlar, shuningdek qurilmalarga drayverlar yozishga e’tibor qaratilmagan. Buning uchun boshqa manbalar qidirishingiz kerak.
Bu kitob sizning ba’zi Android qurilmalari bilan qo’l tajriabaga ega bo’lishingizni, va shu sababdan siz tanigan UY (HOME) va ORQA (BACK) tugmalarni, ichki o’rnatilgan dastur Sozlanmalari, Asosiy ekran (Home screen) va dastur ilovalari (Launcher), va hokazolarni ko’zlaydi. Agar siz biror Android qurilmadan mutlaqo foydalanmagan bo’lsangiz, sizga biror qurilmaga ega bo’lishni (masalan, biror kishidan olib turishingiz yoki juda iloji bo’lmasa Geny Motion kabi virtual android emulator’larini ishlatib ko’rishingiz mumkin)ni qattiq tavsiya qilamiz va albatta Android dasturlarini tuzishni o’rganishdan avval, uni biroz ishlatib ko’ring.
Dasturlash tillari
Android dasturlarining aksariyati faqat Java’da yoziladi. Shunday ekan, bu kitobda ko’p vaqt unga sarflanadi va cheksiz misollarni ko’rsatiladi.
Biroq, boshqa tanlovlar ham bor:
- Siz samaradorlikka erishish uchun (mavjud kod asoslarning ustiga) dasturning qismlarini C/C++ da yozishingiz mumkin.
- Siz dasturni butunlay C/C++ da yozishingiz mumkin, o’yinlar uchun 3D animatsiyalarni ko’proq OpenGL’dan foydlaniladi.
- Siz dasturning ichki qismlarini HTML, CSS va JavaScriptda yozishingiz, vositalardan foydalanib bu materiallarni Play Store va tarqatsa bo’ladigan shunga o’xshash joylarda Android dasturga o’tkazishingiz mumkin.
- Va hokazo
Bu kitob yo’nalishida Java bo’lmagan muqobillarning qamrovi topiladi, shuningdek bu kitobda asosiy qismi Javaga e’tibor qaratilgan.
Muallif bu nuqtatda siz Javani bilasiz deb hisoblagan. Agar bilmasangiz, olg’a yurishdan oldin Java’ni o’rganishingiz kerak. Siz hamma narsani bilishngiz shart emas, chunki Java juda ulkan. Yaxshisi, quyidagilarga e’tibor bering:
- Til asoslari (oqim nazorat qilish va hokazo)
- Klass’lar va obyektlar
- Funksiyalar va ma’lumotlar asoslari
- Public(ochiq), private(yashirin) va protected (himoyalangan).
- Static va instance scope
- Exception’lar (istisnolar)
- Potoklar (Thread)
- Collection’lar
- Generic’lar
- Fayl (kirish/chiqarish)
- Ko’zgu (reflection)
- Interfeys’lar
Tarkibiy qismlar (komponentlar)
Siz dastavval Java’ni o’rganishni boshlaganingizda – Kecha yoki undan avvalmidi, Dinazavrlar yer yuzida yurganmidi – siz ehtimol shunga o’xshash narsa bilan boshlagandirsiz:
Boshqa so’z bilan aytganda, sizning dasturingizni kirish nuqtasi public static void bilan main() deb nomlangan metod, u String massivli argumentlarni qabul qiladi. U yerdan, siz nima zarur bo’lsa, shuni qilishingiz kerak.
Biroq, Java’da foydalaniladigan boshqa andoza (shablon)lar ham bor. Misol uchun, siz odatda Java servlet’da yozayotganingizda main() metodni yozmaysiz. Buning o’rniga, tarkibiy qismlarni yaratishda dasturiy qobig’ (framewrok) tomonidan taqdim qilingan ma’lum klaslardan nasl olasiz (Servlet va hokazo), keyin ba’zi metadata yozasiz tarkibiy qismlarni raqamlaysiz va ulardan qachon va qanday foydalanishni qobiq(framework)qa xabar berasiz (WEB.XML va hokazo).
Android dasturlar servlet (kichkina, server-rezident dastur u foydalanuvchi kiritmalari bo’yicha avtomat ishlaydi) yondashuviga mohiyati jihatidan yaqinroqdir. Siz public static void main() metodni yozmaysiz. Buning o’rniga, siz ba’zi Android ta’minitodagi aniqlangan turli xil dastur tarkibiy qimlaridan (component) bo’lgan asos klaslardan nasllangan klaslarni yaratasiz.
Activitilar (Faoliyatlar)
Activity foydalanuvchi interfeys oynalarini qurish blogidir. Siz androiddagi activity haqida kompyuter dasturidagi oyna yoki dialog kabi yoki klassik Web dasturlardagi sahifa kabi o’ylashingiz mumkin. Odatda, activity ekranni eng ko’p qismini egallab turadi, soat, signal uzungligi indikatorlari, va shu kabi “chrome” bitlariga joy qoldiradi.
Shakl 1: Ekrandagi Activity
Servislar
Activity’lar qisqa yashaydi va istalgan vaqtda tugatilishi mumkin, shuningdek foydalanuvchi orqaga tugmasini bosishi mumkin. Servislar – butunlay boshqacha bo’lib, ishlab turishi saqlanishiga mo’ljallangan, har qanday activity mustaqil qisqa muddatga kerak bo’lsa ishlatiladi. Siz shuningdek, servislardan rejalashtirilgan vazifalar uchun foydalana olasiz (Linux yoki OS X “xron ish o’rinlari”ga o’xshash) va qurilmadagi boshqa dasturlarga maxsus API chiqarish uchun, keyingi qurilmalar nisbatan ko’proq imkoniyatga ega bo’lishiga qaramay.
Источник
Dasturchilar uchun zarur kitoblar to‘plami (birinchi qism)
Ushbu to‘plamga dasturchilar uchun eng ommalashgan kitoblarni kiritdik. Ular juda ko‘plab mavzularni qamrab olgan va u yoki bu texnologiyalrni o‘rganishni boshlaganingizda eng kerakli qo‘llanma bo‘la oladi.
Ushbu qo‘llanmaning muallifi CareerCup asoschisi va Apple, Google va Microsoft kabi yirik kompaniyalarning sobiq xodimi G. Makdouell bo‘ladi. Kitob dasturiy ta’minotni ishlab chiquvchilarni tayyorlash uchun mo‘ljallangan.
U «masala-yechim» formatida yozilgan: qariyb 200 ta savol va javoblardan tashkil topgan va ularning ko‘pchiligini muallif o‘z tajribasidan kelib chiqib kiritgan. U sohaga bog‘liq qariyb barcha, jumladan, algoritmlar, loyihalash shablonlari va boshqa ko‘p mavzularni o‘z ichiga qamragan. Xullas, «Cracking the Coding Interview» ni o‘qish aslo zarar qilmaydi, buni kitobning bestseller maqomi ham tasdiqlaydi.
24 Deadly Sins of Software Security
Mazkur kitobda Microsoft xavfsizligi ekspertlari Maykl Xovard va Devid Leblank turli-tuman dasturiy ta’minot yaratayotgan paytda yo‘l qo‘yiladigan keng tarqalgan va jiddiy xatolar haqida hikoya qiladi.
Dasturlashning aksariyat tillari va platformalari ko‘rib chiqilgan.
Artificial Intelligence for Games
Sifatli va rivojlangan suniy intellekt yaratish — O‘yin dasturlovchilar uchun eng murakkab vazifalardan biri hisoblanadi. Aksariyat hollarda loyihaning muvaffaqiyati shularning ish sifatiga bog‘liq bo‘ladi
Ushbu qo‘llanmada o‘yinlar industriyasida mashhur dasturchi va bir qator kitoblar muallifi Yan Millington suniy ong yaratish hamda turli-tuman o‘yinlarda suniy ongni yaxshilash bo‘yicha o‘z tajribalari bilan o‘rtoqlashadi. Kitobda ko‘plab hayotiy misollar, shuningdek, suniy ongning ommalashgan tijoriy savdosining kirish kodlari keltirilgan. Asosiy e’tibor, geympleylarni dasturlashda, personajlarning o‘zini tutishida, ayniqsa boshqotirma o‘yinlarda sun’iy ongga ko‘proq tayanishga urg‘u berilgan.
Mathematics for 3D Game Programming and Computer Graphics
Uchunchi nashrning yangilangani bo‘lib unda kompyuter o‘yinlari uchun professional darajada grafika va o‘yin harakatlarini yaratuvchi zamonaviy dasturchi bilishi lozim bo‘lgan jami matematik konseptlar haqida hikoya qiladi.
Kitob proyeksiya, soyalar, fizika, to‘qimalarni chizish va raqam usullari bilan bog‘liq mavzularni atroflicha ochib beradi, kodlarning barchasi sheyderlar tilining so‘nggi o‘ziga xosliklariga to‘liq mos keladi.
Game Programming Patterns
Ko‘plab o‘yin dasturchilari uchun eng katta muammo, bu mahsulotni dasturlashni nihoyasiga yetkazish. Aksariyat hollarda loyiha «charchab qoladi», murakkabliklar ko‘payib, kodlari aralashib ketadi. Mazkur kitob ana shu muammolarni butunlay hal etishga mo‘ljallangan.
«Game Programming Patterns» — bu kodlarni tozalaydigan (nafaqat o‘yin), osonlashtiradigan va tezlashtiradigan shablonlar turkumi. U orqali siz o‘yinning ishonchli siklini yaratishni, ob’yektlarni va ularning komponentlarini qanday tashkil etishni, samaradorlikni oshirish uchun protsessor keshidan qanday foydalanish va shunga o‘xshash ko‘p jihatlarni bilib olasiz. Siz nafaqat skript harakatlar qanday ishlayotgani va ularni yaxshilashni, balki o‘yinlarni dasturlash uchun ishlatilishi mumkin bo‘lgan klassik loyihalash shablonlarini ham o‘rganishga tushib ketasiz.
Jump Start MySQL
MySQL — ma’lumotlar ba’zasini boshqarishning eng ommalashgan erkin relyasion tizimi sanaladi. Ulardan ko‘plab internet saytlarda foydalaniladi.
Ushbu kitob yordamida bir hafta ichida MySQL’ni o‘zlashtirishingiz, uning tezligini va moslashuvchanligini ishlatishni o‘rganishingiz mumkin. Kitobni o‘qib, ma’lumotlarni saqlash, modifitsikatsiyalash va qayta ishlashni, dasturingizni BD ga ulashni, jadval bilan ishlashni, bekaplar va boshqa ko‘p yumushlarni bajarishni o‘rganasiz.
Head First. Programmirovaniye dlya Android
Agar sizda mashhur bo‘lib ketgan Android-ilovalari uchun g‘oya bo‘lsa, lekin uni amalga oshirishni bilmasangiz, unda ushbu kitob aynan siz uchun. Siz undan o‘z ilovangiz tuzilmasini qanday to‘g‘rilash, unda interfeys va ma’lumotlar bazasini yaratish, shuningdek, barcha smartfonlar va planshetlarda ishlab ketishini ta’minlashni o‘rganasiz.
Muallifning ta’kidlashicha, bu kitob xuddi yoningizda turgan tajribali dasturchidek. Boshlash uchun Java haqida ozgina bilimga ega bo‘lsangiz yetadi.
97 Things Every Programmer Should Know
Bu kitobga IT sohosada taniqli mutaxassislarning hayotiy maslahatlari qisqacha tarzda berilgan. U dasturchi qarshisida ko‘ndalang bo‘lishi mumkin bo‘lgan ko‘plab muammolarning oldini olishga yordam beradi.
Effektivnaya rabota s unasledovannim kodom
Bu kitobda Maykl Fizers legacy-kod bilan samarali ishlash strategiyasini taklif etadi. Muallif uzoq vaqt dasturchilarga uztozlik qilgan va o‘zining boy tajribasini kitobga kiritishga harakat qilgan. Kitobni o‘qir ekansiz, bunday kodlarni qanday qilib o‘qish, tuzatio‘ va yaxshilashni o‘rganib olasiz. Unda bog‘liqlikdan qutilishning 24 usuli bayon etilgan.
Priyomi ob’yektno-oriyentirovannogo proyektirovaniya
Mazkur kitobda patterli loyihalash va ob’yektli-mo‘ljalli loyihalashda paydo bo‘ladigan oddiy vazifalarni oson va o‘ziga xos tarzda hal etish usullari haqida gap ketadi. Patterli loyihalash tayyor halda bo‘lmagan; o‘zlarining dasturlarini takroriy ishlatishda foydaliligini va moslashuvchanligini oshirish imkoniyatini qidirgan aksariyat dasturchilar maqsadga erishish uchun ko‘p kuch sarflaganlar.
Chistiy kod: sozdaniye, analiz i refaktoring
Robert Martin o‘z ijodida, o‘zining boy tajribasiga suyanib, qanday qilib kodlash kerakligi haqida hikoya qiladi. Makkonellning kitobidan farqi shuki, bu asarda u yoki bu harakatning to‘g‘riligi haqida statistik asoslar juda kam, faqat kod (kitobning qariyb, uchdan birini band etgan) va muallifning maslahatlari kiritilgan.
Predmetno-oriyentirovannoye proyektirovaniye (DDD). Strukturizatsiya slojnix programmnix sistem
Bu kitob muammo-maqsadli dasturlashga kirishayotganlar yoki endi kirishganlar uchun juda qo‘l keladi.
Источник