Texnik suhbat — bir qator intervyu va amaliy topshiriqlar orqali dasturchining ko'nikmalarini baholash jarayoni. Mobil ishlanmada platforma bilimlarini (Android SDK, UIKit, SwiftUI), algoritmlar va ma'lumotlar tuzilmalarini, arxitektura namunalarini (MVVM, Clean Architecture, MVI) va mobil ilovaning tizim dizaynini tekshirishni o'z ichiga oladi. Yirik kompaniyalar 3 dan 5 gacha tur o'tkazadi, o'rtacha ishga qabul qilish muddati 4-6 hafta. LinkedIn Talent Report 2025 ma'lumotlariga ko'ra, iOS va Android muhandislariga talab ikki yil ichida 34% ga oshdi.
Asosiy
Texnik suhbat — dasturchining kasbiy kompetensiyalarini, jumladan hard skills (texnik bilimlar) va soft skills (muloqot, jamoada ishlash) ni tekshirishning tuzilgan baholash jarayoni. Mobil dasturchining standart suhbat sikli 3-5 turdan iborat bo'lib, umumiy davomiyligi 4-6 soat. Birlamchi javoblar sonidan muvaffaqiyatli o'tish foizi yirik texnologiya kompaniyalarida 2-5% ni tashkil qiladi.
Mobil ishlanmada ishga qabul qilish jarayoni veb-ishlanmadan farq qiladi: platforma o'ziga xosligi bo'yicha savollar qo'shiladi — Activity/Fragment hayot sikli, ARC va Swiftda xotira boshqaruvi, threading modellari (Main Thread, Dispatch Queue, Coroutines), tarmoq so'rovlari va ma'lumotlarni keshlash bilan ishlash. Android dasturchisi Jetpack Compose, Room, WorkManager, Dagger/Hiltni bilishi kerak. iOS dasturchisi — SwiftUI, Core Data, Combine, URLSession. Talablardagi farq tajriba bilan ortadi: Senior lavozimlari uchun tizim dizayni va butun ilovaning arxitekturasi qo'shiladi.
Suhbat tuzilishi greydga bog'liq. Junior lavozimlari uchun til va platformaning asosiy bilimlari yetarli (1-2 tur). Middle dasturchisi 2-3 turdan o'tadi, algoritmlar bloki bilan. Senior suhbati 4-5 turni o'z ichiga oladi: algoritmlar, mobil ilova arxitekturasi, tizim dizayni, xulq-atvor suhbati va VPE (Vice President of Engineering) yoki CTO bilan yakuniy suhbat.
HR skriningi — 20-30 daqiqa davom etadigan birinchi bosqich. Rekruter tajribaning vakansiya talablariga muvofiqligini tekshiradi, ish sharoitlari, maosh kutishlari va nomzodning motivatsiyasini muhokama qiladi. Bu bosqichda tajribangizni aniq ifodalash muhim: loyihalar, texnologiyalar steki, metrikalardagi yutuqlar (yuklash vaqtini qisqartirish, crash rate ni kamaytirish, kompilyatsiyani tezlashtirish). HR skriningi texnik bilimlarni tekshirmaydi, lekin rasmiy talablarga mos kelmaslik sababli nomzodlarning 40% gacha saralab oladi.
Skriningdan so'ng algoritmik suhbat keladi — aksariyat kompaniyalar uchun asosiy bosqich. Davomiyligi — 45-90 daqiqa. Nomzodga algoritmlar va ma'lumotlar tuzilmalari bo'yicha 1-2 topshiriq beriladi. Yechim onlayn doskada (Codility, HackerRank, CoderPad) yoki qog'ozda yoziladi. Faqat to'g'rilik emas, balki fikrlash tezligi, aniqlashtiruvchi savollar berish va yechimni optimallashtirish qobiliyati ham baholanadi. interviewing.io (2025) ma'lumotlariga ko'ra, nomzodlarning 73% aynan algoritmik bosqichda muvaffaqiyatsizlikka uchraydi.
Arxitektura turi mobil ilovalarni loyihalash qobiliyatini tekshiradi. Nomzodga ilova (TODO ro'yxati, messenjer, yangiliklar agregatori, striming xizmati) loyihalash taklif etiladi. Arxitektura namunasini tanlash (MVP, MVVM, MVI, VIPER), qatlamlarni tashkil etish (Presentation, Domain, Data), DI (Dagger, Hilt, Swinject) bilan ishlash va navigatsiya baholanadi. Android uchun — Jetpack Navigation bilimi, iOS uchun — Coordinator namunasi va SwiftUI NavigationStack.
Xulq-atvor suhbatida soft skills baholanadi: jamoada ishlash, nizolarni hal qilish, qarorlarni asoslash qobiliyati. STAR metodi (Situation, Task, Action, Result) qo'llaniladi — nomzod tajribasidan aniq bir vaziyatni tasvirlaydi. Namuna savol: “Topgan va tuzatgan eng qiyin bug haqida gapirib bering”. Yakuniy tur jamoa rahbari yoki VPE bilan strategik fikrlash va kompaniya madaniyatiga moslikni tekshiradi.
Algoritmik topshiriqlar — yirik texnologiya kompaniyalarida (Google, Meta, Yandex, Tinkoff, Avito) suhbatlarning majburiy komponentidir. Asosiy maqsad — ability to solve (muammolarni hal qilish qobiliyati) baholash, til bilimlarini emas. Nomzod istalgan dasturlash tilidan foydalanishi mumkin — Android uchun Kotlin va iOS uchun Swift afzal ko'riladi. Odatiy mavzular: massivlar, hash-jadvallar, graflar, dinamik dasturlash, daraxtlar (Binary Tree, Trie, Segment Tree).
LeetCode (2025) ma'lumotlariga ko'ra, algoritmik suhbatdan ishonchli o'tish uchun 250-400 topshiriq yechish kerak. Ko'rinish chastotasi bo'yicha asosiy mavzular: Two Pointers (12%), Sliding Window (10%), Graflarda DFS/BFS (14%), Binary Search (8%), Dynamic Programming (18%), Hash Map / Set (15%). Big O notatsiyasi — majburiy element: nomzod o'z yechimining vaqt va xotira murakkabligini tushuntirishi va optimallashtirish taklif qilishi kerak.
// LeetCode 1: Two Sum — klassik HashMap muammosi
fun twoSum(nums: IntArray, target: Int): IntArray {
// Complement = target - nums[i] va uning indeksini saqla
val map = mutableMapOf<Int, Int>()
for (i in nums.indices) {
val complement = target - nums[i]
// Complement topilsa — juftlik topildi
if (complement in map) {
return intArrayOf(map[complement]!!, i)
}
map[nums[i]] = i
}
throw IllegalArgumentException("No two sum solution")
}
// Vaqt: O(n), Xotira: O(n)Two Sum topshirig'i — suhbatlarda eng ommabop topshiriq (LeetCode ma'lumotlariga ko'ra, 20 milliondan ortiq yuborish). O(n) yechimi HashMapdan foydalanadi: har bir element uchun target - nums[i] farqining oldin uchraganligini tekshiramiz. Agar ha — indekslarni qaytaramiz. Agar yo'q — joriy elementni HashMapda saqlaymiz. Ikkita ichki sikl bilan O(n²) sodda yechimi Senior lavozimlari uchun o'tmaydigan hisoblanadi.
Platforma savollari mobil dasturchi suhbatida uch blokga bo'linadi: platformaning asosiy bilimlari, UI va ko'p tarmoqlilik bilan ishlash, tarmoq so'rovlari va ma'lumotlarni saqlash. Android uchun majburiy: Activity va Fragment hayot sikli, Fragment v1 vs Fragment v2 farqlari, ActivityResult API (onActivityResult o'rniga), ViewModel + StateFlow, Compose lifecycle. iOS uchun: UIViewController hayot sikli, ARC (Automatic Reference Counting), DispatchQueue va OperationQueue, SwiftUI lifecycle (View — @State — @Binding — @ObservedObject).
Odatiy savol: “Ekran aylantirilganda Activity hayot siklining qaysi callbacklari chaqiriladi?”. To'g'ri javob: onPause → onStop → onDestroy → onCreate → onStart → onResume. Qo'shimcha savol: “Aylantirishda holatni qanday saqlash mumkin?” — ViewModelda SavedStateHandle, onSaveInstanceState Bundle yoki Jetpack Compose da rememberSaveable orqali. iOS uchun: “Fonga o'tishda UIViewController bilan nima sodir bo'ladi?” — viewWillDisappear → viewDidDisappear → didEnterBackground (AppDelegate).
| Komponent | Android | iOS |
|---|---|---|
| Hayot sikli | Activity: onCreate → onStart → onResume → onPause → onStop → onDestroy | UIViewController: viewDidLoad → viewWillAppear → viewDidAppear → viewWillDisappear → viewDidDisappear |
| Holatni saqlash | SavedStateHandle, onSaveInstanceState, rememberSaveable | Codable + UserDefaults, Core Data, @SceneStorage |
| Ko'p tarmoqlilik | Coroutines (Dispatchers.Main, IO, Default) | GCD (DispatchQueue.main, .global, .background) |
| UI tuzilishi | Jetpack Compose (Modifier, @Composable) | SwiftUI (View, @ViewBuilder, Modifier) |
| Navigatsiya | Jetpack Navigation Component, Cicerone, Decompose | NavigationStack, Coordinator, Router (RIBs) |
System Design Interview mobil dasturchi uchun mijoz ilovasining arxitekturasini va uning server bilan o'zaro ta'sirini loyihalash qobiliyatini tekshiradi. Standart topshiriqlar: yangiliklar lentasini (Instagram/TikTok kabi), chatni (Telegram kabi), video pleerni (YouTube kabi), birinchi darajali keshni (L1 — in-memory, L2 — disk) loyihalash. Davomiyligi — 60 daqiqa. Fikrlashning tuzilganligi baholanadi, tafsilotlar soni emas.
System Design uchun javob shabloni: 1) Clarify requirements — funksional (lenta, like, izohlar, foto yuklash) va nofunksional talablarni (offline, yuklash tezligi, batareya iste'moli) aniqlashtirish. 2) High-level design — qatlamlar sxemasini chizish: UI Layer → ViewModel → Repository → Network / Cache / DB. 3) Deep dive — asosiy komponentlarni batafsillashtirish, masalan, paginatsiya mexanizmi (Android uchun Paging 3, iOS uchun Offset-based vs Cursor-based). 4) Trade-offs — murosalarni muhokama qilish: kesh vs ma'lumotlarning yangiligi, offline-first vs online-only.
Mobil ilovalar uchun System Design asosiy mavzulari: keshlash (LRU Cache, cheklangan Disk Cache), tasvirlar bilan ishlash (Coil, Glide, SDWebImage — yuklash, kesh, placeholder, borish), trafikni optimallashtirish (JSON o'rniga protobuf, siqish, Differ/GraphQL), offlayn ishlash (Room + Sync Adapter, Core Data + iCloud, fon sinxronizatsiyasi uchun WorkManager). Offline-first — Senior lavozimlari uchun eng keng tarqalgan mavzulardan biri.
iOS uchun App Thinning, Slicing, On-Demand Resources va build optimallashtirish haqida savollar qo'shiladi. Android uchun — R8/ProGuard, App Bundles (AAB vs APK), Dynamic Delivery va Minification haqida. “Xotira cheklovi bilan tasvirlar keshi qanday amalga oshiriladi?” arxitektura savoli LRU Cache (access order bilan LinkedHashMap), Disk LRU Cache (Jake Whartonning DiskLruCache) va Coil/Glide xotira kesh qatlamini tushunishni tekshiradi.
Suhbatga tayyorgarlik rejalashtirilgan suhbatdan 4-8 hafta oldin tizimli yondashuvni talab qiladi. Asosiy strategiya: nazariyani takrorlash uchun 2 hafta (til, platforma, algoritmlar), algoritmik topshiriqlarni yechish uchun 2-4 hafta (LeetCodeda 100-300 topshiriq), mock suhbatlar uchun 1-2 hafta (Pramp, interview.io, do'stlar bilan). Senior lavozimlari uchun System Design tayyorgarligi qo'shiladi (2-3 hafta). Reja maqsadli darajada 70-80% muvaffaqiyatli o'tishni beradi.
Mobil dasturchilar uchun o'ziga xos tayyorgarlik o'z ichiga oladi: Android Developers Guide / iOS Developer Library o'qish, mashhur kutubxonalarning manba kodini tahlil qilish (Retrofit, OkHttp, Coil, Koin, Alamofire, Kingfisher), Clean Architecture va CI/CD (GitHub Actions, Fastlane) bilan pet-loyiha yozish. GitHubda modulli arxitektura, DI, testlar (Unit + UI + Snapshot) bilan namuna ilova yozing — bu chuqur tushunishni ko'rsatadi va suhbatda argument bo'ladi.
| Hafta | Nima qilish kerak | Natija |
|---|---|---|
| 1-2 | Nazariyani takrorlash: til (Kotlin/Swift), platforma (Android/iOS), algoritmlar (big O, asosiy tuzilmalar) | Asosiy mavzular bo'yicha konspekt |
| 3-4 | LeetCode: 100-150 topshiriq, mavzular: Arrays, Hash Maps, Trees, DFS/BFS, DP | Medium topshiriqlarni ishonchli yechish |
| 5-6 | System Design: “Designing Data-Intensive Applications” o'qish, 5-7 dizayn amaliyoti | System Design uchun tayyor javob shabloni |
| 7-8 | Mock suhbatlar (5-10 suhbat), platforma savollarini takrorlash, xulq-atvor savollari | Haqiqiy suhbatga to'liq tayyorgarlik |
Xato 1: jim yechish. Nomzod kodni jim yozadi, fikrlash jarayonini sharhlamaydi. Suhbat olib boruvchi yechish jarayonini baholay olmaydi. To'g'ri: har bir qadamni ovoz chiqarib aytish — “Ko'ryapmanki, topshiriq grafni qidirishga keladi. BFS dan foydalanishni taklif qilaman, chunki eng qisqa yo'lni topish kerak”. Bunday muloqot suhbat olib boruvchiga xato paytida nomzodni yo'naltirish imkonini beradi, bu ijobiy baholanadi.
Xato 2: darhol kod yozish. Talablarni aniqlashtirmasdan va yondashuvlarni muhokama qilmasdan kodlashni boshlash — muvaffaqiyatsizlikning asosiy sabablaridan biri. Kod yozishdan oldin: kirish/chiqish ma'lumotlarini aniqlashtirish, chekka holatlarni muhokama qilish, Big O baholash bilan 2-3 yondashuvni solishtirish va faqat suhbat olib boruvchi bilan kelishgandan so'ng optimal yechimni yozish kerak. To'g'ri namuna: Clarify → High-level approach → Big O → Write code → Test with examples → Discuss trade-offs.
Xato 3: platformani bilmaslik. Nomzod algoritmlarni a'lo darajada yechadi, lekin Activity va Fragment o'rtasidagi farqni yoki Swiftda weak/unowned o'rtasidagi farqni tushuntira olmaydi. Mobil vakansiyalar uchun platforma bilimlari algoritmlar bilan teng baholanadi. O'rganing: SDK versiyalarining farqlari (compileSdk vs minSdk vs targetSdk), mashhur kutubxonalar uchun ProGuard/R8 qoidalari, Swift Concurrency (async/await, actors) va MainActor. Har uchinchi iOS nomzodi ARC haqidagi savollarda muvaffaqiyatsizlikka uchraydi.
Tez-tez beriladigan savollar
Standart turlar soni 3-5: HR skriningi (30 daqiqa), algoritmlar (60 daqiqa), arxitektura/tizim dizayni (60 daqiqa), xulq-atvor suhbati (45 daqiqa), jamoa rahbari bilan yakuniy tur (60 daqiqa). Startaplarda 2-3 tur bo'lishi mumkin, yirik kompaniyalarda (Google, Meta) — 6 turgacha. Umumiy davomiylik suhbat sikli — kompaniyaga qarab 2 haftadan 6 haftagacha.
Top 5 mavzu algoritmik suhbat uchun: dinamik dasturlash (18% topshiriq), graflarda DFS/BFS (14%), Two Pointers (12%), Sliding Window (10%), Binary Search (8%). FAANGda suhbatdan o'tish uchun LeetCodeda 250-400 topshiriq yechish tavsiya etiladi. Medium darajasi — majburiy minimum. Senior lavozimlari uchun daraxtlar va prioritet navbatlar bo'yicha topshiriqlar qo'shiladi.
Bir oylik reja: hafta 1 — til va platformani takrorlash (Kotlin/Swift tili, asosiy kutubxonalar, hayot sikllari). Hafta 2 — LeetCode Medium (100 topshiriq, mavzular: Arrays, Hash Maps, Trees). Hafta 3 — mobil ilovalar uchun System Design (kesh, paginatsiya, offline-first). Hafta 4 — mock suhbatlar (Pramp yoki hamkasb bilan kamida 3 ta). Asosiy maslahat: mock suhbatlarni real sharoitga yaqin o'tkazing — muddat, notanish suhbat olib boruvchi, onlayn doska.
Junior: 1-2 tur, asosiy algoritmlar (reverse string, fizzbuzz, basic tree traversal), til va platforma asoslari haqida savollar. Middle: 2-3 tur, Medium algoritmlar, arxitektura savollari (MVP/MVVM), tarmoq va kesh bilan ishlash. Senior: 4-5 tur, Hard algoritmlar, System Design, butun ilova arxitekturasi, CI/CD, code review, liderlik va mentorlik haqida xulq-atvor savollari. Seniorning o'zi savollar berishi va munozara olib borishi kutiladi.
Namuna savollar: “Jamoadagi mojaro haqida gapirib bering va uni qanday hal qildingiz”, “Qaysi funksiya eng qiyin edi va nima uchun”, “Nega aynan bizda ishlashni xohlaysiz”, “Jamoada jarayonlarni yaxshilash uchun nima qildingiz”. Tuzilgan javob uchun STAR usulidan (Situation, Task, Action, Result) foydalaning. Oldindan tajribangizdan 3-4 hikoya tayyorlang — bu xulq-atvor savollarining 80% ni qamrab oladi.
Xulosa
Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz
IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.
Shuningdek o'qing