kamoloff.log dan repost
Technical interview [2/2]
Bir nechta savollardan so'ng, intervyu oluvchi sizga codesignal yoki shunga o'xshash platformaga havola jo'natadi va LeetCode stilidagi masala beradi.
Yoki sizdan google docda kod yozish ham so'ralishi mumkin, aniqroq ma'lumotni intervyudan oldingi bosqichlarda HRdan so'rab olishingiz mumkin.
1. Masalani yaxshilab o'qib, tushunib oling va keyin uni o'z so'zlaringiz bilan ifodalab bering bu bilan masalani to'g'ri tushunganingizni tekshirib olasiz.
2. Masalaga og'zaki 1-2ta input berib hisoblagan X natijangiz to'g'ri yoki noto'g'ri ekanligini intervyu oluvchidan so'rang. Va keyin bu input/outputlarni koment sifatida yozib qo'ying. Bu orqali sizda masalani, qonuniyat(pattern) yanayam yaxshiroq tushunish imkoniyati bo'ladi.
3. Bir vaqtni o'zida ham masala yechimi haqida o'ylab, ham nimani o'ylayotganingizni gapirib turing, garchi yechimingiz to'g'riligiga shubhangiz bo'lsa ham.
4. Masalani yechishda qiynalgan paytingizda suhbatdoshingiz sizga hint berishi mumkin, buni ilib olishga harakat qiling.
5. Yechimni topgandan so'ng intervyu oluvchiga yechimingizni tushuntirib bering, iloji bo'lsa topgan yechimingiz uchun kerak bo'ladigan time va space complexityni hisoblab bering.
6. Intervyu oluvchidan bu yechim maqulmi yoki yanayam optimalroq yechim topishingizni xohlaydimi so'rang va javobga qarab yoki optimalroq yechim haqida o'ylashni yoki kod yozishni boshlang.
7. Kod yozish jarayonida ham iloji boricha nima qilayotganingizni tushuntirib boring va murakkabroq qatorlarni koment orqali izohlang.
8. Kod yozishni tugatib, 1-2ta inputni olib uni xayolan yozgan funksiyangizda "dry-run" qiling. Bu orqali siz kodingizdagi ehtimoliy "bug"larni topishingiz va "fix" qilishingiz mumkin.
9. Kodda foydalangan "loop", "recursion call" va "data structure"larni hisobga olib time va space complexityni qayta hisoblab uni ham koment sifatida yozib qoying. Chunki kod yozish paytida siz yechimingizni biroz yoki butunlay o'zgartirgan bo'lishingiz mumkin.
10. Kodni "run" qilish imkoniyati bo'lsa, oddiy testlar yozishga harakat qiling va kodni "run" qilib tekshirib ko'ring
Masalan:
assert fibonacci(x1) == y1
assert fibonacci(x2) == y2
Komentlar nimaga kerak?
Texnik intervyudagi komentlarning asosiy vazifasi intervyu oluvchi siz yozgan kodni bir necha soat yoki bir necha kundan keyin ochganda sizning "performance"ingizni to'g'ri baholashi uchun.
Intervyu oluvchi siz bilan suhbatdan so'ng tushlikka ketishi, ish vaqti tugashi, yoki boshqa bir intervyu yoki meetinga kirishi mumkin.
Qachondir sizni baholash uchun platformani ochganda koddan tashqari qilingan hisob kitoblar, fikrlaringiz ketma-ketligini yozib borganingiz, testlar bo'lishi sizning natijangizni oshiradi.
Va odatda intervyu oxirida reverse interview, ya'ni siz o'zingiz uchun qiziq bo'lgan savollarni so'rashingiz uchun ~5 daqiqa vaqtingiz bo'ladi.
Kompaniya, siz qo'shilayotgan jamoa h.k. lar haqida savollar bering, bu kompaniyada ishlashga bo'lgan qiziqishingizni ko'rsatadi.
P.S. Juda uzun post bo'lib ketdi, ko'proq info berishga harakat qildim.
Bir nechta savollardan so'ng, intervyu oluvchi sizga codesignal yoki shunga o'xshash platformaga havola jo'natadi va LeetCode stilidagi masala beradi.
Yoki sizdan google docda kod yozish ham so'ralishi mumkin, aniqroq ma'lumotni intervyudan oldingi bosqichlarda HRdan so'rab olishingiz mumkin.
1. Masalani yaxshilab o'qib, tushunib oling va keyin uni o'z so'zlaringiz bilan ifodalab bering bu bilan masalani to'g'ri tushunganingizni tekshirib olasiz.
2. Masalaga og'zaki 1-2ta input berib hisoblagan X natijangiz to'g'ri yoki noto'g'ri ekanligini intervyu oluvchidan so'rang. Va keyin bu input/outputlarni koment sifatida yozib qo'ying. Bu orqali sizda masalani, qonuniyat(pattern) yanayam yaxshiroq tushunish imkoniyati bo'ladi.
3. Bir vaqtni o'zida ham masala yechimi haqida o'ylab, ham nimani o'ylayotganingizni gapirib turing, garchi yechimingiz to'g'riligiga shubhangiz bo'lsa ham.
4. Masalani yechishda qiynalgan paytingizda suhbatdoshingiz sizga hint berishi mumkin, buni ilib olishga harakat qiling.
5. Yechimni topgandan so'ng intervyu oluvchiga yechimingizni tushuntirib bering, iloji bo'lsa topgan yechimingiz uchun kerak bo'ladigan time va space complexityni hisoblab bering.
6. Intervyu oluvchidan bu yechim maqulmi yoki yanayam optimalroq yechim topishingizni xohlaydimi so'rang va javobga qarab yoki optimalroq yechim haqida o'ylashni yoki kod yozishni boshlang.
7. Kod yozish jarayonida ham iloji boricha nima qilayotganingizni tushuntirib boring va murakkabroq qatorlarni koment orqali izohlang.
8. Kod yozishni tugatib, 1-2ta inputni olib uni xayolan yozgan funksiyangizda "dry-run" qiling. Bu orqali siz kodingizdagi ehtimoliy "bug"larni topishingiz va "fix" qilishingiz mumkin.
9. Kodda foydalangan "loop", "recursion call" va "data structure"larni hisobga olib time va space complexityni qayta hisoblab uni ham koment sifatida yozib qoying. Chunki kod yozish paytida siz yechimingizni biroz yoki butunlay o'zgartirgan bo'lishingiz mumkin.
10. Kodni "run" qilish imkoniyati bo'lsa, oddiy testlar yozishga harakat qiling va kodni "run" qilib tekshirib ko'ring
Masalan:
assert fibonacci(x1) == y1
assert fibonacci(x2) == y2
Komentlar nimaga kerak?
Texnik intervyudagi komentlarning asosiy vazifasi intervyu oluvchi siz yozgan kodni bir necha soat yoki bir necha kundan keyin ochganda sizning "performance"ingizni to'g'ri baholashi uchun.
Intervyu oluvchi siz bilan suhbatdan so'ng tushlikka ketishi, ish vaqti tugashi, yoki boshqa bir intervyu yoki meetinga kirishi mumkin.
Qachondir sizni baholash uchun platformani ochganda koddan tashqari qilingan hisob kitoblar, fikrlaringiz ketma-ketligini yozib borganingiz, testlar bo'lishi sizning natijangizni oshiradi.
Va odatda intervyu oxirida reverse interview, ya'ni siz o'zingiz uchun qiziq bo'lgan savollarni so'rashingiz uchun ~5 daqiqa vaqtingiz bo'ladi.
Kompaniya, siz qo'shilayotgan jamoa h.k. lar haqida savollar bering, bu kompaniyada ishlashga bo'lgan qiziqishingizni ko'rsatadi.
P.S. Juda uzun post bo'lib ketdi, ko'proq info berishga harakat qildim.